资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,系统的稳定性分析; 系统在典型和任意输入信号作用下的时域响应; 绘制系统的根轨迹,并在根轨迹上确定系统稳定的根轨迹增益K值范围; 绘制系统的Bode图、 Nyquist图和Nichols图等,并求取系统的幅值裕量和相位裕量; 分析系统的能控性和能观测性,并对不完全能控或不完全能观测的系统进行结构分解。,第7章 控制系统的计算机辅助分析,2,7.1 控制系统的稳定性分析,1.利用极点判断系统的稳定性判断一个线性系统稳定性的一种最有效的方法是直接求出系统所有的极点,然后根据极点的分布情况来确定系统的稳定性。,3,系统特征方程的一般形式为对于连续时间系统,如果闭环极点全部在S平面左半平面,则系统是稳定的;否则系统是不稳定的。 对于离散时间系统,如果系统全部极点都位于Z平面的单位圆内,则系统是稳定的;否则系统是不稳定的。,系统稳定性分析,4,直接判定方法对于传递函数模型tf(num,den),利用求根函数roots(den)来求极点。对于状态空间模型SS(A,B,C,D)利用求特征值函数eig(A)来求特征值。这样根据极点或特征值即可直接判定系统的稳定性。,5,例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,6,例7-1 已知闭环系统的传递函数为试判断系统的稳定性,并给出不稳定极点。 解:MATLAB程序如下 %ex7_1.m num=3 2 1 4 2;den=3 5 1 2 2 1; z,p=tf2zp(num,den); ii=find(real(p)0);n1=length(ii); if(n10) disp(The Unstable Poles are:); disp(p(ii); else disp(System is stable); end pzmap(num,den); title(Zero-Pole Map),find 功能:查找非零元素的值。 格式:k=find(X),7,运行结果显示: The Unstable Poles are:0.4103 + 0.6801i0.4103 - 0.6801i,8,2. 利用特征值判断系统的稳定性系统的特征方程|sI-A|=sn+a1sn-1+an-1s+an0 的根称为系统的特征值,即系统的闭环极点。当然判断系统的稳定性同样可利用特征值来判断。p=poly(A) %求A的特征多项式。r=roots(p) %求特征多项式的根。r=eig(A) %求A的特征值。,9,例7-3 已知系统的状态方程为:判断系统的稳定性。 解:MATLAB程序如下 %ex7_3.m A=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(System is Unstable); else disp(System is Stable); end,运行结果显示: System is Stable,10,3. 利用李雅普诺夫第二法来判断系统的稳定性线性定常连续系统在平衡状态xe=0处渐近稳定的充要条件是:对任给的一个正定对称矩阵Q,存在一个正定的对称矩阵P,且满足李雅普诺夫方程 ATP+PA-Q 而标量函数V(x)=xTPx是这个系统的一个二次型李雅普诺夫函数。MATLAB提供了李雅普诺夫方程的求解函数lyap( ),其调用格式为P=lyap(A ,Q),11,例7-4 设系统的状态方程为:其平衡状态在坐标原点处,试判断该系统的稳定性。 解:MATLAB程序如下 %ex7_4.m A=0 1;-1 -1;Q=eye(size(A);P=lyap(A,Q); if(P(1,1)0 end 运行结果显示: P0,正定,系统在原点处的平衡状态是渐近稳定的,12,用于系统稳定性分析的几个函数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) 求解李雅普诺夫方程的函数,13,系统的时域分析是指输入信号采用单位阶跃或单位脉冲函数,求出系统的输出响应。其响应是时间t的函数,称为时域响应。从时域响应可以获得控制系统各个方面的性能:上升时间、调节时间、超调量、稳态误差等等。,7.2 控制系统的时域分析,14,1. 任意信号函数生成任意信号函数gensig( )的调用格式为 u,t=gensig(type,Ta) u,t=gensig(type,Ta,Tf,T) 其中:产生一个类型为type的信号序列u(t), type为以下标识字符串之一:sin正弦波;square方波;pulse脉冲序列,Ta为周期,Tf为持续时间,T为采样时间。,15,例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),16,2. 连续系统的单位阶跃响应单位阶跃响应函数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),17,%ex_step1.m a=-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),18,%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),19,例7-6 设系统的开环传递函数为试求该系统在单位负反馈下的阶跃响应曲线和最大超调量。 解:MATLAB程序如下 num0=20; den0=1 8 36 40 0; 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%,20,例7-7 对于典型二阶系统试绘制出无阻尼自然振荡频率n=6,阻尼比分别为0.2,0.4,1.0,2.0时系统的单位阶跃响应曲线。,21,解:MATLAB程序如下 %ex7_7.m wn=6; zeta=0.2:0.2:1.0,2.0; hold on for I=zeta num=wn.2; den=1,2*I*wn,wn.2; step(num,den); end title(Step Response); hold off 结论:阻尼系数越小,超调量越大,上升时间越短,通常取0.40.8为宜,超调量适度,调节时间较短。,22,例7-8 对例7-7中的典型二阶系统,绘制出=0.7,n取2,4,6,8,10,12时的单位阶跃响应。 解:MATLAB程序如下 %ex7_8.m w=2:2:12;zeta=0.7; figure(1);hold on for wn=w num=wn.2 den=1,2*zeta*wn,wn.2; step(num,den) end title(Step Respone); hold off 结论:n越大,响应速度越快。,23,3. 离散系统的单位阶跃响应离散系统的单位阶跃响应函数dstep( )的调用格式为 y,x=dstep(num,den,n) y,x=dstep(G,H,C,D,iu,n),24,例7-9 已知二阶离散系统试求其单位阶跃响应。 解:MATLAB程序如下%ex7_9.m num=2 -3.4 1.5; den=1 -1.6 0.8; dstep(num,den); title(Discrete Step Response),25,例7-10 对于多输入多输出系统求单位阶跃响应曲线。 解:MATLAB程序如下 %ex7_10.m A=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=4 6;2 4;2 2;0 2; C=0 0 0 1;0 2 0 2; D=zeros(2,2); step(A,B,C,D),26,27,4. 单位脉冲响应 单位脉冲响应函数impulse( )和dimpulse( )与单位阶跃函数step( )和dstep( )的调用格式完全一致。,28,%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);,29,30,%系统状态空间描述 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),31,5. 系统的零输入响应 对于连续系统由初始状态所引引起的响应,即零输入响应,可由函数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),32,例7-11 已知系统的状态空间表达式,以T=0.5为采样周期,采用双线性变换算法转换成离散系统,并求出离散系统的单位阶跃响应、单位脉冲响应及零输入响应(设初始状态x0=1 1 1 -1T)。 解:MATLAB程序如下 %ex7_11.m A1=-1.6 -0.9 0 0;0.9 0 0 0; 0.4 0.5 -5 -2.45;0 0 2.45 0; B1=1;0;1;0; C1=1 1 1 1; D1=0; T=0.5; A,B,C,D=c2dm(A1,B1,C1,D1,T,tustin);,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号