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(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);

    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 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,
                     ExtendedPVCoordinatesProvider 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)
    • Method Detail

      • 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