Circular Restricted Three Body Equations
All three-body equations!
AstrodynamicalCalculations.CR3BPCalculations
— ModuleCommon calculations within Circular Restricted Three Body Problem dynamics.
Extended Help
Imports
Base
Core
DocStringExtensions
LinearAlgebra
Roots
StaticArrays
Exports
converge
converge!
convergent_direction
distance_scaling
distance_to_primary
distance_to_secondary
diverge
diverge!
divergent_direction
jacobi_constant
lagrange_point
nondimensional
nondimensional_radii
perturb
perturb!
perturbation
potential_energy
primary_synodic_position
redimensioned
reduced_mass
richardson_halo
richardson_ic
secondary_synodic_position
time_scaling
velocity_scaling
zero_velocity_curves
AstrodynamicalCalculations.CR3BPCalculations.converge!
— Methodconverge!(p, u, stm, Φ; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Perturb halo orbit conditions in-place onto the orbit's stable manifold.
AstrodynamicalCalculations.CR3BPCalculations.converge
— Methodconverge(u, stm, Φ; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Perturb halo orbit conditions onto the orbit's unstable manifold.
AstrodynamicalCalculations.CR3BPCalculations.convergent_direction
— Methodconvergent_direction(stm; atol)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Calculates the eigenvector associated with the stable manifold of a Monodromy matrix.
AstrodynamicalCalculations.CR3BPCalculations.distance_scaling
— Methoddistance_scaling(a)
This computation is valid for Circular Restricted Three Body Problem dynamics.
The length scale factor used to nondimensionalize CR3BP states.
AstrodynamicalCalculations.CR3BPCalculations.distance_to_primary
— Methoddistance_to_primary(r, μ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns synodic distance to primary body.
AstrodynamicalCalculations.CR3BPCalculations.distance_to_secondary
— Methoddistance_to_secondary(r, μ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns synodic distance to secondary body.
AstrodynamicalCalculations.CR3BPCalculations.diverge!
— Methoddiverge!(p, u, stm, Φ; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Perturb halo orbit conditions in-place onto the orbit's unstable manifold.
AstrodynamicalCalculations.CR3BPCalculations.diverge
— Methoddiverge(u, stm, Φ; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Perturb halo orbit conditions onto the orbit's unstable manifold.
AstrodynamicalCalculations.CR3BPCalculations.divergent_direction
— Methoddivergent_direction(stm; atol)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Calculates the direction associated with the unstable manifold of a Monodromy matrix.
AstrodynamicalCalculations.CR3BPCalculations.inertial_to_synodic
— Methodinertial_to_synodic(x, y, z, t, ω)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Given a barycentric-inertial Cartesian state, returns the state in the synodic (rotating) reference frame.
AstrodynamicalCalculations.CR3BPCalculations.jacobi_constant
— Methodjacobi_constant(x, y, z, ẋ, ẏ, ż, μ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns the Jacobi Constant, C
in the Synodic frame with Normalized units.
AstrodynamicalCalculations.CR3BPCalculations.lagrange_point
— Methodlagrange_point(μ, L)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns the lagrange points for a CR3BP system.
Arguments:
μ
: Non-dimensional mass parameter for the CR3BP system.L
: Langrange points requested, must be in range [1,5]
Outputs:
- Tuple of Lagrange points
- Throws
ArgumentError
if L is out of range [1,5]
References:
AstrodynamicalCalculations.CR3BPCalculations.nondimensional
— Methodnondimensional(x, y, z, ẋ, ẏ, ż, t, a, μ₁, μ₂)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Normalizes a CR3BP orbit in the rotating reference frame.
AstrodynamicalCalculations.CR3BPCalculations.nondimensional_radii
— Methodnondimensional_radii(x, y, z, xᵢ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns the spacecraft's nondimensional position w.r.t. body 1 (or 2).
AstrodynamicalCalculations.CR3BPCalculations.perturb!
— Methodperturb!(p, u, stm, direction; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Perturb a Cartesian state in-place along a halo orbit onto a stable or unstable manifold.
AstrodynamicalCalculations.CR3BPCalculations.perturb
— Methodperturb(u, stm, direction; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Perturb a Cartesian state along a halo orbit onto a stable or unstable manifold.
AstrodynamicalCalculations.CR3BPCalculations.perturbation
— Methodperturbation(stm, direction; eps)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Return the perturbation in Cartesian state space along a halo orbit onto the provided direction of the provided manifold.
AstrodynamicalCalculations.CR3BPCalculations.potential_energy
— Methodpotential_energy(x, y, z, μ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns the potential energy U
in the Synodic frame with Normalized units.
AstrodynamicalCalculations.CR3BPCalculations.primary_synodic_position
— Methodprimary_synodic_position(μ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Position of primary body.
AstrodynamicalCalculations.CR3BPCalculations.redimensioned
— Methodredimensioned(x, y, z, ẋ, ẏ, ż, t, μ, a, T)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Redimensionalizes a CR3BP orbit in the rotating reference frame.
AstrodynamicalCalculations.CR3BPCalculations.reduced_mass
— Methodreduced_mass(μ₁, μ₂)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Return the reduced mass.
AstrodynamicalCalculations.CR3BPCalculations.richardson_halo
— Methodrichardson_halo(μ, L; Z, hemisphere, ϕ, length)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns an analytical solution for a Halo orbit about L
.
Extended Help
Arguments
μ
: Non-dimensional mass parameter for the CR3BP system.L
: Lagrange point to orbit (L1 or L2).Z
: Desired non-dimensional Z-amplitude for Halo orbit.hemisphere
: Specifies northern or southern Halo orbit.ϕ
: Desired Halo orbit phase.steps
: Number of non-dimensional timepoints in returned state.
Outputs
- Near-periodic initial condition
u
- Halo orbit period
T
. - Throws
ArgumentError
if L is not1
or2
.
References:
AstrodynamicalCalculations.CR3BPCalculations.richardson_ic
— Methodrichardson_ic(μ, L; Z, hemisphere, ϕ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns an analytical solution for a Halo orbit about L
.
Extended Help
Arguments
μ
: Non-dimensional mass parameter for the CR3BP system.L
: Lagrange point to orbit (L1 or L2).Z
: Desired non-dimensional Z-amplitude for Halo orbit.hemisphere
: Specifies northern or southern Halo orbit.ϕ
: Desired Halo orbit phase.steps
: Number of non-dimensional timepoints in returned state.
Outputs
- Near-periodic initial condition
u
- Halo orbit period
T
. - Throws
ArgumentError
if L is not1
or2
.
References:
AstrodynamicalCalculations.CR3BPCalculations.secondary_synodic_position
— Methodsecondary_synodic_position(μ)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Position of primary body.
AstrodynamicalCalculations.CR3BPCalculations.synodic_to_inertial
— Methodsynodic_to_inertial(x, y, z, t, ω)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Given the Synodic frame vector, returns the vector in the barycentric-inertial reference frame.
AstrodynamicalCalculations.CR3BPCalculations.time_scaling
— Methodtime_scaling(a, μ₁, μ₂)
This computation is valid for Circular Restricted Three Body Problem dynamics.
The time scale factor used to nondimensionalize CR3BP states.
AstrodynamicalCalculations.CR3BPCalculations.velocity_scaling
— Methodvelocity_scaling(a, μ₁, μ₂)
This computation is valid for Circular Restricted Three Body Problem dynamics.
The velocity scale factor used to nondimensionalize CR3BP states.
AstrodynamicalCalculations.CR3BPCalculations.zero_velocity_curves
— Methodzero_velocity_curves(r, v, μ; nondimensional_range)
This computation is valid for Circular Restricted Three Body Problem dynamics.
Returns a Vector
of Matrix
values. Each Matrix
contains a 3-column nondimensional position trajectory in the Synodic frame which represents a Zero Velocity Curve.