OrbitDynamics

The OrbitDynamics module provides implementations of various force and orbit perturbation models used in orbit simulation.

SatelliteDynamics.accel_point_massFunction

Computes 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]
source

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]
source
SatelliteDynamics.accel_gravityFunction

Computes 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 expansion
  • m_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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.56-68.
source
SatelliteDynamics.sun_positionFunction

Compute 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:

  1. The EME2000 inertial frame is for most purposes equivalent to the GCRF frame.

References:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.70-73.
source
SatelliteDynamics.moon_positionFunction

Compute 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:

  1. The EME2000 inertial frame is for most purposes equivalent to the GCRF frame.

References:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.70-73.
source
SatelliteDynamics.accel_thirdbody_sunFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.69-70.
source
SatelliteDynamics.accel_thirdbody_moonFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.69-70.
source
SatelliteDynamics.density_harris_priesterFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.89-91.
source
SatelliteDynamics.accel_dragFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.83-86.
source
SatelliteDynamics.eclipse_cylindricalFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.80-83.
source
SatelliteDynamics.eclipse_conicalFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.80-83.
source
SatelliteDynamics.accel_srpFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.77-79.
source
SatelliteDynamics.accel_relativityFunction

Computes 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:

  1. O. Montenbruck, and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012, p.110-112.
source