Simulation

Simulation

The Simulation module provides the capability to simulate satellite orbit and attitude dynamics by combining the dynamics functions provided in this module with the numerical integration capabilities of DifferentialEquations.jl.

The goal is to provide straight forward, and easily customizable interfaces for simulations of orbit and attitude dynamics.

Simulate orbit dynamics

Arguments:

  • epc0::Epoch: Propagation start Epoch
  • eci0::Epoch: Initial Cartesean inertial state [m; m/s]
  • epcf::Epoch: Final to simulate to.
  • timestep::Real: Timestep to use for simulation (Default: 5.0)
  • solver: Solver to use to solve ODEProblem
  • atol::Real: Absolute tolerate limit for differential equation solution (Default: 1.0e-9)
  • atol::Real: Absolute tolerate limit for differential equation solution (Default: 1.0e-9)
  • mass::Real: Satellite mass (Default: 100.0) [kg]
  • area_drag::Real: Area of drag (cannon-ball model) (Default: 1.0) [m^2]
  • coef_drag::Real: Coefficient of drag (Default: 2.3) [dimensionless]
  • area_srp::Real: Area of solar radiation prerssure (Default: 1.0) [m^2]
  • coef_srp::Real: Coefficient of reflectivity (Default: 1.8) [dimensionless]
  • n_grav::Integer: Degree of gravity field (Default: 0.0) [dimensionless]
  • m_grav::Integer: Order of gravity field (Default: 0.0) [dimensionless]
  • drag::Bool: Apply drag perturbation (Default: false)
  • srp::Bool: Apply solar radiation pressure perturbation (Default: false)
  • moon::Bool: Apply third-body lunar gravity perturbation (Default: false)
  • sun::Bool: Apply third-body solar gravity perturbation (Default: false)
  • relativity::Bool: Apply relativistic perturbations (Default: false)

Returns:

  • t::Array{Float64, 1}: Simulation output times at elapsed seconds from initial Epoch
  • epc::Array{Epoch, 1}: Simulation output times as absolute Epochs
  • eci::Array{Float64, 2}: Propgated inertial state. Time is aligned with column dimension.
source