From feb6ec844cf2d0cdb07acd609615675141e2706a Mon Sep 17 00:00:00 2001 From: Yuan Xu Date: Thu, 11 May 2023 12:00:59 +0200 Subject: update previous files --- templates/lqr_maxPI.m | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) (limited to 'templates/lqr_maxPI.m') diff --git a/templates/lqr_maxPI.m b/templates/lqr_maxPI.m index 47ddd37..251d766 100644 --- a/templates/lqr_maxPI.m +++ b/templates/lqr_maxPI.m @@ -6,36 +6,6 @@ % Please see the LICENSE file that has been included as part of this package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% function [H, h] = lqr_maxPI(Q, R, params) -% % Define the linear system -% A = params.model.A; -% B = params.model.B; -% -% % Define the state and input constraints -% s_max=params.constraints.MaxAbsPositionXZ; -% y_max=params.constraints.MaxAbsPositionY; -% u_max = params.constraints.MaxAbsThrust; -% -% % Define the cost function -% [K, ~, ~] = dlqr(A, B, Q, R); -% P = dare(A, B, Q, R) -% F = -inv((B'*P*B+R))*B'*P*A -% A -% B -% Ax=[1,0; -% 0,1; -% -1,0; -% 0,-1]; -% Ax=[1,0; -% -1,0; -% 0,1; -% 0,-1]; -% Au=Ax; -% bx=[s_max;s_max;s_max;s_max]; -% bu=[u_max;u_max;u_max;u_max]; -% H=[Ax;Au*F]/2 -% h=[bx;bu] -% end function [H, h] = lqr_maxPI(Q, R, params) % Define the linear system @@ -44,12 +14,10 @@ function [H, h] = lqr_maxPI(Q, R, params) nx=params.model.nx; nu=params.model.nu; - % Define the state and input constraints s_max= params.constraints.MaxAbsPositionXZ; y_max= params.constraints.MaxAbsPositionY; u_max = params.constraints.MaxAbsThrust; - % Define the cost function K = -dlqr(A, B, Q, R); systemLQR = LTISystem('A', A+B*K); % absxmax = ones(nx,1)*s_max; @@ -62,14 +30,13 @@ function [H, h] = lqr_maxPI(Q, R, params) Xp = Polyhedron('A',[Hx;Hu*K], 'b', [hx;hu]); figure(1); -% Xp.plot(), alpha(0.25), title('Resulting State Constraints under LQR Control'), xlabel('x_1'), ylabel('x_2'), zlabel('x_3'); systemLQR.x.with('setConstraint'); systemLQR.x.setConstraint = Xp; InvSetLQR = systemLQR.invariantSet(); InvSetLQR.plot(), alpha(0.25), title('Invariant Set for Triple Integrator under LQR Control'), xlabel('x_1'), ylabel('x_2'), zlabel('x_3'); - H=InvSetLQR.A - h=InvSetLQR.b + H=InvSetLQR.A; + h=InvSetLQR.b; end -- cgit v1.2.1