MATLAB基础与应用-仿真软件-线性系统分析设计.ppt
第6章 仿真软件 MATLAB基础与应用,6.4 线性系统分析与设计,MATLAB的控制工具箱是MATLAB最早的工具箱之一,也是控制系统的计算机辅助设计中最为流行的设计工具。控制工具箱适用于线性时不变系统(LTI),可实现线性系统时域或频域的分析、设计和建模。可处理连续系统,也可处理离散系统;可使用经典或现代的技术。线性系统的描述MATLAB只处理矩阵这一种数学形式,各种控制系统的描述必须使用矩阵来表达。,一、连续系统的数学描述,1、状态空间描述法在MATLAB中,这个系统写为A、B、C、D四个矩阵的形式即可,当然矩阵维数要匹配。也可用SYS=SS(A,B,C,D)建立ss模型,SYS=SS(A,B,C,D,Ts)建立离散ss模型。,%控制系统模型的描述方式a=1 2;3 4;b=0;1;c=1 1;d=1;f=ss(a,b,c,d),a=x1 x2 x1 1 2 x2 3 4c=x1 x2 y1 1 1Continuous-time model.,b=u1 x1 0 x2 1d=u1 y1 1,f1=ss(a,b,c,d,0.1),a=x1 x2 x1 1 2 x2 3 4c=x1 x2 y1 1 1Sampling time:0.1Discrete-time model.,b=u1 x1 0 x2 1d=u1 y1 1,2、传递函数描述法,传递函数使用分子、分母的多项式表示,即num和den两个向量。同样可用SYS=TF(NUM,DEN)建立tf模型。,num=1 2 3;den=2 2 3 4;yy=tf(num,den),Transfer function:s2+2 s+3-2 s3+2 s2+3 s+4,3、零极点描述法,在MATLAB中,这种形式使用增益k、分子零点向量z、分母极点向量p表示。注意:根据MATLAB的约定,多项式的根(零极点)存在列向量中,行向量中存多项式的系数。这里,除了系数k使用行向量外,z和p使用列向量。同样可用 SYS=ZPK(Z,P,K)建立zpk模型。,Zero/pole/gain:2(s-1)(s-2)-(s-3)(s-5)(s-7),z=1;2;p=3;5;7;k=2;sys=zpk(z,p,k),4、部分分式描述法,在传递函数没有相同极点时与部分分式相互转换:r,p,k=residue(num,den)num,den=residue(r,p,k)二、离散系统的描述在MATLAB中,离散系统表达方式与连续系统相同,也可以为状态空间、多项式传递函数、零极点增益以及部分分式形式。,三、闭环系统的表达,以上已经给出开环系统的模型表达。有时需要系统的闭环模型,MATLAB提供了一组这样的函数:feedback 反馈连接 SYS=feedback(SYS1,SYS2,sign)A,B,C,D=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign)num,den=feedback(num1,den1,num2,den2,sign)sign=+(-)1反馈极性,缺省-1为负反馈parallel系统并联series系统串联,FEEDBACK Feedback connection of two LTI models.SYS=FEEDBACK(SYS1,SYS2)computes an LTI model SYS for the closed-loop feedback system u-O-SYS1-+-y|y=SYS*u+-SYS2-+Negative feedback is assumed and the resulting system SYS maps u to y.To apply positive feedback,use the syntax SYS=FEEDBACK(SYS1,SYS2,+1).,num1=1 1;den1=1 5 6;sys1=tf(num1,den1);sys2=tf(1,1);sysb=feedback(sys1,sys2)numb,denb=feedback(num1,den1,1,1),Transfer function:s+1-s2+6 s+7 numb=0 1 1 denb=1 6 7,6.4.2 模型之间的转换,一、线性系统模型之间的转换ss状态空间、tf传递函数、zp零极点:num,den=ss2tf(a,b,c,d,iu)状态空间到传函 z,p,k=ss2zp(a,b,c,d,iu)状态空间到零极 a,b,c,d=tf2ss(num,den)传函到状态空间 z,p,k=tf2zp(num,den)传函到零极 a,b,c,d=zp2ss(z,p,k)零极到状态空间 num,den=zp2tf(z,p,k)零极到传函 r,p,k=residue(num,den)传函到部分分式 num,den=residue(r,p,k)部分分式到传函,用法举例:已知系统状态空间模型为:%转换为传递函数模型:A=0 1;-1-2;B=0;1;C=1,3;D=1;num,den=ss2tf(A,B,C,D,1)%iu用来指定第n个输入,当只有一个输入时可忽略。num=1 5 2;den=1 2 1;%转换为零极点增益模型:z,p,k=ss2zp(A,B,C,D)z=-4.5616 p=-1 k=1-0.4384-1,tf(num,den),s2+5 s+2-s2+2 s+1,zpk(z,p,k),(s+0.4384)(s+4.562)-(s+1)2,已知一个单输入三输出系统的传递函数模型为:%转换为状态空间模型num=0 0-2;0-1-5;1 2 0;den=1 6 11 6;A,B,C,D=tf2ss(num,den)A=-6-11-6 B=1 C=0 0-2 D=0 1 0 0 0 0-1-5 0 0 1 0 0 1 2 0 0,1、连续系统的离散化格式:Ad,Bd=c2d(A,B,ts)Ad,Bd,Cd,Dd=c2dm(A,B,C,D,ts,method),numz,denz=c2dm(num,den,ts,method),1)c2d使用零阶保持器离散化,只有状态空间形式 2)c2dm既有状态空间形式,又有传递函数形式;3)参数ts是采样周期T;4)method指定转换方式,其中“zoh”表示采用零阶保持器;“foh”表示采用三角形近似;“tustin”表示采用双线性变换;“prewarp”表示采用指定转折频率的双线性变换;系统默认为零阶保持器法。,二、连续系统与离散系统之间的转换,Ad,Bd=c2d(A,B,0.1)Ad1,Bd1,Cd1,Dd1=c2dm(A,B,C,D,0.1,tustin)numd,dend=c2dm(num,den,0.1,tustin),A=0 1;-1-2;B=0;1;C=1,3;D=1;num,den=ss2tf(A,B,C,D),s2+5 s+2-s2+2 s+1,Ad=0.9953 0.0905-0.0905 0.8144Bd=0.0047 0.0905,A=0 1 B=0-1-2 1,C=1 3 D=1,Ad1=0.9955 0.0907-0.0907 0.8141Bd1=0.0454 0.9070Cd1=0.0862 0.2766Dd1=1.1383,1.138 z2-1.805 z+0.6848-z2-1.81z+0.8186,c2d 连续ss到离散ss d2c 离散ss到连续ss c2dm 连续到离散(可用不同方法)d2cm离散到连续(可用不同方法),6.4.3 时间响应分析,一、单位阶跃响应1.对状态空间描述的系统y=step(A,B,C,D,iu,T)求ss系统对iu个输入的在T时间向量下的单位阶跃响应,y是列向量。y,x=step(A,B,C,D,iu,T)同上,并返回状态x的变化step(A,B,C,D,iu,T)直接画出单位阶跃响应曲线,2.对传递函数描述的系统,y=step(num,den,T)求tf系统在T时间向量下的单位阶跃响应,y是列向量。step(num,den,T)直接画出单位阶跃响应曲线3.对各种形式描述的系统step(sys1,s1,sys2,s2,)sys(i)可是各种形式描述的LTI系统,时间是自动给出的,也可用时间向量和给出最终时间两种方法确定,同样可直接画出响应曲线。,%单位阶跃响应t=0:0.1:100;num1=0 2;den1=10 1;wn=1.5;z=0.2;A=0 1;-wn2-2*z*wn;B=0;wn2;C=1 0;D=0;z=-1-2;p=-3;-4;-5;k=10;%z,p is column vectorsys1=tf(num1,den1)sys2=ss(A,B,C,D)sys3=zpk(z,p,k)subplot(3,1,1)step(sys1,r,sys2,b,sys3,c)%time range and number of points are chosen automatically.subplot(3,1,2)step(sys1,t,b)%uses the user-supplied time vector T subplot(3,1,3)step(sys2,40,b)%the step response from t=0 to the final time,Transfer function:2-10 s+1,Zero/pole/gain:10(s+1)(s+2)-(s+3)(s+4)(s+5),a=x1 x2 x1 0 1 x2-2.25-0.6b=u1 x1 0 x2 2.25c=x1 x2 y1 1 0d=u1 y1 0 Continuous-time model.,%阻尼系数对典型二阶系统的阶跃响应的影响a=0 0.3 0.7 1 3;b=0.2*ones(1,5);for i=1:5 num=b(i)2;den=1 2*a(i)*b(i)b(i).2;y(:,i)=step(num,den,t);Endplot(t,y(:,1),r,t,y(:,2),b,t,y(:,3),m,t,y(:,4),g,t,y(:,5),k)legend(a=0,a=0.3,a=0.7,a=1,a=3),t=0:0.1:40;sys1=zpk(-1-0.5,-0.1-1.5-2,2);%0型系统开环传函sys2=zpk(-1-0.5,0-0.1-3-4,2);%1型系统开环传函sysf=tf(1,1);%反馈环节sys11=feedback(sys1,sysf);%0型系统闭环环传函sys22=feedback(sys2,sysf);%1型系统闭环环传函subplot(2,1,1)step(sys11,r,sys22,b)%对单位阶跃,0型有误差,1型无误差subplot(2,1,2)syss=tf(1,1 0);%1/ssys111=series(sys11,syss);%没有直接的斜坡响应函数,%y=G/s2=1/s*(G/s)=step(G/s)sys222=series(sys22,syss);y1=step(sys111,t);y2=step(sys222,t);h=plot(t,y1,r,t,y2,g,t,t,k);%对单位斜坡,0型误差无穷,1型有误差,sys1 2(s+1)(s+0.5)-(s+0.1)(s+1.5)(s+2),sys2 2(s+1)(s+0.5)-s(s+0.1)(s+1.5)(s+2),二、脉冲响应,1.对状态空间描述的系统y=impulse(A,B,C,D,iu,T)求ss系统对iu个输入的在T时间向量下的单位阶跃响应,y是列向量。y,x=impulse(A,B,C,D,iu,T)同上,并返回状态x的变化2.对传递函数描述的系统y=impulse(num,den,T)求tf系统在T时间向量下的单位阶跃响应,y是列向量。,3.对各种形式描述的系统,直接画出响应曲线impulse(sys1,s1,sys2,s2,)sys(i)可以是各种形式描述的LTI系统,时间是自动给出的,也可以用时间向量和给出最终时间两种方法确定。4.对离散系统 dimpulse,1.138 z2-1.805 z+0.6848-z2-1.81z+0.8186,t=0:0.1:5;dimpulse(numd,dend,t);,t=0:0.1:10;wn=1.5;z=0.2;num1=0 2;den1=10 1;A=0 1;-wn2-2*z*wn;B=0;wn2;C=1 0;D=0;z=-1-2;p=-3;-4;-5;k=10;sys1=tf(num1,den1)sys2=ss(A,B,C,D)sys3=zpk(z,p,k)subplot(2,1,1)y1=impulse(num1,den1,t);y2=impulse(A,B,C,D,1,t);y3=impulse(sys3,t);plot(t,y1,r,t,y2,b,t,y3,k)subplot(2,1,2)impulse(sys1,r,sys2,b,sys3,m,5),Transfer function:2-10 s+1,a=x1 x2 x1 0 1 x2-2.25-0.6 b=u1 x1 0 x2 2.25 c=x1 x2 y1 1 0 d=u1 y1 0,Zero/pole/gain:10(s+1)(s+2)-(s+3)(s+4)(s+5),三、对任意输入的响应,1.对状态空间描述的系统y=lsim(A,B,C,D,U,T)求ss系统对输入序列U在T时间向量下的响应。y,x=lsim(A,B,C,D,U,T)同上,并返回状态x的变化2.对传递函数描述的系统y=lsim(num,den,U,T)求tf系统对任意输入U的响应,3.对各种形式描述的系统,还可直接画出响应曲线lsim(sys1,s1,sys2,s2,U,T)sys(i)可以是各种形式描述的LTI系统,a=0 1 0;0 0 1;0-12-7;b=0 0 1;c=2 3 1;d=0;t=0:0.1:10;u=sin(t);y=lsim(a,b,c,d,u,t);plot(t,y,r,t,u,b-);gtext(-输出y)gtext(-输入u),t=0:0.01:30;sys1=zpk(-1-0.5,-0.1-1.5-2,2);%0型系统开环传函sys2=zpk(-1-0.5,0-0.1-3-4,2);%1型系统开环传函sysf=tf(1,1);%反馈环节sys1b=feedback(sys1,sysf);%0型系统闭环环传函sys2b=feedback(sys2,sysf);%1型系统闭环环传函lsim(sys1b,r,sys2b,b,t,t);,6.4.4 频率响应分析,频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出带宽、增益、转折频率、闭环稳定性等系统特征。频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关系特性。频率特性函数与传递函数有直接的关系,记为:,一、Bode图,bode(num,den,w)直接绘出bode图。包括了对数幅频特性图和对数相频特性图。横坐标为频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示。m,p=bode(num,den,w)求出幅值和相角,可以再用半对数坐标画图subplot(2,1,1),semilogx(w,20*log10(m)subplot(2,1,2),semilogx(w,p),num=1;den=1 1 1;w=logspace(-1,2);figure(1)bode(num,den,w)gridfigure(2)m,p=bode(num,den,w);subplot(2,1,1)semilogx(w,20*log10(m)gridsubplot(2,1,2)semilogx(w,p)grid,二.Nyquist曲线,对于频率特性函数G(jw),给出w从负无穷到正无穷的一系列数值,分别求出Im(G(jw)和Re(G(jw)。以Re(G(jw)为横坐标,Im(G(jw)为纵坐标绘制成为极坐标频率特性图。Nyquist(num,den,wmin,wmax)直接绘出Nyquist曲线,wmin,wmax是频率范围,缺省自动给定w从负无穷到正无穷real,imag=Nyquist(num,den,wmin,wmax)得到实部、虚部,用plot绘制w从零到正无穷变化部分。另外,以上两种可用ss描述(A,B,C,D);或几种方法建立的sys所描述的模型来作图。,%典型环节wmin=0.01;wmax=100;sys1=tf(2,1)%比例环节sys2=tf(2,10 1)%惯性环节sys21=tf(2,-10 1)%不稳定惯性环节sys3=tf(1,1 0)%积分环节sys4=tf(1 0,1)%微分环节wn=0.1;a=0.1 0.3 1;for i=1:3sys5(i)=tf(wn2,1 2*a(i)*wn wn2)%不同阻尼比的二阶振荡环节end,2-10 s+1,2,-2-10 s-1,1-s,s,0.01-s2+0.02 s+0.01,0.01-s2+0.06s+0.01,0.01-s2+0.2 s+0.01,figure(1)%bode图subplot(2,2,1),bode(sys1)subplot(2,2,2),bode(sys2,r,sys21,b)subplot(2,2,3),bode(sys3,r,sys4,b)subplot(2,2,4)bode(sys5(1),r,sys5(2),g,sys5(3),b),figure(2)%Nyquist图subplot(2,2,1)nyquist(sys1,wmin,wmax)subplot(2,2,2)r1,m1,w1=nyquist(2,10 1,wmin,wmax);r2,m2,w2=nyquist(2,-10 1,wmin,wmax);plot(r1,m1,r,r2,m2,b)subplot(2,2,3)r3,m3,w3=nyquist(1,1 0,wmin,wmax);r4,m4,w4=nyquist(1 0,1,wmin,wmax);plot(r3,m3,r,r4,m4,b)axis(-2 2-2 2)subplot(2,2,4)nyquist(sys5(1),r,sys5(2),g,sys5(3),b,wmin,wmax),margin函数求幅值和相位稳定裕度,margin函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率。幅值裕度和相角裕度是针对开环SISO系统而言,它指示出系统闭环时的相对稳定性。margin(num,den)当不带输出变量引用时,margin可在当前图形窗口中绘制出带有裕量及相应频率显示的Bode图,其中幅值裕度以分贝为单位。Gm,Pm,Wcg,Wcp=margin(num,den)计算出系统wcp,Gm幅值裕度,Pm相位裕度,及相应的相角交界频率Wcg、截止频率Wcp而不直接绘出Bode图曲线。,num=1;den=1 1 1;z,p,k=tf2zp(num,den);sys1=zpk(z,p,k)a,b,c,d=tf2ss(num,den);num2=1;den2=1 1 1 0;%带积分环节z2,p2,k2=tf2zp(num2,den2);sys2=zpk(z2,p2,k2)w=0.1:0.1:100;figure(1)subplot(2,2,1)nyquist(num,den)subplot(2,2,2)r,img=nyquist(num,den,w);plot(r,img)g,p,wc,wp=margin(num,den)%幅值和相位的稳定裕度subplot(2,2,3)nyquist(sys1,w);subplot(2,2,4)nyquist(a,b,c,d,1,w);,g=Infp=90wc=Infwp=1.0000,figure(2)subplot(2,1,1)nyquist(sys2,w)subplot(2,1,2)rr,mm,w2=nyquist(num2,den2,w);plot(rr,mm),三、时间延迟系统,带延迟的系统相当于通常的系统后串接一个纯延迟系统:,对纯延迟环节的处理可用有理近似法(相当于幂级数展开方式):num,den=pade(T,n)或 A,B,C,D=pade(T,n)T为延迟时间常数,n为要求拟合的阶数(阶数越高,拟合精度越高),这样相当于用线性模型(传递函数或状态方程形式)来近似代替纯延迟环节。,4阶Transfer function:s4-4 s3+7.2 s2-6.72 s+2.688-s4+4 s3+7.2 s2+6.72 s+2.688,tt=5;nt1,dt1=pade(tt,4);nt2,dt2=pade(tt,20);subplot(2,1,1),step(nt1,dt1,0:0.1:100)subplot(2,1,2),step(nt2,dt2,100),20阶Transfer function:s20-84 s19+3511 s18-9.691e004 s17+1.977e006 s16-3.163e007 s15+4.112e008 s14-4.441e009 s13+4.041e010 s12-3.125e011 s11+2.063e012 s10-1.163e013 s9+5.581e013 s8-2.267e014 s7+7.706e014 s6-2.158e015 s5+4.855e015 s4-8.453e015 s3+1.071e016 s2-8.791e015 s+3.517e015-s20+84 s19+3511 s18+9.691e004 s17+1.977e006 s16+3.163e007 s15+4.112e008 s14+4.441e009 s13+4.041e010 s12+3.125e011 s11+2.063e012 s10+1.163e013 s9+5.581e013 s8+2.267e014 s7+7.706e014 s6+2.158e015 s5+4.855e015 s4+8.453e015 s3+1.071e016 s2+8.791e015 s+3.517e015,20阶传函有理近似,4阶传函有理近似,实际纯滞后 阶跃响应,num=3 2 1;den=1 5 7 2nt2,dt2=pade(tt,20);num1,den1=series(num,den,nt2,dt2)subplot(2,1,1)step(num,den,40)subplot(2,1,2)step(num1,den1,40),6.4.5 根轨迹分析,根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在s平面上的轨迹。一般来说,这一参数选作开环系统的增益K,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便。利用它可以对系统各种性能:稳定性、稳态性能、动态性能进行分析。,一、常规根轨迹,rlocus(num,den)直接绘出根轨迹r,k=rlocus(num,den)返回增益和对应的 复极点r=rlocus(num,den,k)返回给定增益对应的 复极点注意:这里输入的是开环传递函数,得到的是闭环系统极点随增益变化的轨迹。,num=1;den=conv(1 3 0,1 2 2);subplot(2,1,1)rlocus(num,den)subplot(2,1,2)sys1=tf(num,den);rlocus(sys1,r)r,k=rlocus(num,den);rr=rlocus(num,den,100),rr=-3.5492+2.1028i-3.5492-2.1028i 1.0492+2.1852i 1.0492-2.1852i,1、零极点图绘制 exp4_19.m,p,z=pzmap(a,b,c,d)返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。p,z=pzmap(num,den)返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。pzmap(a,b,c,d)或pzmap(num,den)不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用表示,零点用o表示。pzmap(p,z)根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用表示,零点用o表示。,其它命令:,z=1;2;p=3;5;7;k=2;sys=zpk(z,p,k)pp,zz=pzmap(sys)pzmap(sys,r),Zero/pole/gain:2(s-1)(s-2)-(s-3)(s-5)(s-7),pp=3 5 7zz=1 2,、rlocfind()函数,找出给定的一组根(闭环极点)对应的根轨迹增益,k,p=rlocfind(a,b,c,d)或者k,p=rlocfind(num,den)它要求在屏幕上先已经绘制好有关的根轨迹图。然后,此命令将产生一个光标以用来选择希望的闭环极点。命令执行结果:k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。不带输出参数项k,p时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。,二、广义根轨迹 将变化的参数经变形后放到原来增益所处的位置,从而得到等效传函,再画根轨迹。、开环零点变化的根轨迹、开环极点变化的根轨迹、零度根轨迹对非最小相位系统,如含正反馈环节的系统。绘制时,取分子多项式的负值即可。,广义根轨迹举例:求下列系统随开环零点参数Ta变化的根轨迹给定开环传递函数,解:系统闭环传递函数,闭环特征方程,同除以5,同除前3项得等效闭环特征方程,按照 确定开环零极点位置就绘制出随Ta变化的根轨迹,g=sym(5*(1+Ta*s)/(s*(5*s+1);%开环传函g1=symadd(1,g);gg=symdiv(g,g1);%闭环传函ng,dg=numden(gg);dx=solve(dg,Ta);nn,dn=numden(symmul(-1,dx);denn=sym2poly(nn);numn=sym2poly(dn);rlocus(numn,denn),闭环特征方程是,注意分子分母颠倒,广义根轨迹举例:求下列系统随开环极点参数 P1 变化的根轨迹给定开环传递函数,解:系统闭环传递函数,闭环特征方程,等效闭环特征方程,按照 确定开环零极点位置就绘制出随P1变化的根轨迹,求解过程是否和按开环零点变化的广义根轨迹一致,brainstorm,function mn,md=mydxtf(G,X)%g原开环传函,x新变量,均为符号表达式G1=symadd(1,G);GG=simple(symdiv(G,G1);nng,dng=numden(GG);dxg=solve(dng,X);mnn,mdn=numden(symmul(-1,dxg);md=sym2poly(mnn);mn=sym2poly(mdn);,等效传递函数变换的函数,figure(1)%随开环零点ta变化的根轨迹g=sym(5*(1+Ta*s)/(s*(5*s+1);%开环传函 n1,d1=mydxtf(g,Ta);rlocus(n1,d1)figure(2)%随开环极点p1变化的根轨迹gp=sym(1/(s*(s+2)*(s+p1);n2,d2=mydxtf(gp,p1);rlocus(n2,d2),6.4.6现代控制理论分析设计,一、状态反馈设计 线性系统模型为:利用状态反馈U(t)=-KX(t)+r(t)其中K为状态反馈矩阵,r(t)为参考输入,,使得系统闭环方程为:,几个常用命令M=ctrb(A,B)系统的能控矩阵 M=B AB A2B An-1Brank(M)得到矩阵的秩,M的秩为n,则能控N=obsv(A,C)求取系统的能观矩阵N=C CA CA2 CAn-1T,N的秩为n,则能观,a=-1-2 1;1 0 1;-1 0 1;b=1;1;1;c=1 0 1;d=0;m=ctrb(a,b);%能控性矩阵n=rank(m);if n=length(a)disp(The system state can be controlled!)else disp(The system state can not be controlled!)end,m=1-2-2 1 2-2 1 0 2,n=3,The system state can be controlled!,N=obsv(a,c)nn=rank(N)%能观性判断if nn=length(a)disp(The system state can be observed!)else disp(The system state can not be observed!)end,N=1 0 1-2-2 2-2 4-2 nn=3 The system state can be observed!,二、单输入系统的极点配置k=acker(A,B,p)对于期望极点p,求出状态反馈增益阵k,a=0 1 0;0-1 1;0 0-2;b=0;0;1;c=10 0 0;d=0;%系统矩阵pp=-2-1+j-1-j;%期望极点z,p,k=ss2zp(a,b,c,d);g0=zpk(z,p,k)m=ctrb(a,b)n=rank(m)%能控性判断if n=length(a)disp(The system state can be controlled!)k=acker(a,b,pp)else disp(The system state can not be controlled!)end,10-s(s+1)(s+2)m=0 0 1 0 1-3 1-2 4n=3The system state can be controlled!k=4 3 1,%设计后的效果比较z2,p2,k2=ss2zp(a-b*k,b,c-d*k,d);g=zpk(z2,p2,k2)figure(1)subplot(2,1,1)pzmap(g0)subplot(2,1,2)pzmap(g)figure(2)subplot(2,1,1)step(g0,b,10)subplot(2,1,2)step(g,r,10),10-(s+2)(s2+2s+2),三、单输出系统的观测器设计,若下面系统完全可观,则全阶观测器方程为,全阶观测器方程为 适当设计观测器的输出误差反馈阵G,就可改变观测器的极点,达到期望的闭环性能。设计G时采用的MATLAB命令仍是acker,但要注意调用时,系统矩阵要进行转置。G=(acker(A,C,p),a=1 0;0 0;b=1;1;c=2-1;d=0;p=-10-10;N=obsv(a,c);%能观性判断nn=rank(N)if nn=length(a)g=acker(a,c,p)disp(The system state can be observed!)else disp(The system can not be observed!)end,nn=2The system state can be observed!g=60.5000 100.0000,