AstrodynamicalCalculations.jl
Common calculations within orbital mechanics and astrodynamics.
AstrodynamicalCalculations
— ModuleCommon calculations within orbital mechanics and astrodynamics.
Extended Help
Imports
AstrodynamicalCalculations.CR3BPCalculations
AstrodynamicalCalculations.R2BPCalculations
Base
Core
DocStringExtensions
Reexport
Exports
CR3BPCalculations
R2BPCalculations
apoapsis_radius
argument_of_periapsis
c3
cartesian_to_keplerian
cartesian_to_perifocal
conic
converge
converge!
convergent_direction
distance_scaling
distance_to_primary
distance_to_secondary
diverge
diverge!
divergent_direction
eccentricity
eccentricity_vector
hohmann
inclination
jacobi_constant
kepler
keplerian_to_cartesian
keplerian_to_perifocal
lagrange_point
lambert
mean_motion
nondimensional
nondimensional_radii
orbital_period
orbital_radius
orbital_speed
periapsis_radius
perifocal_to_cartesian
perturb
perturb!
perturbation
potential_energy
primary_synodic_position
redimensioned
reduced_mass
richardson_halo
richardson_ic
right_ascension_ascending_node
secondary_synodic_position
semi_parameter
semimajor_axis
specific_angular_momentum
specific_angular_momentum_vector
specific_energy
specific_potential_energy
sphere_of_activity
sphere_of_influence
time_scaling
time_since_periapsis
true_anomaly
v_infinity
velocity_scaling
zero_velocity_curves
Installation
pkg> add AstrodynamicalCalculations
Getting Started
One common task within first-year orbital mechanics courses is converting to, and from, Keplerian parameters (orbital elements). Kepler's prediction algorithm is another staple! These simple calculations are provided by the R2BPCalculations
submodule within AstrodynamicalCalculations
.
The size of all of the vectors in these calculations are known at compile time. You can drastically improve performance by using StaticArrays
types, i.e. SVector
.
julia> using AstrodynamicalCalculations
julia> r = [0.0, 11681.0, 0.0]; # km
julia> v = [5.134, 4.226, 2.787]; # km/s
julia> μ = 398600.4354360959; # km³ s⁻²
julia> e, a, i, Ω, ω, ν = cartesian_to_keplerian(r, v, μ)
(0.723452708202361, 24509.265399338536, 2.6442542356744734, 1.5707963267948966, 4.712449617676915, 1.5707356895026707)
julia> T = orbital_period(a, μ)
38186.19850882009
julia> rₙ, vₙ = kepler(r, v, μ, 2.5T)
([36872.96963754877, -2574.241491333036, 20016.549742861007], [-0.3141726028666592, -1.6044679459972122, -0.17054909314167882])