Class J2DifferentialEffect

  • All Implemented Interfaces:
    AdapterPropagator.DifferentialEffect

    public class J2DifferentialEffect
    extends Object
    implements AdapterPropagator.DifferentialEffect
    Analytical model for J2 effect.

    This class computes the differential effect of J2 due to an initial orbit offset. A typical case is when an inclination maneuver changes an orbit inclination at time t₀. As ascending node drift rate depends on inclination, the change induces a time-dependent change in ascending node for later dates.

    Author:
    Luc Maisonobe
    See Also:
    SmallManeuverAnalyticalModel
    • Constructor Detail

      • J2DifferentialEffect

        public J2DifferentialEffect​(SpacecraftState original,
                                    AdapterPropagator.DifferentialEffect directEffect,
                                    boolean applyBefore,
                                    UnnormalizedSphericalHarmonicsProvider gravityField)
        Simple constructor.

        The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

        Parameters:
        original - original state at reference date
        directEffect - direct effect changing the orbit
        applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
        gravityField - gravity field to use
      • J2DifferentialEffect

        public J2DifferentialEffect​(Orbit orbit0,
                                    Orbit orbit1,
                                    boolean applyBefore,
                                    UnnormalizedSphericalHarmonicsProvider gravityField)
        Simple constructor.

        The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

        Parameters:
        orbit0 - original orbit at reference date
        orbit1 - shifted orbit at reference date
        applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
        gravityField - gravity field to use
      • J2DifferentialEffect

        public J2DifferentialEffect​(SpacecraftState original,
                                    AdapterPropagator.DifferentialEffect directEffect,
                                    boolean applyBefore,
                                    double referenceRadius,
                                    double mu,
                                    double j2)
        Simple constructor.

        The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

        Parameters:
        original - original state at reference date
        directEffect - direct effect changing the orbit
        applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        j2 - un-normalized zonal coefficient (about +1.08e-3 for Earth)
      • J2DifferentialEffect

        public J2DifferentialEffect​(Orbit orbit0,
                                    Orbit orbit1,
                                    boolean applyBefore,
                                    double referenceRadius,
                                    double mu,
                                    double j2)
        Simple constructor.

        The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

        Parameters:
        orbit0 - original orbit at reference date
        orbit1 - shifted orbit at reference date
        applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
        referenceRadius - reference radius of the Earth for the potential model (m)
        mu - central attraction coefficient (m³/s²)
        j2 - un-normalized zonal coefficient (about +1.08e-3 for Earth)
    • Method Detail

      • apply

        public Orbit apply​(Orbit orbit1)
        Compute the effect of the maneuver on an orbit.
        Parameters:
        orbit1 - original orbit at t₁, without maneuver
        Returns:
        orbit at t₁, taking the maneuver into account if t₁ > t₀
        See Also:
        apply(SpacecraftState)
      • apply

        public SpacecraftState apply​(SpacecraftState state1)
        Apply the effect to a spacecraft state.

        Applying the effect may be a no-op in some cases. A typical example is maneuvers, for which the state is changed only for time after the maneuver occurrence.

        Specified by:
        apply in interface AdapterPropagator.DifferentialEffect
        Parameters:
        state1 - original state without the effect
        Returns:
        updated state at the same date, taking the effect into account if meaningful