利用MATLAB 实现极点配置设计状态观测器现代控制.docx
- 文档编号:25801168
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:12
- 大小:52.72KB
利用MATLAB 实现极点配置设计状态观测器现代控制.docx
《利用MATLAB 实现极点配置设计状态观测器现代控制.docx》由会员分享,可在线阅读,更多相关《利用MATLAB 实现极点配置设计状态观测器现代控制.docx(12页珍藏版)》请在冰豆网上搜索。
利用MATLAB实现极点配置设计状态观测器现代控制
实验报告
实验名称利用MATLAB实现极点配置、设计状态观测器
系
专业
自动化
班
姓名
学号
授课老师
预定时间
实验时间
实验台号
一、目的要求
1、掌握状态反馈与输出反馈的概念及性质。
2、掌握利用状态反馈进行极点配置的方法。
学会用MATLAB求解状态反馈矩阵。
3、掌握状态观测器的设计方法。
学会用MATLAB设计状态观测器。
4、熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
2、原理简述
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软件
4、内容步骤、数据处理
题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设计状态观测器。
熟悉了分离定理,学会了设计简单的带有状态观测器的状态反馈系统。
原本通过平常的上课,对于一些概念我还就是没有完全掌握,比如极点配置,状态反馈,输出反馈。
通过实验的验证,翻阅书籍,使我对于书本上的概念产生了更深的理解,学会了分析验证书本上的定理而不就是盲目学习。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用MATLAB 实现极点配置设计状态观测器现代控制 利用 MATLAB 实现 极点 配置 设计 状态 观测器 现代 控制