H无穷控制学习笔记——H无穷控制

一、 H ∞ H_\infty H控制总纲

针对广义系统:
在这里插入图片描述
其中,G(s)是一个线性定常系统,其状态空间描述为: x ˙ = A x + B 1 w + B 2 u z = C 1 x + D 11 w + D 12 u y = C 2 x + D 21 w + D 22 u \dot x=Ax+B_1w+B_2u\\z=C_1x+D_{11}w+D_{12}u\\y=C_2x+D_{21}w+D_{22}u x˙=Ax+B1w+B2uz=C1x+D11w+D12uy=C2x+D21w+D22u其中, x ∈ R n x\in R^n xRn是状态向量, u ∈ R m u\in R^m uRm是控制输入, y ∈ R p y\in R^p yRp是测量输出, z ∈ R r z\in R^r zRr是被调输出, w ∈ R q w\in R^q wRq是外部扰动,K(s)是控制器的传递函数。

目的是设计一个控制器 u ( s ) = K ( s ) y ( s ) u(s)=K(s)y(s) u(s)=K(s)y(s),使得闭环系统满足:

  • 闭环系统内部稳定,即闭环系统状态矩阵的所有特征值均在左半开复平面上;
  • 从扰动输入w到被调输出z的闭环传递函数 T w z ( s ) T_{wz}(s) Twz(s) H ∞ H_\infty H范数小于1,即 ∣ ∣ T w z ( s ) ∣ ∣ ∞ < 1 ||T_{wz}(s)||_{\infty}<1 Twz(s)<1

二、状态反馈 H ∞ H_\infty H控制

1、闭环传递函数的确定

假定系统的状态是可测的,要求设计一个静态状态反馈控制器 u = K x u=Kx u=Kx使得原线性定常系统渐进稳定且闭环传递函数 ∣ ∣ T w z ( s ) ∣ ∣ ∞ < 1 ||T_{wz}(s)||_{\infty}<1 Twz(s)<1

原系统为: x ˙ = A x + B 1 w + B 2 u z = C 1 x + D 11 w + D 12 u \dot x=Ax+B_1w+B_2u\\z=C_1x+D_{11}w+D_{12}u x˙=Ax+B1w+B2uz=C1x+D11w+D12u

u = K x u=Kx u=Kx代入该系统得到: x ˙ = ( A + B 2 K ) x + B 1 w z = ( C 1 + D 12 K ) x + D 11 w \dot x=(A+B_2K)x+B_1w\\z=(C_1+D_{12}K)x+D_{11}w x˙=(A+B2K)x+B1wz=(C1+D12K)x+D11w

状态空间方程到传递函数的转换关系为 G ( s ) = C ( s I − A ) − 1 B + D G(s)=C(sI-A)^{-1}B+D G(s)=C(sIA)1B+D,套用得到闭环传递函数 T w z ( s ) T_{wz}(s) Twz(s) T w z ( s ) = ( C 1 + D 12 K ) [ s I − ( A + B 2 K ) ] − 1 B 1 + D 11 T_{wz}(s)=(C_1+D_{12}K)[sI-(A+B_2K)]^{-1}B_1+D_{11} Twz(s)=(C1+D12K)[sI(A+B2K)]1B1+D11

2、状态反馈 H ∞ H_\infty H控制器

而根据定理:在这里插入图片描述
当且仅当存在一个对称正定矩阵P,使得:
[ ( A + B 2 K ) T P + P ( A + B 2 K ) P B 1 ( C 1 + D 12 K ) T B 1 T P − I D 11 T C 1 + D 12 K D 11 − I ] < 0 \begin{bmatrix} (A+B_2K)^TP+P(A+B_2K) & PB_1 & (C_1+D_{12}K)^T \\ B_1^TP & -I & D_{11}^T \\ C_1+D_{12}K & D_{11} & -I \end{bmatrix}<0 (A+B2K)TP+P(A+B2K)B1TPC1+D12KPB1ID11(C1+D12K)TD11TI<0

