等价输入干扰EID(四):“Yalmip与LMI实战”

等价输入干扰EID(四):“Yalmip与LMI实战”

reference:**“Improve Disturbance-Rejection Performance for an Equivalent-Input-Disturbance-Based Control System by Incorporating a ProportionalIntegral Observer” (pdf) (Wu 等, 2020, p. 1254)

A.镇稳目标

使EID系统镇稳的LMI推导详细请见上篇。

本篇论文中,使整个系统稳定的LMI条件为:

[ Ψ 11 W 2 C + B M T X 2 Ψ 13 0 ⋆ Ψ 22 Ψ 23 Ψ 24 ⋆ ⋆ Ψ 33 Ψ 34 ⋆ ⋆ ⋆ Ψ 44 ] < 0 ( 1 ) \left.\left[\begin{matrix}\Psi_{11}&W_2C+BM^\mathrm{T}X_2&\Psi_{13}&0\\\star&\Psi_{22}&\Psi_{23}&\Psi_{24}\\\star&\star&\Psi_{33}&\Psi_{34}\\\star&\star&\star&\Psi_{44}\end{matrix}\right.\right]<0\\(1) Ψ11W2C+BMTX2Ψ22Ψ13Ψ23Ψ330Ψ24Ψ34Ψ44 <0(1)

[ X 1 0 0 0 ⋆ X 2 X 2 M 0 ⋆ ⋆ X 3 0 ⋆ ⋆ ⋆ X 4 ] > 0 ( 2 ) \begin{bmatrix}X_1&0&0&0\\\star&X_2&X_2M&0\\\star&\star&X_3&0\\\star&\star&\star&X_4\end{bmatrix}>0\\(2) X10X20X2MX3000X4 >0(2)

待定LMI变量为 X 1 , X 11 , X 22 , X 3 , X 4 , W 1 , W 2 , W 3 X_1,X_{11},X_{22},X_3,X_4,W_1,W_2,W_3 X1,X11,X22,X3,X4,W1,W2,W3,其中前四个为对称半正定矩阵,后三个为合适矩阵即可

(1)式和(2)式内各参数为:

C = U [ S 0 ] T ^ T \left.C=U\left[\begin{matrix}S&0\end{matrix}\right.\right]\hat{T}^\mathrm{T} C=U[S0]T^T

X 2 = T ^ [ X 11 0 0 X 22 ] T ^ T X_2=\hat{T}\begin{bmatrix}X_{11}&0\\0&X_{22}\end{bmatrix}\hat{T}^\mathrm{T} X2=T^[X1100X22]T^T

Ψ 11 = ( A + α 1 I ) X 1 + X 1 ( A + α 1 I ) T + B W 1 + W 1 T B T Ψ 13 = W 2 C M + B X 3 Ψ 22 = ( A + α 2 I ) X 2 + X 2 ( A + α 2 I ) T − W 2 C − C T W 2 T − B M T X 2 − X 2 M B T Ψ 23 = − B X 3 + C T W 3 T + ( A + α 2 I ) X 2 M − W 2 C M Ψ 24 = − B C F X 4 + ( B F B + W 2 C ) T + X 2 M B F Ψ 33 = W 3 C M + ( W 3 C M ) T Ψ 34 = X 3 B F T + ( B F B + W 2 C M ) T Ψ 44 = ( A F + B F C F ) X 4 + X 4 ( A F + B F C F ) T \begin{aligned} &\Psi_{11} =(A+\alpha_1I)X_1+X_1(A+\alpha_1I)^\mathrm{T}+BW_1+W_1^\mathrm{T}B^\mathrm{T} \\ &\Psi_{13} =W_2CM+BX_3 \\ &\Psi_{22} =(A+\alpha_2I)X_2+X_2(A+\alpha_2I)^\mathrm{T}-W_2C-C^\mathrm{T}W_2^\mathrm{T} \\ &-BM^{\mathrm{T}}X_{2}-X_{2}MB^{\mathrm{T}} \\ &\Psi_{23} =-BX_{3}+C^{\mathrm{T}}W_{3}^{\mathrm{T}}+(A+\alpha_{2}I)X_{2}M-W_{2}CM \\ &\Psi_{24} =-BC_{F}X_{4}+(B_{F}B^{+}W_{2}C)^{\mathrm{T}}+X_{2}MB_{F} \\ &\Psi_{33} =W_3CM+(W_3CM)^\mathrm{T} \\ &\Psi_{34} =X_{3}B_{F}^{\mathrm{T}}+(B_{F}B^{+}W_{2}CM)^{\mathrm{T}} \\ &\Psi_{44} =(A_F+B_FC_F)X_4+X_4(A_F+B_FC_F)^\mathrm{T} \end{aligned} Ψ11=(A+α1I)X1+X1(A+α1I)T+BW1+W1TBTΨ13=W2CM+BX3Ψ22=(A+α2I)X2+X2(A+α2I)TW2CCTW2TBMTX2X2MBTΨ23=BX3+CTW3T+(A+α2I)X2MW2CMΨ24=BCFX4+(BFB+W2C)T+X2MBFΨ33=W3CM+(W3CM)TΨ34=X3BFT+(BFB+W2CM)TΨ44=(AF+BFCF)X4+X4(AF+BFCF)T

