Path: LunarMissions/LunarLanding
% Implements a 2nd order guidance law Uses a 2nd order controller to provide guidance for landing. Demonstrated in a cartesian system with x along vertical. Includes centripetal and gravitational acceleration. 'initialize' computes the time to land from the tolerance. 'update' updates the control accelerations. You generally want zeta to be 1. Lower omegas will reduce the control accelerations. An omega of 0.01 gives roughly the Apollo LM landing guidance. If it is much lower you can overshoot and then have to return to the landing site. Type SecondOrderGuidance for a demo. The demo is in cartesian coordinates with gravity and centripetal acceleration along x. -------------------------------------------------------------------------- Form: a = SecondOrderGuidance( action, x, d ) -------------------------------------------------------------------------- ------ Inputs ------ action (1,:) 'initialize' or 'update' x (6,1) State [r;v] d (.) Data structure .x (6,1) Target [r;v] .tol (1,1) Tolerance for damping .zeta (1,1) Damping ratio .omega (1,1) Undamped natural frequency (rad/s) .t (1,1) Time to damp .rP (1,1) Equatorial radius .mu (1,1) Gravitational constant ------- Outputs ------- a (3,:) Control accelerations --------------------------------------------------------------------------
Common: Database/Constant Common: Graphics/NewFig Common: Graphics/Plot2D Common: Graphics/TimeLabl Common: Graphics/XLabelS Common: Graphics/YLabelS Math: Integration/RK4
Back to the LunarMissions Module page