OrbitDynamics
The OrbitDynamics module provides implementations of various force and orbit perturbation models used in orbit simulation.
SatelliteDynamics.accel_point_mass
— FunctionComputes the acceleration of a satellite caused by a point-mass approximation of the central body. Returns the acceleration vector of the satellite.
Assumes the satellite is much, much less massive than the central body.
Arguments:
r_sat::Array{<:Real, 1}
: satellite position in a commonn inertial frame [m]r_body::Array{<:Real, 1}
: position of body in a commonn inertial frame [m]GM::Array{<:Real, 1}
: gravitational coeffient of attracting body [m^3/s^2] Default: SatelliteDynamics.GM_EARTH)
(Default: SatelliteDynamics.GM_EARTH
Return:
a::Array{<:Real, 1}
: Acceleration in X, Y, and Z inertial directions [m/s^2]
Computes the acceleration on a satellite caused by a point-mass approximation of a massive body. Returns the acceleration vector of the satellite.
Arguments:
r_sat::Array{<:Real, 1}
: satellite position in the inertial frame [m]GM::Array{<:Real, 1}
: gravitational coeffient of attracting body [m^3/s^2] Default: SatelliteDynamics.GM_EARTH)
(Default: SatelliteDynamics.GM_EARTH
Return:
a::Array{<:Real, 1}
: Acceleration in X, Y, and Z inertial directions [m/s^2]
SatelliteDynamics.accel_gravity
— FunctionComputes the accleration caused by Earth gravity as modeled by a spherical harmonic gravity field.
Arguments:
r_sat::Array{<:Real, 1}
: Satellite position in the inertial frame [m]R_eci_ecef::Array{<:Real, 2}
: Rotation matrix transforming a vector from the inertial to body-fixed reference frames.n_max::Integer
: Maximum degree coefficient to use in expansionm_max::Integer
: Maximum order coefficient to use in the expansion. Must be less than the degree.
Return:
a::Array{<:Real, 1}
: Gravitational acceleration in X, Y, and Z inertial directions [m/s^2]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.56-68.
SatelliteDynamics.sun_position
— FunctionCompute the Sun's position in the EME2000 inertial frame through the use of low-precision analytical functions.
Argument:
epc::Epoch
: Epoch
Returns:
r_sun::Array{<:Real, 1}
: Position vector of the Sun in the Earth-centered inertial fame.
Notes:
- The EME2000 inertial frame is for most purposes equivalent to the GCRF frame.
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.70-73.
SatelliteDynamics.moon_position
— FunctionCompute the Moon's position in the EME2000 inertial frame through the use of low-precision analytical functions.
Argument:
epc::Epoch
: Epoch
Returns:
r_moon::Array{<:Real, 1}
: Position vector of the Moon in the Earth-centered inertial fame.
Notes:
- The EME2000 inertial frame is for most purposes equivalent to the GCRF frame.
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.70-73.
SatelliteDynamics.accel_thirdbody_sun
— FunctionComputes the acceleration of a satellite in the inertial frame due to the gravitational attraction of the Sun.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]r_sun::Array{<:Real, 1}
: Position of sun in inertial frame.
Return:
a::Array{<:Real, 1}
: Acceleration due to the Sun's gravity in the inertial frame [m/s^2]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.69-70.
SatelliteDynamics.accel_thirdbody_moon
— FunctionComputes the acceleration of a satellite in the inertial frame due to the gravitational attraction of the Moon.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]r_moon::Array{<:Real, 1}
: Position of moon in inertial frame.
Returns:
a::Array{<:Real, 1}
: Acceleration due to the Moon's gravity in the inertial frame [m/s^2]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.69-70.
SatelliteDynamics.density_harris_priester
— FunctionComputes the local density using the Harris-Priester density model.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]r_sun::Array{<:Real, 1}
: Position of sun in inertial frame.
Returns:
rho:Float64
: Local atmospheric density [kg/m^3]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.89-91.
SatelliteDynamics.accel_drag
— FunctionComputes the perturbing, non-conservative acceleration caused by atmospheric drag assuming that the ballistic properties of the spacecraft are captured by the coefficient of drag.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]rho::Real
: atmospheric density [kg/m^3]mass::Real
: Spacecraft mass [kg]area::Real
: Wind-facing cross-sectional area [m^2]Cd::Real
: coefficient of drag [dimensionless]T::Array{<:Real, 2}
: Rotation matrix from the inertial to the true-of-date frame
Return:
a::Array{<:Real, 1}
: Acceleration due to drag in the X, Y, and Z inertial directions. [m/s^2]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.83-86.
SatelliteDynamics.eclipse_cylindrical
— FunctionComputes the illumination fraction of a satellite in Earth orbit using a cylindrical Earth shadow model.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]r_sun::Array{<:Real, 1}
: Position of sun in inertial frame.
Return:
nu::Float64
: Illumination fraction (0 <= nu <= 1). nu = 0 means spacecraft in complete shadow, nu = 1 mean spacecraft fully illuminated by sun.
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.80-83.
SatelliteDynamics.eclipse_conical
— FunctionComputes the illumination fraction of a satellite in Earth orbit using a conical Earth shadow model.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]r_sun::Array{<:Real, 1}
: Position of sun in inertial frame.
Return:
nu::Float64
: Illumination fraction (0 <= nu <= 1). nu = 0 means spacecraft in complete shadow, nu = 1 mean spacecraft fully illuminated by sun.
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.80-83.
SatelliteDynamics.accel_srp
— FunctionComputes the perturbing acceleration due to direct solar radiation pressure assuming the reflecting surface is a flat plate pointed directly at the Sun.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]
Returns:
a::Array{<:Real, 1}
: Satellite acceleration due to solar radiation pressure [m/s^2]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.77-79.
SatelliteDynamics.accel_relativity
— FunctionComputes perturbation accleration of a satellite in the Inertial frame due to the combined effects of special and general relativity.
Arguments:
x::Array{<:Real, 1}
: Satellite Cartesean state in the inertial reference frame [m; m/s]
Returns:
a::Array{<:Real, 1}
: Satellite acceleration due to relativity. [m/s^2]
References:
- O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.110-112.