JuliaAstro / GeneralAstrodynamics.jl

Astrodynamics with units! Provides common astrodynamics calculations, plotting, and iterative Halo, Kepler, and Lambert solvers.
https://juliahub.com/ui/Packages/GeneralAstrodynamics/o9DTc
MIT License
21 stars 3 forks source link
astrodynamics julia orbits propagation scientific-computing space unitful

Tests Docs

GeneralAstrodynamics.jl

Common astrodynamics calculations, with units!

Warning

The functionality in this package has being split into constituent packages, including AstrodynamicalModels.jl AstrodynamicalCalculations.jl, AstrodynamicalSolvers.jl, and more. GeneralAstrodynamics.jl is currently being refactored into a super-package, which re-exports the functionality in its constituent packages. Look out for v1.0!

JuliaCon Talk

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.

Features

Restricted Two-body Problem (R2BP)

Circular Restricted Three-body Problem (CR3BP)

N-body Problem (NBP)

Envisioned Usage

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)