求解后可得参数:

{ K P = W 1 X 1 − 1 L 1 = W 2 U S X 11 − 1 S − 1 U T L 2 = W 3 U S X 11 − 1 S − 1 U T \left.\left\{\begin{aligned}K_P&=W_1X_1^{-1}\\L_1&=W_2USX_{11}^{-1}S^{-1}U^\mathrm{T}\\L_2&=W_3USX_{11}^{-1}S^{-1}U^\mathrm{T}\end{aligned}\right.\right. KPL1L2=W1X11=W2USX111S1UT=W3USX111S1UT

B.基于 YalmipMatlab 程序编写

1.初始化准备

%清空环境
clear;  clc;

%系统矩阵
A = [-2 3; 4 -5];
B = [1;1]; 
C = [2 1];
Bd = [2;1];
M = [-1;0];

%系统参数
AF = -101;  
BF = 100;
CF = 1; 

%计算伪逆BZ
BZ = pinv(B);

%svd分解
[U,S,V] = svd(C);
V1 = V(:,1);
V2 = V(:,2);
S = S(1); 

%权重,不晓得干嘛的
w = 0.5;

%其他参数
a=1;
b=1;
alfa_1 = 1;
alfa_2 = 1;

2.定义sdpvar变量

% 半正定矩阵变量X
X1 = sdpvar(2);
X11 = sdpvar(1);
X22 = sdpvar(1);
X3 = sdpvar(1);
X4 = sdpvar(1);

%X2表达式
%V1*X11*V1'+V2*X22*V2'
X2=V1*X11*V1'+V2*X22*V2';

% 合适矩阵变量W
W1 = sdpvar(1,2);
W2 = sdpvar(2,1);
W3 = sdpvar(1);

3.构建LMI不等式

%不等式1
pusai_11 = (A*X1+alfa_1*X1)+(A*X1+alfa_2*X1)'+B*W1+(B*W1)';
pusai_12 = W2*C+B*M'*X2;
pusai_13 = W2*C*M+B*X3;
pusai_14 = 0*ones(size(pusai_13));%适当维度的全零矩阵
pusai_22 = (A*X2+alfa_2*X2)+(A*X2+alfa_2*X2)'-W2*C-(W2*C)'-B*M'*X2-(B*M'*X2)';
pusai_23 = -B*X3+C'*W3'+A*X2*M+alfa_2*X2*M-W2*C*M;
pusai_24 = -B*CF*X4+(BF*BZ*W2*C)'+X2*M*BF;
pusai_33 = W3*C*M+(W3*C*M)';
pusai_34 = X3*BF'+(BF*BZ*W2*C*M)';
pusai_44 = (AF+BF*CF)*X4+((AF+BF*CF)*X4)';

eq1 = [pusai_11  pusai_12  pusai_13  pusai_14;
       pusai_12' pusai_22  pusai_23  pusai_24;
       pusai_13' pusai_23' pusai_33  pusai_34;
       pusai_14' pusai_24' pusai_34' pusai_44;
      ];

%不等式2
Z_22 = zeros(size(X1));          %2*2全零矩阵
Z_21 = [0;0];
eq2 = [X1    Z_22    Z_21  Z_21;
       Z_22' X2      X2*M  Z_21;
       Z_21' (X2*M)' X3    0;
       Z_21' Z_21'   0     X4;
      ]

注意上式的全零阵的维度,也就是观察整个矩阵保持方阵的维度正确

4.LMI约束编程

% LMI约束
F = [X1 >= 0];
F = F + [X11 >= 0];
F = F + [X22 >= 0];
F = F + [X3 >= 0];
F = F + [X4 >= 0];
F = F + [eq1 <= 0];
F = F + [eq2 >= 0];

5.求解LMI

% 求解LMI 
sol = optimize(F);
if sol.problem == 0
    disp("求解成功");
elseif sol.problem == 1
        disp( "求解失败,无可行解");
    else
        disp( "求解失败,其他错误");
end

6.提取解

% 提取解
X1 = value(X1);
X11 = value(X11);
X22 = value(X22);
X3 = value(X3);
X4 = value(X4);
W1 = value(W1);
W2 = value(W2);
W3 = value(W3);

这里我都提取了,其实只需要些许解就ok了,不过无伤大雅

7.计算反馈控制器

% 计算反馈控制器
L1 = W2*U*S*inv(X11)*inv(S)*U'
L2 = W3*U*S*inv(X11)*inv(S)*U'
L3 = BZ*L1
Kp = W1*inv(X1)
B1=BZ;

C.仿真实战

1.仿真模型(s-function搭建)

在这里插入图片描述

2.干扰信号图

在这里插入图片描述

3.论文中LMI解得参数抑制后的输出效果

在这里插入图片描述

4.本文yalmip工具解得参数抑制输出效果

在这里插入图片描述

结论:用另外一种LMI工具一样可以解出可行参数使系统达到镇定效果

NOTICE!!!

本文使用的仿真文件的参数都在设置的Parameters.m文件,写入之后运行到工作区才能进行仿真。

上传的仿真文件是一个星期之前的版本,要自行改动些许,仿真自己琢磨去,重点是LMI求解方式!!!

  • 37
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值