当前位置:文档之家› 全维状态观测器的设计

全维状态观测器的设计

实 验 报 告
课程 线性系统理论基础 实验日期 2016年 6月 6 日 专业班级 姓名 学号 同组人 实













评分
批阅教师签字 一、实验目的
1、 学习用状态观测器获取系统状态估计值的方法,了解全维状态观测器的极点对状态的估计误差的影响;
2、 掌握全维状态观测器的设计方法;
3、 掌握带有状态观测器的状态反馈系统设计方法。

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

三、实验环境 MATLAB6、5
四、实验原理(或程序框图)及步骤
利用状态反馈可以使闭环系统的极点配置在所希望的位置上,其条件就是必须对全部状态变量都能进行测量,但在实际系统中,并不就是所有状态变量都能测量的,这就给状态反馈的实现造成了困难。

因此要设法利用已知的信息(输出量y 与输入量x),通过一个模型重新构造系统状态以对状态变量进行估计。

该模型就称为状态观测器。

若状态观测器的阶次与系统的阶次就是相同的,这样的状态观测器就称为全维状态观测器或全阶观测器。

设系统完全可观,则可构造如图4-1所示的状态观测器
图4-1 全维状态观测器
为求出状态观测器的反馈ke 增益,与极点配置类似,也可有两种方法: 方法一:构造变换矩阵Q,使系统变成标准能观型,然后根据特征方程求出k e ;



:



采用Ackermann 公式
:
[]T
o e Q A k 1000)(1
Λ-Φ=,其中O Q 为可观性矩阵。

利用对偶原理,可使设计问题大为简化。

首先构造对偶系统
⎩⎨⎧=+=ξ
ηξξ
T
T T b v c A & 然后可由变换法或Ackermann 公式求出极点配置的反馈k 增益,这也可
由MATLAB的place与acker函数得到;最后求出状态观测器的反馈增益。

五、程序源代码、实验数据、结果分析
(a)源程序:
A=[0 1 0;0 0 1;-6 -11 6];
B=[0;0;1];
C=[1 0 0];D=0;
P1=[-2+2*sqrt(3)*i;-2-2*sqrt(3)*i;-5];
K1=place(A,B,P1)
sysnew=ss(A-B*K1,B,C,D)
运行结果:
K1 =
74、0000 25、0000 15、0000
a =
x1 x2 x3
x1 0 1 0
x2 0 0 1
x3 -80 -36 -9
b = u1
x1 0
x2 0
x3 1
c = x1 x2 x3
y1 1 0
d = u1
y1 0
(b)源程序:
A=[0 1 0;0 0 1;-6 -11 6];
B=[0;0;1];
C=[1 0 0];D=0;
P2=[-5+2*sqrt(3)*i;-5-2*sqrt(3)*i;-10];
K2=acker(A',C',P2);L=K2'
Anew=A-L*C
运行结果:
L =
26
282
1770
Anew =
-26 1 0
-282 0 1
-1776 -11 6
(c)研究观测器极点位置对估计状态逼近被估计值的影响:
观测器极点距离虚轴越近,估计状态逼近被估计值得速度越快。

(d)不带观测器:
源程序:
A=[0 1 0;0 0 1;-6 -11 6];
B=[0;0;1];
C=[1 0 0];D=0;
P1=[-2+2*sqrt(3)*i;-2-2*sqrt(3)*i;-5];
K1=place(A,B,P1)
sysnew=ss(A-B*K1,B,C,D);
[num,den]=ss2tf(A-B*K1,B,C,D);
Gb=tf(num,den)
step(Gb)
grid on;
title('不带观测器的系统的阶跃响应曲线');
运行结果:
K1 =
74、0000 25、0000 15、0000
Transfer function:
7、105e-015 s^2 + 1、208e-013 s + 1
--------------------------------------------
s^3 + 9 s^2 + 36 s + 80
带观测器:
源程序:
A=[0 1 0;0 0 1;-6 -11 6];
B=[0;0;1];
C=[1 0 0];D=0;
P1=[-2+2*sqrt(3)*i;-2-2*sqrt(3)*i;-5];
K1=place(A,B,P1);
sysnew=ss(A-B*K1,B,C,D);
P2=[-5+2*sqrt(3)*i;-5-2*sqrt(3)*i;-10];
K2=acker(A',C',P2);L=K2';
An=[A -B*K1;L*C A-B*K1-L*C]
Bn=[B;B]
Cn=[C 0 0 0]
Dn=0;
[num,den]=ss2tf(An,Bn,Cn,Dn);
Go=tf(num,den)
step(Go)
grid on;
title('带观测器的系统的阶跃响应曲线');
运行结果:
An =
1、0e+003 *
0 0、0010 0 0 0 0
0 0 0、0010 0 0 0
-0、0060 -0、0110 0、0060 -0、0740 -0、0250 -0、0150
0、0260 0 0 -0、0260 0、0010 0
0、2820 0 0 -0、2820 0 0、0010
1、7700 0 0 -1、8500 -0、0360 -0、0090 Bn =
1
1
Cn =
1 0 0 0 0 0
Transfer function:
-1、137e-013 s^4 + s^3 + 20 s^2 + 137 s + 370
-------------------------------------------------------------------------------
s^6 + 29 s^5 + 353 s^4 + 2403 s^3 + 9862 s^2 + 2、428e004 s + 2、96e004
Time (sec)
A m p l i t u d e
结果分析:
σ%=10、8% tp=1、15s ts=1、63s 原系统方框图
Gain2
10
3
2.5
2
1.5
1
0.5
-0.5
原系统阶跃响应加观测器的方框图:
Scope1:
Scope2:
Scope3:。

相关主题