public class ParametricAcceleration 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.
Constructor and Description |
---|
ParametricAcceleration(Vector3D direction,
AttitudeProvider attitudeOverride,
AccelerationModel accelerationModel)
Simple constructor.
|
ParametricAcceleration(Vector3D direction,
boolean isInertial,
AccelerationModel accelerationModel)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
<T extends CalculusFieldElement<T>> |
acceleration(FieldSpacecraftState<T> state,
T[] parameters)
Compute acceleration.
|
Vector3D |
acceleration(SpacecraftState state,
double[] parameters)
Compute acceleration.
|
boolean |
dependsOnPositionOnly()
Check if force models depends on position only.
|
Stream<EventDetector> |
getEventsDetectors()
Get the discrete events related to the model.
|
<T extends CalculusFieldElement<T>> |
getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for force model parameters.
|
void |
init(SpacecraftState initialState,
AbsoluteDate target)
Initialize the force model at the start of propagation.
|
complainIfNotSupported, getParameterDriver, isSupported
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addContribution, addContribution, getParameters, getParameters, init
public ParametricAcceleration(Vector3D direction, boolean isInertial, AccelerationModel accelerationModel)
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
)accelerationModel
- acceleration model used to compute the contribution of the empirical acceleration
directionpublic ParametricAcceleration(Vector3D direction, AttitudeProvider attitudeOverride, AccelerationModel accelerationModel)
direction
- acceleration direction in overridden spacecraft frame
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 accelerationaccelerationModel
- acceleration model used to compute the contribution of the empirical acceleration
directionpublic boolean dependsOnPositionOnly()
public List<ParameterDriver> getParametersDrivers()
public void init(SpacecraftState initialState, AbsoluteDate target)
ForceModel.addContribution(SpacecraftState, TimeDerivativesEquations)
,
ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
,
ForceModel.acceleration(SpacecraftState, double[])
or ForceModel.acceleration(FieldSpacecraftState, CalculusFieldElement[])
The default implementation of this method does nothing.
initialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal to initialState.getDate()
.public Vector3D acceleration(SpacecraftState state, double[] parameters)
state
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> state, T[] parameters)
T
- type of the elementsstate
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic Stream<EventDetector> getEventsDetectors()
public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventsDetectors(Field<T> field)
T
- extends CalculusFieldElement<T>field
- field to which the state belongsCopyright © 2002-2022 CS GROUP. All rights reserved.