我在做H∞控制,需要用LMI工具箱求出最小的γ。后来经过用mincx求解器求出了一个特别小的γ,按理说取γ为一个定值,只要比求出来的这个大都应该可以运算,但是我如果设定γ为一个不算大的常数时,tmin>0,程序如下,请各位大侠帮我看看。
(这里的X就是我要用mincx求的最小的γ)
clear;
setlmis([])
X=lmivar(1,[1,0]);
S=lmivar(1,[2,1]);
U=lmivar(1,[2,1]);
N1=lmivar(2,[2,2])
N2=lmivar(2,[2,2])
N3=lmivar(2,[2,2])
N4=lmivar(2,[2,2])
X1=lmivar(2,[2,2])
X2=lmivar(2,[2,2])
X3=lmivar(2,[2,1])
X4=lmivar(2,[2,1])
X5=lmivar(2,[2,2])
X6=lmivar(2,[2,2])
X7=lmivar(2,[2,2])
X8=lmivar(2,[2,1])
X9=lmivar(2,[2,1])
X10=lmivar(2,[2,2])
X11=lmivar(2,[2,2])
format short
A11=[0.47 0.5;-0.2 0.45];
A21=[0.17 -0.075;0.033 0.27];
B11=[0.4;0.5];
B21=[0.5;1];
C11=[0.1 0.1;0.15 0.12];
C21=[0.3 0.2;0 0.1];
M11=[0.2 0;0 0.3];
M21=[0 0.1;0.2 0];
H1=[0.4 0.2];
L1=0.2;
% 1 st lmi
lmiterm([1 1 1 S],-1,1)
lmiterm([1 5 1 N1],1,1)
lmiterm([1 5 1 X1],-1,1)
lmiterm([1 6 1 N1],1,1)
lmiterm([1 6 1 X6],-1,1)
lmiterm([1 7 1 S],A11,1)
lmiterm([1 7 1 U],A11,1)
lmiterm([1 7 1 X1],C11,1)
lmiterm([1 7 1 X6],C21,1)
lmiterm([1 8 1 S],M11,1)
lmiterm([1 8 1 U ],M11,1)
lmiterm([1 10 1 S],H1,1)
lmiterm([1 10 1 U],H1,1)
lmiterm([1 2 2 U],-1,1)
lmiterm([1 5 2 X2],-1,1)
lmiterm([1 6 2 X7],-1,1)
lmiterm([1 7 2 S],A21,1)
lmiterm([1 7 2 U],A21,1)
lmiterm([1 7 2 X2],C11,1)
lmiterm([1 7 2 X7],C21,1)
lmiterm([1 8 2 S],M21,1)
lmiterm([1 8 2 U],M21,1)
lmiterm([1 9 2 S],H1,1)
lmiterm([1 9 2 U],H1,1)
lmiterm([1 3 3 0],-X^2)
lmiterm([1 5 3 X3],-1,1)
lmiterm([1 6 3 X8],-1,1)
lmiterm([1 3 7 0],B11')
lmiterm([1 7 3 X3],C11,1)
lmiterm([1 7 3 X8],C21,1)
lmiterm([1 3 10 0],L1')
lmiterm([1 4 4 0],-X^2)
lmiterm([1 5 4 X4],-1,1)
lmiterm([1 6 4 X9],-1,1)
lmiterm([1 4 7 0],B21')
lmiterm([1 7 4 X4],C11,1)
lmiterm([1 7 4 X9],C21,1)
lmiterm([1 4 9 0],L1')
lmiterm([1 5 5 X5],-1,1)
lmiterm([1 5 5 -X5],-1,1)
lmiterm([1 5 6 -X10],-1,1)
lmiterm([1 7 5 X5],C11,1)
lmiterm([1 7 5 X10],C21,1)
lmiterm([1 6 6 X11],-1,1)
lmiterm([1 6 6 -X11],-1,1)
lmiterm([1 7 6 X11],C21,1)
lmiterm([1 7 7 S],-1,1)
lmiterm([1 7 7 U],-1,1)
lmiterm([1 8 8 S],-1,1)
lmiterm([1 8 8 U],-1,1)
lmiterm([1 9 9 0],-1)
lmiterm([1 10 10 0],-1)
lmiterm([2 1 1 S],-1,1)
lmiterm([3 1 1 U],-1,1)
lmiterm([4 1 1 X],-1,1)
lmis=getlmis
c=mat2dec(lmis,eye(1),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
options=[1e-5,0,0,0,0]
[copt,xopt]=mincx(lmis,c,options)
Xopt=dec2mat(lmis,xopt,X)
[tmin,xfeasp]=feasp(lmis)
SS=dec2mat(lmis,xfeasp,S)
UU=dec2mat(lmis,xfeasp,U)
N1=dec2mat(lmis,xfeasp,N1);
N2=dec2mat(lmis,xfeasp,N2);
N3=dec2mat(lmis,xfeasp,N3);
N4=dec2mat(lmis,xfeasp,N4);