Class 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 Details

    • ECOM_COEFFICIENT

      public static final String ECOM_COEFFICIENT
      Parameter name for ECOM model coefficients enabling Jacobian processing.
      See Also:
  • Constructor Details

    • 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 value
      sun - provide for Sun parameter
      equatorialRadius - spherical shape model (for umbra/penumbra computation)
    • ECOM2

      public ECOM2(int nD, int nB, double value, ExtendedPositionProvider sun, double equatorialRadius, Frames frames)
      Constructor.
      Parameters:
      nD - truncation rank of Fourier series in D term.
      nB - truncation rank of Fourier series in B term.
      value - parameters initial value
      sun - provide for Sun parameter
      equatorialRadius - spherical shape model (for umbra/penumbra computation)
      frames - list of frames with user-defined data context
      Since:
      13.1.1
  • Method Details

    • acceleration

      public Vector3D acceleration(SpacecraftState s, double[] parameters)
      Compute acceleration.
      Parameters:
      s - current state information: date, kinematics, attitude
      parameters - 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, attitude
      parameters - 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