org.orekit.propagation.analytical
Class EcksteinHechlerPropagator

java.lang.Object
  extended by org.orekit.propagation.AbstractPropagator
      extended by org.orekit.propagation.analytical.EcksteinHechlerPropagator
All Implemented Interfaces:
Serializable, MeanOsculatingElementsProvider, Propagator, PVCoordinatesProvider

public class EcksteinHechlerPropagator
extends AbstractPropagator
implements MeanOsculatingElementsProvider

This class propagates a SpacecraftState using the analytical Eckstein-Hechler model.

The Eckstein-Hechler model is suited for near circular orbits (e < 0.1, with poor accuracy between 0.005 and 0.1) and inclination neither equatorial (direct or retrograde) nor critical (direct or retrograde).

Author:
Guylaine Prat
See Also:
Orbit, Serialized Form

Field Summary
 
Fields inherited from class org.orekit.propagation.AbstractPropagator
MASS
 
Fields inherited from interface org.orekit.propagation.Propagator
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
 
Constructor Summary
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProvForces, AttitudeProvider attitudeProvEvents, double referenceRadius, double mu, Frame frame, double c20, double c30, double c40, double c50, double c60, MassProvider massProvider, ParametersType paramsType)
          Build a propagator from orbit, attitude provider, mass and potential.
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProvForces, AttitudeProvider attitudeProvEvents, double referenceRadius, double mu, Frame frame, double c20, double c30, double c40, double c50, double c60, ParametersType paramsType)
          Build a propagator from orbit, attitude provider for forces and events computation and potential.
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, Frame frame, double c20, double c30, double c40, double c50, double c60, MassProvider massProvider, ParametersType paramsType)
          Build a propagator from orbit, attitude provider, mass and potential.
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, Frame frame, double c20, double c30, double c40, double c50, double c60, ParametersType paramsType)
          Build a propagator from orbit, attitude provider and potential.
EcksteinHechlerPropagator(Orbit initialOrbit, double referenceRadius, double mu, Frame frame, double c20, double c30, double c40, double c50, double c60, MassProvider massProvider, ParametersType paramsType)
          Build a propagator from orbit, mass and potential.
EcksteinHechlerPropagator(Orbit initialOrbit, double referenceRadius, double mu, Frame frame, double c20, double c30, double c40, double c50, double c60, ParametersType paramsType)
          Build a propagator from orbit and potential.
 
Method Summary
 Orbit computeMeanOrbit(Orbit osculating)
          Deprecated. use osc2mean(Orbit) instead
 Orbit mean2osc(Orbit orbit)
          Convert provided mean orbit into osculating elements.
 Orbit osc2mean(Orbit orbit)
          Convert provided osculating orbit into mean elements.
 Orbit propagateMeanOrbit(AbsoluteDate date)
          Propagate mean orbit until provided date.
 Orbit propagateOrbit(AbsoluteDate date)
          Extrapolate an orbit up to a specific target date.
 void resetInitialState(SpacecraftState state)
          Reset the propagator initial state.
static void setThreshold(double newThreshold)
          Setter for osculating to mean conversion relative convergence threshold.
 
Methods inherited from class org.orekit.propagation.AbstractPropagator
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getInitialState, getMode, getPVCoordinates, getPvProvider, manageStateFrame, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EcksteinHechlerPropagator

public EcksteinHechlerPropagator(Orbit initialOrbit,
                                 double referenceRadius,
                                 double mu,
                                 Frame frame,
                                 double c20,
                                 double c30,
                                 double c40,
                                 double c50,
                                 double c60,
                                 ParametersType paramsType)
                          throws PropagationException
Build a propagator from orbit and potential.

Mass and attitude provider are set to null value.

The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

   Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½Cn,0
   Cn,0 = -Jn
 

Parameters:
initialOrbit - initial orbit
referenceRadius - reference radius of the Earth for the potential model (m)
mu - central attraction coefficient (m3/s2) used for propagation
frame - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
paramsType - parameters type (mean or osculating)
Throws:
PropagationException - if the mean parameters cannot be computed or coefficients frame is not inertial
See Also:
Constants, ParametersType

