Hello,
I would like to thank Johan Lofberg
for the YALMIP which eased my LMI formulation, and of course I will refer in my results.
Coming to the point, I tried to solve a controller synthesis problem via the feasibility of LMIs in YALMIP interface. My program is given below and my issue is that the eig_max (second line from the bottom of the code), which is the maximum of eigen values of LMIs, is of the order 10^-12. Can i still consider the LMIs as feasible? Why I am asking is, when I use the controller of the resulting program (K1,K2), I obtain the stable dynamics.
X =sdpvar(2,2,2,'symmetric'); Y =sdpvar(1,2,2);
ld_L=[0.2 0.8;0.8 0.2];ld_H=ld_L;
H1=[2 10;0 2]; H2=[2 0;10 2]; B1=-[1 0]'; B2=-[0 1]'; %system dynamics
ld_L=sqrt(ld_L);ld_H=sqrt(ld_H);
lmi1=blkvar;
lmi1(1,1)=-X(:,:,1);
lmi1(1,3)=(ld_L(1,1))*(H1*X(:,:,1)+B1*Y(:,:,1));
lmi1(2,2)= -X(:,:,2);
lmi1(2,3)=(ld_L(1,2))*(H1*X(:,:,1)+B1*Y(:,:,1));
lmi1(3,3)=- -X(:,:,1);
lmi1=sdpvar(lmi1);
lmi2=blkvar;
lmi2(1,1)=-X(:,:,1);
lmi2(1,3)=(ld_H(1,1))*(H1*X(:,:,1)+B1*Y(:,:,1));
lmi2(2,2)=-X(:,:,2);
lmi2(2,3)=(ld_H(1,2))*(H1*X(:,:,1)+B1*Y(:,:,1));
lmi2(3,3)=-X(:,:,1);
lmi2=sdpvar(lmi2);
lmi3=blkvar;
lmi3(1,1)=-X(:,:,1);
lmi3(1,3)= (ld_L(2,1))*(H2*X(:,:,2)+B2*Y(:,:,2));
lmi3(2,2)=-X(:,:,2);
lmi3(2,3)= (ld_L(2,2))*(H2*X(:,:,2)+B2*Y(:,:,2));
lmi3(3,3)=-X(:,:,2);
lmi3=sdpvar(lmi3);
lmi4=blkvar;
lmi4(1,1)=-X(:,:,1);
lmi4(1,3)= (ld_H(2,1))*(H2*X(:,:,2)+B2*Y(:,:,2));
lmi4(2,2)=-X(:,:,2);
lmi4(2,3)= (ld_H(2,2))*(H2*X(:,:,2)+B2*Y(:,:,2));
lmi4(3,3)=-X(:,:,2);
lmi4=sdpvar(lmi4);
F=set([X(:,:,1)>0,X(:,:,2)>0,lmi1<0,lmi2<0,lmi3<0,lmi4<0]);
options = sdpsettings('solver','sedumi', 'verbose',1,'debug',1);
solution =solvesdp(F,[],options) %#ok<*NOPTS>
X=double(X);Y=double(Y);
lmi1=double(lmi1);lmi2=double(lmi2);lmi3=double(lmi3);lmi4=double(lmi4);
eig_max= max([eig(lmi1);eig(lmi2);eig(lmi3);eig(lmi4)])
K1=Y(:,:,1)/(X(:,:,1)); K2=Y(:,:,2)/(X(:,:,2)); % stablilizing controller