Sir I am not able to code the sun functions as you mentioned. I am not getting it. here I have coded:
rt=1.5e-3;
lt=30e-6;
r=76;
l=111.9e-3;
c1=62.855e-6;
f=60;
w0=2*pi*f;
A=[-rt/lt w0 0 -1/lt;w0 -rt/lt -2*w0 ((rt*c1*w0/l)-(w0/r));0 w0 -rt/l ((1/l)-(w0^2*c1));1/c1 0 -1/c1 -1/(r*c1)];
B=[1/lt 0 0 0]';
C=[0 0 0 1];
A1=[A zeros(4,1);C 0];
B1=[B;0];
C1=[C 0;zeros(1,4) eye(1);C*A 0];
Q=eye(5);
[P,L,G] = care(A1,B1,Q);
X1=P;
M=sdpvar(5,5);
F=sdpvar(1,3);
a=sdpvar(1,1);
K=[M>0,A1'*M+M*A1-X1*(B1*B1')*M-M*(B1*B1')*X1+X1*(B1*B1')*X1+(B1'*M+F*C1)'*(B1'*M+F*C1)<a*M];
solvesdp(K,trace(M));
P0 = double(M);
a_lower = -max(eig(inv(P0)*A1'*M+M*A1-X1*(B1*B1')*M-M*(B1*B1')*X1+X1*(B1*B1')*X1+(B1'*M+F*C1)'*(B1'*M+F*C1)))/2
a_upper = a_lower*2;
K=[M>0,A1'*M+M*A1-X1*(B1*B1')*M-M*(B1*B1')*X1+X1*(B1*B1')*X1+(B1'*M+F*C1)'*(B1'*M+F*C1)<a_upper*M];
ops = sdpsettings('verbose',0,'warning',0);
sol = solvesdp(K,[],ops);
while (sol.problem==1)
a_upper = a_upper*2;
K=[M>0,A1'*M+M*A1-X1*(B1*B1')*M-M*(B1*B1')*X1+X1*(B1*B1')*X1+(B1'*M+F*C1)'*(B1'*M+F*C1)<a_upper*M];
sol = solvesdp(K,[],ops);
end
tol = 0.01;
a_works = a_lower
while (a_upper-a_lower)>tol
a_test = (a_upper+a_lower)/2;
disp([a_lower a_upper a_test])
K=[M>0,A1'*M+M*A1-X1*(B1*B1')*M-M*(B1*B1')*X1+X1*(B1*B1')*X1+(B1'*M+F*C1)'*(B1'*M+F*C1)<a_upper*M];
sol = solvesdp(K,[],ops);
if sol.problem==1
a_upper = a_test;
else
a_lower = a_test;
a_works = a_test;
Mworks = double(M);
end
end