MATLAB |
%sf_syn_lmi4.m
%-----
clear all, close all
A=[0 1;0 0]; B=[0;1];
[n,m]=size(B);
%-----
setlmis([]);
Y=lmivar(1,[n 1]);
Z=lmivar(2,[m n]);
%-----
alpha=1;
lmi1=newlmi;
lmiterm([lmi1,1,1,Y],A,1,'s'); %#1:A*Y+Y*A'
lmiterm([lmi1,1,1,Z],-B,1,'s'); %#1:-(B*Z+Z'*B')
lmiterm([lmi1,1,1,Y],2*alpha,1); %#1:2*alpha*Y
%-----
r=5;
lmi2=newlmi;
lmiterm([lmi2,1,1,Y],-r,1); %#2:-r*Y
lmiterm([lmi2,1,2,Y],A,1); %#2:A*Y
lmiterm([lmi2,1,2,Z],-B,1); %#2:-B*Z
lmiterm([lmi2,2,2,Y],-r,1); %#2:-r*Y
%-----
theta=pi/6; sth=sin(theta); cth=cos(theta);
lmi3=newlmi;
lmiterm([lmi3 1 1 Y],sth*A,1,'s'); %#3:sth*(A*Y+Y*A')
lmiterm([lmi3 1 1 Z],-sth*B,1,'s');%#3:-sth*(B*Z+Z'*B')
lmiterm([lmi3 1 2 Y],cth*A,1); %#3:cth*A*Y
lmiterm([lmi3 1 2 Y],1,-cth*A'); %#3:-cth*Y*A'
lmiterm([lmi3 1 2 Z],-cth*B,1); %#3:-cth*B*Z
lmiterm([lmi3 1 2 -Z],1,cth*B'); %#3:cth*Z'*B'
lmiterm([lmi3 2 2 Y],sth*A,1,'s'); %#3:sth*(A*Y+Y*A')
lmiterm([lmi3 2 2 Z],-sth*B,1,'s');%#3:-sth*(B*Z+Z'*B')
%-----
lmi4=newlmi;
lmiterm([-lmi4 1 1 Y],1,1); %#4:Y
%-----
LMIs=getlmis;
[tmin,xfeas]=feasp(LMIs);
Y=dec2mat(LMIs,xfeas,Y);
Z=dec2mat(LMIs,xfeas,Z);
F=Z/Y;
%-----
pl=eig(A-B*F)
close all,figure(1)
dregion(alpha,0,r,theta,r*[-1,1,-1,1])
plot(real(pl),imag(pl),'*')
%-----
%eof
|