public class J2DifferentialEffect extends Object implements AdapterPropagator.DifferentialEffect, Serializable
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 t0. As ascending node drift rate depends on inclination, the change induces a time-dependent change in ascending node for later dates.
SmallManeuverAnalyticalModel
,
Serialized FormConstructor and Description |
---|
J2DifferentialEffect(Orbit orbit0,
Orbit orbit1,
boolean applyBeforeIn,
double referenceRadius,
double mu,
double j2)
Simple constructor.
|
J2DifferentialEffect(Orbit orbit0,
Orbit orbit1,
boolean applyBeforeIn,
PotentialCoefficientsProvider gravityField)
Simple constructor.
|
J2DifferentialEffect(SpacecraftState original,
AdapterPropagator.DifferentialEffect directEffect,
boolean applyBeforeIn,
double referenceRadius,
double mu,
double j2)
Simple constructor.
|
J2DifferentialEffect(SpacecraftState original,
AdapterPropagator.DifferentialEffect directEffect,
boolean applyBeforeIn,
PotentialCoefficientsProvider gravityField)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
Orbit |
apply(Orbit orbit1)
Compute the effect of the maneuver on an orbit.
|
SpacecraftState |
apply(SpacecraftState state1)
Apply the effect to a
spacecraft state . |
public J2DifferentialEffect(SpacecraftState original, AdapterPropagator.DifferentialEffect directEffect, boolean applyBeforeIn, PotentialCoefficientsProvider gravityField) throws PatriusException
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
.
original
- original state at reference datedirectEffect
- direct effect changing the orbitapplyBeforeIn
- if true, effect is applied both before and after
reference date, if false it is only applied after reference dategravityField
- gravity field to usePatriusException
- if gravity field does not contain J2 coefficientpublic J2DifferentialEffect(Orbit orbit0, Orbit orbit1, boolean applyBeforeIn, PotentialCoefficientsProvider gravityField) throws PatriusException
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
.
orbit0
- original orbit at reference dateorbit1
- shifted orbit at reference dateapplyBeforeIn
- if true, effect is applied both before and after
reference date, if false it is only applied after reference dategravityField
- gravity field to usePatriusException
- if gravity field does not contain J2 coefficientpublic J2DifferentialEffect(SpacecraftState original, AdapterPropagator.DifferentialEffect directEffect, boolean applyBeforeIn, double referenceRadius, double mu, double j2) throws PatriusException
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
.
original
- original state at reference datedirectEffect
- direct effect changing the orbitapplyBeforeIn
- if true, effect is applied both before and after
reference date, if false it is only applied after reference datereferenceRadius
- reference radius of the Earth for the potential model (m)mu
- central attraction coefficient (m3/s2)j2
- un-normalized zonal coefficient (about +1.08e-3 for Earth)PatriusException
- if direct effect cannot be appliedpublic J2DifferentialEffect(Orbit orbit0, Orbit orbit1, boolean applyBeforeIn, double referenceRadius, double mu, double j2)
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
.
orbit0
- original orbit at reference dateorbit1
- shifted orbit at reference dateapplyBeforeIn
- if true, effect is applied both before and after
reference date, if false it is only applied after reference datereferenceRadius
- reference radius of the Earth for the potential model (m)mu
- central attraction coefficient (m3/s2)j2
- un-normalized zonal coefficient (about +1.08e-3 for Earth)public Orbit apply(Orbit orbit1)
orbit1
- original orbit at t1, without maneuverapply(SpacecraftState)
public SpacecraftState apply(SpacecraftState state1) throws PatriusException
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.
apply
in interface AdapterPropagator.DifferentialEffect
state1
- original state without the effectPatriusException
- if effect cannot be computedCopyright © 2019 CNES. All rights reserved.