public class ECOM2 extends AbstractRadiationForceModel
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(ExtendedPVCoordinatesProvider, 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);
Modifier and Type | Field and Description |
---|---|
static String |
ECOM_COEFFICIENT
Parameter name for ECOM model coefficients enabling Jacobian processing.
|
Constructor and Description |
---|
ECOM2(int nD,
int nB,
double value,
ExtendedPVCoordinatesProvider sun,
double equatorialRadius)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
<T extends CalculusFieldElement<T>> |
acceleration(FieldSpacecraftState<T> s,
T[] parameters)
Compute acceleration.
|
Vector3D |
acceleration(SpacecraftState s,
double[] parameters)
Compute acceleration.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for force model parameters.
|
addOccultingBody, dependsOnPositionOnly, getEclipseAngles, getEclipseAngles, getEquatorialRadius, getEventsDetectors, getFieldEventsDetectors, getGeneralEclipseAngles, getGeneralEclipseAngles, getOtherOccultingBodies
complainIfNotSupported, getParameterDriver, isSupported
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addContribution, addContribution, getParameters, getParameters, init
public static final String ECOM_COEFFICIENT
public ECOM2(int nD, int nB, double value, ExtendedPVCoordinatesProvider sun, double equatorialRadius)
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)public Vector3D acceleration(SpacecraftState s, double[] parameters)
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
T
- type of the elementss
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic List<ParameterDriver> getParametersDrivers()
Copyright © 2002-2021 CS GROUP. All rights reserved.