EcksteinHechlerPropagator

public EcksteinHechlerPropagator(Orbit initialOrbit,
                                 double referenceRadius,
                                 double mu,
                                 Frame frame,
                                 double c20,
                                 double c30,
                                 double c40,
                                 double c50,
                                 double c60,
                                 MassProvider massProvider,
                                 ParametersType paramsType)
                          throws PropagationException
Build a propagator from orbit, mass and potential.

Attitude law is set to null value.

The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

   Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½Cn,0
   Cn,0 = -Jn
 

Parameters:
initialOrbit - initial orbit
referenceRadius - reference radius of the Earth for the potential model (m)
mu - central attraction coefficient (m3/s2) used for propagation
frame - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
massProvider - spacecraft mass provider
paramsType - parameters type (mean or osculating)
Throws:
PropagationException - if the mean parameters cannot be computed or coefficients frame is not inertial

EcksteinHechlerPropagator

public EcksteinHechlerPropagator(Orbit initialOrbit,
                                 AttitudeProvider attitudeProv,
                                 double referenceRadius,
                                 double mu,
                                 Frame frame,
                                 double c20,
                                 double c30,
                                 double c40,
                                 double c50,
                                 double c60,
                                 ParametersType paramsType)
                          throws PropagationException
Build a propagator from orbit, attitude provider and potential.

Mass is set to null value.

The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

   Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½Cn,0
   Cn,0 = -Jn
 

Parameters:
initialOrbit - initial orbit
attitudeProv - attitude provider
referenceRadius - reference radius of the Earth for the potential model (m)
mu - central attraction coefficient (m3/s2) used for propagation
frame - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
paramsType - parameters type (mean or osculating)
Throws:
PropagationException - if the mean parameters cannot be computed or coefficients frame is not inertial

EcksteinHechlerPropagator

public EcksteinHechlerPropagator(Orbit initialOrbit,
                                 AttitudeProvider attitudeProvForces,
                                 AttitudeProvider attitudeProvEvents,
                                 double referenceRadius,
                                 double mu,
                                 Frame frame,
                                 double c20,
                                 double c30,
                                 double c40,
                                 double c50,
                                 double c60,
                                 ParametersType paramsType)
                          throws PropagationException
Build a propagator from orbit, attitude provider for forces and events computation and potential.

Mass is set to an unspecified non-null arbitrary value.

The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

   Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½Cn,0
   Cn,0 = -Jn
 

Parameters:
initialOrbit - initial orbit
attitudeProvForces - attitude provider for forces computation
attitudeProvEvents - attitude provider for events computation
referenceRadius - reference radius of the Earth for the potential model (m)
mu - central attraction coefficient (m3/s2) used for propagation
frame - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
paramsType - parameters type (mean or osculating)
Throws:
PropagationException - if the mean parameters cannot be computed or coefficients frame is not inertial

EcksteinHechlerPropagator

public EcksteinHechlerPropagator(Orbit initialOrbit,
                                 AttitudeProvider attitudeProv,
                                 double referenceRadius,
                                 double mu,
                                 Frame frame,
                                 double c20,
                                 double c30,
                                 double c40,
                                 double c50,
                                 double c60,
                                 MassProvider massProvider,
                                 ParametersType paramsType)
                          throws PropagationException
Build a propagator from orbit, attitude provider, mass and potential.

The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

   Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½Cn,0
   Cn,0 = -Jn
 

Parameters:
initialOrbit - initial orbit
attitudeProv - attitude provider
referenceRadius - reference radius of the Earth for the potential model (m)
mu - central attraction coefficient (m3/s2) used for propagation
frame - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
massProvider - spacecraft mass provider
paramsType - parameters type (mean or osculating)
Throws:
PropagationException - if the mean parameters cannot be computed or coefficients frame is not inertial

EcksteinHechlerPropagator

