for k=1:N x(:,k+1) = idssModel.A*x(:,k)+idssModel.B(1:nx,nv+1:nv+nu)*Us(:,k)+idssModel.B(1:nx, 1:nv)*Vs(:,k); TRoom(k) = idssModel.C*x(:,k)+idssModel.D(1, 1:nv)*Vs(:,k)+idssModel.D(1, nv+1:nv+nu)*Us(:,k); end TRoom(N+1) = idssModel.C*x(:,N+1)+idssModel.D(1, 1:nv)*Vs(:,N)+idssModel.D(1, nv+1:nv+nu)*Us(:,N);
TRoom = TRoom + predictionUncertainty;
constraints = [constraints, 0 <= syBound]; constraints = [constraints, (TComfort_lower - syBound) <= TRoom(2:N+1) <= (TComfort_upper + syBound)];
constraints = [constraints, uncertain(predictionUncertainty, 'norm', mean(ModelError,2)', std(ModelError,0,2)')];
parameters_in = {predictionUncertainty, lastMV, x(:,1), v(:,:), conQheater_min, conQheater_max, prevHPon, dT, TComfort_lower(:), TComfort_upper(:), conQsol_min(:), conQsol_max(:), conQven_min(:), conQven_max(:), historyHPon, heatingMode, coolingMode};
inputs = {[], lastU, xState, MD, Qheater_min, Qheater_max, hpState(end), [ones(1,N)*ycurrent-5; ones(1,N)*ycurrent+5], TComfLow, TComfUpp, Qsol_min, Qsol_max, mVen_min, mVen_max, any(hpState), 1, 0};
test = sample(MPC(inputs, 'nosolve'),2);
test() --> error
test = sample(MPC(inputs),2);
test() --> error
test = sample(MPC(inputs));
test() --> working
Error using gurobiIncorrect size(model.sense)
Error in callgurobi (line 13)result = gurobi(model,model.params);
Error in optimizer/subsref (line 326) eval(['output = ' self.model.solver.call '(self.model);']);
Error in optimizer/subsref (line 9) [varargout{1:nargout}] = subsref(self,subs);
Model = [v'*x <= 1, uncertain(v,'unif',[-1;-1],[1;1])];
OneHyperPlaneModel = optimizer(Model, -sum(x),ops,v,x);