%--------------- system matrix --------------------------------
A =[0.74 0.22;0.85 -0.62];
C=[0.65 -0.3;0.3 0.45];
D=[0.16;0.045];
G=[0.21;-0.14];
H=[0.3 ;-0.2 ];
E=[0.02;0.02];
I=[1;0];
S=[-1;-1];
Hk=1; %增益波动参数
Hm=1;
Ek=0.3;
Em=0.3;
non_phi=[-0.3 0;0 0.6];
non_psi=[-0.6 0.3;0 0.4];
PHI1=blkdiag(1,0);
PHI2=blkdiag(0,1);
% a=rand(8,4);
% b=rand(4,4);
% a=[0.2 0 0 0;0 0.3 0 0;0 0 0.1 0;0 0 0 0.5;zeros(4,4)];
% b=[0.8 0 0 0;0 0.7 0 0;0 0 0.9 0;0 0 0 0.5];
% a=binopdf(0,200,0.02); %二项分布概率密度函数
% ;%协议转移概率矩阵
n=4; % system dimension
gamma=0.98; % H-infty 指标r
%---------------- stochastic varibles ------------------------
beta_0=0.89913851119258; % Channel fading期望
beta_1=0.40000000000000;
beta_2=0.11744354904672;
beta_0t=0.01326246957079; %方差
beta_1t=0.04670000000000;
beta_2t=0.01363727925678;
% ---------------- augmented system ----------------
barA1=[A zeros(2,2);PHI1*C eye(2)-PHI1];
barA2=[A zeros(2,2);PHI2*C eye(2)-PHI2];
barD1=[D zeros(2,1);PHI1*E PHI1*H];
barD2=[D zeros(2,1);PHI2*E PHI2*H];
barC1=[PHI1*C eye(2)-PHI1];
barC2=[PHI2*C eye(2)-PHI2];
G1=[G;zeros(2,1)];
barE1=[PHI1*E PHI1*H];
barE2=[PHI2*E PHI2*H];
A_1=[barA1 zeros(4,4);zeros(4,4) barA1];
A_2=[barA2 zeros(4,4);zeros(4,4) barA2];
D_1=[barD1 zeros(4,2);zeros(4,2) barD1];
D_2=[barD2 zeros(4,2);zeros(4,2) barD2];
% A11=[A1 zeros(2,4); zeros(2,4) A1-beta_0*C1];
C11=[zeros(2,4) zeros(2,4);zeros(2,4) barC1];
C11_2=[zeros(2,4) zeros(2,4);zeros(2,4) barC2];
C12=[zeros(2,4) zeros(2,4);barC1 zeros(2,4)];
C12_2=[zeros(2,4) zeros(2,4);barC2 zeros(2,4)];
D11=[barD1 zeros(4,2);barD1 zeros(4,2)];
D12=[barD2 zeros(4,2);barD2 zeros(4,2)];
S1=[I zeros(2,1);zeros(2,1) I];
S2=[I zeros(2,1);I zeros(2,1)];
S3=[zeros(2,3) zeros(2,1);zeros(2,3) I];
E11=[zeros(2,2) zeros(2,2);barE1 zeros(2,2)];
E12=[zeros(2,2) zeros(2,2);barE2 zeros(2,2)];
S4=[S;zeros(2,1)];
pi11=0.7;
pi22=0.3;
G11=[G1;G1];
H_mk=blkdiag(Hk,Hk,Hk,Hk);
H_mm=blkdiag(Hm,Hm,Hm,Hm);
E_mk=blkdiag(Ek,Ek,Ek,Ek);
E_mm=blkdiag(Em,Em,Em,Em);
%------- LMI-----------------
Lam0=[beta_0*eye(4) beta_1*eye(4) beta_2*eye(4)];
Lam1=[beta_1*eye(8) beta_2*eye(8)];
sqrt_Hua_I0=blkdiag(sqrt(beta_0t),sqrt(beta_1t),sqrt(beta_2t));
sqrt_Hua_I1=blkdiag(sqrt(beta_1t),sqrt(beta_2t));
Hei_Id=[eye(4) 0*eye(4) 0*eye(4)];
%---- Declare variable -------
%---------------------STEP 1------------------
lamb=sdpvar(1,1,'symmetric');
varep=sdpvar(1,1,'symmetric');
P1=sdpvar(4,4,'symmetric');
P=blkdiag(P1,P1);
P2=sdpvar(4,4,'symmetric');
P_2=blkdiag(P2,P2);
tilde_P1=blkdiag(P,P,P,kron(eye(2),P),eye(2),eye(2),kron(eye(4),eye(1)));
tilde_P2=blkdiag(P_2,P_2,P_2,kron(eye(2),P_2),eye(2),eye(2),kron(eye(4),eye(1)));
R1=sdpvar(8,8,'symmetric');
R2=sdpvar(8,8,'symmetric');
% Q=sdpvar(4,4,'symmetric');
Z11=sdpvar(4,4,'full');
Z11_2=sdpvar(4,4,'full');
Z1=blkdiag(Z11,Z11);
Z1_2=blkdiag(Z11_2,Z11_2);
% ZK1=sdpvar(4,2);
% ZK=blkdiag(ZK1,ZK1);%Z1*K
K1=sdpvar(2,1);
K=blkdiag(K1,K1);
K2=sdpvar(2,1);
K_2=blkdiag(K2,K2);
% Z1C_1=[Z11*C11 zeros(4,4);Z11*C11-ZK1*C13 zeros(4,4)];%Z1*C_1
% Z1C_2=[Z11*C11 zeros(4,4);zeros(4,4) Z11*C11-ZK1*C13];
% Z1E_1=[Z11*E11;Z11*E11-ZK1*E12];
Z22=sdpvar(1,1,'symmetric');
Z2=sdpvar(1,1,'symmetric');Z22;%?
Z22_2=sdpvar(1,1,'symmetric');
Z2_2=sdpvar(1,1,'symmetric');%?
M=sdpvar(2,2,'symmetric');
M2=sdpvar(2,2,'symmetric');
tilde_Z=blkdiag(Z1,Z1,Z1,kron(eye(2),Z1),Z2,Z2,kron(eye(6),Z2));
tilde_Z2=blkdiag(Z1_2,Z1_2,Z1_2,kron(eye(2),Z1_2),Z2,Z2,kron(eye(6),Z2));
KK=blkdiag(K,K);%tilde_K
MM=[M M];%tilde_M
KK2=blkdiag(K_2,K_2);%tilde_K
MM2=[M2 M2];%tilde_M
%--- Set constraint condition -------
%HUAP1=pi11*P+pi11*P_2 %第一个LMI
Gamma=[R1+R2-P-lamb*(kron(eye(4), (non_phi'*non_psi*+non_psi'*non_phi)))/2 zeros(8,16) -lamb*(kron(eye(4), (non_phi'*non_psi*+non_psi'*non_phi))) zeros(8,6) zeros(8,1);
zeros(16,8) -blkdiag(R1,R2) zeros(16,8) zeros(16,6) zeros(16,1);
zeros(4,8) zeros(4,16) zeros(4,8) zeros(4,6) zeros(4,1);
zeros(6,8) zeros(6,16) zeros(6,8) -(gamma^2)*eye(6) zeros(6,1);
zeros(5,8) zeros(5,16) zeros(5,8) zeros(5,6) zeros(5,1); ];
Y32=[ KK*H_mk zeros(8,4) zeros(8,4) zeros(8,8) zeros(8,4) zeros(8,4) zeros(8,8) ;
zeros(8,4) KK*H_mk zeros(8,4) zeros(8,8) zeros(8,4) zeros(8,4) zeros(8,8);
zeros(8,4) zeros(8,4) KK*H_mk zeros(8,8) zeros(8,4) zeros(8,4) zeros(8,8);
zeros(16,4) zeros(16,4) zeros(16,4) kron(sqrt_Hua_I1,KK*H_mk) zeros(16,4) zeros(16,4) zeros(16,8);
zeros(2,4) zeros(2,4) zeros(2,4) zeros(2,8) MM*H_mm zeros(2,4) zeros(2,8);
zeros(2,4) zeros(2,4) zeros(2,4) zeros(2,8) zeros(2,4) MM*H_mm zeros(2,8);
zeros(4,4) zeros(4,4) zeros(4,4) zeros(4,8) zeros(4,4) zeros(4,4) kron(sqrt_Hua_I1, MM*H_mm)];
V=[-beta_0*E_mk*C11 -E_mk*C11*Lam1 zeros(4,2) -E_mk*(E11*Lam0+S3*Hei_Id) zeros(4,1); %4×8 4×16 0 4×12 0
sqrt(beta_0t)*E_mk*C12 zeros(4,16) zeros(4,2) sqrt(beta_0t)*E_mk*E11*Hei_Id zeros(4,1); %4×
zeros(4,8) zeros(4,16) zeros(4,2) zeros(4,12) zeros(4,1);
zeros(8,8) kron(sqrt_Hua_I1, E_mk*C12) zeros(8,2) [zeros(8,4) kron(eye(2),E_mk*E11)] zeros(8,1); %8×
beta_0*E_mm*C11 E_mm*C11*Lam1 zeros(4,2) E_mm*(E11*Lam0+S3*Hei_Id) zeros(4,1); %4×
sqrt(beta_0t)*E_mm*C12 zeros(4,16) zeros(4,2) sqrt(beta_0t)*E_mm*E11* Hei_Id zeros(4,1); %4×
zeros(8,8) kron(sqrt_Hua_I1, E_mm*C12) zeros(8,2) [zeros(8,4) kron(eye(2),E_mm*E11)] zeros(8,1)] %8×
%随机变量期望方差表示
Y21=[Z1*A_1- beta_0*KK*C11 -KK*C11*Lam1 a*S1 (Z1*D_1-KK*S3)*Hei_Id-KK*E11*Lam0 Z1*G11
sqrt(beta_0t)*KK*C12 zeros(8,16) zeros(8,2) sqrt(beta_0t)*KK*E11*Hei_Id zeros(8,1);
zeros(8,8) zeros(8,16) Z1*sqrt(a*b)*S2 zeros(8,12) zeros(8,1);
zeros(16,8) kron(sqrt_Hua_I1,KK*C12) zeros(16,2) [zeros(16,4) kron(sqrt_Hua_I1,KK*E11)] zeros(16,1);
beta_0* MM*C11 MM*C11* Lam1 zeros(2,2) MM*(E11*Lam0+S3*Hei_Id)