I was trying to understand how SGP4 computes the propagated position I had a look on the original publication paper but i have not found a satisfactory answer. So I had a look to the Matlab implementation of the SGP4 library (and its usage example) on https://www.celestrak.com/publications/AIAA/2006-6753/. But i got really confused.

It seems that the original TLE is propagated linearly head until finish time without timesteps (function sgp4.m). Clearly this cannot be true, it must take into account a timestep placing sgp4 calls into a loop (as the example code usage shows) and intermediate results most probably kept in the "satrec" structure.

However the question remains and is the following:

What is the point of propagating for example, the rate of ascending node (nodedot) since the starting TLE, linearly and straight to a intermediate or final time (tsince)?

I mean, for example the "nodedot" is nonlinear and depends mostly on J2 perturbation (if i remember correctly) so "nodedot" would change between integration timesteps. It doesn't make any sense assuming the initial "nodedot" in all propagation steps!

I understand might be a very basic question, but what am I missing?

  • $\begingroup$ I'm no expert, but as far as I understand SGP4 does not really do the direct numerical integration of the orbit that you think it must do. It's all based on perturbations. Very roughly speaking, gthe period, eccentricity, inclination etc are all used to generate a repeating orbit, and SGP4 calculates the rate of change of those elements based on perturbations from a low-order gravity model, atmospheric drag, and in some situations a very simple model for the effects of the Sun and Moon. $\endgroup$ – uhoh Apr 6 '20 at 14:44
  • $\begingroup$ For more on that see answers to How do “Deep space” corrections in SGP4 account for the Sun's and Moon's gravity?. Also possibly interesting are answers to Differences between SGP8 and the standard SGP4? Is it ever used in practice? $\endgroup$ – uhoh Apr 6 '20 at 14:45
  • $\begingroup$ Ah! See answer(s) to Why are Keplerian elements used in TLEs instead of Cartesian state vectors? "With SGP4, calculating where the satellite will be one week from now has the same computational cost as does calculating where it will be one second from now (the same is not true for a numerical integrator" Remember that SGP4 is pretty old and so it needed to run quickly on slow computers so that thousands of spacecraft could be calculated at the same time. $\endgroup$ – uhoh Apr 6 '20 at 14:52
  • $\begingroup$ Ok, probably I understood. So, SGP4 works with mean orbital elements (instead of normal keplerian), it propagates straight forward the mean elements linearly using the derivatives in the TLE iteself (like nodedot, bstar, etc). Then modifies again those mean elements with the internal model, recovering the true keplerian elements (at the required time from TLE epoch). No "integration steps" are needed thanks to the analytic internal model. $\endgroup$ – Giacomo Curzi Apr 20 '20 at 8:03
  • $\begingroup$ like I say "I'm no expert, but..." I think that's the general idea. $\endgroup$ – uhoh Apr 20 '20 at 8:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.