1、1第 5 章 控制系统计算机辅助分析5.1 控制系统的稳定性分析1.利用闭环极点判断系统的稳定性例 1:已知控制系统结构图如下图所示:求取系统的闭环极点,并判别闭环系统的稳定性。解: num1=30;den1=0.5,1; num2=conv(0.2,1,2);den2=conv(1 0,0.25,1); numa,dena=series(num1,den1,num2,den2); num,den=cloop(numa,dena); p=roots(den); disp(系统的闭环极点为 ),disp(p) ss=find(real(p)0);n=length(ss); if (n0)disp
2、(系统不稳定 )else disp(系统稳定)2end系统的闭环极点为-2.0000 + 6.6332i-2.0000 - 6.6332i-2.0000 系统稳定pzmap(num,den)例 2:已知离散控制系统闭环脉冲传递函数 8.036.046 232)( 2354 zzzzzG判别系统的稳定性。解: num=2,3,-1,0.6,3,2;3 den=6,4,-1,0.6,3,0.8; z,p=tf2zp(num,den); ss=find(abs(p)1);n=length(ss); if (n0)disp(系统不稳定 )else disp(系统稳定)end系统稳定z =-1.7119
3、 0.7176 + 0.7483i0.7176 - 0.7483i-0.6116 + 0.4115i-0.6116 - 0.4115ip =0.5496 + 0.5842i0.5496 - 0.5842i-0.7332 + 0.3929i-0.7332 - 0.3929i-0.2995 pzmap(num,den)42.利用特征值判断系统的稳定性状态空间描述下的系统稳定的充要条件是 A 的所有特征值均具有负实部。例 3:已知系统的状态方程为: uxx 24675.02.75.12. 10.4. 50252判断系统的稳定性。解:A=2.25 -5 -1.25 -0.5;2.25 -4.25 -1
4、.25 -0.25;0.25 -0.5 -1.25 -1;1.25 -1.75 -0.25 -0.75;p=poly(A);5r=roots(p)ss=find(real(r)0); n=length(ss);if (n0)disp(系统不稳定 )else disp(系统稳定)end结果为:系统稳定 rr =-1.5000 -1.5000 -0.5000 + 0.8660i-0.5000 - 0.8660i 5.2 控制系统的时域分析1. step 函数的用法y=step(num,den,t):其中 num,den 分别为系统传函的分子和分母多项式系数,t 为选定的仿真时间向量,一般可由 t=
5、0:step:final 等步长产生。该函数返回值 y 为系统在仿真中所得输出组成的矩阵。y,x,t=step(num,den):时间向量 t 由系统模型特性自动生成,状态变量 x 返回为空矩阵。6y,x,t=step(A,B,C,D,iu):其中 A、B、C、D 分别为系统的状态空间系数阵,iu 用来指定输入变量的序号,x 为系统返回的状态轨迹。如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,则可采用以下格式进行调用。step(num,den)step(num,den,t)step(A,B,C,D,iu,t)step(A,B,C,D,iu)即前三种格式只返回变量值,而不画图;而后四
6、种格式则只画图。另外 step 函数可同时绘制出多个系统的阶跃响应曲线(此时可仿照 plot 函数的格式) ,如:step(G1,-r, G2,b* ,G3,r)2. impulse 函数的用法impulse 函数的调用格式与 step 函数相类似。y=impulse (num,den,t)y,x,t= impulse (num,den)y,x,t= impulse (A,B,C,D,iu,t)impulse (num,den)7impulse (num,den,t)impulse (A,B,C,D,iu,t)impulse (A,B,C,D,iu)3. lsim 函数的用法impluse 函
7、数的调用格式与 step、impluse 函数相类似,所不同的是必须提供相关输入信号的特征。lsim (G ,u,t) %仅给出一种常用格式4. initial 函数的用法在状态空间表达式的状态变量初始值给定时对其进行求解-即零输入响应。例 4:系统的闭环传函如下: 14.0)(2ssG试求其单位阶跃响应曲线。解: num=1;den=1,0.4 ,1; t=0:0.1:40; step(num,den,t); grid on xlabel(t),ylabel(y) title(阶跃响应)8可直接用 num=1;den=1, 0.4 ,1; t=0:0.1:40; y,x,t=step(num
8、,den,t); plot(t,y)例 5:系统的闭环传函如下: 14.0)(2ssG试求其单位斜坡输入响应曲线。 num=1; den=1, 0.4 ,1; t=0:0.1:40; u=t; lsim(num,den,u,t) grid on9 title(单位斜坡输入响应) xlabel(t),ylabel(y)例 6:反馈系统如下图(a)所示,其中,系统输入信号如图(b)所示的三角102)(ssG波,试求取系统输出响应。解: num1=1 2;den1=1 10 1;10 num,den=cloop(num1,den1); u1=0:0.1:1; u2=0.9:-0.1:-1; u3=-
9、0.9:0.1:0; t=0:0.1:4; u=u1,u2,u3; lsim(num,den,u,t)例 7:单位反馈系统如下图所示,其中 ,ssG425)(试在同一坐标系下绘制输入信号为 u1(t)=1+0.2sin(4t)和 u2(t)=0.3t+0.3sin(5t)时系统的响应曲线 y1(t) ,y2(t).11解 num1=25;den1=1 4 0; num,den=cloop(num1,den1); t=0:0.1:5; u1=1+0.2*sin(4*t); u2=0.3*t+0.3*sin(5*t); y1=lsim(num,den,u1,t); y2=lsim(num,den,
10、u2,t); plot(t,y1,r,t,y2) grid例 8:在同一个坐标系中绘制典型二阶系统、具有零点的二阶系统和三阶系统的阶跃响应曲线,并比较它们的性能。系统的传函分别为:12)6.18.0)(6.18.0(23)1 jsjsG )13.0)(.)()2 sjsjs )6.18.0)(6.18.0(32)3 jsjsG解:法一: num1=3.2; den1=conv(1,0.8+1.6j,1,0.8-1.6j); num2=num1;den2=conv(den1,0.33,1); num3=conv(num1,0.33,1); den3=den1; step(num1,den1) g
11、rid hold on step(num2,den2) step(num3,den3)13法二: num1=3.2; den1=conv(1,0.8+1.6j,1,0.8-1.6j); num2=num1;den2=conv(den1,0.33,1); num3=conv(num1,0.33,1); den3=den1; sys1=tf(num1,den1); sys2=tf(num2,den2); sys3=tf(num3,den3); step(sys1,sys2,sys3) grid我们还可以分析控制系统的一些动态性能指标,如最大超调量、峰值时间、上升时间、稳态值等等。考虑上面的例子:1
12、4155.3 根轨迹分析方法所谓根轨迹,是指当开环系统的某一参数从 0 变化到无穷大时,闭环系统的特征方程的根在 s 平面上所形成的轨迹(一般地,将这一参数选作开环系统的增益 K) 。控制系统的根轨迹分析就是利用根轨迹图分析系统性能及参数变化对系统性能的影响。MATLAB 采用 rlocus 函数来绘制根轨迹。其调用格式为:rlocus (num,den)rlocus (num,den,K) %用指定的 K 绘制根轨迹rlocus (A,B,C,D)rlocus (A,B,C,D,K) %用指定的 K 绘制根轨迹若要返回变量值,则R,K=rlocus (num,den)R,K=rlocus (
13、num,den,K)R,K=rlocus (A,B,C,D)R,K=rlocus (A,B,C,D,K)其中,R 为系统的闭环极点列向量,K 为对应的根轨16迹增益。此时可采用 plot(R,x)绘制根轨迹图。在系统分析过程中,常常希望确定根轨迹上某一点处的增益值 K,这时可利用 MATLAB 中 rlocfind函数(在使用此函数之前要先得到系统的根轨迹) ,其调用格式为:K,poles=rlocfind (num,den)K,poles=rlocfind (A,B,C,D)此时会在屏幕上的图形中生成一个十字光标,使用鼠标移动至所希望的位置,然后单击鼠标左键即可得到该极点的位置坐标值 pol
14、es 及它所对应的增益 K 的值.例 9:已知单位反馈系统的开环传函为: )14)(5.0()ssKG使用 MATLAB 绘制系统的根轨迹。解: num=1 1; den=conv(1 0,conv(0.5 1,4 1); rlocus(num,den) title(根轨迹图)17实际上有时我们只对根轨迹上的一部分取值范围感兴趣。 K=0:0.05:80;18poles=rlocus(num,den,K);plot(poles)例 10:已知开环传函为: )2(1)(sKsG绘制系统的根轨迹图,并分析系统稳定的 K 值范围。解: num=1; den=conv(1 0,conv(1 1,1 2
15、); rlocus(num,den)19求根轨迹与虚轴的交点及临界根轨迹增益。 k,poles=rlocfind(num,den)20k =6.0000poles =-3.0000 0.0000 + 1.4142i0.0000 - 1.4142i求分离点及对应的根轨迹增益。 k1,poles1=rlocfind(num,den)k1 =0.3849poles1 =-2.1547-0.4239-0.421421稳定性分析:由图可知,闭环系统是条件稳定的。因为根轨迹与虚轴的交点处的增益为 6,则当 06 时,系统不稳定。因为根轨迹在实轴上的分离点处的增益为 0.3849,则当 00.3847 时,
16、系统为震荡衰减稳定。在系统运行过程中,条件稳定是危险的。一旦参数变化,则系统的稳定性可能会明显变坏。例 11:已知随动系统结构如下图所示,被控对象和控制器的传递函数分别为:,)1(0)sGp ssGc1)(采用 MATLAB 绘制系统的根轨迹,并分析当 时,0参数 对系统性能的影响。解:系统的开环传函为:22)1(0)()( ssGsGpco 闭环系统特征方程为: 0102ss等效系统根轨迹方程为: 0112s等效系统的开环传递函数为: 1010)( 22 sKssGo其中, 。10K num=1,0; den=1,1,10; rlocus(num,den)23从图可以看出,只要 ,则该系统是
17、稳定的。0求取分离点。 taod,sd=fld(num,den)taod =0.5325sd =-3.1623当 时,特征根为共轭复数,系统欠阻尼,532.0系统为震荡衰减稳定;当 时,系统临界阻尼,532.0此时有两个相等的实根;当 时,系统过阻尼,.系统为单调衰减稳定。%求分离点的子函数function k,sd=fld(num,den)dnum=polyder(num);dden=polyder(den);d1=conv(num,dden);d2=conv(dnum,den);24pp=d1-d2; % A(s)B(s)- A(s)B(s)s=;s=roots(pp);kk=-polyv
18、al(den,s)./polyval(num,s); %带入特征方程验证ll=length(kk);kn=(kk0);k=;sd=;for i=1:llif kn(i)=1n0=i;k=kk(n0)/10 % =K/10sd=s(n0)end end可以对图形绘制栅格线,如: sgrid % grid栅格线由等阻尼系数和等自然频率线构成,阻尼25系数 的范围为 0-1。5.4 控制系统的频域分析频域分析法是应用频率特性研究控制系统的一种经典方法。控制系统的频率特性反映的是系统对正弦输入信号的响应性能。频域分析法的特点是可以根据开环频率特性来分析闭环系统的性能,从频率响应中可获取带宽、转折频率和
19、闭环系统稳定性等系统特征.1.频率特性频率特性是指系统在正弦信号作用下,系统的频率响应特性,用 G(jw)表示。稳态输出与输入信号的振幅之比 A(w)称为幅频特性;稳态输出与输入信号的初始相位之差 (w)称为相频特性。 )()(wjeAjwG频率特性也可以用复数的代数形式表示为: )()()(jQPj其中, 为 的实部,称为实部特性,)(wPjG为 的虚部,称为虚部特性。)(Qj显然:26)(cos)()(wAwPin)()()(22Q)(arctnwPw2.常用的几种开环频率特性图(1)恩奎斯特Nyquist 图(极坐标,幅相特性图)它是以频率 w 为参数量,以复平面上的向量表示 的方法。
20、利用开环系统的 Nyquist 图,可判)(jG断闭环系统的稳定性。Nyquist 稳定判据:当 w 从-到+变化时,Nyquist 曲线逆时针包围(-1 , j0)点的次数 N,等于系统开环传函位于右半 s 平面的极点数 P,即 N=P,则闭环系统稳定,否则闭环系统不稳定。使用 Nyquist 稳定判据需注意几点问题: 右半 s 平面不包括虚轴 N 是指 Nyquist 曲线逆时针和顺时针方向包围( -1,j0)点的代数和。 若 Nyquist 曲线正好穿过(-1,j0)点,表明系统27有位于虚轴上的极点,系统处于临界稳定状态(工程认为这种系统是不能正常工作的) 。 若开环系统中含有积分环节
21、(即有开环 0 极点) ,应在 Nyquist 曲线补画上的一段曲线,补充的一段通常是以 为起点, 为终点,圆心在)0(jG)0(jG坐标原点,半径为无穷大的 n 个半圆(n 为积分环节的个数) 。 上述 Nyquist 稳定判据是在开环传函无零极点对消的情况下进行的,若存在零极点对消的情况,那么只有在用 Nyquist 稳定判据判定系统稳定,且被消去的极点也是稳定的,此时闭环系统才是稳定的。MATLAB 采用 nyquist 函数来绘制幅相特性曲线,其常用调用格式为:nyquist (num,den)nyquist (num,den,w) %用指定的 w 绘制根轨迹nyquist (A,B,
22、C,D)nyquist (A,B,C,D,w) %多输入系统为 nyquist (A,B,C,D,iu,w)若要返回变量值,则:Re,Im=nyquist (num,den)28Re,Im,w=nyquist (num,den)Re,Im=nyquist (num,den,w) Re,Im,w=nyquist (num,den,w) Re,Im=nyquist (A,B,C,D)Re,Im,w=nyquist (A,B,C,D)Re,Im=nyquist (A,B,C,D,w)Re,Im,w=nyquist (A,B,C,D,w)其中,Re,Im,w 分别为频率特性的实部向量、虚部向量和对应的
23、频率向量。有了这些值就可以使用命令plot(Re,Im)直接绘制系统的 Nyquist 图。例 12:已知系统的开环传递函数为: 5.02.)(3ssHsG绘制 Nyquist 图,并判断闭环系统的稳定性。解: num=0.5;den=1,2,1,0.5; nyquist(num,den)29因为 Nyquist 曲线没有包围(-1,j0)点,则 N=0 roots(den)ans =-1.5652 -0.2174 + 0.5217i-0.2174 - 0.5217i可知,P=0,即 P=N,所以该系统是闭环稳定的。例 13:已知系统的开环传递函数为: )2(50)(ssHG绘制 Nyquist 图,并判断闭环系统的稳定性。解:30 k=50;z=;p=-5,2; num,den=zp2tf(z,p,k); nyquist(num,den)由图可知 Nyquist 曲线逆时针包围(-1 ,j0)点 1 次,N=1,而 P=1,所以闭环系统稳定。(2)Bode 图(对数频率特性图)Bode 图由对数幅频特性和相频特性两条曲线组成。对数幅频特性是频率MATLAB 采用 bode 函数来绘制幅相特性曲线,其调用格式与 nyquist 相类似。例:已知系统的开环传递函数为: