- The
EarthRotation
class calculates the rotational motion of the Earth.
src/environment/global/earth_rotation.cpp, .hpp
EarthRotation
class is defined here.
src/environment/global/celestial_information.cpp, .hpp
EarthRotation
class is used here.
- Make an instance of the
EarthRotation
class inCelestialInformation
class. - Select rotation mode in
sample_simulation_base.ini
-
IDLE
: no motion ($\mathrm{DCM_{ECItoECEF}}$ is set as the unit matrix)- If the rotation mode input is neither
FULL
norSIMPLE
, theIDLE
mode is set.
- If the rotation mode input is neither
-
SIMPLE
: axial rotation only ($\mathrm{DCM_{ECItoECEF}} = \bf{R}$ ) -
FULL
: Precession and Nutation are taken into account ($\mathrm{DCM_{ECItoECEF}} = \bf{R}\bf{N}\bf{P}$ )-
$\bf{R}$ ,$\bf{N}$ ,$\bf{P}$ stand for the DCM of axial rotation, nutation, precession, respectively.
-
-
The algorithm is based on IERS Conventions 2003.
- This function calculates the coordinate transformation from ECI to ECEF, calling
Rotation
andPrecession
andNutation
functions.
- where
$\bf{R}$ ,$\bf{N}$ ,$\bf{P}$ stand for the DCM of axial rotation, nutation, precession, respectively.
- Input
- Julian date
- Output
- the DCM of the coordinate transformation from ECI to ECEF
- where Julian date is the input, dtUT1UTC is the time difference between UT1 and UTC
- dtUT1UTC = 32.184 [s]
-
where tTT is Julian century for terrestrial time, JDJ2000 is Julian Date @ J2000, JC is Julian Century
- JDJ2000 = 2451545.0 [day]
- JC = 36525 [day/century]
-
By using tTT, we get the DCM of precession (
$\bf{P}$ ) and nutation ($\bf{N}$ ) withPrecession
andNutation
functions. -
$\varepsilon$ ,$\Delta \varepsilon$ ,$\Delta \psi$ are calculated inNutation
function.
-
where GAST is Greenwich Apparent Sidereal Time, GMST is Greenwich Mean Sidereal Time
-
GAST is calculated from julian date in
gstime
function insrc/Library/sgp4/sgp4unit.h
. -
By using GMST, We get the DCM of axial rotation (
$\bf{R}$ ) with theRotation
function. The coordinate transformation from ECI to ECEF is calculated.
- If rotation mode is
Simple
, only axial rotation is calculated.
- This function calculates the axial rotation of the central object.
- Input
- Greenwich Apparent Sidereal Time (GAST)
- Output
- the DCM of axial rotation (
$\bf{R}$ )
- the DCM of axial rotation (
- This function calculates the precession of the central object.
- Input
- Julian century for terrestrial time (tTT)
- Output
- the DCM of precession (
$\bf{P}$ )
- the DCM of precession (
- Precession angles are calculated as follows.
- This function calculates the nutation of the central object.
- Input
- Julian century for terrestrial time (tTT)
- Output
- Return: the DCM of precession (
$\bf{N}$ ) -
$\varepsilon$ : mean obliquity of the ecliptic -
$\Delta \varepsilon$ : nutation in obliquity -
$\Delta \psi$ : nutation in longitude
- Return: the DCM of precession (
Delaunay angles are calculated as follows.
- l : mean anomaly of the moon
- l' : mean anomaly of the sun
- F : mean argument of latitude of the moon
- D : mean elongation of the moon from the sun
-
$\Omega$ : mean longitude of ascending node of the moon
where
- The
$\mathrm{DCM_{ECItoECEF}}$ calculation is compared with Matlab's dcmeci2ecef function
- input value
- Simulation time
- 200, 20000, 100000 [s]
- other conditions
- default initialize files
- UTC = 2020/01/01 12:00:00
- Step Time 0.1 [s]
- default initialize files
- Simulation time
If you want to reduce the calculation time, it is recommended to select Simple
mode rather than Idle
mode. Note again that if the rotation mode input is neither Full
nor Simple
, the Idle
mode is set.
The results of Full
rotation mode and Matlab agree well. Note that Matlab is based on the IAU-2000/2005 reference system, while S2E is based on IERS Conventions 2003.
- 天体の回転運動理論入門講義ノート, 福島 登志夫, 2007.(written in Japanese)
- 天体の位置計算, 長沢 工, 2001.(written in Japanese)
- IERS Conventions 2003, D. D. McCarthy and G Petit, 2003.
- MATLAB dcmeci2ecef, retrieved June 18, 2021.