[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



Alvaro,

May I ask you to give an approximate discussion of the accuracy goal and the time spans that you are requiring of the Orekit orbit propagator?

The Orekit DSST orbit propagator may be on interest to you.

Paul

--
Dr. Paul J. Cefola
Consultant in Aerospace Systems, Spaceflight Mechanics, & Astrodynamics
Adjunct Faculty, Dept. of Mechanical and Aerospace Engineering, University at Buffalo (SUNY)

4 Moonstone Way
Vineyard Haven, MA 02568
USA

508-696-1884 (phone on Martha's Vineyard)
978-201-1393 (cell)

paulcefo@buffalo.edu
paul.cefola@gmail.com

On 06/02/2016 8:27 am, MARTIN SAMPAYO Alvaro wrote:
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].