实验 4 利用 MATLAB 求解极点配置问题
4.1 实验设备
同实验 1。
4.2 实验目的
1、学习极点配置状态反馈控制器的设计算法;
2、通过编程、上机调试,掌握系统极点配置设计方法。
4.3 实验原理说明
给定一个连续时间系统的状态空间模型:
Ax
x
=&
+
Bu
(4.1)
其中: 是系统的 n 维状态向量, 是 m 维控制输入, 和 B 分别是适当维数的已知常数
矩阵。在状态反馈
A
u
x
u −=
Kx
(4.2)
作用下,闭环系统的状态方程是
xBK
)
Ax
=&
( −
的特征值决定,即闭环系统(4.3)渐近稳定的充分必要条件是矩阵
(4.3)
由线性时不变系统的稳定性分析可知,闭环系统(4.3)的稳定性由闭环系统矩阵
BK
的所
A −
有特征值都具有负实部。而由经典控制理论知道,矩阵
的特征值也将影响诸如衰
减速度、振荡、超调等过渡过程特性。因此,若能找到一个适当的矩阵 K
BK
的特征值位于复平面上预先给定的特定位置,则以矩阵 K 为增益矩阵的状态反馈控制器
(4.2)就能保证闭环系统(4.3)是渐近稳定的,且具有所期望的动态响应特性。这种通过
寻找适当的状态反馈增益矩阵 K ,使得闭环系统极点(即矩阵
的特征值)位于预
先给定位置的状态反馈控制器设计问题称为是状态反馈极点配置问题,简称为极点配置问
题。
,使得矩阵
A −
A −
A −
A −
BK
BK
BK
,{
nλλλ L
对给定的线性定常系统(4.1)和一组给定的期望闭环极点
1
,{
,
nλλλ L
1
下步骤可以设计出使得闭环系统(4.3)具有给定极点
器(4.2)。
第 1 步: 检验系统的能控性。如果系统是能控的,则继续第 2 步。
第 2 步: 利用系统矩阵 的特征多项式
+
=Ω
,
A
det(
AI
−
λ
=Ω
n
λ
2
}
+
+
=
a
a
a
1
−
)
2
+
λ
1
0
n
λ
1
−
n
L
,
}
,
的状态反馈控制
,按以
的值。
a
,
a
,
,
−na
1
0
1
L
确定
第 3 步: 确定将系统状态方程变换为能控标准形的变换矩阵 。若给定的状态方程已
是能控标准形,那么
。非奇异线性变换矩阵 可由下式确定:
IT =
T
T
Γ=
c
](~,~[
BA
Γ
c
[
T
BA
,
1
−
])
第 4 步: 利用给定的期望闭环极点,可得期望的闭环特征多项式为
n
λλλ
+
+
+
=
−
b
b
1
−
)
)
b
λ
+
1
0
n
λ
1
−
n
n
L(
L
−
)
−
λλλλ
(
1
2
的值。
(
−nb
1
,
bb
1
0
,
,
L
并确定
第 5 步: 确定极点配置状态反馈增益矩阵 K :
b
n
[
b
a
1
b
1
K
−
−
=
a
0
0
L
−
a
2
n
−
2
b
n
1
−
−
a
n
1
−
]T
−
12
也可以通过待定系数的方法来确定极点配置状态反馈增益矩阵 K 。根据
det[
BKAI
λ
−
−
(
)]
=
(
nλλλλλλ
−
−
−
(
)
2
L
)
)(
1
λ
nk
的一个线性方程组,求解该线性方程组可得要求的增益矩阵 K 。
利用两个多项式相等的充分必要条件是等号两边 同次幂的系数相等,导出关于 的分量
k
,1 L
,
MATLAB 软件提供了两个函数 acker 和 place 来确定极点配置状态反馈控制器的增
益矩阵 K 。函数 acker 是基于求解极点配置问题的爱克曼公式,它只能应用到单输入系统,
要配置的闭环极点中可以包括多重极点。
K
函数 acker 和 place 的一般形式是:
K=acker(A,B,J)
K=place(A,B,J)
=J
其中的 J 是一个向量,
所要求的反馈增益矩阵后,可以用命令 eig(A-B*K)来检验闭环极点。
4.4 实验步骤
[
λλ
2
1
λλ
2
nλ
nλ
,
L
L
n
]
,
,
,
1
是 个期望的闭环极点。得到了
1、极点配置状态反馈控制器的设计,采用 MATLAB 的 m-文件编程;
2、在 MATLAB 界面下调试程序,并检查是否运行正确。
例 4.1 考虑以下系统
其中:
x
=&
Ax
+
uB
=
A
0
⎤
⎥
0
⎥
1
⎥
−
−
⎦
Kx−=u
,使得闭环系统的极点是
x
)0( =
。进而,对给定的初始状态
T]001[
0
⎤
⎥
1
⎥
6
⎥
⎦
1
0
5
0
0
1
⎡
⎢
⎢
⎢
⎣
⎡
⎢
⎢
⎢
⎣
B
=
−
试设计一个状态反馈控制器
−=λ
10
,
3
λ
1
+−=
,
,画出闭环系统的状态响应曲线。
−−=
λ
2
,4j
4j
2
2
执行以下应用函数 acker 编制的 M-文件:
A=[0 1 0;0 0 1;-1 -5 -6];
B=[0;0;1];
J=[-2+j*4 –2-j*4 -10];
K=acker(A,B,J)
得到
K=
199 55 8
若执行以下应用函数 place 编制的 M-文件:
A=[0 1 0;0 0 1;-1 -5 -6];
B=[0;0;1];
J=[-2+j*4 –2-j*4 -10];
13
K=place(A,B,J)
则可得
place:ndigits=15
K=
199.0000 55.0000 8.0000
进一步,对给定的初始状态
)0(x
,可以应用 MATLAB 提供的函数 initial 画出闭环
系统的状态响应曲线。
x
)0( =
T]001[
,执行以下的 M-文件:
已知
A=[0 1 0;0 0 1;-1 -5 -6];
B=[0;0;1];
J=[-2+j*4 –2-j*4 -10];
K=place(A,B,J);
sys=ss(A-B*K,[0;0;0],eye(3),0);
t=0:0.01:4;
x=initial(sys,[1;0;0],t);
x1=[1 0 0]*x’;
x2=[0 1 0]*x’;
x3=[0 0 1]*x’;
subplot(3,1,1);plot(t,x1),grid
title(‘Response to Initial Condition’)
ylabel(‘x1’)
subplot(3,1,2);plot(t,x2),grid
ylabel(‘x2’)
subplot(3,1,3);plot(t,x3),grid
xlabel(‘t (sec)’)
ylabel(‘x3’)
可得
14
1
x
1
0.5
0
-0.5
0
2
x
2
0
-2
-4
10
0
3
x
0
-10
0
Response to Initial Condition
0.5
1
1.5
2
2.5
3
3.5
4
0.5
1
1.5
2
2.5
3
3.5
4
0.5
1
1.5
2
t (sec)
2.5
3
3.5
4
图 4.1 初始状态响应图
4.5 实验要求
1、在运行以上程序的基础上,针对状态空间模型为
0
⎡
⎢
3
−
⎣
[
23
−
]x
x
&
=
y
=
1
⎤
x
+⎥
4
⎦
0
⎡
⎢
1
⎣
⎤
⎥
⎦
u
的被控对象设计状态反馈控制器,使得闭环极点为
4−
5−和
,并讨论闭环系统的稳态性能。
2、分析极点配置对稳态性能有何影响?如何消除对稳态性能的负面影响?
15