DSST propagator with small eccentricities


I’m noticing some strange behavior with the DSSTpropagator.computeOscullatingState() method. Specifically when I give it mean elements with small eccentricities, the results seem inaccurate.

For example, a test input with
e = 0.0
i = 0.0
Radius = 7393 km

returns an oscullating state with:
e = 0.00122
i = 0.0
Radius= 7384 km

(all after converting to/from equinoctial elements of course)

This unexpected shift in eccentricity and SMA occurs in a fairly large range of input eccentricity, but eventually goes away around e > 0.01. This also seems to be a function of input inclination as well, with mid-range inclination inputs of 60 deg showing the least shift.

Is this some known issue with the DSST conversion from mean to oscullating, or this orbit regime?

The force models I’m adding to the DSST propagator are:
Newtonian , Zonal, Tesseral gravity components of earth (that’s all), and experimented with using different rank/orders from 6 to 50 in the GravityFieldFactory.getUnnormalizedProvider(50, 50)

I can try to set up a toy script to demonstrate this if this isn’t enough information.


Hi @ShikaDing

Maybe I’m wrong but I don’t think it is issue.
I would recommend you to look at Luc’s answer on the following post. Especially the figure with the 8-shape.

To summarize a mean eccentricity of 0.0 does not involve an osculating eccentricity of 0.0.

Best regards,

Hi @bcazabonne,

The behavior extends to all eccentricity values, 0 was mentioned just for simplicity but understood that this choice clouds the issue.

So the issue seems to be that when I’m comparing propagations of ‘identical’ orbits with the Keplerian vs DSST propagators, both seeded with orbits in equinoctial form, the orbits start off with different SMAs, and am trying to figure out why.

The Keplerian orbit is set up in MEAN elements, and my understanding is that the
DSSTPropagator.computeOsculatingState(state, att, force_model_collection)
call will do so as well, taking the ‘state’ argument as mean elements from which to compute the oscullating values. So I’m expecting the resulting, propagated orbits to have the same SMA, etc, at least initially.

See below for an example of the behavior with ecc = 0.001. To be clear, I don’t think the issue is with a difference in computed eccentricity, it looks like the SMA delta alone that dominates the differences in propagation:

Here’s another set of plots perhaps showing the effect more clearly with different starting conditions (see header at the top).

s1 is the keplerian orbit, s2 is the Numerical orbit, converted to oscullating values via mean elemnts put into the DSST conversion.

These plots more clearly show that they have the exact same avg. SMA, the same is not true of radii or/hence velocity. I’m trying to understand why this might be.