which export -allA1=[0 0 1 0;0 0 0 1;0 0.2524 0 -0.0001;0 15.0319 0 -0.0079];
A2=[0 0 1 0;0 0 0 1;0 0.2298 0 -0.0001;0 14.6544 0 -0.0079];
A3=[0 0 1 0;0 0 0 1;0 0.1664 0 -0.0001;0 13.5581 0 -0.0079];
B1=[0;0;0.8272;1.2370];B2=[0;0;0.8263;1.2086];B3=[0;0;0.8237;1.1253];
Ar=[0 1 0 0;-6 -5 0 0;0 0 0 1;0 0 -6 -5];
Br=[0;-3.1;0;4.2];
Cr=diag([1,0,0,0]);
Dr=zeros(4,1);
Q = 10^(-5)*diag([50, 50, 50, 50]);
rho=0.75;
Aag=[A1;A2;A3];
Bag=[B1;B2;B3];
s1=size(Aag);
s2=size(Bag);
% s3=size(Cag);
% s4=size(Wag);
N=s1(1)/s1(2);
n=s1(2);
m=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Y11=sdpvar(n,n,'symmetric');
P22=sdpvar(n,n,'symmetric');
X =sdpvar(N*m,n);
LMI1=[Y11>=0];
LMI2=[P22>=0];
for i=1:N
for j=1:N
Aagi = Aag(1+(i-1)*n:i*n,:);
Bagi = Bag(1+(i-1)*n:i*n,:);
Xj = X(1+(j-1)*m:j*m,:);
blkt11=Y11*Aagi'+Aagi*Y11+Xj'*Bagi'+Bagi*Xj+(1/rho)*eye(n) ;
blkt12=Y11;
blkt21=Y11;
blkt22=-inv(Q);
H1=[blkt11 blkt12;blkt21 blkt22]
LMI1=LMI1+[H1<=0.000001*eye(size(H1))];
end
end
sol=solvesdp(LMI1,[],sdpsettings('solver','sedumi'))
Y11=double(Y11);
X=double(X)
P11=inv(Y11)
for i=1:N
K(i,:)=X(i,:)*P11;
end
pause
% K=[55.2760 -310.4392 69.6191 -79.1678
% 55.1650 -310.7216 69.5844 -79.3040
% 54.2518 -309.2168 68.8104 -79.1144];
%
% P11=[0.0041 -0.0131 0.0036 -0.0033
% -0.0131 0.0621 -0.0156 0.0155
% 0.0036 -0.0156 0.0042 -0.0040
% -0.0033 0.0155 -0.0040 0.0040 ];
for i=1:N
for j=1:N
Aagi = Aag(1+(i-1)*n:i*n,:);
Bagi = Bag(1+(i-1)*n:i*n,:);
Kj = K(1+(j-1)*m:j*m,:);
blkt11=Aagi'*P11+Kj'*Bagi'*P11+P11*Aagi+P11*Bagi*Kj+(1/rho)*P11*P11+Q ;
blkt12=-P11*Bagi*Kj-Q;
blkt21=blkt12';
blkt22=Ar'*P22+P22*Ar+Q;
H2=[blkt11 blkt12 zeros(n,1);blkt21 blkt22 P22*Br;zeros(1,n) Br'*P22 -rho*eye(1)];
LMI2=LMI2+[H2<=0.000001*eye(size(H2))]
end
end
sol2=solvesdp(LMI2,[],sdpsettings('solver','sedumi'))
P22=double(P22);