summaryrefslogtreecommitdiffstats
path: root/templates/traj_constraints.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/traj_constraints.m
parentADD: Create .gitignore (diff)
downloadmpc_pe-e29fa3f2c56286eaaccb6fbe54029037f2a02d5b.tar.gz
mpc_pe-e29fa3f2c56286eaaccb6fbe54029037f2a02d5b.zip
ADD: Tasks 1-9
Diffstat (limited to 'templates/traj_constraints.m')
-rw-r--r--templates/traj_constraints.m27
1 files changed, 27 insertions, 0 deletions
diff --git a/templates/traj_constraints.m b/templates/traj_constraints.m
index 4b0a081..c87bed6 100644
--- a/templates/traj_constraints.m
+++ b/templates/traj_constraints.m
@@ -8,5 +8,32 @@
function [s_max, y_max, u_max, J_u, df_max, vf_max, traj_feas] = traj_constraints(x,u,params)
% YOUR CODE HERE
+
+ s_max = max(max(abs(x([1,3],:))));
+ y_max = max(abs(x(2,:)));
+ u_max = max(abs(u));
+
+ J_u = 0;
+ for k=1:size(u,2)
+ J_u = J_u + u(:,k)' * u(:,k);
+ end
+
+ df_max = sqrt(sum(x(1:3,end).^2));
+ vf_max = sqrt(sum(x(4:6,end).^2));
+
+ constr = [
+ s_max <= params.constraints.MaxAbsPositionXZ, ...
+ y_max <= params.constraints.MaxAbsPositionY, ...
+ df_max <= params.constraints.MaxFinalPosDiff, ...
+ vf_max <= params.constraints.MaxFinalVelDiff
+ ];
+
+ % disp([s_max, y_max, df_max, vf_max])
+ % disp([params.constraints.MaxAbsPositionXZ, ...
+ % params.constraints.MaxAbsPositionY, ...
+ % params.constraints.MaxFinalPosDiff, ...
+ % params.constraints.MaxFinalVelDiff])
+ % disp(constr')
+ traj_feas = all(constr);
end