第7章控制系统的计算机辅助分析主要介绍利用MATLAB的控制系统工具箱所提供的函数对线性系统进行计算机分析和处理。7.1控制系统的稳定性分析复习:线性系统的稳定性取决于系统的极点在根平面上的位置。如果一个连续系统的所有极点都位于左半s平面,则该系统是稳定的。对离散系统,如果系统的所有极点都位于单位圆内,则该系统是稳定的。1.利用极点判断系统的稳定性思路:直接求出系统所有的极点,然后根据极点的分布情况来确定系统的稳定性。[例7-1]已知闭环系统的传递函数为122532423)(2345234ssssssssssG判断系统的稳定性,并求出不稳定极点。解:%ex7_1.m[例7-2]已知离散系统的开环脉冲传递函数为523455.036.045)(zzzzzzzG判断单位负反馈系统的稳定性。解:%ex7_2.m2.利用特征值判断系统的稳定性知识:线性定常系统uxyuxxDCBA的特征方程为0111nnnnasasassAI特征方程的根称为系统的特征根,即系统的闭环极点。[例7-3]已知系统的状态方程为uxx222244675.025.075.125.1125.15.025.025.025.125.425.25.025.1525.2判断系统的稳定性。解:%ex7_3.m3.利用Lyapunov第二方法判断系统的稳定性知识:线性定常连续系统Axx在平衡状态0ex处,渐近稳定的充要条件是:对任给的一个正定对称矩阵Q,存在一个正定的对称矩阵P,且满足矩阵方程QPAPAT同时标量函数PxxxVT)(是这个系统的一个二次型形式的Lyapunov函数。Lyapunov方程QPAPAT的求解函数的调用格式:),(QAlyapP矩阵A,Q,P的维数,与Lyapunov方程相对应。一般地,关于Lyapunov方程QPBAP可利用函数),,(QBAlyapP求解。离散系统的Lyapunov方程的求解函数为dlyap()对称矩阵A正定的充要条件:A的各阶主子式都为正,即0,,0,011112221121111nnnnaaaaaaaaa或充要条件:A的特征值全为正。[例7-4]设系统的状态方程为xx1110其平衡状态在坐标原点处,试判断该系统的稳定性。解:%ex7_4.m7.2控制系统的时域分析1.任意信号函数生成任意信号函数的调用格式:[u,t]=gensig(type,Ta)[u,t]=gensig(type,Ta,Tf,T)type=sin正弦,square方波,pulse脉冲序列;Ta—周期。Tf—持续时间;T—采样周期。[例7-5]生成一个周期为5s,持续时间为30s,采样时间为0.1s的方波。解:[u,t]=gensig(’square’,5,30,0.1);plot(t,u),axis([0,30,-0.5,1.5])2.连续系统的单位阶跃响应单位阶跃响应函数的调用格式:[y,x,t]=step(num,den,t)[y,x,t]=step(A,B,C,D,iu,t)式中,t为选定的仿真时间向量;返回值y为由系统在各个仿真时刻的输出所组成的矩阵;x为自动选择的状态变量的时间响应数据。如果不考虑响应数据x,y而只要绘制出系统的阶跃响应曲线,其调用格式为:step(num,den,t)step(A,B,C,D,t)时间向量t也可省略,此时由MATLAB自动选择一个比较合适的仿真时间。[例7-6]设系统的开环传递函数为sssssG4036820)(234求该系统在单位负反馈下的阶跃响应曲线和最大超调量。解:%ex7_6.m[例7-7]对于典型二阶系统2222)(nnnsssG试绘制出无阻尼自然振荡频率6n,阻尼比分别为0.2,0.4,…,1.0,2.0时系统的单位阶跃响应曲线。解:%ex7_7.m3.离散系统的单位阶跃响应离散系统单位阶跃响应函数的调用格式:[y,x]=dstep(num,den,n)[y,x]=step(G,H,C,D,iu,n)式中,n为选定的取样点个数,n省略时,取样点数由函数自动选取。[例7-9]已知二阶离散系统8.06.15.14.32)(22zzzzzG试求其单位阶跃响应。解:%ex7_9.m4.单位脉冲响应单位脉冲响应函数impulse()和dimpulse()与单位阶跃函数step()和dstep()的调用格式完全一致。5.系统的零输入响应知识:零输入响应———系统由初始状态所引起的响应。函数调用格式:[y,x,t]=initial(A,B,C,D,x0)连续系统x0为初始状态[y,x,t]=initial(A,B,C,D,x0,t)连续系统[y,x]=initial(A,B,C,D,x0)离散系统n为取样点数[y,x]=initial(A,B,C,D,x0,n)离散系统[例7-11]系统状态空间表达式xyuxx]1111[0101045.20045.255.04.00009.0009.06.1采样周期T=0.5,用双线性变换算法转换成离散系统,再求出离散系统的单位阶跃响应,单位脉冲响应,零输入响应。(初始状态x0=[111-1]T)解:%ex7_11.m6.任意输入函数的响应连续系统:对任意输入函数的响应。调用格式:[y,x]=lsim(num,den,u,t)[y,x]=lsim(A,B,C,D,iu,u,t)u为由给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等。[例7-12]已知系统32152)(22sssssG求周期为4s的方波输出响应。解:%ex7_12.m离散系统:对任意输入函数的响应。调用格式:[y,x]=dlsim(num,den,u,n)[y,x]=dlsim(A,B,C,D,iu,u,n)n为取样点数。[例7-13]离散系统568.0368.1632.0)(2zzzG求输入幅值为1方波信号下的输出响应。解:%ex7_13.m7.3根轨迹法1.绘制系统的零极点图调用格式:[p,z]=pzmap(A,B,C,D)[p,z]=pzmap(p,z)%p,z为列向量[p,z]=pzmap(num,den)2.绘制系统的根轨迹对负反馈系统其特征方程式:1+G(s)H(s)=00)()(1sdensnumK绘制当开环增益K由0至变化时,闭环系统的特征根在s平面变化的轨迹。G(s)H(s)_系统框图函数调用格式:[r,K]=rlocus(num,den)%自动选取K[r,K]=rlocus(num,den,K)%指定增益K[r,K]=rlocus(A,B,C,D)%自动选取K[r,K]=rlocus(A,B,C,D,K)%指定增益Kr为闭环极点,K为相应的增益。确定根轨迹上某一点处的增益值K及该极点的位置坐标值poles,可用函数:[K,poles]=rlocfind(num,den)[K,poles]=rlocfind(A,B,C,D)注意:用在rlocus()之后。[例7-14]负反馈系统的开环传递函数为)2)(1()()(sssKsHsG绘制系统的根轨迹,分析系统稳定的K值范围。解:num=1;den=conv([1,0],conv([1,1],[1,2]));rlocus(num,den)[K,poles]=rlocfind(num,den)7.4控制系统的频域分析1.产生频率向量函数函数调用格式:w=logspace(m,n,npts)生成指数向量(nm10~10),点数由npts指定。2.Bode图复习:系统的Bode图是幅值)(jG与相位)(jG分别对角频率的绘图(两张图)。也称幅频特性曲线、相频特性曲线。根据幅频特性曲线、相频特性曲线可求出幅值裕量和相位裕量。带输出变量引用函数时,可得到系统Bode图相应的幅值mag,相位phase及频率点向量。调用格式:[mag,phase,w]=bode(num,den)%频率范围由函数自动选取[mag,phase,w]=bode(num,den,w)%指定频率范围不带输出变量时,可在当前图形窗口中绘制。或用下面方法:相位以“度”为单位;幅值转换成dB为单位,即:magdB=20*log10(mag)则可在同一窗口上绘制系统的Bode图。即subplot(2,1,1);semilogx(w,20*log10(mag))subplot(2,1,2);semilogx(w,phase)[例7-16]系统开环传递函数为2222)(nnnsssG绘制出当n=3和分别取0.2,0.4,0.6,0.8,1.0时系统的Bode图。解:%ex7_16.m3.幅值裕量和相位裕量利用MATLAB的控制系统工具箱中提供的margin()函数,可求出系统的幅值裕量和相位裕量,其调用格式为:[Gm,Pm,Wcg,Wcp]=margin(num,den)[Gm,Pm,Wcg,Wcp]=margin(A,B,C,D)Gm—幅值裕量,Pm—相位裕量,Wcg—相位穿越频率,Wcp—幅值穿越频率。[例7-17]给定系统)()(0018751562)(1000)(5442.208.2135.62100001000010)(tutxtytxtx求系统的幅值裕量和相位裕量,画出Bode图。解:%ex7_17.m4.系统的奈魁斯特(Nyquist)图Nyquist图是根据开环频率特性)()(jHjG在复平面上绘幅相轨迹,利用开环系统的Nyquist曲线,来判断闭环系统的稳定性。Nyquist稳定判据:当从变化时,Nyquist曲线)()(jHjG逆时针包围(-1,j0)点的次数N,等于系统开环传递函数)()(sHsG位于右半s平面的极点数P,即N=P,则闭环系统稳定,否则闭环系统不稳定。Nyquist()函数的调用格式:[Re,Im,]=nyquist(num,den)[Re,Im,]=nyquist(num,den,)[Re,Im,]=nyquist(A,B,C,D)[Re,Im,]=nyquist(A,B,C,D,iu)[Re,Im,]=nyquist(A,B,C,D,iu,)可利用命令plot(Re,Im)绘出系统的Nyquist图。也可用下列简单命令来绘制nyquist(num,den)nyquist(num,den,)nyquist(A,B,C,D)nyquist(A,B,C,D,iu)nyquist(A,B,C,D,iu,)[例7-20]已知系统的开环传递函数为5.025.0)()(23ssssHsG绘制Nyquist图,并判断系统的稳定性。解:num=[0.5];den=[1210.5];nyquist(num,den)[z,p]=tf2zp(num,den)%由得到的p,可知P=0(右半s平面极点数)[例7-21]已知系统的开环传递函数为)2)(5(50)()(sssHsG绘制Nyquist图,判断系统的稳定性。解:k=50;z=[];p=[-52];[num,den]=zp2tf(z,p,k);nyquist(num,den)[例7-22]已知多环系统)10625.0)(125.0)(18.0(7.16)(sssssG其系统方框图如图所示,试用Nyquist曲线判断系统的稳定性。解:%ex7_22.mG(s)10+_+_Y(s)R(s)