This is a copy of the issue on bitbucket (https://bitbucket.org/avslab/basilisk/issues/10/verification-of-orbit-propagation)
Many thanks to the original issue creator Sergio De Florio
Comparisons.zip
The orbit propagation results for a satellite in LEO using a spherical harmonics gravitational field model and no other perturbation have been compared to the propagation results from Orekit (https://www.orekit.org/), SpOCK (https://github.com/deflorio/SpOCK), and GMAT (https://gmat.atlassian.net/wiki/home).
Some comparison results are included in the attachment for a simulation over 90 days and using 10 s integration step. For completeness sake also the comparison of the results from SpOCK vs Orekit and SpOCK vs GMAT have been included (SpOCK’s orbit propagator has been validated also vs a.i. solutions FreeFlyer). In fact with the same type of comparison it has been verified that Orekit, FreeFlyer, SpOCK and GMAT are consistent with each other (the small differences are due to various factors including e.g. different software implementations and different treatment of floating point numbers). The results of a comparison SpOCK vs Orekit using two different type of numerical integrators (see note below) have also been included in order to appreciate the difference keeping all other parameters identical (step size, perturbations).
An inconsistency in the results from Basilisk, Orekit, and SpOCK has been noticed. The not consistency of the results from Basilisk can be noted also just considering the trend of the eccentricity vector (long term perturbations should not be present) and the inclination considering that only the Earth’s gravity spherical harmonics are included in the perturbation forces.
In the attachment, also the Python script (orbprop.py) used to run the propagation with Basilisk has been included. This script is based on the example scenario scenarioBasicOrbit.py. It is possible that the problem is simply in a wrong implementation of script orbprop.py.
It could be useful to include in Basilisk's documentation results showing the consistency of the orbit and attitude propagation with other propagators (COTS or open source).
Attachment:
- Plots of orbital elements a, ex, ey, i, RAAN (Basilisk vs Orekit)
- Plots of relative orbital elements a, dex, dey, dix, diy normalized to semi-major axis a (Basilisk vs Orekit, Basilisk vs GMAT, SpOCK vs Orekit, SpOCK vs GMAT)
- Plots of relative position and velocity in orbital frame (R pointing along the orbit’s radius, N pointing along the angular momentum vector, and T = N × R pointing in the direction of motion for a circular orbit), (Basilisk vs Orekit, Basilisk vs GMAT, SpOCK vs Orekit, SpOCK vs GMAT)
- Plots of the difference between the magnitude of position and velocity vectors (Basilisk vs Orekit, Basilisk vs GMAT, SpOCK vs Orekit, SpOCK vs GMAT)
- Script to run the orbit propagation with Basilisk
Note:
Gravity field models used
- GGM03S: Basilisk, Orekit, SpOCK
- EGM96: GMAT
Numerical integrators used:
- RK4: Basilisk, Orekit, SpOCK, GMAT
- Dormand-Prince 853: Orekit
In the results, the following differences can also be appreciated
- In SpOCK vs GMAT: difference due to the use of different gravity field models (GGM03S, EGM96), but using the same numerical integrator (RK4)
- In SpOCK vs Orekit: difference due to the use of different numerical integrators (RK4, DP853), but using the same gravity field model (GGM03S)
This is a copy of the issue on bitbucket (https://bitbucket.org/avslab/basilisk/issues/10/verification-of-orbit-propagation)
Many thanks to the original issue creator Sergio De Florio
Comparisons.zip
The orbit propagation results for a satellite in LEO using a spherical harmonics gravitational field model and no other perturbation have been compared to the propagation results from Orekit (https://www.orekit.org/), SpOCK (https://github.com/deflorio/SpOCK), and GMAT (https://gmat.atlassian.net/wiki/home).
Some comparison results are included in the attachment for a simulation over 90 days and using 10 s integration step. For completeness sake also the comparison of the results from SpOCK vs Orekit and SpOCK vs GMAT have been included (SpOCK’s orbit propagator has been validated also vs a.i. solutions FreeFlyer). In fact with the same type of comparison it has been verified that Orekit, FreeFlyer, SpOCK and GMAT are consistent with each other (the small differences are due to various factors including e.g. different software implementations and different treatment of floating point numbers). The results of a comparison SpOCK vs Orekit using two different type of numerical integrators (see note below) have also been included in order to appreciate the difference keeping all other parameters identical (step size, perturbations).
An inconsistency in the results from Basilisk, Orekit, and SpOCK has been noticed. The not consistency of the results from Basilisk can be noted also just considering the trend of the eccentricity vector (long term perturbations should not be present) and the inclination considering that only the Earth’s gravity spherical harmonics are included in the perturbation forces.
In the attachment, also the Python script (orbprop.py) used to run the propagation with Basilisk has been included. This script is based on the example scenario scenarioBasicOrbit.py. It is possible that the problem is simply in a wrong implementation of script orbprop.py.
It could be useful to include in Basilisk's documentation results showing the consistency of the orbit and attitude propagation with other propagators (COTS or open source).
Attachment:
Note:
Gravity field models used
Numerical integrators used:
In the results, the following differences can also be appreciated