为了求解未知矩阵变量K和P,使用变量替换法,将其转化为一个等价的关于新变量的线性矩阵不等式。
对其分别左乘和右乘矩阵 d i a g { P − 1 , I , I } diag\{P^{-1},I,I\} diag{P1,I,I},得到:
[ ( A P − 1 + B 2 K P − 1 ) + ( A P − 1 + B 2 K P − 1 ) T B 1 ( C 1 P − 1 + D 12 K P − 1 ) T B 1 T − I D 11 T C 1 P − 1 + D 12 K P − 1 D 11 − I ] < 0 \begin{bmatrix} (AP^{-1}+B_2KP^{-1})+(AP^{-1}+B_2KP^{-1})^T & B_1 & (C_1P^{-1}+D_{12}KP^{-1})^T \\ B_1^T & -I & D_{11}^T \\ C_1P^{-1}+D_{12}KP^{-1} & D_{11} & -I \end{bmatrix}<0 (AP1+B2KP1)+(AP1+B2KP1)TB1TC1P1+D12KP1B1ID11(C1P1+D12KP1)TD11TI<0

定义 X = P − 1 X=P^{-1} X=P1 W = K X W=KX W=KX,得到:
[ ( A X + B 2 W ) + ( A X + B 2 W ) T B 1 ( C 1 X + D 12 W ) T B 1 T − I D 11 T C 1 X + D 12 W D 11 − I ] < 0 \begin{bmatrix} (AX+B_2W)+(AX+B_2W)^T & B_1 & (C_1X+D_{12}W)^T \\ B_1^T & -I & D_{11}^T \\ C_1X+D_{12}W & D_{11} & -I \end{bmatrix}<0 (AX+B2W)+(AX+B2W)TB1TC1X+D12WB1ID11(C1X+D12W)TD11TI<0
定理:对于原线性定常系统,存在一个状态反馈 H ∞ H_\infty H控制器,当且仅当存在一个对称正定矩阵X和矩阵W(W不对称正定),使得 [ ( A X + B 2 W ) + ( A X + B 2 W ) T B 1 ( C 1 X + D 12 W ) T B 1 T − I D 11 T C 1 X + D 12 W D 11 − I ] < 0 \begin{bmatrix} (AX+B_2W)+(AX+B_2W)^T & B_1 & (C_1X+D_{12}W)^T \\ B_1^T & -I & D_{11}^T \\ C_1X+D_{12}W & D_{11} & -I \end{bmatrix}<0 (AX+B2W)+(AX+B2W)TB1TC1X+D12WB1ID11(C1X+D12W)TD11TI<0 X > 0 X>0 X>0成立,并且可行解 X ∗ X^* X W ∗ W^* W组成的 u = W ∗ ( X ∗ ) − 1 x u=W^*(X^*)^{-1}x u=W(X)1x是系统的一个状态反馈 H ∞ H_\infty H控制器。

该矩阵不等式是矩阵变量X和W的一个线性矩阵不等式,可利用LMI工具箱的求解器feasp来求解。

3、状态反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器

对于给定标量 γ > 0 \gamma>0 γ>0,为了求系统的状态反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器,由于:
∣ ∣ T w z ( s ) ∣ ∣ ∞ < γ ||T_{wz}(s)||_{\infty}<\gamma Twz(s)<γ得到: ∣ ∣ γ − 1 T w z ( s ) ∣ ∣ ∞ < 1 ||\gamma^{-1}T_{wz}(s)||_{\infty}<1 γ1Twz(s)<1得到:
∣ ∣ γ − 1 T w z ( s ) ∣ ∣ ∞ = ∣ ∣ γ − 1 ( C 1 + D 12 K ) [ s I − ( A + B 2 K ) ] − 1 B 1 + γ − 1 D 11 ∣ ∣ < 1 ||\gamma^{-1}T_{wz}(s)||_{\infty}=||\gamma^{-1}(C_1+D_{12}K)[sI-(A+B_2K)]^{-1}B_1+\gamma^{-1}D_{11}||<1 γ1Twz(s)=γ1(C1+D12K)[sI(A+B2K)]1B1+γ1D11<1

因此,可以通过用 γ − 1 C 1 \gamma^{-1}C_1 γ1C1 γ − 1 D 12 \gamma^{-1}D_{12} γ1D12 γ − 1 D 11 \gamma^{-1}D_{11} γ1D11代替原矩阵 C 1 C_1 C1 D 12 D_{12} D12 D 11 D_{11} D11,按原设计思路即可得到状态反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器。

