对于被控对象:
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可以配置到任意期望的极点位置上。
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);