public EcksteinHechlerPropagator(Orbit initialOrbit,
                                 AttitudeProvider attitudeProvForces,
                                 AttitudeProvider attitudeProvEvents,
                                 double referenceRadius,
                                 double mu,
                                 Frame frame,
                                 double c20,
                                 double c30,
                                 double c40,
                                 double c50,
                                 double c60,
                                 MassProvider massProvider,
                                 ParametersType paramsType)
                          throws PropagationException
Build a propagator from orbit, attitude provider, mass and potential.

The Cn,0 coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients Cn,0 and the Jn one as follows:

   Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½Cn,0
   Cn,0 = -Jn
 

Parameters:
initialOrbit - initial orbit
attitudeProvForces - attitude provider for forces computation
attitudeProvEvents - attitude provider for events computation
referenceRadius - reference radius of the Earth for the potential model (m)
mu - central attraction coefficient (m3/s2) used for propagation
frame - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
c20 - un-normalized zonal coefficient (about -1.08e-3 for Earth)
c30 - un-normalized zonal coefficient (about +2.53e-6 for Earth)
c40 - un-normalized zonal coefficient (about +1.62e-6 for Earth)
c50 - un-normalized zonal coefficient (about +2.28e-7 for Earth)
c60 - un-normalized zonal coefficient (about -5.41e-7 for Earth)
massProvider - spacecraft mass provider
paramsType - parameters type
Throws:
PropagationException - if the mean parameters cannot be computed or coefficients frame is not inertial
Method Detail

resetInitialState

public void resetInitialState(SpacecraftState state)
                       throws PropagationException
Reset the propagator initial state.

Specified by:
resetInitialState in interface Propagator
Overrides:
resetInitialState in class AbstractPropagator
Parameters:
state - new initial state to consider
Throws:
PropagationException - if initial state cannot be reset

propagateOrbit

public Orbit propagateOrbit(AbsoluteDate date)
                     throws PropagationException
Extrapolate an orbit up to a specific target date.

Specified by:
propagateOrbit in class AbstractPropagator
Parameters:
date - target date for the orbit
Returns:
extrapolated parameters
Throws:
PropagationException - if some parameters are out of bounds

propagateMeanOrbit

public Orbit propagateMeanOrbit(AbsoluteDate date)
                         throws OrekitException
Propagate mean orbit until provided date.

Specified by:
propagateMeanOrbit in interface MeanOsculatingElementsProvider
Parameters:
date - a date
Returns:
mean orbit at provided date
Throws:
OrekitException - thrown if computation failed

osc2mean

public Orbit osc2mean(Orbit orbit)
               throws OrekitException
Convert provided osculating orbit into mean elements.

Warning: Used algorithm often consists in an iterative algorithm with a convergence criterion. As a result convergence is not always ensured, depending on the underlying theory.

Specified by:
osc2mean in interface MeanOsculatingElementsProvider
Parameters:
orbit - an orbit (osculating elements)
Returns:
mean elements of provided orbit
Throws:
OrekitException - if conversion fails

mean2osc

public Orbit mean2osc(Orbit orbit)
               throws OrekitException
Convert provided mean orbit into osculating elements.

Specified by:
mean2osc in interface MeanOsculatingElementsProvider
Parameters:
orbit - an orbit (mean elements)
Returns:
osculating elements of provided orbit
Throws:
OrekitException - if conversion fails

computeMeanOrbit

@Deprecated
public Orbit computeMeanOrbit(Orbit osculating)
                       throws OrekitException
Deprecated. use osc2mean(Orbit) instead

Compute mean parameters according to the Eckstein-Hechler analytical model.

Parameters:
osculating - osculating orbit
Returns:
the calculated mean orbit
Throws:
OrekitException - if orbit goes outside of supported range (too eccentric, equatorial, critical inclination) or if convergence cannot be reached.

setThreshold

public static void setThreshold(double newThreshold)
Setter for osculating to mean conversion relative convergence threshold. Default value for this threshold is 1E-13.

Parameters:
newThreshold - new threshold to set


Copyright © 2016 CNES. All Rights Reserved.