SecondOrderGuidance3D:

Path: LunarMissions/LunarLanding

% Implements a 2nd order guidance law in 3 dimensions
 Uses a 2nd order controller to provide guidance for landing.
 Demonstrated in a cartesian system.

   '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 SecondOrderGuidance3D for a demo of lunar landing. This replicates
 the demo in SecondOrderGuidance.

--------------------------------------------------------------------------
   Form:
   d = SecondOrderGuidance3D
   a = SecondOrderGuidance3D( 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

--------------------------------------------------------------------------

Children:

AerospaceUtils: Coord/DownrangeAndAltFromTarget
AerospaceUtils: Coord/TargetFromRPVD
Common: Database/Constant
Common: Graphics/NewFig
Common: Graphics/Plot2D
Common: Graphics/TimeLabl
Common: Graphics/XLabelS
Common: Graphics/YLabelS
Math: Integration/RK4
Math: Linear/Mag
Math: Linear/Unit

Back to the LunarMissions Module page