%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 = compute_tightening(K_tube,H_tube,h_tube,params) % YOUR CODE HERE Hx = params.constraints.StateMatrix; hx = params.constraints.StateRHS; Hu = params.constraints.InputMatrix; hu = params.constraints.InputRHS; Pxz = Polyhedron('A',Hx,'b',hx); Puz = Polyhedron('A',Hu,'b',hu); % Ptube = Polyhedron('A',H_tube,'b',h_tube); Px_tube = Pxz.minus(Polyhedron('A',H_tube,'b',h_tube)); params.constraints.StateMatrix = Px_tube.A; params.constraints.StateRHS = Px_tube.b; Pu_tube = Puz.minus(Polyhedron('A',H_tube*K_tube,'b',h_tube)); params.constraints.InputMatrix = Pu_tube.A; params.constraints.InputRHS = Pu_tube.b; end