A Last Second Lunar Lander – Part 1

Last Second Lunar Lander

This post begins to to over the math behind a suicide burn maneuver. It covers what is a suicide burn along with generating the systems governing equations.

What is a suicide burn?

A suicide burn is a colloquialism for any powered landing that you turn your engine to full thrust at the last possible second to slow you down. You continue this burn until you land at which point you shut your engines down exactly at the point you touch down. It’s called a suicide burn because there’s almost no margin or error. If you mistime it, you’ll most likely end up splat (yes, splat is the technical term) against the surface you were trying to land on.

If it’s so dangerous why would we want to use this maneuver? Two reasons can prompt the desire for a suicide burn, efficiency and a high thrust to weight ratio. If we are familiar with the Oberth effect, we know that rocket engines are more efficient when the rocket is at a faster velocity. By waiting until the last second we have let the spacecraft accelerate for  the longest period of time meaning it has the highest possible velocity, and therefore the highest rocket engine efficiency. This allows us to land with the least amount of fuel. By needing less fuel to land, and the landers position at the top of the rocket, we have large amounts of weight savings upstream on the prior stages.

Another reason to use this maneuver, is if your minimum thrust to weight ratio is above 1. This means that if you begin with a negative downward velocity there is only one time in the future where you will have zero downward velocity. Your engine has to cutout at, or close, to this point to land. If it doesn’t, it’s not going to land with a negligible vertical velocity.  For example, the Falcon 9’s booster, when returning to land, have a minimum thrust to weight ratio greater than one. Their landings are suicide burns and a successful one is shown in  the video below:


Additionally, in the video below, we can see what happens when their landings do not go correctly, and why this maneuver has such a macabre name.



Math behind a suicide burn


All forces on the lander are in blue

Lets approach this problem from a Newtons second law perspective, and identify the forces acting on our lunar lander.

First, there’s the moons gravity acting towards the moon. Because we are close to the moon, lets just assume that the moon is flat and gravity is always acting down. Next we have the force from our thruster.  Our thruster will act through the lander and for simplicity lets assume that the thruster can’t gimble. The way we can control the direction that the motor fires in is by tuning the entire spacecraft. Additionally for sake of simplicity let’s also assume that mass is constant.

m \ddot{x} =F_{thrust}\cos(\theta)

m \ddot{y} =F_{thrust}\sin(\theta) - \frac{GM_{moon}m}{y^2}

Because all the forces act though the center of gravity of the lander the moment balance simplifies down to

J \ddot{\theta} = \tau

Where τ is the torque from a reaction wheel.

Burn Strategy and Building a Controller to Regulate it

Now, there are plenty of control strategies that we could approach this problem with. The simplest would be to have a two burn procedure where you zero out your horizontal velocity when you de-orbit and then use the suicide burn simply to land and ensure your vertical velocity is 0 when you touchdown. This is an extremely simple strategy and can even be solved analytically. It will form the basis for part two of this series.

For the remainder of this post though, I will focus on a robust strategy, where the lander is always thrusting opposite to it’s velocity vector. While this strategy is far from optimal, if your thrust to weight ratio is larger than one, it will guarantee that if your  you will always come to a stop. Because we are enforcing this condition we can now specify θ as

\theta = \pi + atan(\frac{\dot{y}}{\dot{x}})

This simplifies our equations of motion down to

m \ddot{x} = -F_{thrust}\cos(atan(\frac{\dot{y}}{\dot{x}}))

m \ddot{y} = -F_{thrust}\sin(atan(\frac{\dot{y}}{\dot{x}}))-\frac{GM_{moon}m}{r^2}

Now that we have a desired angle we want the lander to be at,Φ, lets build a simple controller for this lander. Let’s assume that we can observe the landers actual  angle, φ, directly. Lets define the error, e, between these two as

e = \Phi - \varphi

This error is going to drive the control of the lander and allow us to land even if there is some mistake in our starting angle. We can use this error to determine the torque our lander needs to produce. This changes our rotational equation of motion to the following

J \ddot{\theta} = K  e = K(\Phi- \varphi)

where K is some constant. (I’m  skipping over a lot of the controls here because I’ve been asked to create a training on the basics of modeling and control for a lab, that once completed, will be adapted to a series for this website)

Now that we have the equations of motion, lets define some final conditions which we want to achieve at the end of the burn.

  • Final velocity in x and y direction have to equal to 0
  • Final y position must be 0
  • Final θ must be 0
  • Final angular velocity must be 0

Analytical Solutionimage (1)

Now that we have end conditions, we want to be able to specify a set of initial condition and then solve for the length of our needed burn. The above dynamic equations are nonlinear  (aka not trivial to solve). I plugged them into Maple and it have posted it’s solution to the left. It’s ugly but don’t worry, we wont be dealing with it.

Now this post is already over 1000 words and I don’t want it to be too long so I’m gonna save improving on this mess of an analytical solution for the next post. It will involve geometry, special cases, dead ends, and maybe even different trajectories. It will drop next week Monday.

Simulating It

Now I don’t want you to leave without getting some interesting results or at least a Gif so we are going to run some simulations. You may ask how can we simulate it and ensure our final conditions are met properly?

The simple answer, we are going to cheat.

We are going to have some set of initial conditions and but we are going to run the simulation for some ungodly long about of time. Instead of leatting the simulation run for the entierety of the specified time, we are going to use an ODE event function to break out when we detect that the horizontal and vertical velocity are both less than one. Once we have this we are going to reset the initial position so that it executes a perfect suicide burn.landerLanding









Want more Gereshes?

Part 2 of this post will drop next week Monday. If you want to receive it and the future weekly Gereshes blog posts directly to your email every Monday morning you can sign up for the newsletter here!

If you want more Gereshes  before next weeks part 2, I suggest:

Rollout of a rocket motor test stand

How to pump a swing using math

Guerrilla astronomy