diff options
Diffstat (limited to 'templates/MPC.m')
-rw-r--r-- | templates/MPC.m | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/templates/MPC.m b/templates/MPC.m deleted file mode 100644 index 3e9d2f1..0000000 --- a/templates/MPC.m +++ /dev/null @@ -1,45 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Copyright (c) 2023, Amon Lahr, Simon Muntwiler, Antoine Leeman & Fabian Flürenbrock Institute for Dynamic Systems and Control, ETH Zurich. -% -% All rights reserved. -% -% Please see the LICENSE file that has been included as part of this package. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -classdef MPC - properties - yalmip_optimizer - end - - methods - function obj = MPC(Q,R,N,params) - nu = params.model.nu; - nx = params.model.nx; - - % define optimization variables - U = sdpvar(repmat(nu,1,N),ones(1,N),'full'); - X0 = sdpvar(nx,1,'full'); - - % YOUR CODE HERE - - opts = sdpsettings('verbose',1,'solver','quadprog'); - obj.yalmip_optimizer = optimizer(constraints,objective,opts,X0,{U{1} objective}); - end - - function [u, ctrl_info] = eval(obj,x) - %% evaluate control action by solving MPC problem, e.g. - tic; - [optimizer_out,errorcode] = obj.yalmip_optimizer(x); - solvetime = toc; - - [u, objective] = optimizer_out{:}; - - feasible = true; - if (errorcode ~= 0) - feasible = false; - end - - ctrl_info = struct('ctrl_feas',feasible,'objective',objective,'solvetime',solvetime); - end - end -end
\ No newline at end of file |