当前位置:文档之家› 系统稳定性分析 、利用MATLAB 实现极点配置、设计状态观测器

系统稳定性分析 、利用MATLAB 实现极点配置、设计状态观测器

实验报告
实验名称系统稳定性分析、利用MATLAB实现极点配置、设计状态观测器系专业班
姓名学号授课老师
预定时间实验时间实验台号
一、目的要求
掌握系统稳定性的概念。

学会使用MATLAB确定线性定常系统和非线性定常系统的稳定性。

掌握状态反馈和输出反馈的概念及性质。

掌握利用状态反馈进行极点配置的方法。

学会用MATLAB求解状态反馈矩阵。

掌握状态观测器的设计方法。

学会用MATLAB设计状态观测器。

熟悉分离定理,学会设计带有状态观测器的状态反馈系统。

二、原理简述
函数eig()的调用格式为V=eig(A)返回方阵A的特征值。

函数roots()的调用格式为roots(den),其中den为多项式的系数行向量。

计算多项式方程的解。

函数pole()的调用格式为pole(G),其中G为系统的LTI对象。

计算系统传递函数的极点。

函数zpkdata()的调用格式为[z,p,k]=zpkdata(G,’v’),其中G为系统LTI对象。

返回系统的零点、极点和增益。

函数pzmap()的调用格式为pzmap(G),其中G为LTI对象。

绘制系统的零点和极点。

对于线性定常连续系统x Ax,若A是非奇异矩阵,则原点是其唯一的平衡状态。

统在原点处大范围渐近稳定的充分条件是:存在李氏函数v(x)x T px,且v(x)正定,v(x)负定。

如果SISO线性定常系统完全能控,则可通过适当的状态反馈,将闭环系统极点配置到
任意期望的位置。

MATLAB提供的函数acker()是用Ackermann公式求解状态反馈阵K。

MATLAB提供的函数place()也可求出状态反馈阵K。

如果线性定常系统完全能观测,则可构造全维(基本)观测器。

全维(基本)
状态观测器的状态方程为观测器的反馈矩阵L为
其中为系统的能观测矩阵。

其中为期望的状态观测器的极点。

观测器设计是极点配置的对偶问题,故可利用函数acker()和place()进行求解。

PC计算机,MATLAB软件
四、内容步骤
题4.1A=[0,2,-1;5,1,2;-2,0,0];B=[1;0;-1];C=[1,1,0];D=0; flag=0;[z,p,k]=ss2zp(A,B,C,D,1);
disp('系统零点极点增益分别为:');
z,p,k
n=length(A);
for i=1:n
if real(p(i))>0
flag=1;
end
end
if flag==1
disp('系统不稳定');
else
disp('系统稳定');
end
Q=eye(3,3);P=lyap(A,Q);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
if flag==1
disp('系统不稳定');
else
disp('系统稳定');
end
题5.1A=[0,1,0;0,0,1;-4,-3,-2];B=[1;3;-6];C=[1,0,0];D=0;
P=[-1,-2,-3];syms k1k2k3s;K=[k1,k2,k3];
eg=simple(det(s*diag(diag(ones(size(A))))-A+B*K));
f=1;
for i=1:3
f=simple(f*(s-P(i)));
end
f=f-eg;
[k1,k2,k3]=solve(subs(f,'s',0),subs((diff(f,'s')),'s',0),diff(f,'s',2)) A=[0,1,0;0,0,1;-4,-3,-2];B=[1;3;-6];C=[1;0;0];P=[-1,-2,-3];K=acker(A,B,P) A-B*K
A=[0,1,0;0,0,1;-4,-3,-2];B=[1;3;-6];C=[1;0;0];eig(A)'
P=[-1,-2,-3];K=place(A,B,P)
eig(A-B*K)'
题5.2A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];C=[172424];D=0;P=[-30-1.2-2.4+4j-2.4-4j];
eig(A-B*K)
G1=ss(A,B,C,D);G2=ss(A-B*K,B,C,D);subplot(121);step(G1);subplot(122);step(G2);
题5.3A=[0,1,0;0,0,1;-4,-3,-2];B=[1;3;-6];C=[1,0,0];
n=3;ob=obsv(A,C);roam=rank(ob);
if roam==n
disp('系统能观');
elseif roam~=n
disp('系统不能观');
end
P=[-1,-2,-3];A1=A';B1=C';C1=B';K=acker(A1,B1,P);E=(K)'
aEc=A-E*C
题5.4A=[010;001;-12-16-7];B=[0;0;1];C=[660];D=0;
Gss=ss(A,B,C,D);Gzpk=zpk(Gss);[z,p,k]=zpkdata(Gss,'v')
Gtf=tf(Gss)
Uc=[B A*B A*A*B];Uo=[C;C*A;C*A*A];c=rank(Uo),o=rank(Uo)
K1=[030];K2=[132];K3=[031];A1=A-B*K1;A2=A-B*K2;A3=A-B*K3;
G1ss=ss(A1,B,C,D);G2ss=ss(A2,B,C,D);G3ss=ss(A2,B,C,D);
G1tf=tf(G1ss)
[z1,p1]=zpkdata(G1ss,'v')
c1=rank(ctrb(A1,B)),o1=rank(obsv(A1,C))
G2tf=tf(G2ss)
[z2,p2]=zpkdata(G2ss,'v')
G3tf=tf(G3ss)
[z3,p3]=zpkdata(G3ss,'v')
c3=rank(ctrb(A3,B)),o3=rank(obsv(A3,C))
五、数据处理
题4.1(1)系统零点极点增益分别为:
z= 1.0000
-4.0000
p=-3.3978
3.5745
0.8234
k=1系统不稳定
(2)ans=-2.1250
ans=-8.7813
ans= 6.1719系统不稳定
题5.1k1=194/131
k2=98/131
k3=-6/131
K= 1.48090.7481-0.0458
ans=-1.48090.25190.0458
-4.4427-2.2443 1.1374
4.8855 1.4885-2.2748
ans=-1.6506-0.1747-1.5469i-0.1747+ 1.5469i
ans=-3.0000-2.0000-1.0000
题5.2K=26.0000172.5200801.7120759.3600 ans=-30.0000
-2.4000+4.0000i
-2.4000-4.0000i
-1.2000
题5.3系统能观
E=4
-10
aEc=-410
001
6-3-2
-2.0000
-3.0000 k=6
Transfer function:
6s+6
-----------------------
s^3+7s^2+16s+12
c=3o=3 Transfer function:
6s+6
-----------------------
s^3+7s^2+19s+12
z1=-1
p1=-0.8821
-3.0589+2.0606i
-3.0589-2.0606i
c1=3o1=3
Transfer function:
6s+6
-----------------------
s^3+9s^2+19s+13
z2=-1
-1.3407+0.5099i
-1.3407-0.5099i
c2=3o2=3
Transfer function:
6s+6
-----------------------
s^3+9s^2+19s+13
z3=-1
p3=-6.3186
-1.3407+0.5099i
-1.3407-0.5099i
c3=3o3=2
七、分析讨论
通过本次实验,加深了系统稳定性判定的概念,并且对极点配置和状态观测器的设计方法有了更深的理解。

利用MATLAB的函数求取状态观测器和极点配置的相关参数极
大的提高了设计效率。

促进了技术的发展!。

相关主题