利用MATLAB实现极点配置设计状态观测器现代控制.docx
《利用MATLAB实现极点配置设计状态观测器现代控制.docx》由会员分享,可在线阅读,更多相关《利用MATLAB实现极点配置设计状态观测器现代控制.docx(12页珍藏版)》请在冰豆网上搜索。
利用MATLAB实现极点配置设计状态观测器现代控制
实验报告
实验名称利用MATLAB实现极点配置、设计状态观测器
系
专业
自动化
班
学号
授课教师
预定时间
实验时间
实验台号
一、目的要求
1、掌握状态反应和输出反应的概念及性质。
2、掌握利用状态反应进展极点配置的方法。
学会用MATLAB求解状态反应矩阵。
3、掌握状态观测器的设计方法。
学会用MATLAB设计状态观测器。
4、熟悉别离定理,学会设计带有状态观测器的状态反应系统。
二、原理简述
1、状态反应和输出反应
设线性定常系统的状态空间表达式为
如果采用状态反应控制规律u=r-Kx,其中r是参考输入,那么状态反应闭环系统的传递函数为:
2、极点配置
如果SISO线性定常系统完全能控,那么可通过适当的状态反应,将闭环系统极点配置到任意期望的位置。
MATLAB提供的函数acker()是用Ackermann公式求解状态反应阵K。
该函数的调用格
式为
K=acker(A,B,P)
其中A和B分别为系统矩阵和输入矩阵。
P是期望极点构成的向量。
MATLAB提供的函数place()也可求出状态反应阵K。
该函数的调用格式为
K=place(A,B,P)
函数place()还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。
函数acker()不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。
三、仪器设备
PC计算机,MATLAB软件
四、容步骤、数据处理
题5-1 某系统状态方程如下
理想闭环系统的极点为
,试
〔1〕采用直接计算法进展闭环系统极点配置;
〔2〕采用Ackermann公式计算法进展闭环系统极点配置;
〔3〕采用调用place函数法进展闭环系统极点配置。
>>A=[010;001;-4-3-2];
B=[1;3;6];
C=[100];
D=0;
G=ss(A,B,C,D);
[Q,D]=eig(A)
结果:
Q=
0.29950.3197-0.0731i0.3197+0.0731i
-0.49440.0573+0.5074i0.0573-0.5074i
0.8160-0.7948-0.7948
D=
-1.650600
0-0.1747+1.5469i0
00-0.1747-1.5469i
那么矩阵A的特征根为:
-1.6506,-0.1747+1.5469i,-0.1747-1.5469i
程序:
>>A=[010;001;-4-3-2];
B=[1;3;-6];
C=[100];
D=0;
p=[-1-2-3];
k=acker(A,B,p)
结果:
k=1.48090.7481-0.0458
验证:
>>A=[010;001;-4-3-2];
B=[1;3;6];
C=[100];
D=0;
k=[0.50530.70520.2299];
A1=A-B*k;
sys=ss(A1,B,C,D);
G1=zpk(sys)
结果:
Zero/pole/gain:
(s^2+5s+15)
-------------------------
(s+1)(s+1.999)(s+3.001)
那么其极点为-1,-2,-3
(2)
程序:
>>A=[010;001;-4-3-2];
B=[1;3;-6];
C=[100];
D=0;
p=[-1-2-3];
k=place(A,B,p)
结果:
k=1.48090.7481-0.0458
验证:
程序:
>>A=[010;001;-4-3-2];
B=[1;3;-6];
C=[100];
D=0;
p=[-1-2-3];
k=place(A,B,p);
A1=A-B*k;
sys=ss(A1,B,C,D);
G1=zpk(sys)
结果:
Zero/pole/gain:
(s+4.303)(s+0.6972)
--------------------
(s+3)(s+2)(s+1)
那么其极点为-1,-2,-3
题5-2某控制系统的状态方程描述如下:
y=[172424]x
通过状态反应使系统的闭环极点配置在[-30-1.2
]位置上,求出状态反应矩阵K,验证闭环极点,并绘制闭环系统的阶跃响应曲线进展比照。
程序>>A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];
C=[172424];
D=0;
p=[-30-1.2-2.4+4i-2.4-4i];
k=place(A,B,p)
结果:
k=26.0000172.5200801.7120759.3600
验证:
程序:
>>A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];
C=[172424];
D=0;
p=[-30-1.2-2.4+4i-2.4-4i];
k=place(A,B,p);
A1=A-B*k;
sys=ss(A1,B,C,D);
G1=zpk(sys)
结果:
Zero/pole/gain:
(s+1.539)(s^2+5.461s+15.6)
------------------------------------
(s+30)(s+1.2)(s^2+4.8s+21.76)
>>A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];
C=[172424];
D=0;
G=ss(A,B,C,D);
p=[-30-1.2-2.4+4i-2.4-4i];
k=place(A,B,p);
A1=A-B*k;
G1=ss(A1,B,C,D);
t=0:
0.5:
20;
u=ones(size(t));
y2=lsim(G1,u,t);
y1=lsim(G,u,t);
plot(t,y1,':
',t,y2,'-')
蓝色为配置前,绿色为配置后
题5-3 某系统状态空间描述如下
设计全维状态观测器,要求状态观测器的极点为
。
程序>>A=[010;001;-4-3-2];
B=[1;3;-6]';
C=[100];
D=0;
p=[-1-2-3];
L=(acker(A',C',p))'
结果:
L=4
0
-10
题5-4系统
y=[660]x
(1)求系统的零点,极点和传递函数,并判断系统的能控性和能观测性。
(2)分别选取K=[030].K=[132],K=[031]为状态反应矩阵,求解闭环系统的零点,极点和传递函数,并判断系统的能控性和能观测性。
它们是否发生改变?
为什么?
〔1〕
程序
>>A=[010;001;-12-16-7];
B=[0;0;1];
C=[660];
D=0;
sys=ss(A,B,C,D);
G=zpk(sys)
结果:
Zero/pole/gain:
6(s+1)
-------------
(s+2)^2(s+3)
那么系统的零点为:
-1
那么系统的极点为:
-2,-2,-3
程序
>>A=[010;001;-12-16-7];
B=[0;0;1];
C=[660];
D=0;
Uc=ctrb(A,B);rank(Uc)
结果:
ans=3
那么系统能控
程序:
>>A=[010;001;-12-16-7];
B=[0;0;1];
C=[660];
D=0;
Vo=obsv(A,C);
rank(Vo)
结果:
ans=3
那么系统能观
〔2〕
当k=[030]时:
程序>>A=[010;001;-12-16-7];
B=[0;0;1];
C=[660];
D=0;
k=[030];
A1=A-B*k;
sys=ss(A1,B,C,D);
G=zpk(sys)
结果:
Zero/pole/gain:
6(s+1)
---------------------------------
(s+0.8821)(s^2+6.118s+13.6)
那么零点为-1
>>pole(G)
ans=
-0.8821
-3.0589+2.0606i
-3.0589-2.0606i
>>Uc=ctrb(A,B);rank(Uc)
ans=
3
>>Vo=obsv(A,C);
rank(Vo)
ans=
3
当k=[132]时:
程序>>A=[010;001;-12-16-7];
B=[0;0;1];
C=[660];
D=0;
k=[132];
A1=A-B*k;
sys=ss(A1,B,C,D);
G=zpk(sys)
结果:
Zero/pole/gain:
6(s+1)
---------------------------------
(s+6.319)(s^2+2.681s+2.057)
那么闭环系统的零点为:
-1
>>pole(G)
ans=
-6.3186
-1.3407+0.5099i
-1.3407-0.5099i
>>Uc=ctrb(A,B);rank(Uc)
ans=
3
那么系统具有能控性
>>Vo=obsv(A,C);
rank(Vo)
ans=
3
那么系统具有能观测性
当k=[013]时:
>>A=[010;001;-12-16-7];
B=[0;0;1];
C=[660];
D=0;
k=[013];
A1=A-B*k;
sys=ss(A1,B,C,D);
G=zpk(sys)
Zero/pole/gain:
6(s+1)
-------------------------------
(s+8.08)(s^2+1.92s+1.485)
>>Uc=ctrb(A,B);rank(Uc)
ans=
3
那么系统具有能控性
>>Vo=obsv(A,C);
rank(Vo)
ans=
3
那么系统具有能观测性
分析:
系统完全能控那么可以任意配置极点,配置极点不改变系统的能控性,但可能改变系统的能观测性。
不存在零极相消的情况下,那么不改变系统的能观测性。
五、分析讨论
通过本次试验,掌握了状态反应和输出反应的概念及性质。
掌握了利用状态反应进展极点配置的方法。
学会了用MATLAB求解状态反应矩阵。
掌握了状态观测器的设计方法。
学会了用MATLAB设计状态观测器。
熟悉了别离定理,学会了设计简单的带有状态观测器的状态反应系统。
原本通过平常的上课,对于一些概念我还是没有完全掌握,比方极点配置,状态反应,输出反应。
通过实验的验证,翻阅书籍,使我对于书本上的概念产生了更深的理解,学会了分析验证书本上的定理而不是盲目学习。