Error using validate (line 142)total dimension of C should be > length(b)
Error in sdpt3 (line 172) [blk,At,C,b,blkdim,numblk,parbarrier] = validate(blk,At,C,b,par,parbarrier);
Error in callsdpt34 (line 152) evalc('[obj,X,y,Z,info,runhist] = sdpt3(blk,A,C,b,options.sdpt3,[],x0,[]);');
Error in optimizer/subsref (line 103) eval(['output = ' self.model.solver.call '(self.model);']);
Error in mpc_controller (line 248) [sol, errcode] = controller{{xinit,Xinit}};
for t = 1:N
fprintf('Adding constraints and objective for t = %d\n',t-1);
%stage costs = objective
objective = objective + xnom{t}'*Q*xnom{t} + unom{t}'*R*unom{t} + trace((Q + K{t}'*R*K{t})*X{t});
%constraints
constraints = [constraints, bx'*xnom{t} <= rhsx_a - rhsx_b.*diag(bx'*X{t}*bx)];
constraints = [constraints, bu'*unom{t} <= rhsu_a - rhsu_b.*diag(bu'*K{t}*X{t}*K{t}'*bu)];
constraints = [constraints, xnom{t+1} == A*xnom{t} + B*unom{t}];
constraints = [constraints, X{t+1} == (A+B*K{t})*X{t}*(A+B*K{t})' + F*W*F'];
end
disp('Adding terminal constraints and terminal objective');
objective = objective + xnom{N+1}'*S*xnom{N+1} + trace(S*X{N+1}); %terminal cost
constraints = [constraints, Af*xnom{N+1} <= bf]; %terminal set for x (polytope)
constraints = [constraints, X_ - X{N+1} >= 0]; %terminal set for X
controller = optimizer(constraints, objective, ops, {xnom{1}, X{1}}, {unom{1}, K{1}, objective});
[sol, errcode] = controller{{xinit,Xinit}};
constraints = [constraints, X{t+1} == (A+B*K{t})*X{t}*(A+B*K{t})' + F*W*F'];