此时,原矩阵不等式可写为:
[ ( A X + B 2 W ) + ( A X + B 2 W ) T B 1 γ − 1 ( C 1 X + D 12 W ) T B 1 T − I γ − 1 D 11 T γ − 1 ( C 1 X + D 12 W ) γ − 1 D 11 − I ] < 0 \begin{bmatrix} (AX+B_2W)+(AX+B_2W)^T & B_1 & \gamma^{-1}(C_1X+D_{12}W)^T \\ B_1^T & -I & \gamma^{-1}D_{11}^T \\ \gamma^{-1}(C_1X+D_{12}W) & \gamma^{-1}D_{11} & -I \end{bmatrix}<0 (AX+B2W)+(AX+B2W)TB1Tγ1(C1X+D12W)B1Iγ1D11γ1(C1X+D12W)Tγ1D11TI<0

将上式分别左乘和右乘矩阵 d i a g { I , I , γ I } diag\{I,I,\gamma I\} diag{I,I,γI},得到: [ ( A X + B 2 W ) + ( A X + B 2 W ) T B 1 ( C 1 X + D 12 W ) T B 1 T − I D 11 T C 1 X + D 12 W D 11 − γ 2 I ] < 0 \begin{bmatrix} (AX+B_2W)+(AX+B_2W)^T & B_1 & (C_1X+D_{12}W)^T \\ B_1^T & -I & D_{11}^T \\ C_1X+D_{12}W & D_{11} & -\gamma^2I \end{bmatrix}<0 (AX+B2W)+(AX+B2W)TB1TC1X+D12WB1ID11(C1X+D12W)TD11Tγ2I<0
因此,对于原线性定常系统,存在一个状态反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器,当且仅当存在一个对称正定矩阵X和矩阵W(W不对称正定),使得 [ ( A X + B 2 W ) + ( A X + B 2 W ) T B 1 ( C 1 X + D 12 W ) T B 1 T − I D 11 T C 1 X + D 12 W D 11 − γ 2 I ] < 0 \begin{bmatrix} (AX+B_2W)+(AX+B_2W)^T & B_1 & (C_1X+D_{12}W)^T \\ B_1^T & -I & D_{11}^T \\ C_1X+D_{12}W & D_{11} & -\gamma^2I \end{bmatrix}<0 (AX+B2W)+(AX+B2W)TB1TC1X+D12WB1ID11(C1X+D12W)TD11Tγ2I<0 X > 0 X>0 X>0成立,并且可行解 X ∗ X^* X W ∗ W^* W组成的 u = W ∗ ( X ∗ ) − 1 x u=W^*(X^*)^{-1}x u=W(X)1x是系统的一个状态反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器。

4、状态反馈最优 H ∞ H_\infty H控制器

基于状态反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器的存在条件,建立这样一个优化问题:
m i n   ρ s . t .   [ ( A X + B 2 W ) + ( A X + B 2 W ) T B 1 ( C 1 X + D 12 W ) T B 1 T − I D 11 T C 1 X + D 12 W D 11 − ρ I ] < 0 X > 0 min~\rho\\s.t.~\begin{bmatrix} (AX+B_2W)+(AX+B_2W)^T & B_1 & (C_1X+D_{12}W)^T \\ B_1^T & -I & D_{11}^T \\ C_1X+D_{12}W & D_{11} & -\rho I \end{bmatrix}<0\\X>0 min ρs.t. (AX+B2W)+(AX+B2W)TB1TC1X+D12WB1ID11(C1X+D12W)TD11TρI<0X>0

该问题是一个具有线性矩阵不等式约束和线性目标函数的凸优化问题,可以应用LMI工具箱的求解mincx来求解。如果该问题有解,就可以得到系统的状态反馈最优 H ∞ H_\infty H控制器。

三、输出反馈 H ∞ H_\infty H控制

1、设计思路

当系统状态难以测量时,可以选择输出反馈的控制方式。
要求设计一个输出反馈控制器 u = K y u=Ky u=Ky使得原线性定常系统渐进稳定且闭环传递函数 ∣ ∣ T w z ( s ) ∣ ∣ ∞ < 1 ||T_{wz}(s)||_{\infty}<1 Twz(s)<1

首先,需要假定: ( A , B 2 , C 2 ) (A,B_2,C_2) (A,B2,C2)是能稳能检测的; D 22 = 0 D_{22}=0 D22=0

u = K y u=Ky u=Ky写成状态空间形式为:
x ^ ˙ = A K x ^ + B K y u = C K x ^ + D K y \dot{\widehat x}=A_K\widehat x+B_Ky\\u=C_K\widehat x+D_Ky x ˙=AKx +BKyu=CKx +DKy

其中, x ^ \widehat x x 是控制器的状态,而 A K A_K AK B K B_K BK C K C_K CK D K D_K DK是待确定的控制器参数矩阵。

将控制器代入到原系统得到新的闭环系统为:
[ x ˙ x ^ ˙ ] = [ A + B 2 D K C 2 B 2 C K B K C 2 A K ] [ x x ^ ] + [ B 1 + B 2 D K D 21 B K D 21 ] w z = [ C 1 + D 12 D K C 2 D 12 C K ] [ x x ^ ] + ( D 11 + D 12 D K D 21 ) w \begin{bmatrix}\dot x \\ \dot{\widehat x} \end{bmatrix}= \begin{bmatrix}A+B_2D_KC_2 & B_2C_K \\ B_KC_2 & A_K \end{bmatrix} \begin{bmatrix}x \\ \widehat x \end{bmatrix}+ \begin{bmatrix}B_1+B_2D_KD_{21} \\ B_KD_{21} \end{bmatrix}w\\ z=\begin{bmatrix}C_1+D_{12}D_KC_2 & D_{12}C_K \end{bmatrix} \begin{bmatrix}x \\ \widehat x \end{bmatrix}+(D_{11}+D_{12}D_KD_{21})w [x˙x ˙]=[A+B2DKC2BKC2B2CKAK][xx ]+[B1+B2DKD21BKD21]wz=[C1+D12DKC2D12CK][xx ]+(D11+D12DKD21)w

简化为:
ξ ˙ = A c 1 ξ + B c 1 w z = C c 1 ξ + D c 1 w \dot \xi=A_{c1}\xi+B_{c1}w\\ z=C_{c1}\xi+D_{c1}w ξ˙=Ac1ξ+Bc1wz=Cc1ξ+Dc1w

因此,根据定理:在这里插入图片描述
新的闭环系统渐近稳定且 H ∞ H_\infty H范数小于1的充要条件是存在一个对称正定矩阵 X c 1 X_{c1} Xc1,使得:
[ A c 1 T X c 1 + X c 1 A c 1 X c 1 B c 1 C c 1 T B c 1 T X c 1 − I D c 1 T C c 1 D c 1 − I ] < 0 \begin{bmatrix} A_{c1}^TX_{c1}+X_{c1}A_{c1} & X_{c1}B_{c1} & C_{c1}^T \\ B_{c1}^TX_{c1} & -I & D_{c1}^T \\ C_{c1} & D_{c1} & -I \end{bmatrix}<0 Ac1TXc1+Xc1Ac1Bc1TXc1Cc1Xc1Bc1IDc1Cc1TDc1TI<0

2、消元法设计输出反馈 H ∞ H_\infty H控制器

定理:原线性定常系统存在一个输出反馈 H ∞ H_\infty H控制器,当且仅当存在对称正定矩阵X和Y(Y也对称正定),使得:

  1. [ N 0 0 0 I ] T [ A T X + X A X B 1 C 1 T B 1 T X − I D 11 T C 1 D 11 − I ] [ N 0 0 0 I ] < 0 \begin{bmatrix} N_0 & 0 \\ 0 & I \end{bmatrix}^T\begin{bmatrix} A^TX+XA & XB_1 & C_1^T \\ B_1^TX & -I & D_{11}^T \\ C_1 & D_{11} & -I \end{bmatrix}\begin{bmatrix} N_0 & 0 \\ 0 & I \end{bmatrix}<0 [N000I]TATX+XAB1TXC1XB1ID11C1TD11TI[N000I]<0
  2. [ N c 0 0 I ] T [ A Y + Y A T Y C 1 T B 1 C 1 Y − I D 11 B 1 T C 1 D 11 T − I ] [ N c 0 0 I ] < 0 \begin{bmatrix} N_c & 0 \\ 0 & I \end{bmatrix}^T\begin{bmatrix} AY+YA^T & YC_1^T & B_1 \\ C_1Y & -I & D_{11} \\ B_1^TC_1 & D_{11}^T & -I \end{bmatrix}\begin{bmatrix} N_c & 0 \\ 0 & I \end{bmatrix}<0 [Nc00I]TAY+YATC1YB1TC1YC1TID11TB1D11I[Nc00I]<0
  3. [ X I I Y ] ≥ 0 \begin{bmatrix} X & I \\ I & Y \end{bmatrix}\ge0 [XIIY]0

其中, N 0 N_0 N0 N c N_c Nc分别是以子空间 k e r ( [ C 2    D 21 ] ) ker([C_2~~D_{21}]) ker([C2  D21]) k e r ( [ B 2 T    D 12 T ] ) ker([B_2^T~~D_{12}^T]) ker([B2T  D12T])中任意一组基向量作为列向量所构成的矩阵。可以应用LMI工具箱的求解器feasp来求解。

按以下步骤设计所需要的输出反馈 H ∞ H_\infty H控制器:

  1. 求解满足以上定理的矩阵X和Y;
  2. 求解满足 X − Y − 1 = X 2 X 2 T X-Y^{-1}=X_2X_2^T XY1=X2X2T的矩阵 X 2 ∈ R n × n K X_2\in R^{n\times n_K} X2Rn×nK,其中 n K n_K nK可以选成矩阵 X − Y − 1 X-Y^{-1} XY1的秩;
  3. X X X X 2 X_2 X2构造 X c 1 = [ X X 2 T X 2 I ] X_{c1}=\begin{bmatrix} X & X_2^T \\ X_2 & I \end{bmatrix} Xc1=[XX2X2TI];
  4. 将矩阵 X c 1 X_{c1} Xc1代入到矩阵不等式 H X c 1 + P X c 1 T K Q + Q T K T P X c 1 < 0 H_{X_{c1}}+P_{X_{c1}}^TKQ+Q^TK^TP_{X_{c1}}<0 HXc1+PXc1TKQ+QTKTPXc1<0中,求解矩阵变量K。

注意到:
A 0 = [ A 0 0 0 ] 、 B 0 = [ B 1 0 ] 、 C 0 = [ C 1 0 ] A_0=\begin{bmatrix} A & 0 \\ 0 & 0 \end{bmatrix}、B_0=\begin{bmatrix} B_1\\ 0 \end{bmatrix}、C_0=\begin{bmatrix} C_1 & 0 \end{bmatrix} A0=[A000]B0=[B10]C0=[C10]
A ˉ = [ 0 B 2 I 0 ] 、 C ˉ = [ 0 I C 2 0 ] 、 D ˉ 12 = [ 0 D 12 ] 、 D ˉ 21 = [ 0 D 21 ] \bar A=\begin{bmatrix} 0 & B_2 \\ I & 0 \end{bmatrix}、\bar C=\begin{bmatrix} 0 & I \\ C_2 & 0 \end{bmatrix}、\bar D_{12}=\begin{bmatrix} 0 & D_{12} \end{bmatrix}、\bar D_{21}=\begin{bmatrix} 0\\ D_{21} \end{bmatrix} Aˉ=[0IB20]Cˉ=[0C2I0]Dˉ12=[0D12]Dˉ21=[0D21]
H X c 1 = [ A 0 T X c 1 + X c 1 A 0 X c 1 B 0 C 0 T B 0 T X c 1 − I D 11 T C 0 D 11 − I ] H_{X_{c1}}=\begin{bmatrix} A_0^TX_{c1}+X_{c1}A_0 & X_{c1}B_0 & C_0^T \\ B_0^TX_{c1} & -I & D_{11}^T \\ C_0 & D_{11} & -I \end{bmatrix} HXc1=A0TXc1+Xc1A0B0TXc1C0Xc1B0ID11C0TD11TI
P X c 1 = [ B ˉ T X c 1 0 D ˉ 12 T ] 、 Q = [ C ˉ D ˉ 21 T 0 ] P_{X_{c1}}=\begin{bmatrix} \bar B^TX_{c1} & 0 & \bar D_{12}^T \end{bmatrix}、Q=\begin{bmatrix} \bar C & \bar D_{21}^T & 0 \end{bmatrix} PXc1=[BˉTXc10Dˉ12T]Q=[CˉDˉ21T0]

3、输出反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器

