3.2 PID控制器的设计与仿真
由式(3.1)可得推出系统的开环传递函数为:
G(s)?3s (3.2)
(s?2.9028)(s?2.7141)(s?0.0911)首先,为了观察系统开环传递函数的根轨迹,可以利用Matlab对开环传递函数进行仿真,仿真程序如下:
>> K=3; >> n=[1 0 0];
>> d=conv(conv(conv([1 0],[1 -2.9028]),[1 2.7141]),[1 0.0911]); >> s=tf(K*n,d); >> margin(s)
经过仿真后,我们可以看到系统的Bode图如图3.3所示:
图3.3 未校正系统的Bode图
由图可知,幅频曲线并没有穿越0dB轴,在0dB轴以下,而且相频曲线也没有穿越?180?,可知闭环系统是不稳定的。
12
我们利用根轨迹法来设计控制器。该方法的目的是运用根轨迹方法给系统设计一个超前—滞后装置,即PID控制器,以达到控制效果。
该设计生动地反映了根据根轨迹判定系统性能,零极点对系统性能的影响,渐近线的各种特性等等涉及到根轨迹的理论点。并且反映了如何设计系统的校正装置。
做出系统的开环传递函数的根轨迹: 仿真程序: >> clear >> K=3; >> n=[1 0 0];
>> d=conv(conv(conv([1 0],[1 -2.9028]),[1 2.7141]),[1 0.0911]); >> s=tf(K*n,d); >> rlocus(s)
根轨迹如图3.4所示:
图3.4 未校正系统的根轨迹图
可以看到闭环传递函数的一个极点位于右半平面,并且有一条根轨迹起始于该极
13
点,并沿着实轴向左直到位于原点的零点处,这意味着无论增益如何变化,这条根轨迹总是位于右半平面,系统总是不稳定的。
为了解决这个问题,在原点处增加一个极点s=0,使得原点处的零极点对消掉,利用Matlab进行仿真,仿真程序如下:
>> clear >> K=3; >> n=[1 0];
>> d=conv(conv(conv([1 0],[1 -2.9028]),[1 2.7141]),[1 0.0911]); >> s=tf(K*n,d); >> rlocus(s)
可以得到新的根轨迹如图3.5所示:
图3.5 加入s=0极点后系统的根轨迹图
系统新的传递函数为:
G?(s)?3 (3.3)
(s?2.9028)(s?2.7141)(s?0.0911)这时可以清楚地发现,系统有三根渐近线,一根在负实轴上,渐近线与实轴正方
14
向的夹角可以根据公式??(2k?1)?计算出另外两根与第一根的夹角为120度。这样
n?m两根根轨迹永远不会达到左半平面,必须通过在控制器中增加一个零点z2来把渐近线的数目减少到二,这时我们可以根据渐近线与实轴交点坐标公式??计算出渐近线与实轴交点为开实轴的位置是0.0488?2?pi??zii?1i?1nmn?m?(?0.0911?2.7141?2.9028)?z2?,这意味着两根渐近线离
z2(z2?0),若z2稍大,则零点位于右半平面,系统又不2稳定,但即使z2取得够小,这时渐近线与实轴交点也很靠近虚轴,根轨迹很快进入右半平面,不能满足设计要求。z2?0.1时进行Matlab仿真系统根轨迹如图3.6所示:
图3.6 加入零点后系统的根轨迹图
解决这个问题的方法是在左半平面再增加一个远离其他零极点的极点,让渐近线与实轴交点更靠左,但是为了让渐近线保持在两条,且维持系统稳定,必须在左半平面再增加一个绝对值较小的零点。这样一组零极点可以利用修改Matlab中的参数来试探得到。
15
校正装置的零点选为z1??3,z2??3,极点选为p1?0,p2?55。程序中使用了rlocfind函数,可以用鼠标在该图的根轨迹上选择一对位于左半平面共轭复根和负实根,即用鼠标在根轨迹上选择一点,可求得系统的增益k。
仿真程序如下: >> clear >> K=3; >> n=[1 6 9 0];
>> d=conv(conv(conv(conv([1 0],[1 -2.9028]),[1 2.7141]),[1 0.0911]),[1 55]); >> s=tf(K*n,d); >> rlocus(s)
>> [k,poles]=rlocfind(s)
Select a point in the graphics window selected_point = -8.9929 + 0.3882i k = 489.6894 poles =
0 -34.2172 -8.9573 + 0.3836i -8.9573 - 0.3836i -2.7705
16
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库毕业设计-一阶倒立摆最优控制器的设计(4)在线全文阅读。
相关推荐: