全维状态观测器的设计

  • 格式:doc
  • 大小:78.00 KB
  • 文档页数:9

信 控 学 院 上 机 实 验

第 页 共 页 实 验 报 告

课程 线性系统理论基础 实验日期 2016年 6月 6 日

专业班级 姓名 学号 同组人

实验名称全维状态观测器的设计

评分

批阅教师签字

一、实验目的

1. 学习用状态观测器获取系统状态估计值的方法,了解全维状态观测器的极点对状态的估计误差的影响;

2. 掌握全维状态观测器的设计方法;

3. 掌握带有状态观测器的状态反馈系统设计方法。

二、实验内容

开环系统cxybuAxx,其中

0100001,0,10061161Abc

a) 用状态反馈配置系统的闭环极点:5,322j;

b) 设计全维状态观测器,观测器的极点为:10,325j;

c) 研究观测器极点位置对估计状态逼近被估计值的影响;

d) 求系统的传递函数(带观测器及不带观测器时); 信 控 学 院 上 机 实 验

第 页 共 页 绘制系统的输出阶跃响应曲线。

三、实验环境

MATLAB6.5

四、实验原理(或程序框图)及步骤

利用状态反馈可以使闭环系统的极点配置在所希望的位置上,其条件是必须对全部状态变量都能进行测量,但在实际系统中,并不是所有状态变量都能测量的,这就给状态反馈的实现造成了困难。因此要设法利用已知的信息(输出量y和输入量x),通过一个模型重新构造系统状态以对状态变量进行估计。该模型就称为状态观测器。若状态观测器的阶次与系统的阶次是相同的,这样的状态观测器就称为全维状态观测器或全阶观测器。

设系统完全可观,则可构造如图4-1所示的状态观测器

图4-1 全维状态观测器

为求出状态观测器的反馈ke增益,与极点配置类似,也可有两种方法:

方法一:构造变换矩阵Q,使系统变成标准能观型,然后根据特征方程求出ke ;

方法二:是可采用Ackermann公式: ToeQAk1000)(1,其中OQ为可观性矩阵。 信 控 学 院 上 机 实 验

第 页 共 页 利用对偶原理,可使设计问题大为简化。首先构造对偶系统

TTTbvcA

然后可由变换法或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 =

0

0

1 信 控 学 院 上 机 实 验

第 页 共 页 0

0

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)Amplitude00.511.522.5300.0020.0040.0060.0080.010.0120.014System: GoPeak amplitude: 0.0138Overshoot (%): 10.6At time (sec): 1.15System: GoSettling Time (sec): 1.63

结果分析:

σ%=10.8% tp=1.15s ts=1.63s

原系统方框图 信 控 学 院 上 机 实 验

第 页 共 页 Step-6SliderGain2-11SliderGain16SliderGainScope1sIntegrator21sIntegrator11sIntegrator

012345678910-0.500.511.522.53x 1010

原系统阶跃响应

加观测器的方框图: 信 控 学 院 上 机 实 验

第 页 共 页

Scope1:

Scope2: 信 控 学 院 上 机 实 验

第 页 共 页

Scope3: