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

本文探讨了H∞/H2控制问题,旨在设计控制器使系统同时具备鲁棒稳定性和良好性能。通过状态反馈控制,利用线性矩阵不等式(LMI)解决多目标优化问题。通过MATLAB的LMI工具箱,给出了具体的代码实例和hinfmix函数的应用,展示了解决此类控制问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 H ∞ / H 2 H_{\infty}/H_2 H/H2控制问题

实际设计过程中,人们常常需要系统满足多项性能要求。
对于这样的系统:
x ˙ = A x + B u + B 1 w 1 + B 2 w 2 z 1 = C 1 x + D 10 u + D 11 w 1 z 2 = C 2 x + D 20 u + D 22 w 2 \dot x=Ax+Bu+B_1w_1+B_2w_2\\ z_1=C_1x+D_{10}u+D_{11}w_1\\ z_2=C_2x+D_{20}u+D_{22}w_2 x˙=Ax+Bu+B1w1+B2w2z1=C1x+D10u+D11w1z2=C2x+D20u+D22w2
目的是设计一个控制器,使得闭环系统渐进稳定,并且从 w 1 w_1 w1 z 1 z_1 z1的闭环传递函数 T w 1 z 1 T_{w_1z_1} Tw1z1 H ∞ H_{\infty} H范数不超过一个给定的上界 γ 1 \gamma_1 γ1,以保证闭环系统具有鲁棒稳定性;同时使得从 w 2 w_2 w2 z 2 z_2 z2的闭环传递函数 T w 2 z 2 T_{w_2z_2} Tw2z2 H 2 H_2 H2范数尽可能小,以保证用 H 2 H_2 H2范数度量的系统性能处于一个较好的水平

这样一个问题相当于在使得闭环系统满足:
σ ( A c ) ⊂ C − , ∣ ∣ T w 1 z 1 ∣ ∣ ∞ < γ 1 , ∣ ∣ T w 2 z 2 ∣ ∣ 2 < γ 2 \sigma(A_c)\subset C^-,||T_{w_1z_1}||_{\infty}<\gamma_1,||T_{w_2z_2}||_2<\gamma_2 σ(Ac)C,Tw1z1<γ1,Tw2z22<γ2

的所有控制器中,寻找使得 γ 2 \gamma_2 γ2最小化的控制器。这个问题称为系统的多目标 H ∞ / H 2 H_{\infty}/H_2 H/H2控制问题。

牺牲系统的鲁棒性,可以在一定程度上改进系统的性能。

二、状态反馈 H ∞ / H 2 H_{\infty}/H_2 H/H2控制律设计

1、设计思路

在状态反馈 u = K x u=Kx u=Kx的情况下,原闭环系统转化为:
x ˙ = ( A + B K ) x + B 1 w 1 + B 2 w 2 z 1 = ( C 1 + D 10 K ) x + D 11 w 1 z 2 = ( C 2 + D 20 K ) x + D 22 w 2 \dot x=(A+BK)x+B_1w_1+B_2w_2\\ z_1=(C_1+D_{10}K)x+D_{11}w_1\\ z_2=(C_2+D_{20}K)x+D_{22}w_2 x˙=(A+BK)x+B1w1+B2w2z1=(C1+D10K)x+D11w1z2=(C2+D20K)x+D22w2

定理:对原系统和一个给定的标量 γ 1 > 0 \gamma_1>0 γ1>0,若 D 22 = 0 D_{22}=0 D22=0,以下的优化问题
m i n    γ 2 s . t .    [ A X + B W + ( A X + B W ) T B 1 ( C 1 X + D 10 W ) T B 1 T − γ 1 I D 11 T C 1 X + D 10 W D 11 − γ 1 I ] < 0 A X + B W + ( A X + B W ) T + B 2 B 2 T < 0 [ − Z C 2 X + D 20 W ( C 2 X + D 20 W ) T − X ] < 0 T r a c e ( Z ) < γ 2 min~~\gamma_2\\ s.t.~~\begin{bmatrix} AX+BW+(AX+BW)^T & B_1 & (C_1X+D_{10}W)^T \\ B_1^T & -\gamma_1I & D_{11}^T \\ C_1X+D_{10}W & D_{11} & -\gamma_1I \end{bmatrix}<0 \\ AX+BW+(AX+BW)^T+B_2B_2^T<0 \\ \begin{bmatrix} -Z & C_2X+D_{20}W \\ (C_2X+D_{20}W)^T & -X \end{bmatrix}<0 \\ Trace(Z)<\gamma_2 min  γ2s.t.  AX+BW+(AX+BW)TB1TC1X+D10WB1γ1ID11(C1X+D10W)TD11Tγ1I<0AX+BW+(AX+BW)T+B2B2T<0[Z(C2X+D20W)TC2X+D20WX]<0Trace(Z)<γ2

有一个最优解X、W,则系统的状态反馈 H ∞ / H 2 H_{\infty}/H_2 H/H2控制问题是可解的,并且 u = W X − 1 x u=WX^{-1}x u=WX1x是系统的一个状态反馈 H ∞ / H 2 H_{\infty}/H_2 H/H2控制律

以上问题是一个具有线性矩阵不等式约束和线性目标函数的凸优化问题,可应用LMI工具箱的求解器mincx来求解。

2、代码实例

clc;clear all
%% 某系统
A=[0  1       0       0;
   0 -0.0883  0.6293  0;
   0  0       0       1;
   0 -0.2357  27.8285 0] ;
B=[0 1.05  0 10.2]';
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];
D10=[0 0 0 0 0.01]';
D11=[0 0 0 0 0.01]';
C2=[1 0 0 0;
    0 0 1 0;
    0 0 0 0;
    0 0 0 0];
D20=[0 0 0 0.01]';
D22=[0 0 0 0]';
%% 状态反馈H2/H无穷控制器
gamma1=5;
setlmis([])
X=lmivar(1,[4 1]);              % 对称正定矩阵X
W=lmivar(2,[1 4]);              % 矩阵W
gamma2=lmivar(1,[1 1]);          % gamma
[Z11,~,sZ11]=lmivar(1,[1 1]);              % Z11
[Z12,~,sZ12]=lmivar(1,[1 1]);              % Z12
[Z13,~,sZ13]=lmivar(1,[1 1]);              % Z13
[Z14,~,sZ14]=lmivar(1,[1 1]);              % Z14
[Z22,~,sZ22]=lmivar(1,[1 1]);              % Z22
[Z23,~,sZ23]=lmivar(1,[1 1]);              % Z23
[Z24,~,sZ24]=lmivar(1,[1 1]);              % Z24
[Z33,~,sZ33]=lmivar(1,[1 1]);              % Z33
[Z34,~,sZ34]=lmivar(1,[1 1]);              % Z34
[Z44,~,sZ44]=lmivar(1,[1 1]);              % Z44
Z=lmivar(3,[sZ11, sZ12, sZ13, sZ14;
            sZ12, sZ22, sZ23, sZ24;
            sZ13, sZ23, sZ33, sZ34;
            sZ14, sZ24, sZ34, sZ44;]);

lmiterm([1 1 1 X],A,1,'s');     % AX+(AX)'    11
lmiterm([1 1 1 W],B,1,'s');     % BW+(BW)'  11
lmiterm([1 2 1 0],B1');         % B1'         21
lmiterm([1 2 2 0],-gamma1);     % -gamma1I          22
lmiterm([1 3 1 X],C1,1);        % C1X         31
lmiterm([1 3 1 W],D10,1);       % D10W        31
lmiterm([1 3 2 0],D11);         % D11         32
lmiterm([1 3 3 0],-gamma1);     % -I          33

lmiterm([2 1 1 X],A,1,'s');     % AX+(AX')
lmiterm([2 1 1 W],B,1,'s');     % BW+(BW)'  11
lmiterm([2 1 1 0],B2*B2');       % B2B2'

lmiterm([3 1 1 Z],-1,1);        % -Z
lmiterm([3 1 2 X],C2,1);        % C2X
lmiterm([3 1 2 W],D20,1);       % D20W
lmiterm([3 2 2 X],-1,1);        % -X

lmiterm([4 1 1 Z11],1,1);       % Z11
lmiterm([4 1 1 Z22],1,1);       % Z22
lmiterm([4 1 1 Z33],1,1);       % Z33
lmiterm([4 1 1 Z44],1,1);       % Z44
lmiterm([-4 1 1 gamma2],1,1);    % gamma

lmisys=getlmis;
n = decnbr(lmisys);             % 系统决策变量个数
c = zeros(n,1);                 % 确定向量c的维数
for j=1:n
     [r1j]=defcx(lmisys,j,gamma2);
      c(j)=trace(r1j);
end
[copt,xopt]=mincx(lmisys,c);
XX3=dec2mat(lmisys,xopt,X);
WW3=dec2mat(lmisys,xopt,W);
K3=WW3*(XX3)^-1;
gammaa=dec2mat(lmisys,xopt,gamma2);

输出结果为:best objective value: 7.177674
在这里插入图片描述

三、hinfmix函数

LMI工具箱提供了求解 H ∞ / H 2 H_{\infty}/H_2 H/H2控制问题的一个函数hinfmix,该函数求解了原系统的多目标输出反馈控制问题

hinfmix可以计算这样一个综合问题的解。
设计一个线性时不变控制器K,使得闭环系统满足:

  • ∣ ∣ T w z ∞ ∣ ∣ ∞ < γ 0 ||T_{wz_{\infty}}||_{\infty}<\gamma_0 Twz<γ0
  • ∣ ∣ T w z 2 ∣ ∣ 2 < ν 0 ||T_{wz_2}||_2<\nu_0 Twz22<ν0
  • 闭环系统的极点位于某个给定的LMI区域
  • 性能指标 α ∣ ∣ T w z ∞ ∣ ∣ ∞ 2 + β ∣ ∣ T w z 2 ∣ ∣ 2 2 \alpha||T_{wz_{\infty}}||_{\infty}^2+\beta||T_{wz_2}||_2^2 αTwz2+βTwz222最小化

函数hinfmix的一般形式是[gopt,h2opt,K,R,S]=hinfmix(P,r,obj,region,dkbnd,tol);
其中,P是控制对象的系统矩阵表示,r是一个3元向量,依次表示 z 2 z_2 z2、y和u的维数。 o b j = [ γ 0 , ν 0 , α , β ] obj=[\gamma_0,\nu_0,\alpha,\beta] obj=[γ0,ν0,α,β]是一个4元向量,表示 H ∞ / H 2 H_{\infty}/H_2 H/H2约束及 H ∞ 性 能 和 H 2 H_{\infty}性能和H_2 HH2性能的权重情况,其余部分是可选项。

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

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值