原线性定常系统存在一个输出反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器,当且仅当存在对称正定矩阵X和Y(Y也对称正定),使得:**

  1. [ N 0 0 0 I ] T [ A T X + X A X B 1 C 1 T B 1 T X − γ I D 11 T C 1 D 11 − γ I ] [ N 0 0 0 I ] < 0 \begin{bmatrix} N_0 & 0 \\ 0 & I \end{bmatrix}^T\begin{bmatrix} A^TX+XA & XB_1 & C_1^T \\ B_1^TX & -\gamma I & D_{11}^T \\ C_1 & D_{11} & -\gamma I \end{bmatrix}\begin{bmatrix} N_0 & 0 \\ 0 & I \end{bmatrix}<0 [N000I]TATX+XAB1TXC1XB1γID11C1TD11TγI[N000I]<0
  2. [ N c 0 0 I ] T [ A Y + Y A T Y C 1 T B 1 C 1 Y − γ I D 11 B 1 T C 1 D 11 T − γ I ] [ N c 0 0 I ] < 0 \begin{bmatrix} N_c & 0 \\ 0 & I \end{bmatrix}^T\begin{bmatrix} AY+YA^T & YC_1^T & B_1 \\ C_1Y & -\gamma I & D_{11} \\ B_1^TC_1 & D_{11}^T & -\gamma I \end{bmatrix}\begin{bmatrix} N_c & 0 \\ 0 & I \end{bmatrix}<0 [Nc00I]TAY+YATC1YB1TC1YC1TγID11TB1D11γI[Nc00I]<0
  3. [ X I I Y ] ≥ 0 \begin{bmatrix} X & I \\ I & Y \end{bmatrix}\ge0 [XIIY]0

其中, N 0 N_0 N0 N c N_c Nc分别是以子空间 k e r ( [ C 2    D 21 ] ) ker([C_2~~D_{21}]) ker([C2  D21]) k e r ( [ B 2 T    D 12 T ] ) ker([B_2^T~~D_{12}^T]) ker([B2T  D12T])中任意一组基向量作为列向量所构成的矩阵。可以应用LMI工具箱的求解器feasp来求解。

4、输出反馈最优 H ∞ H_\infty H控制器

基于输出反馈 γ \gamma γ-次优 H ∞ H_\infty H控制器的存在条件,建立这样一个优化问题:
m i n   ρ s . t .   [ N 0 0 0 I ] T [ A T X + X A X B 1 C 1 T B 1 T X − ρ I D 11 T C 1 D 11 − ρ I ] [ N 0 0 0 I ] < 0 [ N c 0 0 I ] T [ A Y + Y A T Y C 1 T B 1 C 1 Y − ρ I D 11 B 1 T C 1 D 11 T − ρ I ] [ N c 0 0 I ] < 0 [ X I I Y ] ≥ 0 min~\rho\\s.t.~\begin{bmatrix} N_0 & 0 \\ 0 & I \end{bmatrix}^T\begin{bmatrix} A^TX+XA & XB_1 & C_1^T \\ B_1^TX & -\rho I & D_{11}^T \\ C_1 & D_{11} & -\rho I \end{bmatrix}\begin{bmatrix} N_0 & 0 \\ 0 & I \end{bmatrix}<0\\ \begin{bmatrix} N_c & 0 \\ 0 & I \end{bmatrix}^T\begin{bmatrix} AY+YA^T & YC_1^T & B_1 \\ C_1Y & -\rho I & D_{11} \\ B_1^TC_1 & D_{11}^T & -\rho I \end{bmatrix}\begin{bmatrix} N_c & 0 \\ 0 & I \end{bmatrix}<0\\ \begin{bmatrix} X & I \\ I & Y \end{bmatrix}\ge0 min ρs.t. [N000I]TATX+XAB1TXC1XB1ρID11C1TD11TρI[N000I]<0[Nc00I]TAY+YATC1YB1TC1YC1TρID11TB1D11ρI[Nc00I]<0[XIIY]0

通过LMI工具箱的求解器mincx可以求解系统的输出反馈最优 H ∞ H_\infty H控制器。

5、连续时间系统 H ∞ H_\infty H控制器综合问题求解器hinflmi

对于以下一阶系统:
x ˙ = w + 2 u z = x y = − x + w \dot x=w+2u\\z=x\\y=-x+w x˙=w+2uz=xy=x+w
需要首先在MATLAB中建立系统,使用ltisys函数。
ltisys函数的基本用法是G=ltisys(A,B,C,D);

