public class EcksteinHechlerPropagator extends AbstractAnalyticalPropagator
SpacecraftState
using the analytical EcksteinHechler model.
The EcksteinHechler 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).
Note that before version 7.0, there was a large inconsistency in the generated
orbits, and it was fixed as of version 7.0 of Orekit, with a visible side effect.
The problems is that if the circular parameters produced by the EcksteinHechler
model are used to build an orbit considered to be osculating, the velocity deduced
from this orbit was inconsistent with the position evolution! The reason is
that the model includes nonKeplerian effects but it does not include a corresponding
circular/Cartesian conversion. As a consequence, all subsequent computation involving
velocity were wrong. This includes attitude modes like yaw compensation and Doppler
effect. As this effect was considered serious enough and as accurate velocities were
considered important, the propagator now generates Cartesian
orbits
which are built in a special way to ensure consistency throughout propagation.
A side effect is that if circular parameters are rebuilt by user from these propagated
Cartesian orbit, the circular parameters will generally not match the initial
orbit (differences in semimajor axis can exceed 120 m). The position however will
match to submicrometer level, and this position will be identical to the positions
that were generated by previous versions (in other words, the internals of the models
have not been changed, only the output parameters have been changed). The correctness
of the initialization has been assessed and is good, as it allows the subsequent orbit
to remain close to a numerical reference orbit.
If users need a more definitive initialization of an EcksteinHechler propagator, they
should consider using a propagator converter
to initialize their EcksteinHechler propagator using a complete
sample instead of just a single initial orbit.
Orbit
DEFAULT_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Constructor and Description 

