第05讲 MATLAB-simulink稳定性分析、时域分析.ppt
v系统的稳定性稳定性分析;v系统在典型和任意输入信号作用下的时域响应时域响应;v绘制系统的根根轨轨迹迹,并在根轨迹上确定系统稳定的根轨迹增益K值范围;v绘制系统的Bode图图、Nyquist图图和和Nichols图图等,并求取系统的幅值裕量和相位裕量;v分析系统的能能控控性性和和能能观观测测性性,并对不完全能控或不完全能观测的系统进行结构分解。第第7章章 控制系统的计算机辅助分析控制系统的计算机辅助分析17.1控制系统的稳定性分析控制系统的稳定性分析1.利用极点判断系统的稳定性利用极点判断系统的稳定性 判断一个线性系统稳定性的一种最有效的方法是直接求出系统所有的极点,然后根据极点的分布情况来确定系统的稳定性。2 系统特征方程的一般形式为 对于连续时间系统,如果闭环极点全部在S平面左半平面,则系统是稳定的;否则系统是不稳定的。对于离散时间系统,如果系统全部极点都位于Z平面的单位圆内,则系统是稳定的;否则系统是不稳定的。系统稳定性分析系统稳定性分析3直接判定方法直接判定方法 对于传递函数模型tf(num,den),利用求根函数roots(den)来求极点。对于状态空间模型SS(A,B,C,D)利用求特征值函数eig(A)来求特征值。这样根据极点或特征值即可直接判定系统的稳定性。4 例例1:已知单位负反馈系统的开环传递函数为:已知单位负反馈系统的开环传递函数为:试判断系统的稳定性。试判断系统的稳定性。解:解:MATLAB程序如下程序如下k=100;z=-2;p=0;-1;-20;n1,d1=zp2tf(z,p,k);n,d=feedback(n1,d1,1,1);roots(d)运行结果显示:运行结果显示:ans=-12.8990-5.0000-3.1010 5例例7-1已知闭环系统的传递函数为已知闭环系统的传递函数为试判断系统的稳定性,并给出不稳定极点。试判断系统的稳定性,并给出不稳定极点。解:解:MATLAB程序如下程序如下%ex7_1.mnum=32142;den=351221;z,p=tf2zp(num,den);ii=find(real(p)0);n1=length(ii);if(n10)disp(TheUnstablePolesare:);disp(p(ii);elsedisp(Systemisstable);endpzmap(num,den);title(Zero-PoleMap)find功能:查找非零元素的值。格式:k=find(X)6运行结果显示:运行结果显示:TheUnstablePolesare:0.4103+0.6801i0.4103-0.6801i72.利用特征值判断系统的稳定性利用特征值判断系统的稳定性 系统的特征方程|sI-A|=sn+a1sn-1+an-1s+an0的根称为系统的特征值,即系统的闭环极点。当然判断系统的稳定性同样可利用特征值来判断。p=poly(A)%求A的特征多项式。r=roots(p)%求特征多项式的根。r=eig(A)%求A的特征值。8例例7-3已知系统的状态方程为:已知系统的状态方程为:判断系统的稳定性。判断系统的稳定性。解:解:MATLAB程序如下程序如下%ex7_3.mA=2.25-5-1.25-0.5;2.25-4.25-1.25-0.25;0.25-0.5-1.25-1;1.25-1.75-0.25-0.75;P=poly(A);r=roots(P);ii=find(real(r)0);n=length(ii);if(n0)disp(SystemisUnstable);elsedisp(SystemisStable);end运行结果显示:System is Stable93.利用李雅普诺夫第二法来判断系统的稳定性利用李雅普诺夫第二法来判断系统的稳定性 线性定常连续系统 在平衡状态xe=0处渐近稳定的充要条件是:对任给的一个正定对称矩阵Q,存在一个正定的对称矩阵P,且满足李雅普诺夫方程ATP+PA-Q 而标量函数V(x)=xTPx是这个系统的一个二次型李雅普诺夫函数。MATLAB提供了李雅普诺夫方程的求解函数lyap(),其调用格式为 P=lyap(A,Q)10例例7-4设系统的状态方程为:设系统的状态方程为:其平衡状态在坐标原点处,试判断该系统的稳定性。其平衡状态在坐标原点处,试判断该系统的稳定性。解:解:MATLAB程序如下程序如下%ex7_4.mA=01;-1-1;Q=eye(size(A);P=lyap(A,Q);if(P(1,1)0&det(P)0)disp(P0,正定正定,系统在原点处的平衡状态是渐近稳定的系统在原点处的平衡状态是渐近稳定的);elsedisp(系统不稳定系统不稳定);end运行结果显示:运行结果显示:P0,正定正定,系统在原点处的平衡状态是渐近稳定的系统在原点处的平衡状态是渐近稳定的11用于系统稳定性分析的几个函数用于系统稳定性分析的几个函数1、roots(den)求极点2、eig(A)求特征值3、z,p=tf2zp(num,den)模型转换(求极点)4、pole(sys)求系统传递函数的极点5、pzmap(sys)绘制线性系统sys的零极点图 p,z=pzmap(sys)6、P=lyap(A,Q)求解李雅普诺夫方程的函数12 系统的时域分析是指输入信号采用单位系统的时域分析是指输入信号采用单位阶跃或单位脉冲函数,求出系统的输出响应。阶跃或单位脉冲函数,求出系统的输出响应。其响应是时间其响应是时间t t的函数,称为时域响应。从时的函数,称为时域响应。从时域响应可以获得控制系统各个方面的性能:域响应可以获得控制系统各个方面的性能:上升时间、调节时间、超调量、稳态误差等上升时间、调节时间、超调量、稳态误差等等等。7.2控制系统的时域分析控制系统的时域分析131.任意信号函数任意信号函数 生成任意信号函数gensig()的调用格式为u,t=gensig(type,Ta)u,t=gensig(type,Ta,Tf,T)其中:产生一个类型为type的信号序列u(t),type为以 下 标 识 字 符 串 之 一:sin正 弦 波;square方波;pulse脉冲序列,Ta为周期,Tf为持续时间,T为采样时间。14例例7-5生成一个周期为5秒,持续时间为30秒,采样时间为0.1秒的方波。解:解:MATLAB命令如下u,t=gensig(square,5,30,0.1);plot(t,u),axis(0,30,-0.5,1.5)152.连续系统的单位阶跃响应连续系统的单位阶跃响应 单位阶跃响应函数step()的调用格式为y,x,t=step(num,den,t)y,x,t=step(A,B,C,D,iu,t)如果只想绘制出系统的阶跃响应曲线,则可以由如下的格式调用此函数step(num,den,t)step(A,B,C,D,iu,t)16%ex_step1.ma=-21,19,-20;19-21 20;40-40-40;b=0;1;2;c=1 0 2;d=0;y,x,t=step(a,b,c,d);figure(1)plot(t,y)title(the step responce)xlabel(time-sec)figure(2)%绘制状态变量的轨迹绘制状态变量的轨迹plot(t,x)17%ex_step2.m%系统传递函数系统传递函数G(s)=1/(s2+0.1s+5)(s3+2s2+3s+4)num=1;den=conv(1 0.1 5,1 2 3 4);%绘制系统的阶跃响应曲线绘制系统的阶跃响应曲线t=0:0.1:40;y=step(num,den,t);t1=0:1:40;y1=step(num,den,t1);plot(t,y,r,t1,y1)18例例7-6设系统的开环传递函数为设系统的开环传递函数为试求该系统在单位负反馈下的阶跃响应曲线和最大超调量。试求该系统在单位负反馈下的阶跃响应曲线和最大超调量。解:解:MATLAB程序如下程序如下num0=20;den0=1836400;numc,denc=cloop(num0,den0);t=0:0.1:10;y,x,t=step(numc,denc,t);plot(t,y)M=(max(y)-1)/1)*100;disp(最大超调量最大超调量M=num2str(M)%)运行结果显示:运行结果显示:最大超调量最大超调量M=2.5546%19例例7-7 对于典型二阶系统 试绘制出无阻尼自然振荡频率n=6,阻尼比分别为0.2,0.4,1.0,2.0时系统的单位阶跃响应曲线。20解解:MATLAB程序如下程序如下%ex7_7.mwn=6;zeta=0.2:0.2:1.0,2.0;hold onfor I=zetanum=wn.2;den=1,2*I*wn,wn.2;step(num,den);endtitle(Step Response);hold off结结论论:阻阻尼尼系系数数越越小小,超超调调量量越越大大,上上升升时时间间越越短短,通通常常取取0.40.8为为宜宜,超超调调量量适适度,调节时间较短。度,调节时间较短。21例例7-8对例对例7-7中的典型二阶系统,绘制出中的典型二阶系统,绘制出=0.7,n取取2,4,6,8,10,12时的单位阶跃响应。时的单位阶跃响应。解:解:MATLAB程序如下程序如下%ex7_8.mw=2:2:12;zeta=0.7;figure(1);holdonforwn=wnum=wn.2den=1,2*zeta*wn,wn.2;step(num,den)endtitle(StepRespone);holdoff结论:结论:n越大,响应速度越快。越大,响应速度越快。223.离散系统的单位阶跃响应离散系统的单位阶跃响应 离散系统的单位阶跃响应函数dstep()的调用格式为y,x=dstep(num,den,n)y,x=dstep(G,H,C,D,iu,n)23例例7-9 已知二阶离散系统已知二阶离散系统试求其单位阶跃响应。试求其单位阶跃响应。解:解:MATLAB程序如下程序如下%ex7_9.mnum=2-3.4 1.5;den=1-1.6 0.8;dstep(num,den);title(Discrete Step Response)24例例7-10对于多输入多输出系统求单位阶跃响应曲线。对于多输入多输出系统求单位阶跃响应曲线。解:解:MATLAB程序如下程序如下%ex7_10.mA=2.25-5-1.25-0.5;2.25-4.25-1.25-0.25;0.25-0.5-1.25-1;1.25-1.75-0.25-0.75;B=46;24;22;02;C=0001;0202;D=zeros(2,2);step(A,B,C,D)25264.单位脉冲响应单位脉冲响应 单单位位脉脉冲冲响响应应函函数数impulse()和和dimpulse()与与单单位位阶阶跃跃函函数数step()和和dstep()的的调调用用格格式完全一致。式完全一致。27%ex_impulse.m%开环传递函数开环传递函数numo=20;deno=1 8 36 40 0;%闭环传递函数闭环传递函数numc,denc=cloop(numo,deno);%绘制闭环系统的脉冲激励响应曲线绘制闭环系统的脉冲激励响应曲线t=0:0.1:20;impulse(numc,denc,t);2829%系统状态空间描述系统状态空间描述a=-2.5-1.22 0 0;1.22 0 0 0;1-1.14-3.2-2.56;0 0 2.56 0;b=4 1;2 0;2 0;0 0;c=0 1 0 3;0 0 0 1;d=0-2;-2 0;%绘制闭环系统的阶跃响应曲绘制闭环系统的阶跃响应曲线和脉冲响应曲线线和脉冲响应曲线figure(1)step(a,b,c,d)figure(2)impulse(a,b,c,d)305.系统的零输入响应系统的零输入响应 对于连续系统由初始状态所引引起的响应,对于连续系统由初始状态所引引起的响应,即零输入响应,可由函数即零输入响应,可由函数initial()来求得,其调来求得,其调用格式为用格式为y,x,t=initial(A,B,C,D,x0)y,x,t=initial(A,B,C,D,x0,t)离散系统零输入响应函数调用格式为:离散系统零输入响应函数调用格式为:y,x=dinitial(G,H,C,D,x0)y,x=dinitial(G,H,C,D,x0,n)31例例7-11已知系统的状态空间表达式,以已知系统的状态空间表达式,以T=0.5为采样为采样周期,采用双线性变换算法转换成离散系统,并求出周期,采用双线性变换算法转换成离散系统,并求出离散系统的单位阶跃响应、单位脉冲响应及零输入响离散系统的单位阶跃响应、单位脉冲响应及零输入响应(设初始状态应(设初始状态x0=111-1T)。)。解:解:MATLAB程序如下程序如下%ex7_11.mA1=-1.6-0.900;0.9000;0.40.5-5-2.45;002.450;B1=1;0;1;0;C1=1111;D1=0;T=0.5;A,B,C,D=c2dm(A1,B1,C1,D1,T,tustin);32figure(1)subplot(2,2,1)dstep(A,B,C,D)title(DiscreteStepResponse)subplot(2,2,2)dimpulse(A,B,C,D)title(DiscreteImpulseResponse)subplot(2,2,3)x0=1;1;1;-1;dinitial(A,B,C,D,x0)axis(06-0.52.5);title(DiscreteInitialResponse)subplot(2,2,4);z,p,k=ss2zp(A,B,C,D);pzmap(z,p);title(DiscretePole-ZeroMap)33346.任意输入函数的响应任意输入函数的响应连连续续系系统统对对任任意意输输入入函函数数的的响响应应可可利利用用MATLAB的函数的函数lsim()求取,其调用格式为求取,其调用格式为y,x=lsim(num,den,u,t)y,x=lsim(A,B,C,D,iu,u,t)其其中中:u为为给给定定输输入入序序列列构构成成的的矩矩阵阵,它它的的每每列列对对应应一一个个输输入入,每每行行对对应应一一个个新新的的时时间间点点,其行数与时间其行数与时间t的长度相等。的长度相等。35例例3:已知线性定常连续系统的传递函数为已知线性定常连续系统的传递函数为G1和和G2,求系统在指定方波信号作用下的响应。,求系统在指定方波信号作用下的响应。解:解:MATLAB程序如下程序如下u,t=gensig(square,4,10,0.1);G1=tf(2 5 1,1 2 3);G2=tf(1-1,1 1 5);lsim(G1,G2,u,t)legend(G1,G2)3637同同样样,离离散散系系统统对对任任意意输输入入函函数数的的响响应应,可可利利用用函数函数dlsim()求得,其调用格式为求得,其调用格式为y,x=dlsim(num,den,u,n)y,x=dlsim(A,B,C,D,iu,u,n)其中:其中:n为取样点数。为取样点数。38