1 问题描述
2 参考链接
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——
评论(0)
您还未登录,请登录后发表或查看评论