is the following expression correct or not? why MATLAB always tell me that ''Index exceeds matrix dimensions''.
thanks!!!
u = sdpvar(ones(1,N),ones(1,N));
x = sdpvar(4*ones(1,N+1),ones(1,N+1));
r=sdpvar(2*(N+1),1);
constraints=[];
objective =0;
for k=1:N
objective = objective + (r(2*(k-1)+1:2*(k-1)+2)-Cd*x{k})'*Q*(r(2*(k-1)+1:2*(k-1)+2)-Cd*x{k})+u{k}'*R*u{k};%cost function
constraints =[constraints,x{k+1}(1)==(v*sin(x{k}(2)+x{k}(3)))*Ts+x{k}(1)];
constraints =[constraints,x{k+1}(2)==x{k}(4)*Ts+x{k}(2)];
constraints =[constraints,x{k+1}(3)==((tirenmpc1(x{k}(3),x{k}(4),u{k})+ tirenmpc(x{k}(3),x{k}(4)))/(m*v)-x{k}(4))*Ts+x{k}(3)]; ;
constraints =[constraints,x{k+1}(4)==(a*tirenmpc1(x{k}(3),x{k}(4),u{k})-b*tirenmpc(x{k}(3),x{k}(4)))/Izz*Ts+x{k}(4)];
end
%%(tirenmpc and tirenmpc1 are functions about x{k}(3),x{k}(4),u{k} )
objective = objective + (r(2*N+1:2*N+2)-Cd*x{N+1})'*Q*(r(2*N+1:2*N+2)-Cd*x{N+1});
ops=sdpsettings('solver','Ipopt','verbose',2);
controller = optimizer(constraints,objective,ops,{x{1},r},u{1});
uout = controller(currentx,currentr);
else
uout = controller(currentx,currentr);