因为刚学习LMI,所以就现成用了别人的文章想看看怎么实现。
LMI条件是:P1,P2,X12,X13 ,X23是实矩阵,P,R1,R2 ,R3 ,X11 ,X22 ,X33 ,Q1,Q2为对称正定矩阵,ei为标量大于0,i=1,2,3,4,5,6。
但是得到的结果总是tmin是大于零的,不知道哪里错了,希望大家帮我看看,谢谢
clc;
clear all;
h=0.1;
Td=0;
T=1.1608;
Bt=0.1;
A=[-1.2 0.1;-0.1 -1];
B=[-0.6 0.7;-1 -0.8];
C=[-0.2 0;0.2 -0.1];
D1=[0.1 0;0 0.1];
D2=[0.1 0;0 0.1];
D3=[0.1 0;0 0.1];
D4=[0.1 0;0 0.1];
E1=[1 0;0 1];
E2=[1 0;0 1];
E3=[1 0;0 1];
E4=[1 0;0 1];
F=[-0.1 0;0 -0.1];
G=[-0.1 0;0 -0.1];
% Initial a LMI system
setlmis([]);
% Define Variables
P=lmivar(1,[2 1]);
P1=lmivar(2,[2 2]);
P2=lmivar(2,[2 2]);
X11=lmivar(1,[2 1]);
X12=lmivar(2,[2 2]);
X13=lmivar(2,[2 2]);
X22=lmivar(1,[2 1]);
X23=lmivar(2,[2 2]);
X33=lmivar(1,[2 1]);
R1=lmivar(1,[2 1]);
R2=lmivar(1,[2 1]);
R3=lmivar(1,[2 1]);
Q1=lmivar(1,[2 1]);
Q2=lmivar(1,[2 1]);
M1=lmivar(2,[2 2]);
M2=lmivar(2,[2 2]);
M3=lmivar(2,[2 2]);
M4=lmivar(2,[2 2]);
M5=lmivar(2,[2 2]);
M6=lmivar(2,[2 2]);
M7=lmivar(2,[2 2]);
M8=lmivar(2,[2 2]);
N1=lmivar(2,[2 2]);
N2=lmivar(2,[2 2]);
N3=lmivar(2,[2 2]);
N4=lmivar(2,[2 2]);
N5=lmivar(2,[2 2]);
N6=lmivar(2,[2 2]);
N7=lmivar(2,[2 2]);
N8=lmivar(2,[2 2]);
e1=lmivar(1,[1 0]);
e2=lmivar(1,[1 0]);
e3=lmivar(1,[1 0]);
e4=lmivar(1,[1 0]);
e5=lmivar(1,[1 0]);
e6=lmivar(1,[1 0]);
% pos in (1,1)
lmiterm([1 1 1 P1],A',1,'S');
lmiterm([1 1 1 X11],T,1);
lmiterm([1 1 1 X13],1,1,'S');
lmiterm([1 1 1 Q1],1, 1);
lmiterm([1 1 1 Q2],1, 1);
lmiterm([1 1 1 M1],1,1,'S');
lmiterm([1 1 1 R3], 1,1);
lmiterm([1 1 1 e3],1,1);
% pos in (1,2)
lmiterm([1 1 2 P],1,1);
lmiterm([1 1 2 -P1],-1,1);
lmiterm([1 1 2 P2],A',1);
lmiterm([1 1 2 -M2],1,1);
% pos in (1,3)
lmiterm([1 1 3 -P1],1,B);
lmiterm([1 1 3 X12],T,1);
lmiterm([1 1 3 X13],-1,1);
lmiterm([1 1 3 -X23],1,1);
lmiterm([1 1 3 -M3],1,1);
lmiterm([1 1 3 N1],1,1);
% pos in (1,4)
lmiterm([1 1 4 -P1],1,C);
lmiterm([1 1 4 -M4],1,1);
% pos in (1,5)
lmiterm([1 1 5 -M5],1,1);
lmiterm([1 1 5 M1],-1,1);
% pos in (1,6)
lmiterm([1 1 6 N1],-1,1);
% pos in (1,7)
lmiterm([1 1 7 -P1],1,F);
lmiterm([1 1 7 -M6],1,1);
% pos in (1,8)
lmiterm([1 1 8 -P1],1,G);
lmiterm([1 1 8 -M7],1,1);
% pos in (1,9)
lmiterm([1 1 9 M1],h,1);
% pos in (1,10)
lmiterm([1 1 10 N1],T,1);
% pos in (1,11)
lmiterm([1 1 11 -P1],1,1);
% pos in (1,12)
lmiterm([1 1 12 -P1],1,1);
% pos in (1,13)
lmiterm([1 1 13 -P1],1,1);
% pos in (1,14)
lmiterm([1 1 14 -P1],1,1);
% pos in (2,2)
lmiterm([1 2 2 P2],-1,1,'S');
lmiterm([1 2 2 R1],h,1);
lmiterm([1 2 2 X33],T,1);
lmiterm([1 2 2 R2],1,1);
% pos in (2,3)
lmiterm([1 2 3 -P2],1,B);
lmiterm([1 2 3 N2],1,1);
% pos in (2,4)
lmiterm([1 2 4 -P2],1,C);
% pos in (2,5)
lmiterm([1 2 5 M2],-1,1);
% pos in (2,6)
lmiterm([1 2 6 N2],-1,1);
% pos in (2,7)
lmiterm([1 2 7 -P2],1,F);
% pos in (2,8)
lmiterm([1 2 8 -P2],1,G);
% pos in (2,9)
lmiterm([1 2 9 M2],h,1);
% pos in (2,10)
lmiterm([1 2 10 N2],T,1);
% pos in (2,11)
lmiterm([1 2 11 -P2],1,1);
% pos in (2,12)
lmiterm([1 2 12 -P2],1,1);
% pos in (2,13)
lmiterm([1 2 13 -P2],1,1);
% pos in (2,14)
lmiterm([1 2 14 -P2],1,1);
% pos in (3,3)
lmiterm([1 3 3 X22],T,1);
lmiterm([1 3 3 X23],-1,1,'S');
lmiterm([1 3 3 Q1],(1-Td),-1);
lmiterm([1 3 3 N3],1,1,'S');
lmiterm([1 3 3 e2],0.01,1);
lmiterm([1 3 3 e4],1,1);
% pos in (3,4)
lmiterm([1 3 4 -N4],1,1);
% pos in (3,5)
lmiterm([1 3 5 -N5],1,1);
lmiterm([1 3 5 M3],-1,1);
% pos in (3,6)
lmiterm([1 3 6 -N6],1,1);
lmiterm([1 3 6 N3],-1,1);
% pos in (3,7)
lmiterm([1 3 7 -N7],1,1);
% pos in (3,8)
lmiterm([1 3 8 -N8],1,1);
lmiterm([1 3 9 M3],h,1);
lmiterm([1 3 10 N3],T,1);
lmiterm([1 4 4 R2],-1,1);
lmiterm([1 4 5 M4],-1,1);
lmiterm([1 4 6 N4],-1,1);
lmiterm([1 4 9 M4],h,1);
lmiterm([1 4 10 N4],T,1);
lmiterm([1 5 5 R3],-1,1);
lmiterm([1 5 5 M5],-1,1,'S');
lmiterm([1 5 6 N5],-1,1);
lmiterm([1 5 7 -M6],-1,1);
lmiterm([1 5 8 -M7],-1,1);
lmiterm([1 5 9 M5],h,1);
lmiterm([1 5 10 N5],T,1);
lmiterm([1 6 6 Q2],-1,1);
lmiterm([1 6 6 N6],-1,1,'S');
lmiterm([1 6 7 -N7],-1,1);
lmiterm([1 6 8 -N8],-1,1);
lmiterm([1 6 9 M6],h,1);
lmiterm([1 6 10 N6],T,1);
lmiterm([1 7 7 e5],1,1);
lmiterm([1 7 7 e1],-1,1);
lmiterm([1 7 9 M7],h,1);
lmiterm([1 7 10 N7],T,1);
lmiterm([1 8 8 e6],1,1);
lmiterm([1 8 8 e2],-1,1);
lmiterm([1 8 9 M8],h,1);
lmiterm([1 8 10 N8],T,1);
lmiterm([1 9 9 R1],h,-1);
lmiterm([1 10 10 X33],T,-1);
lmiterm([1 11 11 e3],-1,1);
lmiterm([1 12 12 e4],-1,1);
lmiterm([1 13 13 e5],-1,1);
lmiterm([1 14 14 e6],-1,1);
lmiterm([-2 1 1 X11],1,1);
lmiterm([-2 1 2 X12],1,1);
lmiterm([-2 1 3 X13],1,1);
lmiterm([-2 2 2 X22],1,1);
lmiterm([-2 2 3 X23],1,1);
lmiterm([-2 3 3 X33],1,1);
lmiterm([-3 1 1 R1],1,1);
lmiterm([-4 1 1 R2],1,1);
lmiterm([-5 1 1 R3],1,1);
lmiterm([-6 1 1 Q1],1,1);
lmiterm([-7 1 1 Q2],1,1);
lmiterm([-8 1 1 P],1,1);
lmiterm([-9 1 1 X11],1,1);
lmiterm([-10 1 1 X22],1,1);
lmiterm([-11 1 1 X33],1,1);
lmiterm([-12 1 1 e1],1,1);
lmiterm([-13 1 1 e2],1,1);
lmiterm([-14 1 1 e3],1,1);
lmiterm([-15 1 1 e4],1,1);
lmiterm([-16 1 1 e5],1,1);
lmiterm([-17 1 1 e6],1,1);
lmis=getlmis;
matnbr(lmis);
[tmin,xfeas]=feasp(lmis);
P=dec2mat(lmis,xfeas,P)
P1=dec2mat(lmis,xfeas,P1)
P2=dec2mat(lmis,xfeas,P2)
X11=dec2mat(lmis,xfeas,X11)
X12=dec2mat(lmis,xfeas,X12)
X13=dec2mat(lmis,xfeas,X13)
X22=dec2mat(lmis,xfeas,X22)
X23=dec2mat(lmis,xfeas,X23)
X33=dec2mat(lmis,xfeas,X33)
R1=dec2mat(lmis,xfeas,R1)
R2=dec2mat(lmis,xfeas,R2)
R3=dec2mat(lmis,xfeas,R3)
Q1=dec2mat(lmis,xfeas,Q1)
Q2=dec2mat(lmis,xfeas,Q2)
M1=dec2mat(lmis,xfeas,M1)
M2=dec2mat(lmis,xfeas,M2)
M3=dec2mat(lmis,xfeas,M3)
M4=dec2mat(lmis,xfeas,M4)
M5=dec2mat(lmis,xfeas,M5)
M6=dec2mat(lmis,xfeas,M6)
M7=dec2mat(lmis,xfeas,M7)
M8=dec2mat(lmis,xfeas,M8)
N1=dec2mat(lmis,xfeas,N1)
N2=dec2mat(lmis,xfeas,N2)
N3=dec2mat(lmis,xfeas,N3)
N4=dec2mat(lmis,xfeas,N4)
N5=dec2mat(lmis,xfeas,N5)
N6=dec2mat(lmis,xfeas,N6)
N7=dec2mat(lmis,xfeas,N7)
N8=dec2mat(lmis,xfeas,N8)
e1=dec2mat(lmis,xfeas,e1)
e2=dec2mat(lmis,xfeas,e2)
e3=dec2mat(lmis,xfeas,e3)
e4=dec2mat(lmis,xfeas,e4)
e5=dec2mat(lmis,xfeas,e5)
e6=dec2mat(lmis,xfeas,e6)
tmin