public class FieldEcksteinHechlerPropagator<T extends RealFieldElement<T>> extends FieldAbstractAnalyticalPropagator<T>
FieldSpacecraftState
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).
FieldOrbit
DEFAULT_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Constructor and Description |
---|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitudeProv,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitudeProv,
T mass,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitudeProv,
T mass,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitude,
T mass,
UnnormalizedSphericalHarmonicsProvider provider,
UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
Private helper constructor.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitudeProv,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
T mass,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
T mass,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit
|
Modifier and Type | Method and Description |
---|---|
protected T |
getMass(FieldAbsoluteDate<T> date)
Get the mass.
|
static <T extends RealFieldElement<T>> |
normalizeAngle(T a,
T center)
Normalize an angle in a 2π wide interval around a center value.
|
FieldCartesianOrbit<T> |
propagateOrbit(FieldAbsoluteDate<T> date)
Extrapolate an orbit up to a specific target date.
|
void |
resetInitialState(FieldSpacecraftState<T> state)
Reset the propagator initial state.
|
protected void |
resetIntermediateState(FieldSpacecraftState<T> state,
boolean forward)
Reset an intermediate state.
|
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEventsDetectors, getGeneratedEphemeris, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getFixedStepSize, getFrame, getInitialState, getManagedAdditionalStates, getMode, getPVCoordinates, getStartDate, getStepHandler, isAdditionalStateManaged, propagate, setAttitudeProvider, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, updateAdditionalStates
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider) throws OrekitException
Mass and attitude provider are set to unspecified non-null arbitrary values.
initialOrbit
- initial FieldOrbitprovider
- for un-normalized zonal coefficientsOrekitException
- if the zonal coefficients cannot be retrieved
or if the mean parameters cannot be computedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics) throws OrekitException
initialOrbit
- initial FieldOrbitattitude
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsharmonics
- provider.onDate(initialOrbit.getDate())
OrekitException
- if the zonal coefficients cannot be retrievedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60) throws OrekitException
Mass and attitude provider are set to unspecified non-null arbitrary values.
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
initialOrbit
- initial FieldOrbitreferenceRadius
- reference radius of the Earth for the potential model (m)mu
- central attraction coefficient (m³/s²)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)OrekitException
- if the mean parameters cannot be computedConstants
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, T mass, UnnormalizedSphericalHarmonicsProvider provider) throws OrekitException
Attitude law is set to an unspecified non-null arbitrary value.
initialOrbit
- initial FieldOrbitmass
- spacecraft massprovider
- for un-normalized zonal coefficientsOrekitException
- if the zonal coefficients cannot be retrieved
or if the mean parameters cannot be computedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, T mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60) throws OrekitException
Attitude law 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
initialOrbit
- initial FieldOrbitmass
- spacecraft massreferenceRadius
- reference radius of the Earth for the potential model (m)mu
- central attraction coefficient (m³/s²)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)OrekitException
- if the mean parameters cannot be computedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider) throws OrekitException
Mass is set to an unspecified non-null arbitrary value.
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providerprovider
- for un-normalized zonal coefficientsOrekitException
- if the zonal coefficients cannot be retrieved
or if the mean parameters cannot be computedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60) throws OrekitException
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
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providerreferenceRadius
- reference radius of the Earth for the potential model (m)mu
- central attraction coefficient (m³/s²)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)OrekitException
- if the mean parameters cannot be computedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider) throws OrekitException
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsOrekitException
- if the zonal coefficients cannot be retrieved
or if the mean parameters cannot be computedpublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60) throws OrekitException
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
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providermass
- spacecraft massreferenceRadius
- reference radius of the Earth for the potential model (m)mu
- central attraction coefficient (m³/s²)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)OrekitException
- if the mean parameters cannot be computedpublic void resetInitialState(FieldSpacecraftState<T> state) throws OrekitException
resetInitialState
in interface FieldPropagator<T extends RealFieldElement<T>>
resetInitialState
in class FieldAbstractPropagator<T extends RealFieldElement<T>>
state
- new initial state to considerOrekitException
- if initial state cannot be resetprotected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward) throws OrekitException
resetIntermediateState
in class FieldAbstractAnalyticalPropagator<T extends RealFieldElement<T>>
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfOrekitException
- if initial state cannot be resetpublic FieldCartesianOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date) throws OrekitException
propagateOrbit
in class FieldAbstractAnalyticalPropagator<T extends RealFieldElement<T>>
date
- target date for the orbitOrekitException
- if some parameters are out of boundsprotected T getMass(FieldAbsoluteDate<T> date)
getMass
in class FieldAbstractAnalyticalPropagator<T extends RealFieldElement<T>>
date
- target date for the orbitpublic static <T extends RealFieldElement<T>> T normalizeAngle(T a, T center)
This method has three main uses:
a = MathUtils.normalizeAngle(a, FastMath.PI);
a = MathUtils.normalizeAngle(a, 0.0);
angle = MathUtils.normalizeAngle(end, start) - start;
Note that due to numerical accuracy and since π cannot be represented exactly, the result interval is closed, it cannot be half-closed as would be more satisfactory in a purely mathematical view.
T
- the type of the field elementsa
- angle to normalizecenter
- center of the desired 2π interval for the resultCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.