Initial Orbit Determination (Extended Kalman Filter)

Initial orbit determination applying the Extended Kalman Filter
1.8K Downloads
Updated 6 Mar 2025

View License

1) In test_EKF_GEOS3.m, we define global variables: const (astronomical and mathematical constants), CS (unnormalized gravity field coefficients), AuxParam (struct that represents model parameters and time for orbit propagator), eopdata (Earth orientation parameters), PC (planetary coefficients for JPL ephemerides computation).
2) Download Earth orientation parameters from the following link (if it is out of date).
3) Earth orientation parameters are read from EOP-All.txt.
4) Observations are read from GEOS3.txt, and biases from table 4-4 of the book “Fundamentals of Astrodynamics and Applications, 4th Edition, 2013,” are subtracted. Then, observation noises are set from table 4-4. After that, the station’s ecef position is calculated using Position.m, and two sets of observations (azimuth, elevation, and range) are selected. Afterward, the LTC matrix (transformation from Greenwich meridian system to local tangent coordinates) is computed by LTCMatrix.m, and the initial guess of the satellite state vector (TOD) at the epoch (first observation’s time) is found by Elements.m and State.m.
5) The Extended Kalman Filter’s initial parameters and parameters for the orbit propagator (AuxParam.Mjd_UTC = Mjd_UTC; AuxParam.n = 20; AuxParam.m = 20; AuxParam.sun = 0; AuxParam.moon = 0; AuxParam.planets = 0;) are set.
6) The epoch’s state vector is propagated to the second observation's time and updated. After that, the updated state vector is propagated to the next observation's time and updated. This procedure continues until the last observation. Then, the updated state vector at the time of the last observation is propagated to the time of the first observation. The result is converted from the TOD to the J2000 coordinate system and compared with the true state vector. Finally, the state vector at the time of the first observation is converted to the TEME coordinate system and sv2tle.m is used to produce the TLE.
Please note that numerical integration is done in the TOD coordinate system. So, only Earth rotation is considered in Accel.m and VarEqn.m.
References:
O. Montenbruck, E. Gill, "Satellite Orbits: Models, Methods, and Applications," Springer Verlag, Heidelberg, 2005.
D. Vallado, "Fundamentals of Astrodynamics and Applications," 4th Edition, 2013.

Cite As

Meysam Mahooti (2025). Initial Orbit Determination (Extended Kalman Filter) (https://www.mathworks.com/matlabcentral/fileexchange/55627-initial-orbit-determination-extended-kalman-filter), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2024b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
3.1.0

test_EKF_GEOS3.m and Accel.m were modified.

3.0.0

It was revised on 2025-01-17.

2.2.2

test_EKF_GEOS3.m was modified.

2.2.1

It was revised on 2022-10-25.

2.2.0

test_EKF_GEOS3.m was modified.

2.1.2

Documentation was added, and test_EKF_GEOS3.m was modified.

2.1.1

It was revised on 2022-10-22.

2.1.0.0

Shampine-Gordon integrator is replaced by Radau IIA integrator.

2.0.0.0

The DE430 full matrix is added.

1.1.1.1

Revised on March 16, 2020.

1.0.1.0

Documentation is added.

1.0.0.0

The image is added.
Revised on 2016-11-21.