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,
double referenceRadius,
T mu,
double c20,
double c30,
double c40,
double c50,
double c60,
PropagationType initialType)
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 attitudeProv,
T mass,
UnnormalizedSphericalHarmonicsProvider provider,
PropagationType initialType)
Build a propagator from orbit, 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 attitude,
T mass,
UnnormalizedSphericalHarmonicsProvider provider,
UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics,
PropagationType initialType)
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.
|
FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit,
UnnormalizedSphericalHarmonicsProvider provider,
PropagationType initialType)
Build a propagator from orbit 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.
|
void |
resetInitialState(FieldSpacecraftState<T> state,
PropagationType stateType)
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
.
Using this constructor, an initial osculating orbit is considered.
initialOrbit
- initial FieldOrbitprovider
- for un-normalized zonal coefficientsFieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider,
UnnormalizedSphericalHarmonicsProvider)
,
FieldEcksteinHechlerPropagator(FieldOrbit, UnnormalizedSphericalHarmonicsProvider,
PropagationType)
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
Using this constructor, an initial osculating orbit is considered.
initialOrbit
- initial FieldOrbitattitude
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsharmonics
- provider.onDate(initialOrbit.getDate())
FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, RealFieldElement,
UnnormalizedSphericalHarmonicsProvider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics, PropagationType)
@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
.
Using this constructor, an initial osculating orbit is considered.
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
.
Using this constructor, an initial osculating orbit is considered.
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
.
Using this constructor, an initial osculating orbit is considered.
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.
Using this constructor, an initial osculating orbit is considered.
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
Using this constructor, an initial osculating orbit is considered.
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)
Using this constructor, an initial osculating orbit is considered.
initialOrbit
- initial FieldOrbitattitudeProv
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsFieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, RealFieldElement,
UnnormalizedSphericalHarmonicsProvider, PropagationType)
public 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
Using this constructor, an initial osculating orbit is considered.
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)FieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider, RealFieldElement, double,
RealFieldElement, double, double, double, double, double, PropagationType)
@DefaultDataContext public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
Mass and attitude provider are set to unspecified non-null arbitrary values.
This constructor uses the default data context
.
Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.
initialOrbit
- initial orbitprovider
- for un-normalized zonal coefficientsinitialType
- initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.
initialOrbit
- initial orbitattitudeProv
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsinitialType
- initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, PropagationType initialType)
Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.
initialOrbit
- initial orbitattitude
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsharmonics
- provider.onDate(initialOrbit.getDate())
initialType
- initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double c60, PropagationType initialType)
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
Using this constructor, it is possible to define the initial orbit as a mean Eckstein-Hechler orbit or an osculating one.
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)initialType
- initial orbit type (mean Eckstein-Hechler orbit or osculating orbit)public void resetInitialState(FieldSpacecraftState<T> state)
The new initial state to consider must be defined with an osculating orbit.
resetInitialState
in interface FieldPropagator<T extends RealFieldElement<T>>
resetInitialState
in class FieldAbstractPropagator<T extends RealFieldElement<T>>
state
- new initial state to considerresetInitialState(FieldSpacecraftState, PropagationType)
public void resetInitialState(FieldSpacecraftState<T> state, PropagationType stateType)
state
- new initial state to considerstateType
- mean Eckstein-Hechler orbit or osculating orbitprotected 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.