-
Notifications
You must be signed in to change notification settings - Fork 1
Syntax
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.
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" |
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
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" |
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
The Wiki and further background information can be downloaded in PDF version here.
- 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
- Keplerian Orbits
- Classification of Halo Orbits
- Halo Orbit Families
- L1 Halo Family
- L2 Halo Family
- L3 Halo Family
- Near Rectilinear Halo Orbit
- Halo Orbit Families
- 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
- Dynamical Systems Theory
- State Transition Matrix
- Differential Corrections
- Periodic Halo Orbit Computation
- Continuation of an Halo Orbit Family
- Natural Parameter Continuation
- Pseudo-Arclength Continuation