ForceModel
HarmonicParametricAcceleration
, PolynomialParametricAcceleration
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 | Description |
---|---|---|
protected |
AbstractParametricAcceleration(Vector3D direction,
boolean isInertial,
AttitudeProvider attitudeOverride) |
Simple constructor.
|
Modifier and Type | Method | Description |
---|---|---|
<T extends RealFieldElement<T>> |
acceleration(FieldSpacecraftState<T> state,
T[] parameters) |
Compute acceleration.
|
Vector3D |
acceleration(SpacecraftState state,
double[] parameters) |
Compute acceleration.
|
Stream<EventDetector> |
getEventsDetectors() |
Get the discrete events related to the model.
|
<T extends RealFieldElement<T>> |
getFieldEventsDetectors(Field<T> field) |
Get the discrete events related to the model.
|
protected boolean |
isInertial() |
Check if direction is inertial.
|
protected abstract <T extends 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, isSupported
addContribution, addContribution, dependsOnPositionOnly, getParameters, getParameters, getParametersDrivers, init
protected AbstractParametricAcceleration(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 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 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 RealFieldElement<T>> 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 RealFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventsDetectors(Field<T> field)
T
- extends RealFieldElementfield
- field to which the state belongsCopyright © 2002-2018 CS Systèmes d'information. All rights reserved.