Class BrouwerLyddanePropagator
- All Implemented Interfaces:
Propagator,ParameterDriversProvider,PVCoordinatesProvider
SpacecraftState
using the analytical Brouwer-Lyddane model (from J2 to J5 zonal harmonics).
At the opposite of the EcksteinHechlerPropagator, 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. Beware that M2Driver must have only 1 span on its TimeSpanMap value.
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 the TLE.getBStar() parameter for the TLE.
If the value of M2 is equal to 0.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, Pascal Parraud
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleDefault convergence threshold for mean parameters conversion.static final doubleDefault value for M2 coefficient.static final StringParameter name for M2 coefficient.static final intDefault value for maxIterations.Fields inherited from interface org.orekit.propagation.Propagator
DEFAULT_MASS -
Constructor Summary
ConstructorsConstructorDescriptionBrouwerLyddanePropagator(Orbit initialOrbit, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) Build a propagator from orbit and potential.BrouwerLyddanePropagator(Orbit initialOrbit, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) Build a propagator from orbit, mass and potential.BrouwerLyddanePropagator(Orbit initialOrbit, double mass, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) Build a propagator from orbit, mass and potential provider.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) Build a propagator from orbit, attitude provider and potential.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) Build a propagator from orbit, attitude provider, mass and potential.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, PropagationType initialType, double m2Value) Build a propagator from orbit, attitude provider, mass and potential.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, PropagationType initialType, double m2Value, double epsilon, int maxIterations) Build a propagator from orbit, attitude provider, mass and potential.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, PropagationType initialType, double m2Value, OsculatingToMeanConverter converter) Build a propagator from orbit, attitude provider, mass and potential.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) Build a propagator from orbit, attitude provider, mass and potential provider.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double m2Value) Build a propagator from orbit, attitude provider, mass and potential provider.BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) Build a propagator from orbit, attitude provider and potential provider.BrouwerLyddanePropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) Build a propagator from orbit and potential provider.BrouwerLyddanePropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double m2Value) Build a propagator from orbit and potential provider. -
Method Summary
Modifier and TypeMethodDescriptionstatic KeplerianOrbitcomputeMeanOrbit(Orbit 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 KeplerianOrbitcomputeMeanOrbit(Orbit osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value, OsculatingToMeanConverter converter) Conversion from osculating to mean orbit.static KeplerianOrbitcomputeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, double m2Value, OsculatingToMeanConverter converter) Conversion from osculating to mean orbit.static KeplerianOrbitcomputeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double m2Value) Conversion from osculating to mean orbit.static KeplerianOrbitcomputeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double m2Value, double epsilon, int maxIterations) Conversion from osculating to mean orbit.protected AbstractMatricesHarvestercreateHarvester(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns) Create the harvester suitable for propagator.double[]getCk0()Get the un-normalized zonal coefficients.Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState).doublegetM2()Get the value of the M2 drag parameter.protected doublegetMass(AbsoluteDate date) Get the mass.doublegetMu()Get the central attraction coefficient μ.Get the parameters driver for propagation model.doubleGet the reference radius of the central body attraction model.propagateOrbit(AbsoluteDate date) Extrapolate an orbit up to a specific target date.voidresetInitialState(SpacecraftState state) Reset the propagator initial state.voidresetInitialState(SpacecraftState state, PropagationType stateType) Reset the propagator initial state.voidresetInitialState(SpacecraftState state, PropagationType stateType, double epsilon, int maxIterations) Reset the propagator initial state.voidresetInitialState(SpacecraftState state, PropagationType stateType, OsculatingToMeanConverter converter) Reset the propagator initial state.protected voidresetIntermediateState(SpacecraftState state, boolean forward) Reset an intermediate state.protected voidresetIntermediateState(SpacecraftState state, boolean forward, double epsilon, int maxIterations) Reset an intermediate state.protected voidresetIntermediateState(SpacecraftState state, boolean forward, OsculatingToMeanConverter converter) Reset an intermediate state.Methods inherited from class org.orekit.propagation.analytical.AbstractAnalyticalPropagator
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, clearMatricesComputation, getEphemerisGenerator, getEventDetectors, getPvProvider, propagateMethods inherited from class org.orekit.propagation.AbstractPropagator
addAdditionalDataProvider, getAdditionalDataProviders, getAttitudeProvider, getFrame, getHarvester, getInitialState, getManagedAdditionalData, getMultiplexer, getStartDate, initializeAdditionalData, initializePropagation, isAdditionalDataManaged, propagate, removeAdditionalDataProvider, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalData, updateUnmanagedDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupportedMethods inherited from interface org.orekit.propagation.Propagator
clearStepHandlers, getPosition, getPVCoordinates, getVelocity, setStepHandler, setStepHandler
-
Field Details
-
M2_NAME
Parameter name for M2 coefficient.- See Also:
-
M2
public static final double M2Default value for M2 coefficient.- See Also:
-
EPSILON_DEFAULT
public static final double EPSILON_DEFAULTDefault convergence threshold for mean parameters conversion.- See Also:
-
MAX_ITERATIONS_DEFAULT
public static final int MAX_ITERATIONS_DEFAULTDefault value for maxIterations.- See Also:
-
-
Constructor Details
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) 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 coefficientsm2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed- See Also:
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed- See Also:
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, double mass, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) 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 coefficientsm2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed- See Also:
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed- See Also:
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) 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 coefficientsm2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider, double m2Value) 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 coefficientsm2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed- See Also:
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed- See Also:
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, PropagationType initialType, double m2Value) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computed
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, PropagationType initialType, double m2Value, 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computedepsilon- convergence threshold for mean parameters conversionmaxIterations- maximum iterations for mean parameters conversion- Since:
- 11.2
-
BrouwerLyddanePropagator
public BrouwerLyddanePropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, PropagationType initialType, double m2Value, OsculatingToMeanConverter converter) 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)m2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not computedconverter- osculating to mean orbit converter- Since:
- 13.0
-
-
Method Details
-
computeMeanOrbit
public static KeplerianOrbit computeMeanOrbit(Orbit 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
m2Valueparameter.The computation is done through a fixed-point iteration process.
- 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 toM2drag is not considered- Returns:
- mean orbit in a Brouwer-Lyddane sense
- Since:
- 11.2
-
computeMeanOrbit
public static KeplerianOrbit computeMeanOrbit(Orbit 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
m2Valueparameter.The computation is done through a fixed-point iteration process.
- 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 toM2drag 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 KeplerianOrbit computeMeanOrbit(Orbit 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
m2Valueparameter.The computation is done through a fixed-point iteration process.
- 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 toM2drag 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 KeplerianOrbit computeMeanOrbit(Orbit osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double m2Value, OsculatingToMeanConverter converter) 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
m2Valueparameter.The computation is done through the given osculating to mean orbit converter.
- 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 toM2drag is not consideredconverter- osculating to mean orbit converter- Returns:
- mean orbit in a Brouwer-Lyddane sense
- Since:
- 13.0
-
computeMeanOrbit
public static KeplerianOrbit computeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, double m2Value, OsculatingToMeanConverter converter) 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
m2Valueparameter.The computation is done through the given osculating to mean orbit converter.
- Parameters:
osculating- osculating orbit to convertprovider- for un-normalized zonal coefficientsm2Value- value of empirical drag coefficient in rad/s². If equal toM2drag is not consideredconverter- osculating to mean orbit converter- Returns:
- mean orbit in a Brouwer-Lyddane sense
- Since:
- 13.0
-
resetInitialState
Reset the propagator initial state.The new initial state to consider must be defined with an osculating orbit.
- Specified by:
resetInitialStatein interfacePropagator- Overrides:
resetInitialStatein classAbstractPropagator- Parameters:
state- new initial state to consider- See Also:
-
resetInitialState
Reset the propagator initial state.- Parameters:
state- new initial state to considerstateType- mean Brouwer-Lyddane orbit or osculating orbit
-
resetInitialState
public void resetInitialState(SpacecraftState 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
-
resetInitialState
public void resetInitialState(SpacecraftState state, PropagationType stateType, OsculatingToMeanConverter converter) Reset the propagator initial state.- Parameters:
state- new initial state to considerstateType- mean Brouwer-Lyddane orbit or osculating orbitconverter- osculating to mean orbit converter- Since:
- 13.0
-
resetIntermediateState
Reset an intermediate state.- Specified by:
resetIntermediateStatein classAbstractAnalyticalPropagator- Parameters:
state- new intermediate state to considerforward- if true, the intermediate state is valid for propagations after itself
-
resetIntermediateState
protected void resetIntermediateState(SpacecraftState 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
-
resetIntermediateState
protected void resetIntermediateState(SpacecraftState state, boolean forward, OsculatingToMeanConverter converter) Reset an intermediate state.- Parameters:
state- new intermediate state to considerforward- if true, the intermediate state is valid for propagations after itselfconverter- osculating to mean orbit converter- Since:
- 13.0
-
propagateOrbit
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbitin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- extrapolated parameters
-
getM2
public double getM2()Get the value of the M2 drag parameter. Beware that M2Driver must have only 1 span on its TimeSpanMap value (that is to say setPeriod method should not be called)- Returns:
- the value of the M2 drag parameter
-
getMu
public double getMu()Get the central attraction coefficient μ.- Returns:
- mu central attraction coefficient (m³/s²)
-
getCk0
public double[] getCk0()Get the un-normalized zonal coefficients.- Returns:
- the un-normalized zonal coefficients
-
getReferenceRadius
public double getReferenceRadius()Get the reference radius of the central body attraction model.- Returns:
- the reference radius in meters
-
getParametersDrivers
Get the parameters driver for propagation model.- Specified by:
getParametersDriversin interfaceParameterDriversProvider- Returns:
- drivers for propagation model
-
createHarvester
protected AbstractMatricesHarvester createHarvester(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns) Create the harvester suitable for propagator.- Overrides:
createHarvesterin classAbstractPropagator- Parameters:
stmName- State Transition Matrix state nameinitialStm- initial State Transition Matrix ∂Y/∂Y₀, if null (which is the most frequent case), assumed to be 6x6 identityinitialJacobianColumns- initial columns of the Jacobians matrix with respect to parameters, if null or if some selected parameters are missing from the dictionary, the corresponding initial column is assumed to be 0- Returns:
- harvester to retrieve computed matrices during and after propagation
-
getJacobiansColumnsNames
Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState).- Overrides:
getJacobiansColumnsNamesin classAbstractAnalyticalPropagator- Returns:
- names of the parameters (i.e. columns) of the Jacobian matrix
-
getMass
Get the mass.- Specified by:
getMassin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- mass mass
-