The motion of a near-Earth satellite is affected by various forces. One of these forces is the Earth's central gravitation and the others are known as perturbations. These perturbations are classified into gravitational and non-gravitational forces. In this case, the equation of motion can be written as:
γ_p is the vector of additional accelerations induced by the disturbing forces.
γ_p=r ̈_E+r ̈_S+r ̈_M+r ̈_P+r ̈_e+r ̈_o+r ̈_D+r ̈_SP+r ̈_A+r ̈_emp
r ̈_E = Accelerations due to the non-spherically and inhomogeneous mass distribution within Earth (central body)
r ̈_S, r ̈_M, r ̈_P = Accelerations due to other celestial bodies (Sun, Moon and planets)
r ̈_e, r ̈_o = Accelerations due to Earth and oceanic tides
r ̈_D = Accelerations due to atmospheric drag
r ̈_SP, r ̈_A = Accelerations due to direct and Earth-reflected solar radiation pressure
r ̈_emp = Accelerations due to unmodeled forces
Here I have used the following integrator and force model to simulate satellite's perturbed motion:
Integrator: Variable-order Radau IIA integrator with step-size control
- gravity field of the Earth (GGM03S model)
- gravity of the solar system planets (positions of the planets are computed by JPLDE436)
- drag effect using Jacchia-Bowman 2008, NRLMSISE-00, MSIS-86, Jacchia 70 or modified Harris-Priester atmospheric density model (in Accel.m you can uncomment your favorite model)
- solar radiation pressure using geometrical or cylindrical shadow model
- solid Earth tides (IERS Conventions 2010)
- ocean tides
- general relativity
- ECEF2ECI and ECI2ECEF transformations using IAU 2006 Resolution
Simulation starts by running HPOP.m. In InitialState.txt set initial values for your favorite satellite. In HPOP.m you can consider different perturbations by setting them 1 as follows:
AuxParam.n = 70; % maximum degree of central body's gravitation field
AuxParam.m = 70; % minimum order of central body's gravitation field
AuxParam.sun = 1; % perturbation of the Sun
AuxParam.moon = 1; % perturbation of Moon
AuxParam.planets = 1; % perturbations of planets
AuxParam.sRad = 1; % solar radiation pressure
AuxParam.drag = 1; % atmospheric drag
AuxParam.SolidEarthTides = 1; % solid Earth tides
AuxParam.OceanTides = 1; % ocean tides
AuxParam.Relativity = 1; % general relativity
Montenbruck O., Gill E.; Satellite Orbits: Models, Methods and Applications; Springer Verlag, Heidelberg; Corrected 3rd Printing (2005).
Montenbruck O., Pfleger T.; Astronomy on the Personal Computer; Springer Verlag, Heidelberg; 4th edition (2000).
Seeber G.; Satellite Geodesy; Walter de Gruyter, Berlin, New York; 2nd completely revised and extended edition (2003).
Vallado D. A; Fundamentals of Astrodynamics and Applications; McGraw-Hill, New York; 3rd edition(2007).
NIMA. 2000. Department of Defense World Geodetic System 1984. NIMA-TR 8350.2, 3rd ed, Amendment 1. Washington, DC: Headquarters, National Imagery and Mapping Agency.
Meysam Mahooti (2021). High Precision Orbit Propagator (https://www.mathworks.com/matlabcentral/fileexchange/55167-high-precision-orbit-propagator), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- Image Processing and Computer Vision > Mapping Toolbox > Geometric Geodesy >
- Industries > Aerospace And Defense > CubeSat and Satellites >
- Sciences > Physics > Gravitation, Cosmology & Astrophysics >
- Industries > Aerospace And Defense > Aerospace Blockset > Reference Applications >
- Sciences > Earth, Ocean, and Atmospheric Sciences > Geodesy and Mapping >
- Sciences > Earth, Ocean, and Atmospheric Sciences > Earth and Planetary Science >
- Engineering > Aerospace Engineering > Satellite and Orbital Mechanics >
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!