I am trying to program the Gim-Alfriend state transition matrix. You can read all about it here. The GA STM is a complex analytical model that maps relative motion of a deputy satellite in a curvilinear frame centered at a chief satellite. It is robust in that it captures J2 perturbations and is applicable to eccentric orbits. Specifically it maps differences in orbit elements between a deputy and chief satellite and the deputy's motion in the curvilinear frame:

$\textbf{r} = \Phi \delta \textbf{e}$


$\textbf{e} = \{a,e,i,\omega,\Omega,M\}$ and $\textbf{r} = \{x,y,z,\dot{x},\dot{y},\dot{z}\}$

My problem is this: many of the terms that comprise the total STM depend on the instantaneous osculating orbit elements of the chief satellite at each step in your simulation. However, this STM is a linearization of a nonlinear model, hence it is only valid for a small period of time. In order to keep using it, you need to recompute $\Phi$ at every time step in your simulation.

Does that mean that I need to numerically integrate the nonlinear equations of motion for that one satellite first before I can apply the STM? That seems incorrect to me. My understanding is that the beauty of an STM is that can be implemented without having to brute force numerically integrate your nonlinear force model.


1 Answer 1


Your assumption here is correct, you do need to have access to the instantaneous osculating orbital elements (to convert them to the non-singular OE) in order to compute the Gim-Alfriend state transition matrix. However, your assumption about needing to numerically integrate to find them is where an important distinction can be made.

Numerically integrating is one way to get the osculating elements, but also consider a satellite that is doing relative proximity operations (RPO) that is getting state information from either a ground station or an on-board sensor. If an ephemeris is being generated for the mission then there isn't a need to numerically integrate; this is when using something like the GA-STM is useful. Since it is analytical, using it instead of a numerical propagator cuts down on the computational load significantly while still providing the relative state information for whatever control law is being implemented on-board.

As far as how to skip the step of numerically integrating the state yourself, you could find ephemerides to feed into the STM or generate your own with a numerical propagator you built yourself. Alternatively, you could use a tool like GMAT with whatever perturbations you like to generate ephemerides.

This may not be the answer you wanted to hear, but I hope it helps nonetheless.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.