实验 5 利用 MATLAB 设计状态观测器
5.1 实验设备
同实验 1。
5.2 实验目的
1、学习观测器设计算法;
2、通过编程、上机调试,掌握基于观测器的输出反馈控制系统设计方法。
5.3 实验原理说明
5.3.1 全阶观测器设计
考虑如下的线性时不变系统
+
Bu
x&
y
=
=
Ax
Cx
(5.1)
⎧
⎨
⎩
y
和 分别是系统的 维状态向量、 m 维控制输入向量和 维测量输出向量,
ux,
其中:
CBA,
和 是已知的适当维数常数矩阵。根据系统模型(5.1)和输入输出信息来人为地构
造一个系统,使得其输出
随着时间的推移逼近系统的真实状态
p
n
,即
)(~ tx
)(tx
)(~[
x
t
lim
t
∞→
−
x
(
t
)]
=
0
)(~ tx
通常称
观测器。
为
)(tx
的重构状态或状态估计值,而这个用以实现系统状态重构的系统为状态
龙伯格观测器具有以下结构:
u
y
+
Bu
x
=&
y
=
Ax
Cx
L
= ~
~&
xAx
+
Bu
x~
y~
C
-
图 5.1 状态估计的闭环处理方法
L
其中的矩阵 是误差信号的加权矩阵。观测器模型是
(
−
Bu
~
~&
xAx
A
+
−
=
=
(
)~
xCyL
Ly
+
Bu
+
~)
xLC
pn× 维的待定矩阵。
+
x~
e
状态估计误差
n
~−=
xx
e
&
其中: 是观测器的 维状态, L 是一个
的动态方程:
~
xx
−=
&
&
Ax
=
+
Ax
=
−
A
(
=
−
Bu
−
A
(
−
eLC
)
16
(5.2)
~)
A
xLC
(
−
−
~)
xLC
LCx
−
Bu
−
Ly
(5.3)
A −
LC
根据线性时不变系统的稳定性结论,若矩阵
A −
LC
矩阵
任意的初始误差
的所有特征值均在左半开复平面中,即
的所有特征值都具有负实部,则误差动态系统(5.3)是渐近稳定的,从而对
,误差向量 都将趋向于零。即无论系统的初始状
,随着时间
∞→t
)0(e
)0(x
是什么,状态估计模型(5.2)的初始状态
态
态估计模型(5.2)的状态
LC
L
只要通过适当选取矩阵 ,使得矩阵
型(5.2)就是系统(5.1)的一个状态观测器。
可以任意选取,随着时间的推移,状
x~ 将趋于系统的实际状态,从而实现系统状态的重构。由此可见,
的所有特征值都具有负实部,则状态估计模
A −
)(te
)0(~x
由极点配置和观测器设计问题的对偶关系,也可以应用 MATLAB 中极点配置的函数来
确定所需要的观测器增益矩阵。例如,对于单输入单输出系统,观测器的增益矩阵可以由函
数
L=(acker(A’,C’,V))’
得到。其中的 V 是由期望的观测器极点所构成的向量。类似的,也可以用
L=(place(A’,C’,V))’
来确定一般系统的观测器矩阵,但这里要求 V 不包含相同的极点。
5.3.2 降阶观测器设计
假定系统(5.1)的矩阵C 具有形式
1[
0
](对一般结构的矩阵 ,需要作适当的变换)。
C
根据矩阵C 的结构,将系统状态 分划成两部分:
⎤
⎥
⎦
ax
x
b
⎡
⎢
⎣
=
x
x
其中的 是一个标量。由
ax
y
=
Cx
=
⎡
]01[
⎢
⎣
x
x
a
b
⎤
=⎥
⎦
x
a
ax
可知: 恰好是系统的输出,它能被直接测量得到。 是bx
1−n 维向量,是状态向量中不能
A B
直接测量的部分。将状态空间模型(5.1)中的矩阵 和 作相应的分块,则该状态空间模
型可以写成
x
&
x
&
⎡
⎢
⎣
a
b
⎤
=⎥
⎦
A
aa
A
ba
⎡
⎢
⎣
A
A
ab
bb
x
x
⎤
⎥
⎦
⎡
⎢
⎣
a
b
⎤
+⎥
⎦
B
B
⎡
⎢
⎣
a
b
⎤
⎥
⎦
u
(5.4)
bx
其中的 是要估计的状态,将已知信号和未知信号分离,可以得到
)
Α
+
+
x
(
uB
b
ba
a
b
x
&
xA
bb
xAuB
ab
=
=
a
b
b
x
&
a
−
xA
aa
a
−
进而,将其和全阶观测器设计时的标准模型(5.2)相比较,可得以下对应项之间的关系:
表 5.1 状态空间模型的对应关系
全阶观测器
降阶观测器
x~
A
Bu
y
bx~
bbA
A
bax +
a
uB
b
x
−&
a
xA
aa
a
−
uBa
17
C
L (
1×n
维矩阵)
abA
×−n
1)1
L
(
(
维矩阵)
根据上表给出的对应关系及全阶观测器的模型
~)
xLC
−
+
Bu
+
yL
(~&
Ax
=
bx
可以得到估计不可直接测量状态 的观测器
x
~)
Ax
b
LA
A
~
x
&
−
=
+
bb
(
b
+
LuB
+
(
ab
( 5.5)
ax
然而,方程(5.5)还不是所要的降阶观测器。因为在方程(5.5)中,用到了 的微分。
ax
由于 就是测量输出信号,而测量信号往往含有噪声和误差,对这样的信号进行微分会放
大噪声和误差,这在实际应用中是应该避免的。因此有必要消除式(5.5)中的 。
ax&
通过将式(5.5)中的微分项放在一起可以克服上面讲到的困难,即得到:
ba
a
a
b
a
xA
aa
−
uB
a
)
x
&
−
x
&%
b
−
y
L
&
=
定义
则式(5.6)可以写成
(A
−
bb
(B
+
b
LA )(x
%
b
ab
LB )u
−
a
−
y
L )
+
[(A
−
bb
LA )L A
+
ab
−
A y
L
]
aa
ba
( 5.6)
b
x
L
y
=
−
~
L
x
y
−
=
b
LA
A
−
ˆ
ALA
+
ba
LB
B
−
bb
a
b
w
~
w
ˆ
A
=
ab
L
A
−
aa
ˆ
F
=
ˆ
B
=
~
ˆ
BwAw
&
~ˆ
+
=
y
+
ˆ
uF
(5.7)
式(5.7)就是要设计的降阶观测器,不可直接测量的状态分量 的估计量由下式给出:
bx
~
x
b
= ~
Lw
+
y
由于
记
则
~
x
=
x
~
x
⎡
⎢
⎣
a
b
⎤
=⎥
⎦
⎡
⎢
⎣
y
+
~
Lw
y
⎤
=⎥
⎦
~0
⎤
w
+⎥
I
⎦
⎡
⎢
⎣
1
L
⎡
⎢
⎣
⎤
⎥
⎦
y
ˆ
C
=
0
I
⎡
⎢
⎣
⎤
⎥
⎦
,
ˆ
D
=
1
L
⎡
⎢
⎣
⎤
⎥
⎦
上式用降阶观测器的状态 和测量值 给出了系统状态 的估计值
x~
。
w~
=
~ˆ
~
ˆ
yDwCx
y
+
x
基于状态估计值的反馈控制器是
= −
= −
−
因此,基于降阶观测器的输出反馈控制器是
Kx
%
K w (K
u
%
b
+
K L)
b
y
a
~
⎧
LKKFBwKFAw&
⎪
⎨
u
⎪⎩
ˆ(
=
−
LKKwK
−=
ˆ
−
(~
−
ˆ[~)
(ˆ
y
)
+
+
+
b
a
b
b
a
b
18
)]
y
(5.8)
基于降阶观测器的输出反馈控制系统结构图如下:
u
B
x
∫
y
C
A
Fˆ
∫
Aˆ
w~
Bˆ
降 阶 观 测 器
x~
-K
Cˆ
Dˆ
图 5.2 基于降阶观测器的反馈控制系统
容易证明,误差向量
e
=
x
b
−
~
~
wwx
=
−
b
Ae
=&
bb −
(
满足方程
e
LA
)
(
A
(5.9)
完全能观,则一定可以通过选取一个适当的矩阵 L ,使得误差动态系
因此,若
统(5.9)具有任意给定的极点,这样的矩阵 L 可以应用全阶观测器的设计方法来设计。矩
阵 也称为是系统的降阶观测器增益矩阵。
ab A
,
ab
bb
)
L
对于降阶观测器的设计,使用 MATLAB 软件中的函数
L=(acker(Abb’,Aab’,V))’
或
L=(place(Abb’,Aab’,V))’
可以得到观测器的增益矩阵 。其中的 V 是由降阶观测器的期望极点所组成的向量。
5.4 实验步骤
L
1、基于观测器的输出反馈控制系统的设计,采用 MATLAB 的 m-文件编程;
2、在 MATLAB 界面下调试程序,并检查是否运行正确。
例 5.1 给定线性定常系统
0
0
⎡
⎢
⎢
244.1
⎢
⎣
[
001
x
=&
y
=
1
0
3965
.0
]x
0
⎤
⎥
1
⎥
145.3
⎥
⎦
−
x
+
0
0
⎡
⎢
⎢
244.1
⎢
⎣
⎤
⎥
⎥
⎥
⎦
u
试应用 MATLAB 软件,设计一个全维观测器,使得观测器极点是
j−−=μ
−=μ
35
10
。
,
5
1
3
j+−=μ
5
1
35
,
配置全阶观测器极点的M-文件为:
a=[0 1 0;0 0 1;1.244 0.3965 -3.145];
19
b=[0;0;1.244];
c=[1 0 0];
v=[-5+j*5*sqrt(3) -5-j*5*sqrt(3) -10];
l=(acker(a',c',v))'
执行以上程序可得:
L
16.855
⎡
⎢
147.3875
= ⎢
544.3932
⎢
⎣
⎤
⎥
⎥
⎥
⎦
%
)
=
=
+
相应的全维观测器是:
x
+
&%
1
0
−
0
0
A LC x Bu Ly
(
⎛
⎡
⎜
⎢
⎜
⎢
⎜
1.244 0.3965
⎢
⎣
⎝
16.855
−⎡
⎢
147.3875
= −
⎢
543.1492 0.3965
⎢
−
⎣
1
0
0
1
3.145
−
]
[
−
+
x
%
0
0
⎤
⎥
⎥
⎥
⎦
0
1
3.145
16.855
⎤
⎡
⎥
⎢
147.3875 1 0 0
⎥
⎢
544.3932
⎥
⎢
⎦
⎣
0
⎤
⎥
0
⎥
⎥
⎦
⎡
⎢
⎢
1.244
⎢
⎣
⎞
⎡
⎟
⎢
⎟
⎢
⎟
1.244
⎢
⎣
⎠
16.855
⎤
⎡
⎥
⎢
147.3875
⎥
⎢
544.3932
⎢
⎥
⎣
⎦
⎤
⎥
⎥
⎥
⎦
x
%
+
+
u
y
−
u
+
⎤
⎥
⎥
⎥
⎦
16.855
⎡
⎢
147.3875
⎢
544.3932
⎢
⎣
⎤
⎥
⎥
⎥⎦
y
例 5.2 考虑例 5.1 给出的系统。假设输出 y 可准确量测。试应用 MATLAB 软件,设计一个
降阶观测器,使得其极点是
35
。
0
0.3965
⎡
= ⎢
⎣
1
3.145
−
⎤
⎥
⎦
,
j−−=μ35
5
,因此可得:
1
0
,
⎤
⎥
⎦
⎡
= ⎢
1.244
⎣
⎡
bB
= ⎢
1.244
⎣
0
,
bbA
⎤
⎥
⎦
y
由于输出 可准确量测,同时
]
aaA =
abA =
[ ]0
,
1
5
y
j+−=μ
x=
1
baA
[
1 0
,
aB =
0
执行以下的M-文件:
Aaa=[0];
Aab=[1 0];
Aba=[0;1.244];
Abb=[0 1;0.3965 -3.145];
Ba=[0];
Bb=[0;1.244];
v=[-5+j*5*sqrt(3) -5-j*5*sqrt(3)];
l=(acker(Abb',Aab',v))'
Ahat=Abb-l*Aab
Bhat=Ahat*l+Aba-l*Aaa
Fhat=Bb-l*Ba
可得:
20
L ⎡
= ⎢
⎣
6.855
78.8375
6.855
−⎡
= ⎢
78.441
−
⎣
即所设计的降阶观测器为:
⎤
⎥
⎦
ˆ
A
,
ˆ
w Aw By Fu
&%
=
+
+
ˆ
%
ˆ
=
5.5 实验要求
6.855
−⎡
⎢
78.441
−
⎣
1
3.145
−
⎤
⎥
⎦
,
B ⎡
ˆ
= ⎢
−⎣
31.8465
784.4132
⎤
⎥
⎦
,
0
F ⎡
ˆ
= ⎢
1.244
⎣
⎤
⎥
⎦
1
3.145
⎤
⎥
⎦
−
w
%
+
31.8465
784.4132
−
⎤
⎥
⎦
⎡
⎢
⎣
y
+
0
⎡
⎢
1.244
⎣
⎤
⎥
⎦
u
在运行以上例程序的基础上,考虑图 5.3 所示的调节器系统,试针对被控对象设计基于
全 阶 观 测 器 和 降 阶 观 测 器 的 输 出 反 馈 控 制 器 。 设 极 点 配 置 部 分 希 望 的 闭 环 极 点 是
j±−=λ
2,1
32
2
(a) 对于全阶观测器,
(b) 对于降阶观测器,
,希望的观测器极点是
8
−=μ
8−=μ
1
和
。
8
−=μ
2
;
比较系统对下列指定初始条件的响应:
(a) 对于全阶观测器:
,1)0(
(b ) 对于降阶观测器:
)0(
x
1
,0
=
=
x
2
,1)0(
=
进一步比较两个系统的带宽。
x
1
e
1
,1)0(
=
e
2
)0(
=
0
=
,0
e
1
,1)0(
=
x
2
)0(
0r =
y−
−
u
控制器
y
4
s s +
(
2)
图 5.3 调节器系统
21