Class ECOM2
- java.lang.Object
-
- org.orekit.forces.radiation.AbstractRadiationForceModel
-
- org.orekit.forces.radiation.ECOM2
-
- All Implemented Interfaces:
ForceModel
,RadiationForceModel
,EventDetectorsProvider
,ParameterDriversProvider
public class ECOM2 extends AbstractRadiationForceModel
The Empirical CODE Orbit Model 2 (ECOM2) of the Center for Orbit Determination in Europe (CODE).The drag acceleration is computed as follows : γ = γ0 + D(u)eD + Y(u)eY + B(u)eB
In the above equation, γ0 is a selectable a priori model. Since 2013, no a priori model is used for CODE IGS contribution (i.e. γ0 = 0). Moreover, u denotes the satellite's argument of latitude.
D(u), Y(u) and B(u) are three functions of the ECOM2 model that can be represented as Fourier series. The coefficients of the Fourier series are estimated during the estimation process. he ECOM2 model has user-defines upper limits nD and nB for the Fourier series (i.e. nD for D(u) and nB for B(u). Y(u) is defined as a constant value).
It exists several configurations to initialize nD and nB values. However, Arnold et al recommend to use D2B1 (i.e. nD = 1 and nB = 1) and D4B1 (i.e. nD = 2 an nB = 1) configurations. At the opposite, in Arnold paper, it is recommend to not use D2B0 (i.e. nD = 1 and nB = 0) configuration.
Since Orekit 11.0, it is possible to take into account the eclipses generated by Moon in the solar radiation pressure force model using the
AbstractRadiationForceModel.addOccultingBody(ExtendedPositionProvider, double)
method.
ECOM2 srp =
new ECOM2(1, 1, 0.0, CelestialBodyFactory.getSun(), Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS);
srp.addOccultingBody(CelestialBodyFactory.getMoon(), Constants.MOON_EQUATORIAL_RADIUS);
- Since:
- 10.2
- Author:
- David Soulard
- See Also:
- "Arnold, Daniel, et al, CODE’s new solar radiation pressure model for GNSS orbit determination, Journal of geodesy 89.8 (2015): 775-791.", "Tzu-Pang tseng and Michael Moore, Impact of solar radiation pressure mis-modeling on GNSS satellite orbit determination, IGS Worshop, Wuhan, China, 2018."
-
-
Field Summary
Fields Modifier and Type Field Description static String
ECOM_COEFFICIENT
Parameter name for ECOM model coefficients enabling Jacobian processing.-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description ECOM2(int nD, int nB, double value, ExtendedPositionProvider sun, double equatorialRadius)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldVector3D<T>acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.Vector3D
acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.-
Methods inherited from class org.orekit.forces.radiation.AbstractRadiationForceModel
addOccultingBody, addOccultingBody, getDefaultEclipseDetectionSettings, getEventDetectors, getFieldEventDetectors, getGeneralEclipseAngles, getGeneralEclipseAngles, getOccultingBodies
-
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.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectors
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, dependsOnAttitudeRate, init, init
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Methods inherited from interface org.orekit.forces.radiation.RadiationForceModel
dependsOnPositionOnly
-
-
-
-
Field Detail
-
ECOM_COEFFICIENT
public static final String ECOM_COEFFICIENT
Parameter name for ECOM model coefficients enabling Jacobian processing.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ECOM2
@DefaultDataContext public ECOM2(int nD, int nB, double value, ExtendedPositionProvider sun, double equatorialRadius)
Constructor.- Parameters:
nD
- truncation rank of Fourier series in D term.nB
- truncation rank of Fourier series in B term.value
- parameters initial valuesun
- provide for Sun parameterequatorialRadius
- spherical shape model (for umbra/penumbra computation)
-
-
Method Detail
-
acceleration
public Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
acceleration
public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.- Type Parameters:
T
- type of the elements- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Returns:
- drivers for parameters
-
-