河南工业大学《现代控制理论》实验报告
专业: 自动化 班级: F1203 姓名: 蔡申申 学号:201223910625完成日期:2015年1月9日 成绩评定:
一、实验题目:
状态反馈控制器设计
二、实验目的
1. 掌握状态反馈和输出反馈的概念及性质。
2. 掌握利用状态反馈进行极点配置的方法。学会用MATLAB求解状态反馈矩阵。
3. 掌握状态观测器的设计方法。学会用MATLAB设计状态观测器。
三、实验过程及结果
1. 已知系统
300 1 x 1 u 020 x 00 1 1 .
x y 0.40.26670.3333
(1)求解系统的零点、极点和传递函数,并判断系统的能控性和能观测性。 A=[-3 0 0;0 2 0;0 0 -1];B=[1;1;1];C=[0.4 0.266 0.3333];
[z p k]=ss2zp(A,B,C,0)
系统的零极点:
z =
1.0017
-1.9997
p =
-3
-1
2
k =
0.9993
[num den]=ss2tf(A,B,C,0)
num =
0 0.9993 0.9973 -2.0018
den =
1 2 -5 -6
系统的传递函数:
G1=tf(num,den)
G1 =
0.9993 s^2 + 0.9973 s - 2.002
-----------------------------
s^3 + 2 s^2 - 5 s - 6
Continuous-time transfer function.
Uc=ctrb(A,B); rank(Uc)
ans =
3
满秩,系统是能控的。
Vo=obsv(A,C); rank(Vo)
ans =
3
满秩,系统是能观的。
(2)分别选取K=[0 3 0],K=[1 3 2],K=[0 16 /3 –1/3](实验中只选取其中一个K为例)为状态反馈矩阵,求解闭环系统的零点、极点和传递函数,判断闭环系统的能控性和能观测性。它们是否发生改变?为什么?
A=[-3 0 0;0 2 0;0 0 -1];B=[1;1;1];C=[0.4 0.266 0.3333];K=[0 3 0];
[z p k]=ss2zp(A-B*K,B,C,0)
z =
1.0017
-1.9997
p =
-3
-1
-1
k =
0.9993
[num den]=ss2tf(A-B*K,B,C,0);G2=tf(num,den)
G2 =
0.9993 s^2 + 0.9973 s - 2.002
-----------------------------
s^3 + 5 s^2 + 7 s + 3
Continuous-time transfer function.
Uc=ctrb(A-B*K,B); rank(Uc)
ans =
3
系统依然是能控的,状态反馈不改变系统的能控性。
Vo=obsv(A-B*K,C); rank(Vo)
ans =
3
系统是能观的,但是状态反馈不保证系统的能观性不变。
(3)任选三个输出反馈矩阵(实验中只选取一个为例),求解闭环系统的零点、极点和传递函数,并判断系统的能控性和能观测性。它们是否发生改变? 为什么? A=[-3 0 0;0 2 0;0 0 -1];B=[1;1;1];C=[0.4 0.266 0.3333];H=[1];
[z p k]=ss2zp(A+B*H*C,B,C,0)
z =
1.0017
-1.9997
p =
-2.6813
2.3226
-0.6420
k =
0.9993
[num den]=ss2tf(A+B*H*C,B,C,0);G1=tf(num,den)
G1 =
0.9993 s^2 + 0.9973 s - 2.002
---------------------------------
s^3 + 1.001 s^2 - 5.997 s - 3.998
Continuous-time transfer function.
Uc=ctrb(A+B*H*C,B); rank(Uc)
ans =
3
满秩,系统是能控的。输出反馈不改变受控系统的能控性。
Vo=obsv(A+B*H*C,C); rank(Vo)
ans =
3
满秩,系统是能观的。输出反馈不改变受控系统的能观性。
2. 已知系统
0 01 0 x 0 u x 001 0 2 3 1 .
y 100 x
(1)求解系统的极点。绘制系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。
A=[0 1 0;0 0 1;0 -2 -3];B=[0;0;1];C=[1 0 0];
[z p k]=ss2zp(A,B,C,0)
p =
-1
-2
[num den]=ss2tf(A,B,C,0);G1=tf(num,den)
G1 =
1
-----------------
s^3 + 3 s^2 + 2 s
Continuous-time transfer function.
step(G1)
图5-1 系统的单位阶跃响应曲线
11 i。求解状态反馈系统22
的传递函数。绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。与原系统比较, 性能是否改善?
A=[0 1 0;0 0 1;0 -2 -3];B=[0;0;1];C=[1 0 0];P=[-3 -1/2+1/2i -1/2-1/2i];K=acker(A,B,P)
K =
1.5000 1.5000 1.0000
[num den]=ss2tf(A-B*K,B,C,0);G2=tf(num,den)
G2 =
1
-------------------------
s^3 + 4 s^2 + 3.5 s + 1.5
Continuous-time transfer function.
step(G2)
2)求解状态反馈矩阵K,使闭环系统的极点为 3和
图5-2 闭环系统的单位阶跃响应曲线
由图5-2 闭环系统的单位阶跃响应曲线可知系统的性能得到很大的改善。
(3)设计一个全维观测器,使观测器的极点为-5,-5,-5。仿真状态观测器观测到的状态。
A=[0 1 0;0 0 1;0 -2 -3];B=[0;0;1];C=[1 0 0];P=[-5 -5 -
5];L=(acker(A',C',P))'
L =
12
37
-10
figure('pos',[50 50 200 150],'color','w');
[xo,x,t]=simobsv(ss(A,B,C,0),L);plot(t,x,'-k',t,xo,':r')
单位阶跃响应曲线:
图5-3 单位阶跃响应曲线
L=[-2;20;0]
L =
-2
20
figure('pos',[50 50 200 150],'color','w');
[xo,x,t]=simobsv(ss(A,B,C,0),L);plot(t,x,'-k',t,xo,':r')
图5-4 反馈矩阵响应曲线
由图可知,此时的估计不如上面的效果好。