线性系统理论基础实验四

  • 格式:doc
  • 大小:75.31 KB
  • 文档页数:6

实 验 报 告
课程 线性系统理论基础 实验日期 2016 年 5 月 30 日
专业班级 姓名 学号 同组人 实验名称 全维状态观测器的设计 评分
批阅教师签字
一、实验目的
实验目的
1. 学习用状态观测器获取系统状态估计值的方法;
2. 了解全维状态观测器的实现;
3. 了解全维状态观测器的极点对状态的估计误差的影响,促进状态观测器理论的学习。

二、实验环境
MATLAB6.5
三、实验内容、源程序代码、实验数据及结果分析
开环系统⎩⎨⎧=+=cx
y bu Ax x ,其中
[]0100001,0,10061161A b c ⎡⎤⎡⎤⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦ a) 用状态反馈配置系统的闭环极点:5,322-±-j ;
b) 设计全维状态观测器,观测器的极点为:
±
-j;5-
2
,3
10
c)研究观测器极点位置对估计状态逼近被估计值的影
响;
d)求系统的传递函数(带观测器及不带观测器时);
e)绘制系统的输出阶跃响应曲线。

a=[0 1 0;0 0 1;-6 -11 -6];
b=[0;0;1];
c=[1 0 0];
d=0;
disp('原系统的传递函数为:')
[num1,den1]=ss2tf(a,b,c,d,1)
sys1=tf(num1,den1);
figure(1)
step(sys1)
disp('原系统的极点为:')
p=eig(a)'
P=[-2-sqrt(-12);-2+sqrt(-12);-5];
K=place(a,b,P)
disp('配置后的系统的极点为:')
p=eig(a-b*K)'
disp('用状态反馈配置系统闭环传递函数为;')
[num2,den2]=ss2tf(a-b*K,b,c,d)
a=[0 1 0;0 0 1;-6 -11 -6]';
b=[1 0 0]';
c=[0;0;1]';
d=0;
[num,den]=ss2tf(a,b,c,d,1);
denf=[1 20 137 370];
k1=den(:,4)-denf(:,4);
k2=den(:,3)-denf(:,3);
k3=den(:,2)-denf(:,2);
Ky=[k1 k2 k3]
Qc=[b a*b a*a*b];
p1=[0 0 1]*inv(Qc);
Tc=[p1;p1*a;p1*(a*a)];
k=Ky*Tc
Kz=-k'
a=[0 1 0;0 0 1;-6 -11 -6];
b=[0;0;1];
c=[1 0 0];
d=0;
d1=[0 0 0];
Az=a-Kz*c
a2=[a b*k;Kz*c a-Kz*c+b*k];
b2=[b;b];
c2=[c d1];
d2=0;
disp('带观测器时系统的传递函数为:') [num2,den2]=ss2tf(a2,b2,c2,d2,1)
sys2=tf(num2,den2);
figure(2)
step(sys2)
运行结果:
原系统的传递函数为:
num1 =
0 -0.0000 -0.0000 1.0000 den1 =
1.0000 6.0000 11.0000 6.0000
原系统的极点为:
p =
-1.0000 -2.0000 -3.0000
K =
74.0000 25.0000 3.0000
配置后的系统的极点为:
p =
-2.0000 - 3.4641i -2.0000 + 3.4641i -5.0000 用状态反馈配置系统闭环传递函数为;
num2 =
0 0 0.0000 1.0000 den2 =
1.0000 9.0000 36.0000 80.0000
Ky =
-364.0000 -126.0000 -14.0000
k =
-14.0000 -42.0000 42.0000
Kz =
14.0000
42.0000
-42.0000
Az =
-14.0000 1.0000 0
-42.0000 0 1.0000
36.0000 -11.0000 -6.0000
带观测器时系统的传递函数为:
num2 =
0 0.0000 0.0000 1.0000 20.0000 137.0000 370.0000
den2 =
1.0e+004 *
0.0001 -0.0016 -0.0530 -0.3482 -0.5659 2.2350 0.7400。