EcksteinHechlerPropagator(Orbit initialOrbit,
AttitudeProvider attitudeProv,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from orbit, attitude provider and potential.

EcksteinHechlerPropagator(Orbit initialOrbit,
AttitudeProvider attitudeProv,
double mass,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from orbit, attitude provider, mass and potential.

EcksteinHechlerPropagator(Orbit initialOrbit,
AttitudeProvider attitudeProv,
double mass,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from orbit, attitude provider, mass and potential provider.

EcksteinHechlerPropagator(Orbit initialOrbit,
AttitudeProvider attitude,
double mass,
UnnormalizedSphericalHarmonicsProvider provider,
UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
Private helper constructor.

EcksteinHechlerPropagator(Orbit initialOrbit,
AttitudeProvider attitudeProv,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from orbit, attitude provider and potential provider.

EcksteinHechlerPropagator(Orbit initialOrbit,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from orbit and potential.

EcksteinHechlerPropagator(Orbit initialOrbit,
double mass,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from orbit, mass and potential.

EcksteinHechlerPropagator(Orbit initialOrbit,
double mass,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from orbit, mass and potential provider.

EcksteinHechlerPropagator(Orbit initialOrbit,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from orbit and potential provider.

Modifier and Type  Method and Description 

protected double 
getMass(AbsoluteDate date)
Get the mass.

CartesianOrbit 
propagateOrbit(AbsoluteDate date)
Extrapolate an orbit up to a specific target date.

void 
resetInitialState(SpacecraftState state)
Reset the propagator initial state.

protected void 
resetIntermediateState(SpacecraftState state,
boolean forward)
Reset an intermediate state.

acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEventsDetectors, getGeneratedEphemeris, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getFixedStepSize, getFrame, getInitialState, getManagedAdditionalStates, getMode, getPVCoordinates, getStartDate, getStepHandler, isAdditionalStateManaged, propagate, setAttitudeProvider, setEphemerisMode, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, updateAdditionalStates
public EcksteinHechlerPropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider)
Mass and attitude provider are set to unspecified nonnull arbitrary values.
initialOrbit
 initial orbitprovider
 for unnormalized zonal coefficientspublic EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitude, double mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
initialOrbit
 initial orbitattitude
 attitude providermass
 spacecraft massprovider
 for unnormalized zonal coefficientsharmonics
 provider.onDate(initialOrbit.getDate())
public EcksteinHechlerPropagator(Orbit initialOrbit, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
Mass and attitude provider are set to unspecified nonnull arbitrary values.
The C_{n,0} coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients C_{n,0} and the J_{n} one as follows:
C_{n,0} = [(2δ_{0,m})(2n+1)(nm)!/(n+m)!]^{½} C_{n,0}
C_{n,0} = J_{n}
initialOrbit
 initial orbitreferenceRadius
 reference radius of the Earth for the potential model (m)mu
 central attraction coefficient (m³/s²)c20
 unnormalized zonal coefficient (about 1.08e3 for Earth)c30
 unnormalized zonal coefficient (about +2.53e6 for Earth)c40
 unnormalized zonal coefficient (about +1.62e6 for Earth)c50
 unnormalized zonal coefficient (about +2.28e7 for Earth)c60
 unnormalized zonal coefficient (about 5.41e7 for Earth)Constants
public EcksteinHechlerPropagator(Orbit initialOrbit, double mass, UnnormalizedSphericalHarmonicsProvider provider)
Attitude law is set to an unspecified nonnull arbitrary value.
initialOrbit
 initial orbitmass
 spacecraft massprovider
 for unnormalized zonal coefficientspublic EcksteinHechlerPropagator(Orbit initialOrbit, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
Attitude law is set to an unspecified nonnull arbitrary value.
The C_{n,0} coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients C_{n,0} and the J_{n} one as follows:
C_{n,0} = [(2δ_{0,m})(2n+1)(nm)!/(n+m)!]^{½} C_{n,0}
C_{n,0} = J_{n}
initialOrbit
 initial orbitmass
 spacecraft massreferenceRadius
 reference radius of the Earth for the potential model (m)mu
 central attraction coefficient (m³/s²)c20
 unnormalized zonal coefficient (about 1.08e3 for Earth)c30
 unnormalized zonal coefficient (about +2.53e6 for Earth)c40
 unnormalized zonal coefficient (about +1.62e6 for Earth)c50
 unnormalized zonal coefficient (about +2.28e7 for Earth)c60
 unnormalized zonal coefficient (about 5.41e7 for Earth)public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider)
Mass is set to an unspecified nonnull arbitrary value.
initialOrbit
 initial orbitattitudeProv
 attitude providerprovider
 for unnormalized zonal coefficientspublic EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
Mass is set to an unspecified nonnull arbitrary value.
The C_{n,0} coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients C_{n,0} and the J_{n} one as follows:
C_{n,0} = [(2δ_{0,m})(2n+1)(nm)!/(n+m)!]^{½} C_{n,0}
C_{n,0} = J_{n}
initialOrbit
 initial orbitattitudeProv
 attitude providerreferenceRadius
 reference radius of the Earth for the potential model (m)mu
 central attraction coefficient (m³/s²)c20
 unnormalized zonal coefficient (about 1.08e3 for Earth)c30
 unnormalized zonal coefficient (about +2.53e6 for Earth)c40
 unnormalized zonal coefficient (about +1.62e6 for Earth)c50
 unnormalized zonal coefficient (about +2.28e7 for Earth)c60
 unnormalized zonal coefficient (about 5.41e7 for Earth)public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider)
initialOrbit
 initial orbitattitudeProv
 attitude providermass
 spacecraft massprovider
 for unnormalized zonal coefficientspublic EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
The C_{n,0} coefficients are the denormalized zonal coefficients, they are related to both the normalized coefficients C_{n,0} and the J_{n} one as follows:
C_{n,0} = [(2δ_{0,m})(2n+1)(nm)!/(n+m)!]^{½} C_{n,0}
C_{n,0} = J_{n}
initialOrbit
 initial orbitattitudeProv
 attitude providermass
 spacecraft massreferenceRadius
 reference radius of the Earth for the potential model (m)mu
 central attraction coefficient (m³/s²)c20
 unnormalized zonal coefficient (about 1.08e3 for Earth)c30
 unnormalized zonal coefficient (about +2.53e6 for Earth)c40
 unnormalized zonal coefficient (about +1.62e6 for Earth)c50
 unnormalized zonal coefficient (about +2.28e7 for Earth)c60
 unnormalized zonal coefficient (about 5.41e7 for Earth)public void resetInitialState(SpacecraftState state)
resetInitialState
in interface Propagator
resetInitialState
in class AbstractPropagator
state
 new initial state to considerprotected void resetIntermediateState(SpacecraftState state, boolean forward)
resetIntermediateState
in class AbstractAnalyticalPropagator
state
 new intermediate state to considerforward
 if true, the intermediate state is valid for
propagations after itselfpublic CartesianOrbit propagateOrbit(AbsoluteDate date)
propagateOrbit
in class AbstractAnalyticalPropagator
date
 target date for the orbitprotected double getMass(AbsoluteDate date)
getMass
in class AbstractAnalyticalPropagator
date
 target date for the orbitCopyright © 20022019 CS Systèmes d'information. All rights reserved.