Extending GMAT State Representations

Development related to the GMAT core and GUI

Extending GMAT State Representations

Postby jjkparker » Mon Jul 09, 2012 5:27 pm


The goal of this project is to expand the orbit state representations supported by GMAT. Orbit state representations are used to define orbital initial conditions and GMAT currently supports the following at the time of this writing: Cartesian, Keplerian, Modified Keplerian, Spherical (RA/DEC), Spherical (AZ/EL), and Equinoctial. The table below shows additional proposed state representations.

Proposed New State Representations

This is a list of proposed new state representations, in order of priority. Each is rated high (H), medium (M), or low (L) by "Value" and "Complexity".

PriorityState TypeDescriptionValueComplexityReference
1Modified EquinoctialNon-singular element state representationLL
(348.17 KiB) Downloaded 73 times
1Incoming AsympoteHyperbolic state representation for escape trajectories (RA, DEC, C3, …)HLOrbital Mechanics with MATLAB (rv2hyper.m),
(65.53 KiB) Downloaded 47 times
1Outgoing Asymptote(same as Incoming Asymptote)HL(same as Incoming Asymptote)
2PlanetographicBody-fixed spherical latitude and longitudeMM
(879.7 KiB) Downloaded 46 times
2PlanetodeticBody-fixed latitude/longitude including flatteningMM
2Brouwer-LyddaneMean Keplerian elements (short, long, J2)HH
2Launch modelModel launch vehicle path from pad to orbit using cubic or quartic motionHH
2TLENORAD two line element setHH
2Herrick(ecc vector, angular momentum vector, n, long.)LM
(38.33 KiB) Downloaded 39 times
2Non-singular KeplerianNon-singular Keplerian-based elements (SMA, E1–E5)LL
(348.17 KiB) Downloaded 73 times
2DelaunayCanonical Keplerian elements (l, g, h, L, G, H)LL
(3.68 MiB) Downloaded 58 times
3KozaiMean Keplerian elementsMH
3PoincareCanonical Equinoctial elementsLM
3Mean equinoctialMean Equinoctial elementsLH


Existing Matlab prototype and GMAT code
  • GMAT's StateConverter code is here: http://gmat.svn.sourceforge.net/viewvc/gmat/trunk/src/base/util/StateConversionUtil.cpp
  • The matlab prototype for state converters in GMAT is contained in the zip file below (stateconv.zip). The main function is called stateconv.m. I started on the new outgoing asymptote conversion by implementing a preliminary routine that converts from Cartesian to outgoing asymptote. Obviously, we need to write the inverse routine.
Matlab code for State Conversion Algorithms in GMAT as of July 2012.
(50 KiB) Downloaded 54 times
Posts: 563
Joined: Thu Jan 07, 2010 5:48 pm

Re: Extending GMAT State Representations

Postby jjkparker » Mon Jul 16, 2012 7:57 am

More Details/Getting Started

The state representations shown in the table above are not equally complex. In general, the mean element representations such as Brouwer and Kozai are significantly more complex than other representations. Furthermore, some conversions require iterative methods such as converting from mean elements to Keplerian elements. Another complexity: it is not possible in general to convert directly between any two representations and often an intermediate transformation is required. For example, to convert from Equinoctial to Brouwer mean elements, it is necessary to perform the following conversion: Equinoctial -> Keplerian -> Brouwer.

I recommend starting by documenting (1) how to convert from any existing representations to the new representation and vice versa, and (2) how to perform the new state conversion algorithms in the GMAT Math Spec. Then, modify GMAT’s MATLAB state conversion prototype to ensure the mathematical algorithms are correct and rigorous. It is necessary to convert between all consistent state representations, due to singularities in the representations, and the fact that it is not possible to transform from all representations directly.
Posts: 563
Joined: Thu Jan 07, 2010 5:48 pm

Re: Extending GMAT State Representations

Postby YKIM » Sun Mar 17, 2013 10:21 am

Hi Joel,
I'm working on Brouwer-Lyddane mean element.
Based on FORTRAN codes,
I translated it into matlab codes.

After translating of FORTRAN codes into MATLAB codes, I found some issues.
Both of matlab and FORTRAN codes had a problem at high eccentricity.
FORTRAN code could not calculation(or give zero-value) INC, AOP, RAAN, MA(or TA) when SMA=6640, ECC=0.97, and INC=0.5.
I ran it with linux(ubuntu) + intel FORTRAN compiler with fortran66 compatiability and JGM-2 gravity harmonics coefficients.
(Actually, setting a linux machine and learning how to use linux and intel fortran compiler took some time of me
because I did not know the inside of STK and cannot use STK as a reference to validate my matlab code...)

For the case of matlab code, the code gave orbital elements as INC=1.361241578434517, AOP=3.410005849019969, RAAN=0.9393297377018844 , TA=3.141592653589793.
But there was a warning :

"Imaginary part is currently ignored. Future behavior of ATAN2 with complex inputs may change."

I think the algorithm is unstable in high eccenetricity.

I guess, the unstable property may come from Lyddane's approximation that considering single primed mean element(short period averaged)
to double primed mean element(long period averaged).


Iterative algorithm 'osculating element to mean element' also had a problem.
I referred GTDS(5-47~48), and two references (Determination of Mean elements for Brouwer's satellite theory and conversion of osculating orbital elements into mean elements). A simple iterative algorithm described in those references was able to find mean element in many cases, but it failed to converge for some cases.

Actually, to determine mean element is equal to solve a system of non-linear implicit equations. So, I tried to use 'fsolve', which is a built-in matlab solver.
For some cases, even fsolve failed to find mean elements.
After I increased the maximum iteration number, fsolve was able to solve few more cases.
However, there still were some non-solvable cases.

I guess, to improve convergence, we should adopt a second order non-linear solver algorithm.
In GMAT, is there any second order solver available to use ?


I hope that we can talk about those issues in our next KARI-NASA meeting.
Posts: 1
Joined: Mon Mar 04, 2013 12:07 am

Return to Core Development

Who is online

Users browsing this forum: No registered users and 1 guest