scenarioLagrangePointOrbit
Overview
This script sets up a 3-DOF spacecraft which is operating at one of five Earth-Moon Lagrange points. The purpose is to illustrate how to use multiple gravity bodies to create interesting 3-body orbit behavior.
The script is found in the folder basilisk/examples
and executed by using:
python3 scenarioLagrangePointOrbit.py
For this simulation, the Earth is assumed stationary, and the Moon’s trajectory is generated using SPICE. Refer to scenarioOrbitMultiBody to learn how to create multiple gravity bodies and read a SPICE trajectory.
The initial position of the spacecraft is specified using a Lagrange point index. The positioning of the Lagrange points is illustrated here.
For Lagrange points 1-3, the initial Earth-spacecraft distance is specified to lowest order in \(\alpha = \mu_{M} / \mu_{E}\), where the subscript M is for the Moon and E is for the Earth. These are unstable equilibrium points.
For Lagrange points 4 and 5, the spacecraft is positioned at \(r_{L4} = r_{L5} = a_{M}\) at +/- 60 degrees from the Earth-Moon vector. These are stable equilibrium points.
When the simulation completes, two plots are shown. The first plot shows the orbits of the Moon and spacecraft in the Earth-centered inertial frame. The second plot shows the motion of the Moon and spacecraft in a frame rotating with the Moon.
Illustration of Simulation Results
The following images illustrate the simulation run results with the following settings:
nOrbits=1, timestep=300, showPlots=True
When starting at L1, L2, or L3, the spacecraft moves away from the unstable equilibrium point.
lagrangePoint=1
lagrangePoint=2
lagrangePoint=3
When starting at L4 or L5, the spacecraft remains near the stable equilibrium point.
lagrangePoint=4
lagrangePoint=5
- scenarioLagrangePointOrbit.run(lagrangePoint, nOrbits, timestep, showPlots=True)[source]
- Parameters:
lagrangePoint (int) – Earth-Moon Lagrange point ID [1,2,3,4,5]
nOrbits (float) – Number of Earth orbits to simulate
timestep (float) – Simulation timestep in seconds
showPlots (bool) – Determines if the script should display plots