2.系统能控性与能观性分析
Matlab系统能控性与能观性分析程序代码: m1=800;m2=320;ks=10000;b=30000; kt=10*ks;
a=[0 0 1 0;0 0 0 1;-ks/m1 ks/m1 -b/m1 b/m1; ks/m2 -(ks+kt)/m2 b/m2 -b/m2]; b=[0 0;0 0;1/m1 0;-1/m2 kt/m2]; c=[1 0 0 0]; d=[0 0]; N=size(a); n=N(1)
ud=ctrb(a,b);%能控矩阵% ob=obsv(a,c);%能观矩阵% if rank(ud)==n%判断能控性% disp('系统能控') elseif rank(ud) if rank(ob)==n %判断能观性% disp('系统能观') elseif rank(ob) 5 系统稳定性分析 Matlab系统稳定性分析程序代码: m1=800;m2=320;ks=10000;b=30000; kt=10*ks; a=[0 0 1 0;0 0 0 1;-ks/m1 ks/m1 -b/m1 b/m1; ks/m2 -(ks+kt)/m2 b/m2 -b/m2]; Q=eye(4,4); P=lyap(a,Q);%求解矩阵P flag=0; n=length(a); for i=1:n det(P(1:i,1:i)) if(det(P(1:i,1:i))<=0) flag=1; end end if flag==1 disp('系统不稳定'); else disp('系统稳定'); end 6 3. 运行结果: 4.系统状态反馈控制器设计 若系统期望性能指标为超调量小于5%,峰值时间小于0.5秒,即:??exp????1??2??5%t?p?w?2?0.5 n1?则: ??0.707wn?9 为计算方便取 ??0.707wn?10 则主导极点为: ?21??2???wn?jwn1????7.07?j7.07 7 另两个极点应选择成使其和原点距离远大于主导极点和原点的距离,取: ?3?10?1?4?20? 1则 ?3??100??200 4?则期望特征多项式为: ????????200????100???2?2?w2n??wn?????200????100???2?14.1??100???4?314.1?3?24330?2?312000??2000000Matlab系统状态反馈控制器设计程序代码: m1=800;m2=320;ks=10000;b=30000; kt=10*ks; a=[0 0 1 0;0 0 0 1;-ks/m1 ks/m1 -b/m1 b/m1; ks/m2 -(ks+kt)/m2 b/m2 -b/m2]; b=[0 0;0 0;1/m1 0;-1/m2 kt/m2]; c=[1 0 0 0]; d=[0 0]; OG=ss(a,b,c,d);%原系统状态空间模型 HPole=[-200 -100 -7.07+sqrt(-50) -7.07-sqrt(-50)];%期望极点 K=acker(a,b*[1 0]',HPole) a0=a-b*[1 0]'*K;%极点配置后系统矩阵 eig(a0)%显示极点配置后特征根 NG=ss(a0,b,c,d)%状态反馈控制后系统状态空间模型 figure(1) impulse(NG) hold on impulse(OG) axis([0,10,-4,4]); 8 grid figure(2) step(NG) hold on step(OG) axis([0,10,0,2]); grid 状态反馈控制器增益矩阵: 状态反馈控制后系统矩阵特征值: 状态反馈控制后系统状态空间模型: 系统脉冲响应对比: 9