MATLAB实现控制系统稳定性分析
稳定是控制系统的重要性能,也是系统能够工作的首要条件,因此,如何分析系统的稳定性并找出保证系统稳定的措施,便成为自动控制理论的一个基本任务.线性系统的稳定性取决于系统本身的结构和参数,而与输入无关.线性系统稳定的条件是其特征根均具有负实部.
在实际工程系统中,为避开对特征方程的直接求解,就只好讨论特征根的分布,即看其是否全部具有负实部,并以此来判别系统的稳定性,由此形成了一系列稳定性判据,其中最重要的一个判据就是Routh判据.Routh判据给出线性系统稳定的充要条件是:系统特征方程式不缺项,且所有系数均为正,劳斯阵列中第一列所有元素均为正号,构造Routh表比用求根判断稳定性的方法简单许多,而且这些方法都已经过了数学上的证明,是完全有理论根据的,是实用性非常好的方法.
但是,随着计算机功能的进一步完善和Matlab语言的出现,一般在工程实际当中已经不再采用这些方法了.本文就采用Matlab对控制系统进行稳定性分析作一探讨.
1 系统稳定性分析的Matlab实现 1.1 直接判定法
根据稳定的充分必要条件判别线性系统的稳定性,最简单的方法是求出系统所有极点,并观察是否含有实部大于0的极点,如果有,系统则不稳定.然而实际的控制系统大部分都是高阶系统,这样就面临求解高次方程,求根工作量很大,但在Matlab中只需分别调用函数roots(den)或eig(A)即可,这样就可以由得出的极点位置直接判定系统的稳定性. 已知控制系统的传递函数为
s3?7s2?24s?24G?s??4 (1) 32s?10s?35s?50s?24若判定该系统的稳定性,输入如下程序: G=tf([1,7,24,24],[1,10,35,50,24]); roots(G.den{1}) 运行结果: ans =
-4.0000 -3.0000 -2.0000 -1.0000
由此可以判定该系统是稳定系统. 1.2 用根轨迹法判断系统的稳定性
根轨迹法是一种求解闭环特征方程根的简便图解法,它是根据系统的开环传递函数极点、零点的分布和一些简单的规则,研究开环系统某一参数从零到无穷大时闭环系统极点在s平面的轨迹.控制工具箱中提供了rlocus函数,来绘制系统的根轨迹,利用rlocfind函数,在图形窗口显示十字光标,可以求得特殊点对应的K值.
已知一控制系统,H(s)=1,其开环传递函数为:
第 - 1 - 页
G?s??K (2)
s?s?1??s?2?绘制系统的轨迹图.
程序为: G=tf(1,[1 3 2 0]);rlocus(G);
[k,p]=rlocfind(G)
根轨迹图如图1所示,光标选定虚轴临界点,程序 结果为:
图1 系统的根轨迹图
selected_point = 0 - 0.0124i k =
0.0248 p =
-2.0122 -0.9751 -0.0127
光标选定分离点,程序结果为: selected_point = -1.9905 - 0.0124i k =
0.0308 p =
-2.0151 -0.9692 -0.0158
上述数据显示了增益及对应的闭环极点位置.由此可得出如下结论:
(1)0 (2)k=0.4时,对应为分离点,系统处于临界阻尼状态; (3)0.4 (5)k>6时,系统的一对复根的实部为正,系统处于不稳定状态. 1.3 用Nyquist曲线判断系统的稳定性 Matlab提供了函数Nyquist来绘制系统的Nyquist曲线,若式(2)系统分别取k= 4和k= 10(图2为阶跃响应曲线),通过Nyquist曲线判断系统的稳定性,程序如下: num1=[4];num2=[10]; den1=[1,3,2,0]; gs1=tf(num1,den1); gs2=tf(num2,den1); hs=1; 第 - 2 - 页 gsys1=feedback(gs1,hs); gsys2=feedback(gs2,hs); t=[0:0.1:25]; figure(1); subplot(2,2,1);step(gsys1,t) subplot(2,2,3);step(gsys2,t) subplot(2,2,2);nyquist(gs1) subplot(2,2,4);nyquist(gs2) 奈氏稳定判据的内容是:若开环传递函数在s平半平面上有P个极点,则当系统角频率X由-∞变到+∞时,如果开环频率特性的轨迹在复平面上时针围绕(-1,j0)点转P圈,则闭环系统稳定,否则,是不稳定的. 图2阶跃响应曲线 当k=4时,从图3中k=4可以看出,Nyquist曲不包围(-1,j0)点,同时开环系统所有极点都位于平面左半平面,因此,根据奈氏判据判定以此构成闭环系统是稳定的,这一点也可以从图2中k=4系统单位阶跃响应得到证实,从图2中k=4可以看出系统约23 s后就渐渐趋于稳定.当k=10时,从图3中k=10可以看 图3 Nyquist曲线 出,Nyquist曲线按逆时针包围(-1,j0)点2圈,但此时P=0,所以据奈氏判据判定以此构成的闭环系统是不稳定的,图2中k=10的系统阶跃响应曲线也证实了这一点,系统振荡不定。 1.4 bode图法判断系统的稳定性 bode判据,实质上是Nyquist判据的引伸.本开环系统是最小相位系统,即P=0,用Xc表示对数幅频特性曲线与横轴(0dB)交点的频率,Xg表示对数相频特性曲线与横轴(-180o)交点的频率,则对数判据可表述如下: 在P=0时,若开环对数幅频特性比其对数相频特性先交于横轴,即Xc gsys1=feedback(gs1,hs); gsys2=feedback(gs2,hs); t=[0:0.1:25]; figure(1); subplot(1,1,1);bode(gs1) 图4 k=4时开环系统的bode图 由图4开环系统的bode图可知,Xc 第 - 3 - 页 一)用系统特征方程的根判别系统稳定性: 设系统特征方程为s+s+2s+2s+3s+5=0,计算特征根并判别该系统的稳定性。在command window窗口输入下列程序,记录输出结果。 >> p=[1 1 2 2 3 5]; >> roots(p) 二)用根轨迹法判别系统稳定性:对给定的系统的开环传递函数,进行仿真。 5 4 3 2 1.某系统的开环传递函数为 ,在command window 窗口输入程序,记录系统闭环零极点图及零极点数据,判断该闭环系统是否稳定。 >> clear >> n1=[0.25 1]; >> d1=[0.5 1 0]; >> s1=tf(n1,d1); >> sys=feedback(s1,1); >> P=sys.den{1};p=roots(P) >> pzmap(sys) >> [p,z]=pzmap(sys) 2.某系统的开环传递函数为 ,在command window窗口输入程序,记录系统开环根轨迹图、系统开环增益及极点,确定系统稳定时K的取值范围。 第 - 4 - 页 >> clear >> n=[1];d=conv([1 1 0],[0.5 1]); >> sys=tf(n,d); >> rlocus(sys) >> [k,poles]=rlocfind(sys) 三)频率法判别系统稳定性:对给定的系统的开环传递函数,进行仿真。 1.已知系统开环传递函数 ,在command window 窗口输入程序,用Bode图法判稳,记录运行结果,并用阶跃相应曲线验证(记录相应曲线) 1)绘制开环系统Bode图,记录数据。 >> num=75*[0 0 0.2 1]; >> den=conv([1 0],[1 16 100]); >> sys=tf(num,den); >> [Gm,Pm,Wcg,Wcp]=margin(sys) >> margin(sys) 2)绘制系统阶跃响应曲线,证明系统的稳定性。 >> num=75*[0 0 0.2 1]; >> den=conv([1 0],[1 16 100]); >> s=tf(num,den); >> sys=feedback(s,1); 第 - 5 - 页