一、状态反馈调节器设计问题
对于被控对象:
x
˙
=
A
x
+
B
u
,
x
(
0
)
=
x
0
\dot x=Ax+Bu,x(0)=x_0
x˙=Ax+Bu,x(0)=x0
其中,
x
∈
R
n
,
u
∈
R
p
x\in R^n,u\in R^p
x∈Rn,u∈Rp。
采用状态反馈控制律有:
u
=
−
K
x
u=-Kx
u=−Kx
那么闭环系统转化为:
x
˙
=
(
A
−
B
K
)
x
,
x
(
0
)
=
x
0
\dot x=(A-BK)x,x(0)=x_0
x˙=(A−BK)x,x(0)=x0
该微分方程的解为:
x
(
t
)
=
e
(
A
−
B
K
)
t
x
0
x(t)=e^{(A-BK)t}x_0
x(t)=e(A−BK)tx0
因此,如果设计一个控制器K,其使得(A-BK)渐进稳定,那么当
t
→
∞
t\to \infty
t→∞时,
x
(
∞
)
→
0
x(\infty)\to 0
x(∞)→0,这是一个典型状态调节器的设计问题。
二、极点配置算法
有定理:
若原系统的状态完全可控,则存在状态反馈增益矩阵K,使得状态反馈闭环系统完全可控,并且状态反馈增益矩阵K可以配置到任意期望的极点位置上。
- 首先,对于原系统,给定期望的闭环系统特征值 δ i ( i = 1 , 2 , . . . , n ) \delta _i(i=1,2,...,n) δi(i=1,2,...,n)。
- 检测原系统是否可控,其能控矩阵 Q c = [ B , A B , . . . , A n − 1 B ] Q_c=[B,AB,...,A^{n-1}B] Qc=[B,AB,...,An−1B]的秩是否为n, Q c ∈ R n × n p Q_c\in R^{n\times np} Qc∈Rn×np。
- 求取矩阵A的特征多项式: d e t ( s I − A ) = s n + a 1 s n − 1 + . . . + a n det(sI-A)=s^n+a_1s^{n-1}+...+a_n det(sI−A)=sn+a1sn−1+...+an。
- 求取变换矩阵: T = Q c W T=Q_cW T=QcW, W = [ a n − 1 a n − 2 . . . a 1 1 a n − 2 a n − 3 . . . 1 0 . . . . . . . . . . . . 0 a 1 1 . . . . . . 0 1 0 . . . 0 0 ] W=\begin{bmatrix} a_{n-1} & a_{n-2} & ... & a_1 & 1 \\ a_{n-2} & a_{n-3} & ... & 1 & 0 \\ ... & ... & ... & ... & 0 \\ a_{1} & 1 & ... &... & 0 \\ 1 & 0& ... & 0 & 0\end{bmatrix}\quad W=⎣⎢⎢⎢⎢⎡an−1an−2...a11an−2an−3...10...............a11......010000⎦⎥⎥⎥⎥⎤, W ∈ R n p × n W\in R^{np\times n} W∈Rnp×n。
- 求取期望闭环系统的特征多项式: d e t ( s I − A + B K ) = ( s − δ 1 ) ( s − δ 2 ) . . . ( s − δ n ) = s n + β 1 s n − 1 + . . . + β n det(sI-A+BK)=(s-\delta_1)(s-\delta_2)...(s-\delta_n)=s^n+\beta_1s^{n-1}+...+\beta_n det(sI−A+BK)=(s−δ1)(s−δ2)...(s−δn)=sn+β1sn−1+...+βn。
- 计算状态反馈增益矩阵: K p × n = [ β n − a n , β n − 1 − a n − 1 , . . . , β 1 − a 1 ] p × n T − 1 K_{p\times n}=[\beta_n-a_n,\beta_{n-1}-a_{n-1},...,\beta_1-a_1]_{p\times n}T^{-1} Kp×n=[βn−an,βn−1−an−1,...,β1−a1]p×nT−1。
MATLAB有相关的求解函数place,可直接求解K,其调用格式为 K = p l a c e ( A , B , P ) K=place(A,B,P) K=place(A,B,P),其中, P = [ δ 1 , δ 2 , . . . , δ n ] P=[\delta _1,\delta _2,...,\delta _n] P=[δ1,δ2,...,δn]。
三、状态调节器设计实例
某系统为:
x
˙
=
A
x
+
B
u
y
=
C
x
\dot x=Ax+Bu\\y=Cx
x˙=Ax+Buy=Cx
其中,
A
=
[
−
6.55
5.5686
1.9816
0.4829
0.1298
−
3.7204
−
0.0143
0.6643
0
0
−
10
0
0
0
0
−
10
]
A=\begin{bmatrix} -6.55 & 5.5686 & 1.9816 & 0.4829 \\ 0.1298 & -3.7204 & -0.0143 & 0.6643 \\ 0 & 0 & -10 & 0 \\ 0 & 0 & 0 & -10 \end{bmatrix}\quad
A=⎣⎢⎢⎡−6.550.1298005.5686−3.7204001.9816−0.0143−1000.48290.66430−10⎦⎥⎥⎤
B
=
[
0
0
0
0
10
0
0
10
]
B=\begin{bmatrix} 0 & 0 \\ 0 & 0 \\ 10 & 0 \\ 0 & 10 \end{bmatrix}\quad
B=⎣⎢⎢⎡0010000010⎦⎥⎥⎤
C
=
[
−
0.8832
1.1424
0.7363
0.0002
0
1
0
0
]
C=\begin{bmatrix} -0.8832 & 1.1424 & 0.7363 & 0.0002 \\ 0 & 1 & 0 & 0 \end{bmatrix}\quad
C=[−0.883201.142410.736300.00020]
根据极点配置法对其设计状态调节器:
clc;clear all
%% 原系统状态空间实现
A=[-6.55 5.5686 1.9816 0.4829;0.1298 -3.7204 -0.0143 0.6643;0 0 -10 0;0 0 0 -10];
B=[0 0; 0 0 ;10 0;0 10];
C=[-0.8832,1.1424,0.7363,0.0002;0,1,0,0];
%% 1、给定期望特征值
P=[-2+1.186i -2-1.186i -18 -19];
%% 2、检测可控性条件
Qc=[B,A*B,A*A*B,A*A*A*B]; %4*8
rank(Qc)
%% 3、求矩阵A的特征多项式
pA=poly(A);
%% 4、求取变换矩阵
W1=[pA(4),pA(3),pA(2),1;
pA(4),pA(3),pA(2),1;
pA(3),pA(2),1, 0;
pA(3),pA(2),1, 0;
pA(2),1, 0, 0;
pA(2),1, 0, 0;
1 ,0, 0, 0;
1 ,0, 0, 0;]; %8*4
W2=[pA(4),pA(3),pA(2),1;
pA(4),pA(3),pA(2),1;
pA(3),pA(2),1, 0;
pA(3),pA(2),1, 0;
pA(2),1, 0, 0;
pA(2),1, 0, 0;
1 ,0, 0, 0;
1 ,0, 0, 0;]; %8*4
T1=Qc*W1; %4*4=4*4 * 4*4
T2=Qc*W2;
%% 5、构造闭环系统特征多项式
close_loop_det=poly(P);
beta_a(1)=close_loop_det(5)-pA(5);
beta_a(2)=close_loop_det(4)-pA(4);
beta_a(3)=close_loop_det(3)-pA(3);
beta_a(4)=close_loop_det(2)-pA(2);
%% 6、计算反馈矩阵K
K1=beta_a*pinv(T1);
K2=beta_a*pinv(T2);
KK=[K1;K2];
%% MATLABplace函数计算反馈矩阵K
% KK=place(A,B,P)
状态调节器结构搭建如下:
其仿真结果如下图所示:
四、跟踪控制器实例设计
为了达到无静差跟踪,将状态量增广为
x
ˉ
=
[
x
˙
T
e
T
]
T
\bar x=[\dot x^T~~e^T]^T
xˉ=[x˙T eT]T,为该系统设计状态调节器,即可达到控制效果。
误差有:
e
=
r
−
y
=
r
−
C
x
e
˙
=
r
˙
−
C
x
˙
e=r-y=r-Cx\\\dot e=\dot r-C\dot x
e=r−y=r−Cxe˙=r˙−Cx˙对于阶跃型指令,有:
r
˙
=
0
\dot r=0
r˙=0因此增广后的系统为:
x
ˉ
˙
=
A
ˉ
x
ˉ
+
B
ˉ
u
ˉ
\dot{\bar x}=\bar A\bar x+\bar B\bar u
xˉ˙=Aˉxˉ+Bˉuˉ
x
ˉ
=
[
x
˙
e
]
,
u
ˉ
=
u
˙
,
A
ˉ
=
[
A
0
−
C
0
]
,
B
ˉ
=
[
B
0
]
\bar x=\begin{bmatrix} \dot x \\ e \end{bmatrix}\quad,\bar u=\dot u,\bar A=\begin{bmatrix} A & 0 \\ -C & 0 \end{bmatrix}\quad, \bar B=\begin{bmatrix} B \\ 0 \end{bmatrix}\quad
xˉ=[x˙e],uˉ=u˙,Aˉ=[A−C00],Bˉ=[B0]控制律为:
u
ˉ
=
−
K
x
ˉ
u
˙
=
−
K
[
x
˙
e
]
\bar u=-K\bar x\\ ~~~~~~~~~\dot u=-K\begin{bmatrix} \dot x \\ e \end{bmatrix}\quad
uˉ=−Kxˉ u˙=−K[x˙e]得到:
u
=
−
K
[
x
∫
e
]
=
−
[
K
x
˙
K
e
]
[
x
∫
e
]
=
−
K
x
˙
x
−
K
e
∫
e
u=-K\begin{bmatrix} x \\ \int e \end{bmatrix}\quad=-[K_{\dot x}~~~~K_{e}]\begin{bmatrix} x \\ \int e \end{bmatrix}\quad=-K_{\dot x}x-K_e\int e
u=−K[x∫e]=−[Kx˙ Ke][x∫e]=−Kx˙x−Ke∫e
基于此设计控制器如下:
clc;clear all
%% 原系统状态空间实现
A=[-6.55 5.5686 1.9816 0.4829;0.1298 -3.7204 -0.0143 0.6643;0 0 -10 0;0 0 0 -10];
B=[0 0; 0 0 ;10 0;0 10];
C=[-0.8832,1.1424,0.7363,0.0002;0,1,0,0];
%% 增广系统
Ab=[A,zeros(4,2);C,zeros(2,2)]; %6*6
Bb=[B;zeros(2,2)]; %6*2
%% 1、给定期望特征值
P=[-2+1.186i -2-1.186i -10 -11 -1.4 -2];
%% 2、检测可控性条件
Qc=[Bb,Ab*Bb,Ab*Ab*Bb,Ab*Ab*Ab*Bb]; %6*8
rank(Qc)
%% MATLABplace函数计算反馈矩阵K
KK=place(Ab,Bb,P)
Kx=KK(:,1:4);
Ke=KK(:,5:6);
控制结构如下图所示:
状态量变化:
输出变化: