Skip to content
Victor Hertel edited this page May 4, 2018 · 3 revisions

Intro

The syntax of this tool can be divided into two different applications. The first one deals with single halo orbit computation by directly utilizing the Orbit class. The second application is about halo orbit families and therefore based on the HaloFamily class. In this chapter, every method of these classes and their individual syntax is presented.

Orbit Class

An orbit can be instantiated by:

testOrbit = Orbit(x0, fixedValue, mu, jacobi, stability, NRHO)
Keyword Description Data Type Mandatory Default
x0 Initial guess of halo orbit Float array YES -
fixedValue Value will be fixed during iterative corrections scheme String: {"x", "z"} YES -
mu Mass ratio Float YES -
jacobi Jacobi constant Float NO None
stability Stability index Float NO None
NRHO NRHO classification Bool NO False

As already explained in Program Structure, the Orbit class includes four methods:

Method Description Input Parameters Mandatory Default
getNearestNRHO() Searches for closest NRHO - - -
getJacobi() Calculates Jacobi constant - - -
getStability Calculates stability index - - -
plot(background, haloFamily) Plots figure of orbit String:
background: {"on", "off"}
haloFamily: {"both", "northern", "southern}
NO background="off", haloFamily="both"

Example

For the sake of clarity, the initial guess needed for both a single halo orbit and a halo orbit family as well as constants like the mass ratio should be defined before instantiating an object:

mFirstPrimary = 5.97237e+24  # Earth
mSecondPrimary = 7.342e+22  # Moon
mu = mSecondPrimary / (mSecondPrimary + mFirstPrimary)
x0 = np.array([1.10156010, 0, -0.19840472, 0, -0.21676273, 0])

Orbit = Orbit(x0, "x", mu)

Orbit.plot()  # top left figure
Orbit.plot(background="on")  # top right figure
Orbit.plot(background="on", haloFamily="northern")  # bottom left figure
Orbit.plot(background="on", haloFamily="southern")  # bottom right figure

OrbitFamily Class

A family of halo orbit can be instantiated by three different ways:

testFamily = OrbitFamily(x0, orbitDistance, mu, familyData) 
testFamily_L1 = L1Family(x0, orbitDistance, mu, familyData)
testFamily_L2 = L2Family(x0, orbitDistance, mu, familyData)
Keyword Description Data Type Mandatory Default
x0 Initial guess of halo orbit Float array YES -
orbitDistance Desired distance between orbits Float YES -
mu Mass ratio Float YES -
familyData Include initial guess and period of orbits Float array NO None

These classes include three methods. When using L1Family() or L2Family(), the parameter lagrangian is NOT used.

Method Description Input Parameters Mandatory Default
getHaloFamily(lagrangian) Uses Natural Parameter Continuation to find family of halo orbits String: {"L1", "L2"} YES -
getNRHOFamily(lagrangian) Uses Natural Parameter Continuation and Pseudo-Arclength Continuation to find family of NRHO String: {"L1", "L2"} YES -
plot(lagrangian, background, haloFamily) Plots figure of orbit String:
background: {"on", "off"}
haloFamily: {"both", "northern", "southern}
lagrangian: YES background="off", haloFamily="both"

Example

mFirstPrimary = 5.97237e+24  # Earth
mSecondPrimary = 7.342e+22  # Moon
mu = mSecondPrimary / (mSecondPrimary + mFirstPrimary)
l1 = np.array([0.8233901862, 0, -0.0029876370, 0, 0.1264751431, 0])
l2 = np.array([1.1808881373, 0, -0.0032736457, 0, -0.1559184478, 0])

family1 = OrbitFamily(l1, 0.002, mu)
family1.plot("L1")  # left figure

family2 = L2Family(l2, 0.002, mu)
family2.plot()  # right figure


  1. Orbit Types in cis-lunar Space
    • Keplerian Orbits
      • Low Lunar Orbit
      • Elliptical Lunar Orbit
      • Frozen Lunar Orbit
    • Lagrangian Point Orbits
      • Periodic Orbits
      • Quasi-Periodic Orbits

  1. Classification of Halo Orbits
    • Halo Orbit Families
      • L1 Halo Family
      • L2 Halo Family
      • L3 Halo Family
    • Near Rectilinear Halo Orbit

  1. Dynamical Models
    • n-Body Problem
    • Three Body Problem
    • Circular Restricted Three Body Problem
      • Assumptions
      • Coordinate Systems
      • Non-dimensionalization
      • Equations of Motion
      • Jacobi Constant
      • First Order Analytical Approximations for Motion in the Vicinity of Libration Points
      • Approximate Periodic Solutions

  1. Dynamical Systems Theory
    • State Transition Matrix
    • Differential Corrections
    • Periodic Halo Orbit Computation
    • Continuation of an Halo Orbit Family
      • Natural Parameter Continuation
      • Pseudo-Arclength Continuation

Clone this wiki locally