使用hinflmi函数可得到系统的最优 H ∞ H_\infty H控制器。
hinflmi函数的基本用法是==[gopt,K]=hinflmi(system,[p m])==,通过mincx来优化系统的 H ∞ H_\infty H性能指标,其中p是系统测量输出的个数,m是系统控制输入的个数,K是最优 H ∞ H_\infty H控制器系统矩阵,可通过ltiss函数得到其状态空间实现。

A=0;B1=1;B2=2;
C1=1;D11=0;D12=0;
C2=-1;D21=1;D22=0;
B=[B1 B2];C=[C1;C2];D=[D11,D12;D21,D22];
G=ltisys(A,B,C,D);
[gopt,K]=hinflmi(G,[1 1]);
[Ak,Bk,Ck,Dk]=ltiss(K)

可以得到系统的最优 H ∞ H_\infty H性能指标为:best objective value: 1.002517。

如果想计算满足 H ∞ H_\infty H性能 γ < 10 \gamma<10 γ<10的一个输出反馈次优 H ∞ H_\infty H控制器,可以输入[gopt,K]=hinflmi(G,[1 1],10);

clsys=slft(G,K);	% 闭环系统clsys
spol(clsys);		% 返回闭环系统的极点,检验稳定性
norminf(clsys);		% 返回EE增益

四、状态反馈 H ∞ H_{\infty} H控制实例

1、控制器参数求解

clc;clear all
%% 某系统
A=[0  1       0       0;
   0 -0.0883  0.6293  0;
   0  0       0       1;
   0 -0.2357  27.8285 0] ;
B1=[0 2.3566  0 104.2027]';
B2=[0 0.8832  0 2.3566]';
C1=[0.064 0     0    0;
    0     1e-3  0    0;
    0     0     0.11 0;
    0     0     0    0.01;
    0     0     0    0];
D12=[0 0 0 0 0.01]';
D11=[0 0 0 0 0]';
C2=[1 0 0 0;
    0 0 1 0;
    0 0 0 0;
    0 0 0 0];
