[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,

The book by Chia-Chun “George” Chao,  Applied Orbit Perturbation and Maintenance, from about 10 years ago has a good discussion of the orbit perturbations to be used in mission analysis.
 
Generally you try to take advantage of the natural perturbations in the orbit design. Consider the concept of 'frozen orbits.'
 
Thirty days is long enough to consider DSST.
 
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 10:28 am, MARTIN SAMPAYO Alvaro wrote:
Hi, thank you for the answers.

*@Christophe*:
I would like to test J2 only in orekit, but as far as I know
Eckstein-Hechler directly considers 6 harmonics and I think there is
no way to make it work as a J2, but I might be wrong.
I will look into the differences in orbit definitions, thanks for the hint.


*@Paul*:
My goal is to do a preliminary analysis of coverage, revisit times,
etc on a time-frame of up to 30 days. I am interested in 'nominal'
orbits, design orbits such as repeating ground tracks, etc. Hence I
thought a J2 model was ideal as it is the typical reference for the
design of these orbits as far as I know. Usually other smaller
perturbations are adjusted for by orbit control, so I thought very
accurate models would be counterproductive (for this reason and for
their longer computational time, as I am also interested in having a
quick propagator).

While I knew Eckstein-Hechler would be slower than J2, I assumed the
impact of the extra computations would be small and EH and J2 would
not diverge that much. So my current situation is that I don't know
whether my EH propagator is really diverging that much from a J2 or if
my definition of orbits in STK/orekit is not consistent. I considered
DSST unnecessarily complex but I am no expert.


Thanks both for your help,

Alvaro



Le Jeudi 2 Juin 2016 15:56 CEST, paulcefo <paulcefo@buffalo.edu> a écrit:

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].