1 模型

  • 考虑2x2耦合系统

[公式]

  • 转化为标准鲁棒H∞控制状态空间形式

[公式]

  • 矩阵参数

[公式]

2 仿真计算

鲁棒控制2x2耦合系统
  • 计算出状态反馈矩阵

[公式]

鲁棒镇定结果

3 LMI计算程序

function [X,W]=LMIC(A,B1,B2,C1,D11,D12,gamma)
%{
程序功能:
1、利用LMI求解H∞状态反馈
2、

参考文献:[1]吕 申,武俊峰.基于 LMI 优化的鲁棒控制器设计[J].工业仪表与自动化装置,2017,3:123-128.
%}
%     clear,clc
%     A=[0,1,0,0;  0,-0.0618,-0.7167,0;  0,0,0,1;  0,0.2684,31.6926,0];
%     B1=[0; -2.6838; 0; 118.6765];
%     B2=[0 ;0.8906;0;-2.6838];
%     C1=[1e-5,0,0,0;  0,-1e-4,0,0;  0,0,-0.01,0;  0,0,0,-0.01];
%     D11=[0;0;0];
%     D12=[0;0;0];% 参数初始化
%     gamma=1;
    %构建矩阵变量
    N=length(A);
    setlmis([]);
    [n1,n2]=size(B2);
    [X,n,Sx]=lmivar(1,[N,1]); %4阶的对称满块
    [W,n,Sw]=lmivar(2,[n2,N]); %1*4的矩阵
    
    %描述LMI
    %{
    lmiterm([1,1,1,X],A,1,'s');  %AX+(AX)'
    lmiterm([1,1,1,W],B2,1,'s'); %B2*W+(B2*W)'
    lmiterm([1,1,2,0],B1); %B1
    lmiterm([1,1,3,-W],1,D12');%W*D2'
    lmiterm([1,1,3,X],1,C1');%X*C1'
    lmiterm([1,2,2,0],-1); %-I
    lmiterm([1,2,3,0],D11' );%D11'
    lmiterm([1,3,3,0], -gamma^2);%-gamma^2*I
    %}
    %-------------------------------
    lmiterm([1,1,1,X],A,1,'s');  %AX+(AX)'
    lmiterm([1,1,1,W],B2,1,'s');  %B2*W+(B2*W)'
    lmiterm([1,1,2,0], B1);  %C1*X
    lmiterm([1,1,3,X],1,C1' ); %D12*W
    lmiterm([1,1,3,-W],1,D12' ); %W'*D12'
    lmiterm([1,2,2,0],-gamma^2);%-gamma
    lmiterm([1,2,3,0],D11'); %D12'
    lmiterm([1,3,3,0], -1 ); %-I
    %------------------------------------------
    lmiterm([-2,1,1,X],1,1); %X正定
    %------------------------------------------
    lmisys=getlmis ;%获取lmi信息
    
    %求解可行解X,W
    [tmin, xfeas]=feasp(lmisys);
    if(tmin<0)
        disp('Feasible');
    else
        sys=[];
        return
        
    end
    X=dec2mat(lmisys, xfeas, X);
    W=dec2mat(lmisys, xfeas, W);
    
    %获取反馈控制器
%     K=W*inv(X);
%     K=W/X;
%     
%     sys=K;
    
    
end

4 附录Simulink文件

LMIC.m
1.9K
·
百度网盘
MIMO.slx
24.7K
·
百度网盘
Parameters.m
823
·
百度网盘