public abstract class AbstractParametricAcceleration extends AbstractForceModel
Parametric accelerations are intended to model lesser-known forces, estimating a few defining parameters from a parametric function using orbit determination. Typical parametric functions are polynomial (often limited to a constant term) and harmonic (often with either orbital period or half orbital period).
An important operational example is the infamous GPS Y-bias, which is thought to be related to a radiator thermal radiation. Other examples could be to model leaks that produce roughly constant trust in some spacecraft-related direction.
The acceleration direction is considered constant in either:
If the direction of the acceleration is unknown, then three instances of this class should be used, one along the X axis, one along the Y axis and one along the Z axis and their parameters estimated as usual.
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction,
boolean isInertial,
AttitudeProvider attitudeOverride)
Simple constructor.
|
| Modifier and Type | Method and Description |
|---|---|
<T extends org.hipparchus.RealFieldElement<T>> |
acceleration(FieldSpacecraftState<T> state,
T[] parameters)
Compute acceleration.
|
org.hipparchus.geometry.euclidean.threed.Vector3D |
acceleration(SpacecraftState state,
double[] parameters)
Compute acceleration.
|
Stream<EventDetector> |
getEventsDetectors()
Get the discrete events related to the model.
|
<T extends org.hipparchus.RealFieldElement<T>> |
getFieldEventsDetectors(org.hipparchus.Field<T> field)
Get the discrete events related to the model.
|
protected boolean |
isInertial()
Check if direction is inertial.
|
protected abstract <T extends org.hipparchus.RealFieldElement<T>> |
signedAmplitude(FieldSpacecraftState<T> state,
T[] parameters)
Compute the signed amplitude of the acceleration.
|
protected abstract double |
signedAmplitude(SpacecraftState state,
double[] parameters)
Compute the signed amplitude of the acceleration.
|
complainIfNotSupported, getParameterDriver, isSupportedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddContribution, addContribution, dependsOnPositionOnly, getParameters, getParameters, getParametersDrivers, initprotected AbstractParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction,
boolean isInertial,
AttitudeProvider attitudeOverride)
direction - acceleration direction in overridden spacecraft frameisInertial - if true, direction is defined in the same inertial
frame used for propagation (i.e. SpacecraftState.getFrame()),
otherwise direction is defined in spacecraft frame (i.e. using the
propagation attitude law)attitudeOverride - provider for attitude used to compute acceleration
directionprotected boolean isInertial()
protected abstract double signedAmplitude(SpacecraftState state, double[] parameters)
The acceleration is the direction multiplied by the signed amplitude. So if signed amplitude is negative, the acceleratin is towards the opposite of the direction specified at construction.
state - current state information: date, kinematics, attitudeparameters - values of the force model parametersprotected abstract <T extends org.hipparchus.RealFieldElement<T>> T signedAmplitude(FieldSpacecraftState<T> state, T[] parameters)
The acceleration is the direction multiplied by the signed amplitude. So if signed amplitude is negative, the acceleratin is towards the opposite of the direction specified at construction.
T - type of the elementsstate - current state information: date, kinematics, attitudeparameters - values of the force model parameterspublic org.hipparchus.geometry.euclidean.threed.Vector3D acceleration(SpacecraftState state, double[] parameters) throws OrekitException
state - current state information: date, kinematics, attitudeparameters - values of the force model parametersOrekitException - if some specific error occurspublic <T extends org.hipparchus.RealFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration(FieldSpacecraftState<T> state, T[] parameters) throws OrekitException
T - type of the elementsstate - current state information: date, kinematics, attitudeparameters - values of the force model parametersOrekitException - if some specific error occurspublic Stream<EventDetector> getEventsDetectors()
public <T extends org.hipparchus.RealFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventsDetectors(org.hipparchus.Field<T> field)
T - extends RealFieldElementfield - field to which the state belongsCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.