summaryrefslogtreecommitdiffstats
path: root/templates/simulate.m
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2023-05-02 13:27:31 +0200
committerNao Pross <np@0hm.ch>2023-05-02 13:27:31 +0200
commite29fa3f2c56286eaaccb6fbe54029037f2a02d5b (patch)
tree3a368953d23745ddd18e0a9d4173c60a09e74082 /templates/simulate.m
parentADD: Create .gitignore (diff)
downloadmpc_pe-e29fa3f2c56286eaaccb6fbe54029037f2a02d5b.tar.gz
mpc_pe-e29fa3f2c56286eaaccb6fbe54029037f2a02d5b.zip
ADD: Tasks 1-9
Diffstat (limited to 'templates/simulate.m')
-rw-r--r--templates/simulate.m15
1 files changed, 12 insertions, 3 deletions
diff --git a/templates/simulate.m b/templates/simulate.m
index 3138cd1..6be40c3 100644
--- a/templates/simulate.m
+++ b/templates/simulate.m
@@ -7,8 +7,17 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [Xt,Ut,ctrl_info] = simulate(x0, ctrl, params)
+ % YOUR CODE HERE
+ % Hint: you can access the control command with ctrl.eval(x(:,i))
-% YOUR CODE HERE
-% Hint: you can access the control command with ctrl.eval(x(:,i))
+ Xt = zeros(params.model.nx, params.model.HorizonLength+1);
+ Ut = zeros(params.model.nu, params.model.HorizonLength);
+ ctrl_info = repmat(struct('ctrl_feas',true), 1, params.model.HorizonLength);
-end \ No newline at end of file
+ Xt(:,1) = x0;
+ for k=1:params.model.HorizonLength
+ [u, ~] = ctrl.eval(Xt(:,k));
+ Ut(:,k) = u;
+ Xt(:,k+1) = params.model.A * Xt(:,k) + params.model.B * Ut(:,k);
+ end
+end