Specification for Orbit
1. Overview
1. functions
- The
Orbitclass calculates the position and velocity of satellites with the following propagation mode.KEPLER: Kepler orbit propagation without disturbances and thruster maneuverSGP4: SGP4 propagation using TLE without thruster maneuverRK4: RK4 propagation with disturbances and thruster maneuverENCKE: Encke's orbit propagation with disturbances and thruster maneuverRELATIVE: Relative dynamics (for formation flying simulation)
- The
KEPLERmode is the simplest and general for all users. - The
SGP4mode is useful for LEO satellites users without orbit control. - When users need to analyze the orbit disturbance force effect or the orbit control algorithm, the users should choose
RK4orENCKEmode. - For multiple satellite operation,
RELATIVEmode is useful.`
2. files
src/dynamics/orbit/orbit.hpp, cpp- Definition of
Orbitbase class
- Definition of
src/dynamics/orbit/initialize_orbit.hpp, .cpp- Make an instance of orbit class.
3. How to use
- Make an instance of the orbit class in
Initializefunction indynamics.cpp - Select
propagate_modein the spacecraft's ini file(eg.sample_spacecraft.ini). - Select
initialize_modein the spacecraft's ini file(eg.sample_spacecraft.ini).- This setting works only for
RK4,KEPLER, andENCKEmode.
- This setting works only for
- Set the orbit information in the ini file
- You can see the details in the documents for each orbit propagation mode.
- The definition of the coordinate system is decided at
[CELESTIAL_INFORMATION]section insample_simulation_base.ini.
2. Explanation of Algorithm
In the Orbit base class provides the following common functions for every propagator.
1. UpdateByAttitude function
- The
UpdateByAttitudefunction simply converts the velocity vector of the spacecraft (in ECI coordinate system) to body coordinate system notation using the argument:quaternion_i2b.
2. SetAcceleration_i_m_s2, AddAcceleration_i_m_s2, AddForce_i_N, AddForce_b_N function
- These functions provides the interface to include orbital disturbance or control forces.
2. TransformEcefToGeodetic function
- The
TransformEcefToGeodeticfunction calculates latitude[rad], longitude[rad], and altitude[m]. Currently, we use theGeodeticclass to calculate the information.
3. TransformEciToEcef function
- The
TransformEciToEceffunction can convert the position and the velocity of the satellite from the ECI frame to the ECEF frame, which considers the earth's rotation.
3. Results of verifications
- The verification results are described in the document of each propagation method.
4. References
NA