From c11fe8fc6094ce3823a4a8b9b78ea8ea81e65778 Mon Sep 17 00:00:00 2001 From: YanzhenXiangRobotics Date: Tue, 25 Apr 2023 20:42:56 +0200 Subject: FIX: .gitignore --- templates/generate_params.m | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 templates/generate_params.m (limited to 'templates/generate_params.m') diff --git a/templates/generate_params.m b/templates/generate_params.m new file mode 100644 index 0000000..e2e6024 --- /dev/null +++ b/templates/generate_params.m @@ -0,0 +1,73 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% 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. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function [params] = generate_params() +params = struct(); + +Tf = 60*60*24 * 2; % = 2 days +dt = 60 * 10; % = 10 minutes + +% model +params.model = struct(... + 'nx', 6, ... + 'nu', 3, ... + 'Mass', 300, ... + 'GravitationalParameter', 3.986e14, ... + 'ScalingMatrix', [1e-6*eye(3), zeros(3); zeros(3), 1e-3*eye(3)], ... + 'TargetRadius', 7000e3, ... + 'TimeStep', dt, ... + 'HorizonLength', ceil(Tf / dt), ... + 'InitialConditionA', [-15e-3; -400e-3; 24.4e-3; 0; 0.0081; 0], ... + 'InitialConditionB', [-20e-3; 400e-3; 24.4e-3; 0; 0.0108; 0], ... + 'InitialConditionC', [0.02; 0.01; -0.005; 0; 0; 0] ... +); + +% constraints +params.constraints = struct(... + 'MaxAbsPositionXZ', 0.1, ... + 'MaxAbsPositionY', 1, ... + 'MaxAbsThrust', 1, ... + 'MaxFinalPosDiff' , 3e-4, ... + 'MaxFinalVelDiff', 1e-3 ... +); + +params.exercise = struct( ... + 'QdiagOptA', [94.0; 0.1579; 300; 0.01; 0.10; 0.10] ... +); + +% YOUR CODE HERE +[Ac, Bc] = generate_system_cont(params); +[A_tilta, B_tilta] = generate_system(Ac, Bc, params); +[A, B] = generate_system_scaled(A_tilta, B_tilta, params); +[Hu, hu, Hx, hx] = generate_constraints(params); + +params.model.A = A; +params.model.B = B; + +params.constraints.InputMatrix = Hu; +params.constraints.InputRHS = hu; +params.constraints.StateMatrix = Hx; +params.constraints.StateRHS = hx; + +% new_model_struct = struct(... +% 'A', A, ... +% 'B', B ... +% ); + +% new_constr_struct = struct(... +% 'InputMatrix', Hu,... +% 'InputRHS', hu,... +% 'StateMatrix', Hx,... +% 'StateRHS', hx ... +% ) + + +% params.model = [params.model new_model_struct]; +% params.constraints = [params.constraints, new_constr_struct]; + +end -- cgit v1.2.1