D21=[0 0 0 0]';
D22=[0 0 0 0]';
%% 状态反馈H无穷控制器
setlmis([])
X=lmivar(1,[4 1]);              % 对称正定矩阵X
W=lmivar(2,[1 4]);              % 矩阵W
lmiterm([1 1 1 X],A,1,'s');     % AX+(AX)'    11
lmiterm([1 1 1 W],B2,1,'s');    % B2W+(B2W)'  11
lmiterm([1 2 1 0],B1');         % B1'         21
lmiterm([1 2 2 0],-1);          % -I          22
lmiterm([1 3 1 X],C1,1);        % C1X         31
lmiterm([1 3 1 W],D12,1);       % D12W        31
lmiterm([1 3 2 0],D11);         % D11         32
lmiterm([1 3 3 0],-1);          % -I          33
lmiterm([-2 1 1 X],1,1);        % X>0	特别注意不能漏掉
lmisys=getlmis;
[tmin, xfeas]=feasp(lmisys);
XX1=dec2mat(lmisys,xfeas,X);
WW1=dec2mat(lmisys,xfeas,W);
K1=WW1*inv(XX1);
%% 状态反馈H无穷gamma-次优控制器 取gamma=2;
setlmis([])
X=lmivar(1,[4 1]);              % 对称正定矩阵X
W=lmivar(2,[1 4]);              % 矩阵W
lmiterm([1 1 1 X],A,1,'s');     % AX+(AX)'    11
lmiterm([1 1 1 W],B2,1,'s');    % B2W+(B2W)'  11
lmiterm([1 2 1 0],B1');         % B1'         21
lmiterm([1 2 2 0],-1);          % -I          22
lmiterm([1 3 1 X],C1,1);        % C1X         31
lmiterm([1 3 1 W],D12,1);       % D12W        31
lmiterm([1 3 2 0],D11);         % D11         32
lmiterm([1 3 3 0],-4);          % -4I         33
lmiterm([-2 1 1 X],1,1);        % X>0	特别注意不能漏掉
lmisys=getlmis;
[tmin, xfeas]=feasp(lmisys);
XX2=dec2mat(lmisys,xfeas,X);
WW2=dec2mat(lmisys,xfeas,W);
K2=WW2*(XX2)^-1;
%% 最优状态反馈H无穷控制器
setlmis([])
X=lmivar(1,[4 1]);              % 对称正定矩阵X
W=lmivar(2,[1 4]);              % 矩阵W
rho=lmivar(1,[1 1]);            % rho
lmiterm([1 1 1 X],A,1,'s');     % AX+(AX)'    11
lmiterm([1 1 1 W],B2,1,'s');    % B2W+(B2W)'  11
lmiterm([1 2 1 0],B1');         % B1'         21
lmiterm([1 2 2 0],-1);          % -I          22
lmiterm([1 3 1 X],C1,1);        % C1X         31
lmiterm([1 3 1 W],D12,1);       % D12W        31
lmiterm([1 3 2 0],D11);         % D11         32
lmiterm([1 3 3 rho],-1,1);      % -rhoI       33
lmiterm([-2 1 1 X],1,1);        % X>0
lmisys=getlmis;
n = decnbr(lmisys);             % 系统决策变量个数
c = zeros(n,1);                 % 确定向量c的维数
for j=1:n
     [r1j]=defcx(lmisys,j,rho);
      c(j)=trace(r1j);
end
%c=mat2dec(lmisys,zeros(4,4),zeros(1,4),eye(1))
[copt,xopt]=mincx(lmisys,c);
XX3=dec2mat(lmisys,xopt,X);
WW3=dec2mat(lmisys,xopt,W);
K3=WW3*(XX3)^-1;
rhoo=dec2mat(lmisys,xopt,rho);  

2、仿真

在这里插入图片描述
本文是作者在日常学习生活中所作,难免有遗漏或错误,遇到问题的读者请点击给我写信向我的邮箱反馈,不胜感激。

  • 47
    点赞
  • 227
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: 要编写一个控制无穷迭代次数的MATLAB程序,可以使用while循环和条件判断来实现。 首先,我们需要定义一个初始值,通常使用一个较大的数作为初始值,例如h=1e20。然后,在while循环中,我们可以设置终止条件,例如当h小于某个阈值时停止迭代。这个阈值可以是一个较小的正数,例如1e-6。 在每次循环中,我们可以根据需要进行计算和处理,并更新h的值。例如,我们可以在每次循环中对h进行除以2的操作,即h=h/2。此外,我们还可以根据具体需求添加其他计算和处理步骤。 当h满足终止条件时,程序将自动停止迭代并输出结果。如果h没有满足终止条件,程序将继续循环。 下面是一个示例程序的伪代码: ```matlab h = 1e20; % 初始值设定 threshold = 1e-6; % 终止条件阈值 while h > threshold % 进行计算和处理 % 更新h的值 % 终止条件判断 if h < threshold break; % 跳出循环 end end disp('迭代结束'); ``` 这段示例代码中的循环部分可以根据具体的计算和处理需求进行修改和补充。通过这样的设计,我们可以控制无穷迭代次数,并在满足终止条件时停止迭代。 ### 回答2: H无穷控制是一种用于线性时不变系统的鲁棒控制方法。在MATLAB中,我们可以使用控制系统工具箱中的函数来设计和分析H无穷控制器。 首先,我们需要使用函数tf()或ss()创建系统传递函数或状态空间模型。然后,可以使用函数hinfsyn()来设计H无穷控制器。 hinfsyn()函数的语法为: [K,CL,GAM,INFO] = hinfsyn(SYS,NMEAS,NCON,WEIGHT) 其中,SYS是系统模型,NMEAS是测量输入的数量,NCON是控制输入的数量,WEIGHT是性能权重函数。 设计好H无穷控制器后,我们可以使用函数h2syn()计算系统的H2性能指标。此外,我们还可以使用函数getIOTransfer()和getLoopTransfer()来获取控制器的输入输出传递函数和闭环传递函数。 在H无穷控制设计完成后,可以使用simulink()函数来建立仿真模型,并对系统进行仿真。通过观察仿真结果,我们可以评估H无穷控制器的性能和稳定性。 此外,MATLAB还提供了一些用于系统分析和优化的函数,如norm()用于计算系统范数,robustperf()用于鲁棒性能分析,mixsyn()用于混合H2/H无穷控制设计等。 总之,在MATLAB中,我们可以使用控制系统工具箱提供的函数来设计、分析和优化H无穷控制器。通过这些功能,我们可以方便地应用H无穷控制方法来解决实际控制问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值