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,
T mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit, attitude provider and potential.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitudeProv,
T mass,
double referenceRadius,
T mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit, attitude provider, mass and potential.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
AttitudeProvider attitudeProv,
T mass,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit, attitude provider, mass and potential provider.
|
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, attitude provider and potential provider.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
double referenceRadius,
T mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit and potential.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
T mass,
double referenceRadius,
T mu,
double c20,
double c30,
double c40,
double c50,
double c60)
Build a propagator from FieldOrbit, mass and potential.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
T mass,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit, mass and potential provider.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
UnnormalizedSphericalHarmonicsProvider provider)
Build a propagator from FieldOrbit and potential provider.
|
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)
Deprecated.
|
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, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, stateChanged, updateAdditionalStates
@DefaultDataContext public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider)
Mass and attitude provider are set to unspecified non-null arbitrary values.
This constructor uses the default data context
.
initialOrbit
- initial FieldOrbitprovider
- for un-normalized zonal coefficientsFieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider,
UnnormalizedSphericalHarmonicsProvider)
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
initialOrbit
- initial FieldOrbitattitude
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsharmonics
- provider.onDate(initialOrbit.getDate())
@DefaultDataContext public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double c60)
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
This constructor uses the default data context
.
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)Constants
,
FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, double,
RealFieldElement, double, double, double, double, double)
@DefaultDataContext public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, T mass, UnnormalizedSphericalHarmonicsProvider provider)
Attitude law is set to an unspecified non-null arbitrary value.
This constructor uses the default data context
.
initialOrbit
- initial FieldOrbitmass
- spacecraft massprovider
- for un-normalized zonal coefficientsFieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider,
RealFieldElement, UnnormalizedSphericalHarmonicsProvider)
@DefaultDataContext public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double c60)
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
This constructor uses the default data context
.
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)FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider,
RealFieldElement, double, RealFieldElement, double, double, double, double, double)
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider)
Mass is set to an unspecified non-null arbitrary value.
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providerprovider
- for un-normalized zonal coefficientspublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double c60)
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)public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider)
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientspublic FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double c60)
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)public void resetInitialState(FieldSpacecraftState<T> state)
resetInitialState
in interface FieldPropagator<T extends RealFieldElement<T>>
resetInitialState
in class FieldAbstractPropagator<T extends RealFieldElement<T>>
state
- new initial state to considerprotected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
resetIntermediateState
in class FieldAbstractAnalyticalPropagator<T extends RealFieldElement<T>>
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfpublic FieldCartesianOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date)
propagateOrbit
in class FieldAbstractAnalyticalPropagator<T extends RealFieldElement<T>>
date
- target date for the orbitprotected T getMass(FieldAbsoluteDate<T> date)
getMass
in class FieldAbstractAnalyticalPropagator<T extends RealFieldElement<T>>
date
- target date for the orbit@Deprecated public static <T extends RealFieldElement<T>> T normalizeAngle(T a, T center)
MathUtils.normalizeAngle(RealFieldElement, RealFieldElement)
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-2020 CS Group. All rights reserved.