[A,B,C,D] = tf2ss([2.4],[1 1.4]);
[Ar,Br,Cr,Dr] = tf2ss(1,[1 -1.01]);
N = 10;
largei = 20;
largen = 1000;
for i=1:1:N
a(i) = sdpvar(1);
c(i) = sdpvar(1);
end
d(1) = 0;
Ai = eye(N-1);
Ai = [zeros(N-1,1) Ai];
Ai = [Ai; a];
Bi = zeros(N,1);
Bi(N) = 1;
Di = [d(1)];
Ci = c;
Aw1 = [A-B*Dr*C B*Cr;-Br*C Ar];
Aw2 = [A-B*Di*C B*Ci;-Bi*C Ai];
Aw = [Aw1 zeros(2,N+1);zeros(N+1,2) Aw2];
Bw = [B*Dr;Br;B*Di;Bi];
Cw = [C zeros(1,1) -C zeros(1,N)];
Dw = 0;
Q = [Aw Bw;Cw Dw];
Pbar = sdpvar(3+N,3+N,'symmetric');
gamma = sdpvar(1);
cons = [Aw'*Pbar*Aw-Pbar Aw'*Pbar*Bw Cw';Bw'*Pbar*Aw -gamma^2+Bw'*Pbar*Bw 0;Cw 0 -gamma^2] < 0;
cons = [cons; Pbar > 0];
cons = [cons; gamma > 0];
conssum = 0;
for i=1:1:N
conssum = conssum + (a(i)-round(a(i)))^2;
end
for i=1:1:N
cons = [cons; abs(a(i)) < largei];
cons = [cons; abs(c(i)) < largei];
end
cons = [cons;abs(Pbar) < largen];
cons = [cons; abs(gamma) < 1];
obj = (gamma)^2 + conssum;
ops = sdpsettings('solver','bmibnb','bmibnb.numglobal',0,'bmibnb.lpsolver','mosek','bmibnb.maxiter',10000,'bmibnb.maxtime',7200);
optimize(cons,obj,ops)
but they always end up with "Reference to non-existent field ‘sol’" error and computer freezing.
(One little question that I used mosek to bmibnb.lpsolver because I used gurobi before but the license was expired. So I want to disable gurobi but I don't know how to do it so I add that code. Could you tell me how to disable gurobi?)
I wonder what is the problem with this code or how to fix this problem.