Skip to main content

Adaptive Descent Controller

The Adaptive Descent Controller implements an energy-based landing guidance strategy for a lunar lander. Its objective is to guide the spacecraft from an initial descent state toward a controlled soft touchdown while respecting gravitational acceleration, actuator limits, and available thrust authority.

The controller combines three main elements:

  • energy-based target descent velocity generation
  • brake-ratio-based descent mode selection
  • PD velocity tracking with gravity compensation and thrust saturation

The main output of the controller is a commanded thrust forceFT,cmdF_{T,cmd}, which is passed to the propulsion system.


System Inputs and Output

The controller operates on the current vertical descent state and the available propulsion authority.

SymbolDescription
vzv_zCurrent vertical velocity [m/s]
hhCurrent altitude above the landing surface [m]
mmCurrent spacecraft mass [kg]
ggLocal gravitational acceleration magnitude [m/s²]
FT,maxF_{T,max}Maximum available thrust force [N]
Δt\Delta tSimulation timestep [s]

The controller output is the commanded scalar thrust force:

FT,cmdF_{T,cmd}

This command is later limited by actuator saturation and converted into a normalized throttle command if required by the engine interface.


Maximum Achievable Deceleration

The maximum upward acceleration available for braking is determined by the ratio between maximum thrust force and current spacecraft mass, corrected by local gravity.

amax=FT,maxmga_{max}=\frac{F_{T,max}}{m}-g

To avoid singularities in later calculations, the implementation enforces a lower numerical bound:

amaxϵa_{max}\geq\epsilon

where ϵ\epsilon is a small positive constant.


Required Braking Distance

The controller estimates the minimum altitude required to reduce the current descent velocity to zero under maximum available braking acceleration.

dbrake=vz22amaxd_{brake}=\frac{v_z^2}{2a_{max}}

This expression follows from the constant-acceleration kinematic relation and provides a local estimate of whether the spacecraft still has sufficient altitude to brake safely.


Brake Ratio

The brake ratio compares available altitude with the currently required braking distance:

Rbrake=hdbrakeR_{brake}=\frac{h}{d_{brake}}

It acts as the central scheduling variable of the controller.

ConditionInterpretation
Rbrake1R_{brake}\gg1Large altitude margin available
Rbrake1R_{brake}\approx1Braking distance approximately equals remaining altitude
Rbrake<1R_{brake}<1Critical braking condition

The brake ratio is used for both descent mode selection and adaptive gain scheduling.


Energy-Based Target Descent Velocity

The target descent velocity is derived from an energy-consistent braking relation. The controller computes a velocity that remains compatible with the available braking authority and remaining altitude.

vz,target=2kramaxhv_{z,target}=-\sqrt{2k_r a_{max}h}

Where:
vz,targetv_{z,target} is the commanded vertical descent velocity [m/s]
krk_r is a reserve or safety factor [-]
amaxa_{max} is the maximum achievable braking acceleration [m/s²]
hh is the current altitude [m]

The negative sign indicates downward motion in the selected local vertical convention.


PD Velocity Tracking

The velocity controller tracks the target descent velocity using a proportional-derivative control law.

Velocity error:

ev=vz,targetvze_v=v_{z,target}-v_z

Error derivative:

e˙v=evev,prevΔt\dot{e}_v=\frac{e_v-e_{v,prev}}{\Delta t}

Control acceleration:

actrl=Kpev+Kde˙va_{ctrl}=K_p e_v+K_d\dot{e}_v

The gains KpK_p andKdK_d are scheduled as a function of the brake ratio. This allows the controller to behave more gently when sufficient altitude is available and more aggressively during terminal braking.


Gravity Compensation

A hover thrust component is added to compensate the local gravitational force.

FT,hover=mgF_{T,hover}=mg

This term represents the scalar thrust force required to maintain zero vertical acceleration in the absence of additional control action.


Total Thrust Command

The final unsaturated thrust command combines gravity compensation and the commanded control acceleration:

FT,cmd=FT,hover+mactrlF_{T,cmd}=F_{T,hover}+ma_{ctrl}

Substituting the hover thrust term gives:

FT,cmd=m(g+actrl)F_{T,cmd}=m(g+a_{ctrl})

Thrust Saturation

The commanded thrust force is constrained by the physically available actuator range:

FT,cmd=min(max(FT,cmd,0),FT,max)F_{T,cmd}=\min\left(\max\left(F_{T,cmd},0\right),F_{T,max}\right)

This prevents the controller from requesting negative thrust or thrust above the configured propulsion limit.


Normalized Throttle Output

For propulsion interfaces expecting a normalized throttle command, the saturated thrust command is converted into:

uT=FT,cmdFT,maxu_T=\frac{F_{T,cmd}}{F_{T,max}}
0uT10\leq u_T\leq1

This normalized command can be passed to engine models that operate on percentage or throttle input.


Descent Modes

The controller operates in discrete descent modes determined by the brake ratio. These modes define the control strategy and gain scheduling regime.

ModeConditionDescription
MODE_ARbrake>3R_{brake}>3Energy dissipation with large altitude margin
MODE_B1.5<Rbrake31.5<R_{brake}\leq3Controlled descent with moderate braking demand
MODE_CRbrake<1R_{brake}<1Terminal approach under critical braking condition
MODE_DotherwiseTransition or conservative fallback mode

Descent Phase Diagram

Figure 1 visualizes the relationship between altitudehh and descent speedvz|v_z| during the landing phase.

Descent phase diagram
Figure 1 — Safe Descent Corridor.

The black curve shows the minimum altitude required to decelerate to zero vertical velocity with maximum braking acceleration amaxa_{max}. State above the curve (green area) provide sufficient altitude margin Rbrake>1R_{brake} > 1, while states below the curve (red area) are dynamically infeasible and require immediate maxium braking.

The figure below illustrates how the controller switches between descent modes depending on the brake ratio during the landing trajectory.

Descent modes diagram
Figure 2 — Descent Mode Selection.

The brake ratio RbrakeR_{brake} governs the controller's operating mode. As the spacecraft descends and RbrakeR_{brake} decreasees, the controller transitions from energy dissipation (MODE A) to controlled descen (MODE B), then to a conservative transitions (MODE D), and finally to the terminal braking phase (MODE C) until touchdown.


Controller Characteristics

  • Energy-based target descent velocity generation
  • Brake-ratio-based descent mode selection
  • Adaptive gain scheduling
  • Gravity compensation
  • Thrust saturation handling
  • Compatible with normalized propulsion interfaces

The controller provides a structured guidance and control baseline for reproducible lunar landing simulations. It is not intended as a flight-certified landing controller, but as a transparent and extensible research model for autonomous descent experiments.