Common astrodynamics calculations, with hooks into the SciML ecosystem.
Check out GeneralAstrodynamics
in action at JuliaCon 2021! The talk
Going to Jupiter with Julia
walks through a simple Jupiter mission design while gently introducing
astrodynamics, Julia, and GeneralAstrodynamics
.
- Structures for Cartesian and Keplerian states, and R2BP systems
- Functions which implement common R2BP equations
- Kepler and Lambert solvers
- Orbit propagation and plotting
- Structures for dimensioned and normalized Cartesian states, and dimensioned and normalized CR3BP systems
- Functions which implement common CR3BP equations
- Analytical and iterative (numerical) Halo orbit solvers
- Unstable and stable Halo orbit manifold computation
- Orbit propagation and plotting
- Zero-velocity curve computation and plotting
- This was implemented in a previous package version, and is currently being refactored
using GeneralAstrodynamics
orbit = rand(R2BPOrbit)
trajectory = propagate(orbit, orbital_period(orbit))
furnsh(
de440s(), # position and velocity data for nearby planets
latest_leapseconds_lsk(), # timekeeping, parsing epochs
gm_de440(), # mass parameters for major solar system bodies
pck00011(), # physical properties of major solar system bodies
)
μ = reduced_mass(
gm("earth"),
gm("moon"),
)
orbit, T = let
u, T = halo(μ, 2; amplitude=1e-2)
CR3BPOrbit(CartesianState(u), CR3BParameters(μ)), T
end
trajectory = propagate(orbit, T)