[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] Problem with Eckstein-Hechler propagation - 50km off from STK/J2 after 24h



Hello,

I didn't explore deeply your problem but you should start by setting the same force model in both simulation (not J6 in EH and J2 in STK).
Also, what is the propagator that you use in STK? Because J2 & J4 propagation in STK are analytical models that use mean elements, whereas believe that EH initial orbit use osculating elements.

My 2 cents.

Christophe


2016-06-02 14:27 GMT+02:00 MARTIN SAMPAYO Alvaro <Alvaro.MARTIN-SAMPAYO@etu.isae.fr>:
Hi all,

This is my first post as I have recently started using orekit for my master thesis, I hope the community can provide some advice, and I thank you in advance for that.

I am planning on propagating using Eckstein-hechler (EH) propagator, my intention is to have a fast propagation with custom stephandlers which I have already implemented. I could make-do with a simple J2, but in orekit I found that EH was the simplest that included Earth oblateness effect (which I definitely need to consider).

I run Orekit from Matlab, and have tested my orbit propagation using Keplerianpropagator against STK successfully. However, when I cross check the results of orekit's EH propagator with STK's J2 or J4, I see a huge discordance that I cannot attribute to nominal differences in the propagators margins of error. I am talking of about 51 km of error (ground track projection) after just 24 hours.

Since the 2-body problem matches the results of STK, I assume my model and my synchronization of orekit and STK are correct. I assume I am having issues with orekit's EH propagator but I cannot see why or where. There's some more info below. *Any suggestions will be appreciated!*

Thank you!

Alvaro

------------------------------------

I am attaching two images with the ground tracks after 5 days:

- EH.png : the propagation of orekit/EH vs STK/J2.
- Kepler.png : the propagation of orekit/Kepler and STK/2-body propagation

Here are the parameters of my orbit.

Propagation for 5 days starts on 2004-jan-01 at 01:30:00 UTC.

semimajor axis 7578137 m.
eccentricity 0.
inclination 98.8 deg.
argument of perigee 90 deg.
RAAN 0.
true anomaly 0.


My initializations (note matlab's syntax to use java objects):

initialDate = AbsoluteDate(2004, 01, 01, 01, 30, 00.000,...
    TimeScalesFactory.getUTC());

inertialFrame = FramesFactory.getEME2000();

orbit = KeplerianOrbit(a, e, i, omega, raan, lv,...
                PositionAngle.TRUE,...
                inertialFrame, initialDate, ...
                Constants.EIGEN5C_EARTH_MU);

EcksteinHechlerPropagator(orbit,...
                Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS,...
                Constants.EIGEN5C_EARTH_MU, ...
                Constants.EIGEN5C_EARTH_C20,...
                Constants.EIGEN5C_EARTH_C30, ...
                Constants.EIGEN5C_EARTH_C40,...
                Constants.EIGEN5C_EARTH_C50,...
                Constants.EIGEN5C_EARTH_C60);


and my transformations to ECEF (these happen in the fixedstephandler, coded in java):

this.ECEFframe = FramesFactory.getITRF(IERSConventions.IERS_2010, true)

...

Transform fromJ2000toITRFtransform =
                                        currentState.getFrame().getTransformTo(this.ECEFframe, currentState.getDate());

                        // Obtain satellite position vector
                        Vector3D satelliteVector = fromJ2000toITRFtransform.transformVector(
                                        currentState.getPVCoordinates().getPosition());

                        satLatitudes.add(satelliteVector.getDelta());
                        satLongitudes.add(satelliteVector.getAlpha() > FastMath.PI ? satelliteVector.getAlpha()-2*FastMath.PI : satelliteVector.getAlpha()); // To change representation from [0, 2pi] to [-pi, pi].