Satellite Orbit Modeling

Precise modeling of a satellite's perturbed motion (special perturbations approach)

You are now following this Submission

This MATLAB package is a high-fidelity numerical orbit propagator for Earth satellites. It integrates the two-body equations of motion in the J2000/EME2000 inertial frame (IAU 1976 precession and IAU 1980 nutation; DE440 positions are ICRF and are used as J2000/EME2000). Accelerations include Earth's spherical-harmonic gravity field, IERS 2010 solid-Earth and FES2004 ocean tides, third-body gravity (Sun, Moon, and planets), solar radiation pressure, Earth albedo and infrared radiation pressure, atmospheric drag, and IERS 2010 relativistic acceleration. The demonstration driver test_Envisat.m propagates Envisat for 26.47 hours from a DORIS precise-orbit epoch and compares the result with the corresponding CNES DORIS POE.
The Envisat driver turns on static gravity (100 x 100), solid Earth tides, third bodies, conical-shadow SRP, and NRLMSISE-00 drag. Albedo/IR, ocean tides, and relativity are implemented and switched off (AuxParam.albedo = 0, OceanTides = 0, Relativity = 0). Those three flags stay off for the DORIS comparison: the run is open-loop with fixed Cr, Cd, and areas, while the POE is a fitted product with a macromodel and empirical accelerations. Leaving the optional forces off is a comparison choice, not a sign that the implementations are reversed.
The implementation follows Montenbruck and Gill, Satellite Orbits: Models, Methods, and Applications (Springer, corrected 3rd printing, 2005); Vallado, Fundamentals of Astrodynamics and Applications (4th edition, 2013); the IERS Conventions (2010) for tides, polar motion, and relativistic acceleration; and Knocke, Ries, and Tapley (1988) for Earth radiation pressure.
References:
Montenbruck, O., and Gill, E., Satellite Orbits: Models, Methods, and Applications, Springer, Heidelberg, corrected 3rd printing, 2005.
Vallado, D. A., Fundamentals of Astrodynamics and Applications, 4th edition, 2013.
Petit, G., and Luzum, B. (eds.), IERS Conventions (2010), IERS Technical Note No. 36, especially Chapters 6 (tides) and 10 (relativity, Eq. 10.12).
Knocke, P. C., Ries, J. C., and Tapley, B. D., Earth Radiation Pressure Effects on Satellites, Proc. AIAA/AAS Astrodynamics Conference, Minneapolis, 1988.
Tapley, B., et al., GGM03C/GGM03S GRACE gravity field models; GM and reference radius as used in SAT_Const.m (const.GM_Earth, const.R_Grav).
Picone, J. M., Hedin, A. E., Drob, D. P., and Aikin, A. C., NRLMSISE-00 empirical atmosphere, 2002.
Folkner, W. M., et al., JPL Planetary and Lunar Ephemerides DE440; Chebyshev export used by JPL_Eph_DE440.m.
Celestrak Space Data: EOP-All.txt and SW-All.txt (CSSI space weather).
CNES/CLS Envisat DORIS precise orbit ephemeris DOR_VOR_AXVF-P20110720_151800_20020424_215528_20020426_002328 (orbito/3.7).

Cite As

Meysam Mahooti (2026). Satellite Orbit Modeling (https://se.mathworks.com/matlabcentral/fileexchange/54877-satellite-orbit-modeling), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
4.3.0

test_Envisat.m, AccelHarmonic.m, and AccelHarmonic_AnelasticEarth.m were modified.

4.2.2

The albedo effect was added.

4.2.1

It was revised on 2026-08-20.

4.2.0

Line 129 of nrlmsise00.m was modified.

4.1.1

It was revised on 2025-06-23.

4.1.0

Ephemeris.m was modified.

4.0.0

Accel.m, AccelSolrad.m, and Conical.m were modified.

3.3.3

Accel.m and JPL_Eph_DE440.m were modified.

3.3.2

In nrlmsise00.m, flags.switches(1)=1; was fixed for output in meters and kilograms instead of centimeters and grams.

3.3.1

AccelHarmonic_AnelasticEarth.m and AccelHarmonic_ElasticEarth.m were modified.

3.3.0

Runge_Kutta_Fehlberg_7_8 was added. test_Envisat.m and Ephemeris.m were modified.

3.2.2

test_Envisat.m and nrlmsise00.m were modified.

3.2.1

The conical shadow model was added.

3.2.0

AccelHarmonic_AnelasticEarth.m and AccelHarmonic_ElasticEarth.m were modified, and a readme file was added.

3.1.1

nrlmsise00.m is modified.

3.1.0

The gast.m is modified.

3.0.0

Modifications are made to Mjday.m, invjday.m, test_Envisat.m, nrlmsise00.m, and Accel.m.

2.2.2.2

Modifications are made to SAT_Const.m, AccelHarmonic_AnelasticEarth.m, AccelHarmonic_ElasticEarth.m, and Accel.m.

2.2.2.1

The AccelHarmonic_AnelasticEarth.m, the AccelHarmonic_ElasticEarth.m, and the Accel.m are modified.

2.2.1.1

Mjday_TDB.m and nrlmsise00.m are modified.

2.1.1.1

The DE430 full matrix is added.

2.1.1.0

AccelHarmonic_ElasticEarth.m and AccelHarmonic_AnelasticEarth.m are modified.

2.1.0.0

AccelHarmonic_ElasticEarth.m, AccelHarmonic_AnelasticEarth.m, test_Envisat.m and InitialState.txt are modified.

2.0.0.1

Documentation is added.

2.0.0.0

Effect of solid Earth tides is computed for elastic and anelastic Earth based on IERS Conventions 2010 (AccelHarmonic_ElasticEarth.m, AccelHarmonic_AnelasticEarth.m).
SAT_Const.m is called once to decrease CPU time.
IERS.m, nrlmsise00.m, and test_Envisat.m are modified to decrease CPU time.
Ephemeris.m is modified to decrease CPU time.
DE405 (planetary and lunar ephemerides) is replaced by DE430.
Satellite's ground track is plotted.

1.1.0.0

Density_nrlmsise00.m is improved.
.
Integrator is changed.
.
.
The image is added.
Revised on 2016-11-29.

1.0.0.0