1 问题描述

2 参考链接

Chenglin Li:鲁棒控制理论(一)LMI矩阵不等式

Chenglin Li:鲁棒控制理论(二)LMI矩阵不等式工具箱

3 求解程序(无可行解)

function delta=LMI20201014()
%{
程序功能:
1、求解LMI矩阵不等式
2、两个LMI限定条件
3、求最小值

by   :Chenglin Li
date:2020.10.14

%}
    clear,clc
    %% 变量初始化
    setlmis([]); %初始化LMI系统
    pa.n=2; %矩阵阶数
    pa.A=diag([-2,-0.7]) ;
    pa.Ad=[-1, 0; -1, -0.9];
    pa.B=[-0.5; 1] ;
    pa.Wm=1;
    pa.h=0.7 ;
    pa.u=0:0.1:0.5 ; 
    %% 矩阵声明
    P=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    S=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    R=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    W=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    X=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    Y=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    Z=lmivar(1,[pa.n,1]) ; %2阶对称矩阵满块
    alpha=lmivar(1,[1,1]) ;%标量alpha
    
    
%     Phi=( (P+X)*A+A'*(P+X) )+alpha*(P+X)+( Y+Y' )+S+h*R ;
    u=pa.u(5);
    
    
    %% 描述第一组LMI
    lmiterm([-1,1,1,X],1,1); %X
    lmiterm([-1,1,2,Y],1,1); %Y
    lmiterm([-1,2,2,Z],1,1); %Z
    lmiterm([-1,2,2,S], pa.h*exp(-alpha*pa.h),1) ;
    
    %% 描述第二组LMI
    lmiterm([2,1,1,P+X],  pa.A', 1 ,'s') ;%(P+X)*A+A'*(P+X) 
    lmiterm([2,1,1,Y], 1,1 ,'s') ; %Y+Y' 
    lmiterm([2,1,1,P+X], alpha, 1) ;%alpha*(P+X)
    lmiterm([2,1,1,S], 1, 1) ; %S 
    lmiterm([2,1,1,R], pa.h, 1) ; %h*R 
    lmiterm([2,1,2,P], 1, pa.Ad) ;%P*Ad
    lmiterm([2,1,2,X], 1, pa.Ad) ;%X*Ad
    lmiterm([2,1,2,Y], -1, 1) ;   %-Y
    lmiterm([2, 1, 3, Y], pa.A', 1) ; %A'*Y 
    lmiterm([2,1,3,Z],1,1) ; %Z
    lmiterm([2,1,3,Y],alpha,1); %alpha*Y
    lmiterm([2,1,4,P], 1, pa.B) ;%P*B
    lmiterm([2,1,4,X], 1, pa.B) ;%X*B
    lmiterm([2,1,5,Y],1,1) ;%Y
    lmiterm([2,2,2,W],u^2, 1) ; %u^2*W
    lmiterm([2,2,2,S], (u-1)*exp(-alpha*pa.h) ,1 ) %(u-1)*exp(-alpha*h)*S
    lmiterm([2,2,3,Y], pa.Ad', 1); %Ad'*Y
    lmiterm([2,2,3, Z],-1,1); %-Z
    lmiterm([2,3,3,R],-1/pa.h*exp(-alpha*pa.h),1); %-h*exp(-alpha*h)*R
    lmiterm([2,3,3,Z], alpha,1) ;%alpha*Z
    lmiterm([2,3,4,-Y],1,pa.B); %Y'*B
    lmiterm([2,3,5,Z],1,1); %Z
    lmiterm([2,4,4,alpha], 1,-1/(pa.Wm^2) ) ; %-alpha/Wm^2 
    lmiterm([2,5,5,W],-1,1); %-W
    
    %% 描述第三组LMI
    lmiterm([-3,1,1,alpha],1,1) ;%alpha>0
    lmiterm([-4,1,1,P],1,1) ; %P>0
    lmiterm([-5,1,1,W],1,1) ;%W>0
    lmiterm([-6,1,1,R],1,1) ;%R>0
    lmiterm([-7,1,1,S],1,1) ;%S>0
    
    
    %% 描述第四组LMI
    delta=lmivar(1,[1,1]) ; %1阶对称矩阵满块
    lmiterm([-8,1,1,delta],1,eye(2)) ;
    lmiterm([-8,1,2,0],eye(2)) ;%单位矩阵
    lmiterm([-8,2,2,P],1,1) ;
    
    %% 描述第五组LMI
    lmiterm([-9,1,1,delta],1,1) ;%delta>0
    lmisys=getlmis ; %求解结束
    
    %% 求解最小delta
%     options=[1e-3, 0, 0, 0, 0]; %计算精度
%     c=mat2dec(lmisys, eye(9,9) ) ; %最优delta的trace
%     [copt,xopt]=mincx(lmisys , c, options);
%     delta=dec2mat(lmisys, xopt, delta); %最优delta
    
%% 求解最小delta
%     n=decnbr(lmisys) ;%lmisys决策变量的个数
%     c=zeros(n,1) ;
%     for j=1:n
%         [deltaj,pj]=defcx(lmisys,j,delta,P);
%         c(j)=trace(deltaj) ;
%     end
%     
%     [copt,xopt]=mincx(lmisys , c, options);
%     delta=dec2mat(lmisys, xopt, delta); %最优delta


%% 求解可行的delta

    [tmin, xfeas] =feasp(lmisys) ;
    if(tmin<0)
        disp('Feasible');
    else
        delta=[];
        return
        
    end
    delta=dec2mat(lmisys, xfeas, delta);
end

——2020.10.14——