Calculations

All names on this page are provided by version 1.0.0 of AstrodynamicalCalculations. For more information, consult the documentation for AstrodynamicalCalculations directly.

AstrodynamicalCalculations

Common calculations within orbital mechanics and astrodynamics.

Extended Help

Documentation

See the project documentation for more information: https://JuliaAstro.org/AstrodynamicalCalculations.jl.

License

CR3BPCalculations

R2BPCalculations

apoapsis_radius

apoapsis_radius(a, e)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns apoapsis distance, rₐ.

argument_of_periapsis

argument_of_periapsis(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the argument of periapsis.

c3

c3(r, v, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns C3 value.

cartesian_to_keplerian

cartesian_to_keplerian(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns a Keplarian representation of a Cartesian orbital state. Algorithm taught in ENAE601.

cartesian_to_perifocal

cartesian_to_perifocal(i, Ω, ω, x, y, z, ẋ, ẏ, ż)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the position and velocity vectors in the Perifocal frame.

conic

conic(e)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the conic section, as specified by eccentricity e.

converge

converge(u, stm, Φ; eps)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Perturb halo orbit conditions onto the orbit’s unstable manifold.

converge!

converge!(p, u, stm, Φ; eps)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Perturb halo orbit conditions in-place onto the orbit’s stable manifold.

convergent_direction

convergent_direction(stm; atol)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Calculates the eigenvector associated with the stable manifold of a Monodromy matrix.

distance_scaling

distance_scaling(a)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

The length scale factor used to nondimensionalize CR3BP states.

distance_to_primary

distance_to_primary(r, μ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Returns synodic distance to primary body.

distance_to_secondary

distance_to_secondary(r, μ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Returns synodic distance to secondary body.

diverge

diverge(u, stm, Φ; eps)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Perturb halo orbit conditions onto the orbit’s unstable manifold.

diverge!

diverge!(p, u, stm, Φ; eps)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Perturb halo orbit conditions in-place onto the orbit’s unstable manifold.

divergent_direction

divergent_direction(stm; atol)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Calculates the direction associated with the unstable manifold of a Monodromy matrix.

eccentricity

eccentricity(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns orbital eccentricity, e.

eccentricity_vector

eccentricity_vector(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns orbital eccentricity vector e̅.

hohmann

hohmann(r₁, r₂, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Computes a Hohmann transfer, and returns the departure and arrival velocity vectors.

inclination

inclination(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the orbital inclination.

inertial_to_synodic

inertial_to_synodic(x, y, z, t, ω)
WarningCR3BP Dynamics

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.

jacobi_constant

jacobi_constant(x, y, z, ẋ, ẏ, ż, μ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Returns the Jacobi Constant, C in the Synodic frame with Normalized units.

kepler

kepler(x, y, z, ẋ, ẏ, ż, μ, Δt; atol, maxiter)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Solves Kepler’s Problem, predicting the orbit’s future state geometrically.

keplerian_to_cartesian

keplerian_to_cartesian(e, a, i, Ω, ω, ν, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns a Cartesian representation of a Keplerian two-body orbital state in an inertial frame, centered at the center of mass of the central body. Algorithm taught in ENAE601.

keplerian_to_perifocal

keplerian_to_perifocal(a, e, ν, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns position and velocity vectors in the Perifocal frame.

lagrange_point

lagrange_point(μ, L)
WarningCR3BP Dynamics

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:

lambert

lambert(
    x₁,
    y₁,
    z₁,
    x₂,
    y₂,
    z₂,
    μ,
    Δt;
    trajectory,
    atol,
    maxiter
)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Solves Lambert’s problem through the use of universal variables.

mean_motion

mean_motion(a, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns mean motion, n.

nondimensional

nondimensional(x, y, z, ẋ, ẏ, ż, t, a, μ₁, μ₂)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Normalizes a CR3BP orbit in the rotating reference frame.

nondimensional_radii

nondimensional_radii(x, y, z, xᵢ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Returns the spacecraft’s nondimensional position w.r.t. body 1 (or 2).

orbital_period

orbital_period(a, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the orbital period.

orbital_radius

orbital_radius(p, e, ν)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns distance, r.

orbital_speed

orbital_speed(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the instantaneous velocity, v, for any orbital representation.

periapsis_radius

periapsis_radius(a, e)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns periapsis distance, rₚ.

perifocal_to_cartesian

perifocal_to_cartesian(i, Ω, ω, x, y, z, ẋ, ẏ, ż)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns a spatial representation of the provided Perifocal state.

perturb

perturb(u, stm, direction; eps)
WarningCR3BP Dynamics

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.

perturb!

perturb!(p, u, stm, direction; eps)
WarningCR3BP Dynamics

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.

perturbation

perturbation(stm, direction; eps)
WarningCR3BP Dynamics

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.

potential_energy

potential_energy(x, y, z, μ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Returns the potential energy U in the Synodic frame with Normalized units.

primary_synodic_position

primary_synodic_position(μ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Position of primary body.

redimensioned

redimensioned(x, y, z, ẋ, ẏ, ż, t, μ, a, T)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Redimensionalizes a CR3BP orbit in the rotating reference frame.

reduced_mass

reduced_mass(μ₁, μ₂)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Return the reduced mass.

richardson_halo

richardson_halo(μ, L; Z, hemisphere, ϕ, length)
WarningCR3BP Dynamics

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 not 1 or 2.

References:

richardson_ic

richardson_ic(μ, L; Z, hemisphere, ϕ)
WarningCR3BP Dynamics

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 not 1 or 2.

References:

right_ascension_ascending_node

right_ascension_ascending_node(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the right ascension of the ascending node.

secondary_synodic_position

secondary_synodic_position(μ)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

Position of primary body.

semi_parameter

semi_parameter(a, e)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns semilatus parameter, p.

semimajor_axis

semimajor_axis(r, v, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns semimajor axis parameter, a.

specific_angular_momentum

specific_angular_momentum(x, y, z, ẋ, ẏ, ż)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns scalar specific angular momentum vector, h.

specific_angular_momentum_vector

specific_angular_momentum_vector(x, y, z, ẋ, ẏ, ż)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns specific angular momentum vector, h̅.

specific_energy

specific_energy(a, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns specific orbital energy, ϵ.

specific_potential_energy

specific_potential_energy(r, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns the specific potential energy: the energy per unit mass.

sphere_of_activity

sphere_of_activity(a, m, M)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Sphere of activity.

sphere_of_influence

sphere_of_influence(a, m, M)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Sphere of influence.

synodic_to_inertial

synodic_to_inertial(x, y, z, t, ω)
WarningCR3BP Dynamics

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.

time_scaling

time_scaling(a, μ₁, μ₂)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

The time scale factor used to nondimensionalize CR3BP states.

time_since_periapsis

time_since_periapsis(n, e, E)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns time since periapsis, t.

true_anomaly

true_anomaly(x, y, z, ẋ, ẏ, ż, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns true anomaly, ν.

v_infinity

v_infinity(r, v, μ)
WarningR2BP Dynamics

This computation is valid for Restricted Two Body Problem (Keplerian) orbits.

Returns v∞.

velocity_scaling

velocity_scaling(a, μ₁, μ₂)
WarningCR3BP Dynamics

This computation is valid for Circular Restricted Three Body Problem dynamics.

The velocity scale factor used to nondimensionalize CR3BP states.

zero_velocity_curves

zero_velocity_curves(r, v, μ; nondimensional_range)
WarningCR3BP Dynamics

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.