Hi,
this is my coding of a convex optimization problem which is solved without any error …
But i don’t know why the matrices of Ac ,Bc ,Cc,Dc are factor of 1e-13…
Is there that anyone know to help me ?
clear all
close all
clc
%% First: sensor-to-controller
A = [1 2 1;1 0.25 5;2 3 4];
B = [1 0.2;4 1;0.7 3];
C = [0.1 5 0.7;0.6 0.9 0.6];
Ad = [0.4 0.2 0;0.2 0.16 0.4;0.2 0.6 2];
k = 0:100
TauSC = 0.2*sin(k);
TauCA = 0.4*sin(k);
d = 0.1*cos(k);
n = size(A,1);
[n,m] = size(B);
[q,n] = size(C);
mu1 = 0.8; delta1 =0.4 ;
mu2 = 0.9; delta2 = 0.5;
tau1 = -0.2;
tau2 = 0.2;
tau3 = -0.4;
tau4 = 0.4;
d1 =-0.1;
d2 =0.1;
[U,S,V] = svd(B)
%% H-infinite
cvx_begin sdp
variable P1(n,n) symmetric;
variable P2(n,n) symmetric;
variable R1(n,n) symmetric;
variable R2(n,n) symmetric;
variable R4(n,n) symmetric;
variable Q1(n,n) symmetric;
variable Q2(n,n) symmetric;
variable Q4(n,n) symmetric;
variable O1(n,n) symmetric;
variable O2(n,n) symmetric;
variable O4(n,n) symmetric;
variable T1(n,n) symmetric;
variable T2(n,n) symmetric;
variable T4(n,n) symmetric;
variable E(8,8) symmetric;
variable omega11(q,q);
variable omega12(n-q,n-q);
variable omega21(q,q);
variable omega22(n-q,n-q);
variable Y(n,n)
variable X(q,n)
variable W(q,m)
variable Z(n,m)
variable gama1sq nonnegative;
variable gama2sq nonnegative;
R =[R1 R2;R2' R4];
Q =[Q1 Q2;Q2' Q4];
O =[O1 O2;O2' O4];
T =[T1 T2;T2' T4];
U1 = U(:,1:2);
U2 = U(:,3);
P = [P1 zeros(n,n);zeros(n,n) P2];
omega1 = U1*omega11*U1'+U2*omega12*U2';
omega2 = U1*omega21*U1'+U2*omega22*U2';
Acl = [A'*omega1' zeros(n,n);zeros(n,n) Y];
Adcl = [Ad'*omega1' zeros(n,n);zeros(n,n) zeros(n,n)];
A1cl = [zeros(n,n) mu1*C'*X;zeros(n,n) zeros(n,n)];
A2cl = [zeros(n,n) zeros(n,n);mu2*Z*B' zeros(n,n)];
A3cl = [mu1*mu2*C'*W*B' zeros(n,n);zeros(n,n) zeros(n,n)];
B1cl = [zeros(m,n) mu1*X;zeros(m,n) zeros(m,n)];
B2cl = [zeros(m,n) zeros(m,n);mu2*B'*omega1' zeros(m,n)];
B3cl = [mu1*mu2*W*B' zeros(m,n);zeros(m,n) zeros(m,n)];
B1hcl = [zeros(2,3) mu1*X;mu2*B'*omega1' zeros(2,3)];
Pcl = [P1-(omega1+omega1') zeros(n,n);zeros(n,n) P2-(omega2+omega2')];
omegaT1 = inv(V')*pinv(S)*inv(U)*omega1*U*S*V';
omegaT2 = inv(V')*pinv(S)*inv(U)*omega2*U*S*V';
C1cl = [C'*omegaT2' zeros(3,6);zeros(3,2) zeros(3,6)];
C2cl = [zeros(3,6) zeros(3,2);zeros(3,6) Z];
C3cl = [zeros(3,6) mu1*C'*W;zeros(3,6) zeros(3,2)];
D1cl = [omegaT2' zeros(2,6);zeros(2,2) zeros(2,6)];
D2cl = [zeros(2,6) zeros(2,2);zeros(2,6) omegaT1'];
D3cl = [zeros(2,6) mu1*W;zeros(2,6) zeros(2,2)];
PQRST = -P+(tau2-tau1+1)*R+(d2-d1+1)*Q+(tau4-tau3+1)*O+(tau4+tau2-tau1-tau3+1)*T;
DomegaT = [omegaT2 zeros(2,2);zeros(2,2) omegaT1]
OT = [zeros(4,4) DomegaT;DomegaT' zeros(4,4)]
delta = delta1^2+delta2^2;
mu = inv(mu1)-1+inv(mu2)-1;
minimize gama1sq*delta+gama2sq*mu
subject to
% % H_infinite
[PQRST zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,4) zeros(6,4) zeros(6,4) Acl zeros(6,8);
zeros(6,6) -Q zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,4) zeros(6,4) zeros(6,4) Adcl zeros(6,8);
zeros(6,6) zeros(6,6) -R zeros(6,6) zeros(6,6) zeros(6,4) zeros(6,4) zeros(6,4) A1cl C1cl;
zeros(6,6) zeros(6,6) zeros(6,6) -O zeros(6,6) zeros(6,4) zeros(6,4) zeros(6,4) A2cl C2cl;
zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6) -T zeros(6,4) zeros(6,4) zeros(6,4) A3cl C3cl;
zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,6) -gama1sq*eye(4) zeros(4,4) zeros(4,4) B1cl D1cl;
zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,4) -gama1sq*eye(4) zeros(4,4) B2cl D2cl;
zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,6) zeros(4,4) zeros(4,4) -gama1sq*eye(4) B3cl D3cl;
Acl' Adcl' A1cl' A2cl' A3cl' B1cl' B2cl' B3cl' Pcl zeros(6,8);
zeros(8,6) zeros(8,6) C1cl' C2cl' C3cl' D1cl' D2cl' D3cl' zeros(8,6) OT]<=0
%H2-constraint
AH = [Acl;Adcl;A1cl;A2cl;A3cl]
CH = [zeros(6,8);zeros(6,8);C1cl;C2cl;C3cl]
AHH=[Acl' Adcl' A1cl' A2cl' A3cl']
CHH =[zeros(8,6) zeros(8,6) C1cl' C2cl' C3cl']
B1h = [zeros(2,3) mu1*X;mu2*B'*omega1' zeros(2,3)];
B2h = [mu1*mu2*W*B' zeros(2,3);zeros(2,3) zeros(2,3)];
BH = [B1h;B2h];
BHH = [B1h' B2h'];
DH = [zeros(4,8);D3cl];
DHH =[zeros(8,4) D3cl'];
PH = [P zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6);zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6);zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6);zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6);zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6) zeros(6,6)]
[PH AH CH;
AHH -Pcl zeros(6,8);
CHH zeros(8,6) OT]>=0
[E BH DH;
BHH -Pcl zeros(6,8);
DHH zeros(8,6) OT]>=0
trace(E)< gama2sq
cvx_end
%% matrices controller
Ac = inv(omega2)*Y'
Bc = inv(omega2)*X'
Cc = inv(omegaT1)*Z'
Dc = inv(omegaT1)*W'
sys = ss(Ac,Bc,Cc,Dc,0.1)
K =tf(sys)