public class FieldEcksteinHechlerPropagator<T extends CalculusFieldElement<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_MASS
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,
double referenceRadius,
T mu,
double c20,
double c30,
double c40,
double c50,
double c60,
PropagationType initialType,
double epsilon,
int maxIterations)
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 |
---|---|
static <T extends CalculusFieldElement<T>> |
computeMeanOrbit(FieldOrbit<T> osculating,
double referenceRadius,
double mu,
double c20,
double c30,
double c40,
double c50,
double c60,
double epsilon,
int maxIterations)
Conversion from osculating to mean orbit.
|
static <T extends CalculusFieldElement<T>> |
computeMeanOrbit(FieldOrbit<T> osculating,
UnnormalizedSphericalHarmonicsProvider provider,
UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
Conversion from osculating to mean orbit.
|
static <T extends CalculusFieldElement<T>> |
computeMeanOrbit(FieldOrbit<T> osculating,
UnnormalizedSphericalHarmonicsProvider provider,
UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics,
double epsilon,
int maxIterations)
Conversion from osculating to mean orbit.
|
protected T |
getMass(FieldAbsoluteDate<T> date)
Get the mass.
|
protected List<ParameterDriver> |
getParametersDrivers()
Get the parameters driver for propagation model.
|
FieldCartesianOrbit<T> |
propagateOrbit(FieldAbsoluteDate<T> date,
T[] parameters)
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.
|
void |
resetInitialState(FieldSpacecraftState<T> state,
PropagationType stateType,
double epsilon,
int maxIterations)
Reset the propagator initial state.
|
protected void |
resetIntermediateState(FieldSpacecraftState<T> state,
boolean forward)
Reset an intermediate state.
|
protected void |
resetIntermediateState(FieldSpacecraftState<T> state,
boolean forward,
double epsilon,
int maxIterations)
Reset an intermediate state.
|
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getParameters, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getFrame, getInitialState, getManagedAdditionalStates, getMultiplexer, getPVCoordinates, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, stateChanged, updateAdditionalStates, updateUnmanagedStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearStepHandlers, setStepHandler, setStepHandler
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider)
Mass and attitude provider are set to unspecified non-null arbitrary values.
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, CalculusFieldElement,
UnnormalizedSphericalHarmonicsProvider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics, PropagationType)
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
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,
CalculusFieldElement, double, double, double, double, double)
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, T mass, UnnormalizedSphericalHarmonicsProvider provider)
Attitude law is set to an unspecified non-null arbitrary value.
Using this constructor, an initial osculating orbit is considered.
initialOrbit
- initial FieldOrbitmass
- spacecraft massprovider
- for un-normalized zonal coefficientsFieldEcksteinHechlerPropagator(FieldOrbit, AttitudeProvider,
CalculusFieldElement, UnnormalizedSphericalHarmonicsProvider)
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
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,
CalculusFieldElement, double, CalculusFieldElement, 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, CalculusFieldElement,
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, CalculusFieldElement, double,
CalculusFieldElement, double, double, double, double, double, PropagationType)
public FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
Mass and attitude provider are set to unspecified non-null arbitrary values.
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 FieldEcksteinHechlerPropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double c60, PropagationType initialType, double epsilon, int maxIterations)
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)epsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversionpublic static <T extends CalculusFieldElement<T>> FieldCircularOrbit<T> computeMeanOrbit(FieldOrbit<T> osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
Compute mean orbit in a Eckstein-Hechler sense, corresponding to the osculating SpacecraftState in input.
Since the osculating orbit is obtained with the computation of short-periodic variation, the resulting output will depend on the gravity field parameterized in input.
The computation is done through a fixed-point iteration process.
T
- type of the filed elementsosculating
- osculating orbit to convertprovider
- for un-normalized zonal coefficientsharmonics
- provider.onDate(osculating.getDate())
public static <T extends CalculusFieldElement<T>> FieldCircularOrbit<T> computeMeanOrbit(FieldOrbit<T> osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double epsilon, int maxIterations)
Compute mean orbit in a Eckstein-Hechler sense, corresponding to the osculating SpacecraftState in input.
Since the osculating orbit is obtained with the computation of short-periodic variation, the resulting output will depend on the gravity field parameterized in input.
The computation is done through a fixed-point iteration process.
T
- type of the filed elementsosculating
- osculating orbit to convertprovider
- for un-normalized zonal coefficientsharmonics
- provider.onDate(osculating.getDate())
epsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversionpublic static <T extends CalculusFieldElement<T>> FieldCircularOrbit<T> computeMeanOrbit(FieldOrbit<T> osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, double epsilon, int maxIterations)
Compute mean orbit in a Eckstein-Hechler sense, corresponding to the osculating SpacecraftState in input.
Since the osculating orbit is obtained with the computation of short-periodic variation, the resulting output will depend on the gravity field parameterized in input.
The computation is done through a fixed-point iteration process.
T
- type of the filed elementsosculating
- osculating orbit to convertreferenceRadius
- 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)epsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversionpublic void resetInitialState(FieldSpacecraftState<T> state)
The new initial state to consider must be defined with an osculating orbit.
resetInitialState
in interface FieldPropagator<T extends CalculusFieldElement<T>>
resetInitialState
in class FieldAbstractPropagator<T extends CalculusFieldElement<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 orbitpublic void resetInitialState(FieldSpacecraftState<T> state, PropagationType stateType, double epsilon, int maxIterations)
state
- new initial state to considerstateType
- mean Eckstein-Hechler orbit or osculating orbitepsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversionprotected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
resetIntermediateState
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfprotected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward, double epsilon, int maxIterations)
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfepsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversionpublic FieldCartesianOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters)
propagateOrbit
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
date
- target date for the orbitparameters
- model parametersprotected T getMass(FieldAbsoluteDate<T> date)
getMass
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
date
- target date for the orbitprotected List<ParameterDriver> getParametersDrivers()
getParametersDrivers
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
Copyright © 2002-2022 CS GROUP. All rights reserved.