Class FieldBrouwerLyddanePropagator<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.propagation.FieldAbstractPropagator<T>
-
- org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator<T>
-
- org.orekit.propagation.analytical.FieldBrouwerLyddanePropagator<T>
-
- Type Parameters:
T
- type of the field elements
- All Implemented Interfaces:
FieldPropagator<T>
,FieldPVCoordinatesProvider<T>
,ParameterDriversProvider
public class FieldBrouwerLyddanePropagator<T extends CalculusFieldElement<T>> extends FieldAbstractAnalyticalPropagator<T>
This class propagates aFieldSpacecraftState
using the analytical Brouwer-Lyddane model (from J2 to J5 zonal harmonics).At the opposite of the
FieldEcksteinHechlerPropagator
, the Brouwer-Lyddane model is suited for elliptical orbits, there is no problem having a rather small eccentricity or inclination (Lyddane helped to solve this issue with the Brouwer model). Singularity for the critical inclination i = 63.4° is avoided using the method developed in Warren Phipps' 1992 thesis.By default, Brouwer-Lyddane model considers only the perturbations due to zonal harmonics. However, for low Earth orbits, the magnitude of the perturbative acceleration due to atmospheric drag can be significant. Warren Phipps' 1992 thesis considered the atmospheric drag by time derivatives of the mean mean anomaly using the catch-all coefficient
M2Driver
. Usually, M2 is adjusted during an orbit determination process and it represents the combination of all unmodeled secular along-track effects (i.e. not just the atmospheric drag). The behavior of M2 is close to theFieldTLE.getBStar()
parameter for the TLE. If the value of M2 is equal to0.0
, the along-track secular effects are not considered in the dynamical model. Typical values for M2 are not known. It depends on the orbit type. However, the value of M2 must be very small (e.g. between 1.0e-14 and 1.0e-15). The unit of M2 is rad/s². The along-track effects, represented by the secular rates of the mean semi-major axis and eccentricity, are computed following Eq. 2.38, 2.41, and 2.45 of Warren Phipps' thesis.- Since:
- 11.1
- Author:
- Melina Vanel, Bryan Cazabonne
- See Also:
- "Brouwer, Dirk. Solution of the problem of artificial satellite theory without drag. YALE UNIV NEW HAVEN CT NEW HAVEN United States, 1959.", "Lyddane, R. H. Small eccentricities or inclinations in the Brouwer theory of the artificial satellite. The Astronomical Journal 68 (1963): 555.", "Phipps Jr, Warren E. Parallelization of the Navy Space Surveillance Center (NAVSPASUR) Satellite Model. NAVAL POSTGRADUATE SCHOOL MONTEREY CA, 1992."
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.FieldPropagator
DEFAULT_MASS
-
-
Constructor Summary
Constructors Constructor Description FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit and potential.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit, attitude provider and potential.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit, attitude provider and potential provider.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit, attitude provider, mass and potential.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, PropagationType initialType, double M2)
Build a propagator from orbit, attitude provider, mass and potential.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, PropagationType initialType, double M2, double epsilon, int maxIterations)
Build a propagator from orbit, attitude provider, mass and potential.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit, attitude provider, mass and potential provider.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double M2)
Private helper constructor.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, PropagationType initialType, double M2)
Private helper constructor.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double M2)
Build a propagator from orbit, attitude provider, mass and potential provider.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit and potential provider.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double M2)
Build a propagator from orbit and potential provider.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit, mass and potential.FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, T mass, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit, mass and potential provider.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T extends CalculusFieldElement<T>>
FieldKeplerianOrbit<T>computeMeanOrbit(FieldOrbit<T> osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double M2Value, double epsilon, int maxIterations)
Conversion from osculating to mean orbit.static <T extends CalculusFieldElement<T>>
FieldKeplerianOrbit<T>computeMeanOrbit(FieldOrbit<T> osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double M2Value)
Conversion from osculating to mean orbit.static <T extends CalculusFieldElement<T>>
FieldKeplerianOrbit<T>computeMeanOrbit(FieldOrbit<T> osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double M2Value, double epsilon, int maxIterations)
Conversion from osculating to mean orbit.double
getM2()
Get the value of the M2 drag parameter.double
getM2(AbsoluteDate date)
Get the value of the M2 drag parameter.protected T
getMass(FieldAbsoluteDate<T> date)
Get the mass.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.FieldKeplerianOrbit<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.-
Methods inherited from class org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getPvProvider, propagate
-
Methods inherited from class org.orekit.propagation.FieldAbstractPropagator
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getFrame, getInitialState, getManagedAdditionalStates, getMultiplexer, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, stateChanged, updateAdditionalStates, updateUnmanagedStates
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.FieldPropagator
clearStepHandlers, getPosition, getPVCoordinates, setStepHandler, setStepHandler
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit and potential provider.Mass and attitude provider are set to unspecified non-null arbitrary values.
Using this constructor, an initial osculating orbit is considered.
- Parameters:
initialOrbit
- initial orbitprovider
- for un-normalized zonal coefficientsM2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
FieldBrouwerLyddanePropagator(FieldOrbit, UnnormalizedSphericalHarmonicsProvider, PropagationType, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double M2)
Private helper constructor.Using this constructor, an initial osculating orbit is considered.
- Parameters:
initialOrbit
- initial orbitattitude
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsharmonics
-provider.onDate(initialOrbit.getDate())
M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
FieldBrouwerLyddanePropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, UnnormalizedSphericalHarmonicsProvider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics, PropagationType, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit and potential.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.
- Parameters:
initialOrbit
- initial orbitreferenceRadius
- 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)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
Constants
,FieldBrouwerLyddanePropagator(FieldOrbit, AttitudeProvider, double, CalculusFieldElement, double, double, double, double, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, T mass, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit, mass and potential provider.Attitude law is set to an unspecified non-null arbitrary value.
Using this constructor, an initial osculating orbit is considered.
- Parameters:
initialOrbit
- initial orbitmass
- spacecraft massprovider
- for un-normalized zonal coefficientsM2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
FieldBrouwerLyddanePropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, UnnormalizedSphericalHarmonicsProvider, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit, mass and potential.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.
- Parameters:
initialOrbit
- initial orbitmass
- 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)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
FieldBrouwerLyddanePropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, double, CalculusFieldElement, double, double, double, double, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit, attitude provider and potential provider.Mass is set to an unspecified non-null arbitrary value.
Using this constructor, an initial osculating orbit is considered.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- attitude providerprovider
- for un-normalized zonal coefficientsM2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit, attitude provider and potential.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.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- 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)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider, double M2)
Build a propagator from orbit, attitude provider, mass and potential provider.Using this constructor, an initial osculating orbit is considered.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsM2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
FieldBrouwerLyddanePropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, UnnormalizedSphericalHarmonicsProvider, PropagationType, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, double M2)
Build a propagator from orbit, attitude provider, mass and potential.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.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- 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)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed- See Also:
FieldBrouwerLyddanePropagator(FieldOrbit, AttitudeProvider, CalculusFieldElement, double, CalculusFieldElement, double, double, double, double, PropagationType, double)
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double M2)
Build a propagator from orbit and potential provider.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 Brouwer-Lyddane orbit or an osculating one.
- Parameters:
initialOrbit
- initial orbitprovider
- for un-normalized zonal coefficientsinitialType
- initial orbit type (mean Brouwer-Lyddane orbit or osculating orbit)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double M2)
Build a propagator from orbit, attitude provider, mass and potential provider.Using this constructor, it is possible to define the initial orbit as a mean Brouwer-Lyddane orbit or an osculating one.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsinitialType
- initial orbit type (mean Brouwer-Lyddane orbit or osculating orbit)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitude, T mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, PropagationType initialType, double M2)
Private helper constructor.Using this constructor, it is possible to define the initial orbit as a mean Brouwer-Lyddane orbit or an osculating one.
- Parameters:
initialOrbit
- initial orbitattitude
- attitude providermass
- spacecraft massprovider
- for un-normalized zonal coefficientsharmonics
-provider.onDate(initialOrbit.getDate())
initialType
- initial orbit type (mean Brouwer-Lyddane orbit or osculating orbit)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, PropagationType initialType, double M2)
Build a propagator from orbit, attitude provider, mass and potential.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 Brouwer-Lyddane orbit or an osculating one.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- 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)initialType
- initial orbit type (mean Brouwer-Lyddane orbit or osculating orbit)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computed
-
FieldBrouwerLyddanePropagator
public FieldBrouwerLyddanePropagator(FieldOrbit<T> initialOrbit, AttitudeProvider attitudeProv, T mass, double referenceRadius, T mu, double c20, double c30, double c40, double c50, PropagationType initialType, double M2, double epsilon, int maxIterations)
Build a propagator from orbit, attitude provider, mass and potential.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 Brouwer-Lyddane orbit or an osculating one.
- Parameters:
initialOrbit
- initial orbitattitudeProv
- 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)initialType
- initial orbit type (mean Brouwer-Lyddane orbit or osculating orbit)M2
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not computedepsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversion- Since:
- 11.2
-
-
Method Detail
-
computeMeanOrbit
public static <T extends CalculusFieldElement<T>> FieldKeplerianOrbit<T> computeMeanOrbit(FieldOrbit<T> osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double M2Value)
Conversion from osculating to mean orbit.Compute mean orbit in a Brouwer-Lyddane 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 both the gravity field parameterized in input and the atmospheric drag represented by the
m2
parameter.The computation is done through a fixed-point iteration process.
- Type Parameters:
T
- type of the filed elements- Parameters:
osculating
- osculating orbit to convertprovider
- for un-normalized zonal coefficientsharmonics
-provider.onDate(osculating.getDate())
M2Value
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not considered- Returns:
- mean orbit in a Brouwer-Lyddane sense
- Since:
- 11.2
-
computeMeanOrbit
public static <T extends CalculusFieldElement<T>> FieldKeplerianOrbit<T> computeMeanOrbit(FieldOrbit<T> osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double M2Value, double epsilon, int maxIterations)
Conversion from osculating to mean orbit.Compute mean orbit in a Brouwer-Lyddane 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 both the gravity field parameterized in input and the atmospheric drag represented by the
m2
parameter.The computation is done through a fixed-point iteration process.
- Type Parameters:
T
- type of the filed elements- Parameters:
osculating
- osculating orbit to convertprovider
- for un-normalized zonal coefficientsharmonics
-provider.onDate(osculating.getDate())
M2Value
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not consideredepsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversion- Returns:
- mean orbit in a Brouwer-Lyddane sense
- Since:
- 11.2
-
computeMeanOrbit
public static <T extends CalculusFieldElement<T>> FieldKeplerianOrbit<T> computeMeanOrbit(FieldOrbit<T> osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double M2Value, double epsilon, int maxIterations)
Conversion from osculating to mean orbit.Compute mean orbit in a Brouwer-Lyddane 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 both the gravity field parameterized in input and the atmospheric drag represented by the
m2
parameter.The computation is done through a fixed-point iteration process.
- Type Parameters:
T
- type of the filed elements- Parameters:
osculating
- 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)M2Value
- value of empirical drag coefficient in rad/s². If equal toBrouwerLyddanePropagator.M2
drag is not consideredepsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversion- Returns:
- mean orbit in a Brouwer-Lyddane sense
- Since:
- 11.2
-
resetInitialState
public void resetInitialState(FieldSpacecraftState<T> state)
Reset the propagator initial state.The new initial state to consider must be defined with an osculating orbit.
- Specified by:
resetInitialState
in interfaceFieldPropagator<T extends CalculusFieldElement<T>>
- Overrides:
resetInitialState
in classFieldAbstractPropagator<T extends CalculusFieldElement<T>>
- Parameters:
state
- new initial state to consider- See Also:
resetInitialState(FieldSpacecraftState, PropagationType)
-
resetInitialState
public void resetInitialState(FieldSpacecraftState<T> state, PropagationType stateType)
Reset the propagator initial state.- Parameters:
state
- new initial state to considerstateType
- mean Brouwer-Lyddane orbit or osculating orbit
-
resetInitialState
public void resetInitialState(FieldSpacecraftState<T> state, PropagationType stateType, double epsilon, int maxIterations)
Reset the propagator initial state.- Parameters:
state
- new initial state to considerstateType
- mean Brouwer-Lyddane orbit or osculating orbitepsilon
- convergence threshold for mean parameters conversionmaxIterations
- maximum iterations for mean parameters conversion- Since:
- 11.2
-
resetIntermediateState
protected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
Reset an intermediate state.- Specified by:
resetIntermediateState
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for propagations after itself
-
resetIntermediateState
protected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward, double epsilon, int maxIterations)
Reset an intermediate state.- Parameters:
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 conversion- Since:
- 11.2
-
propagateOrbit
public FieldKeplerianOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters)
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbit
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
date
- target date for the orbitparameters
- model parameters- Returns:
- extrapolated parameters
-
getM2
public double getM2()
Get the value of the M2 drag parameter.- Returns:
- the value of the M2 drag parameter
-
getM2
public double getM2(AbsoluteDate date)
Get the value of the M2 drag parameter.- Parameters:
date
- date at which the model parameters want to be known- Returns:
- the value of the M2 drag parameter
-
getMass
protected T getMass(FieldAbsoluteDate<T> date)
Get the mass.- Specified by:
getMass
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
date
- target date for the orbit- Returns:
- mass mass
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Returns:
- drivers for parameters
-
-