Class PolynomialParametricAcceleration
- java.lang.Object
-
- org.orekit.forces.AbstractForceModel
-
- org.orekit.forces.AbstractParametricAcceleration
-
- org.orekit.forces.PolynomialParametricAcceleration
-
- All Implemented Interfaces:
ForceModel
public class PolynomialParametricAcceleration extends AbstractParametricAcceleration
This class implements aparametric acceleration
with polynomial signed amplitude.- Since:
- 9.0
- Author:
- Luc Maisonobe
-
-
Constructor Summary
Constructors Constructor Description PolynomialParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, boolean isInertial, String prefix, AbsoluteDate referenceDate, int degree)
Simple constructor.PolynomialParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, AttitudeProvider attitudeOverride, String prefix, AbsoluteDate referenceDate, int degree)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
dependsOnPositionOnly()
Check if force models depends on position only.ParameterDriver[]
getParametersDrivers()
Get the drivers for force model parameters.void
init(SpacecraftState initialState, AbsoluteDate target)
Initialize the force model at the start of propagation.protected <T extends org.hipparchus.RealFieldElement<T>>
TsignedAmplitude(FieldSpacecraftState<T> state, T[] parameters)
Compute the signed amplitude of the acceleration.protected double
signedAmplitude(SpacecraftState state, double[] parameters)
Compute the signed amplitude of the acceleration.-
Methods inherited from class org.orekit.forces.AbstractParametricAcceleration
acceleration, acceleration, getEventsDetectors, getFieldEventsDetectors, isInertial
-
Methods inherited from class org.orekit.forces.AbstractForceModel
complainIfNotSupported, getParameterDriver, isSupported
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, getParameters, getParameters
-
-
-
-
Constructor Detail
-
PolynomialParametricAcceleration
public PolynomialParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, boolean isInertial, String prefix, AbsoluteDate referenceDate, int degree)
Simple constructor.The signed amplitude of the acceleration is ∑pₙ(t-t₀)ⁿ, where pₙ is parameter
n
, t is current date and t₀ is reference date. The value t-t₀ is in seconds.The
degree + 1
parameters for this model are the polynomial coefficients in increasing degree order. Their reference values (used also as the initial values) are all set to 0. User can change them before starting the propagation (or orbit determination) by callinggetParametersDrivers()
andParameterDriver.setValue(double)
.- Parameters:
direction
- acceleration direction in defining 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 propagationattitude law
)prefix
- prefix to use for parameter driversreferenceDate
- reference date for computing polynomials, if null the reference date will be automatically set at propagation startdegree
- polynomial degree (i.e. a value of 0 corresponds to a constant acceleration)
-
PolynomialParametricAcceleration
public PolynomialParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, AttitudeProvider attitudeOverride, String prefix, AbsoluteDate referenceDate, int degree)
Simple constructor.The signed amplitude of the acceleration is ∑pₙ(t-t₀)ⁿ, where pₙ is parameter
n
, t is current date and t₀ is reference date. The value t-t₀ is in seconds.The
degree + 1
parameters for this model are the polynomial coefficients in increasing degree order. Their reference values (used also as the initial values) are all set to 0. User can change them before starting the propagation (or orbit determination) by callinggetParametersDrivers()
andParameterDriver.setValue(double)
.- Parameters:
direction
- acceleration direction in overridden spacecraft frameattitudeOverride
- provider for attitude used to compute acceleration directionprefix
- prefix to use for parameter driversreferenceDate
- reference date for computing polynomials, if null the reference date will be automatically set at propagation startdegree
- polynomial degree (i.e. a value of 0 corresponds to a constant acceleration)
-
-
Method Detail
-
dependsOnPositionOnly
public boolean dependsOnPositionOnly()
Check if force models depends on position only.- Returns:
- true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
-
init
public void init(SpacecraftState initialState, AbsoluteDate target)
Initialize the force model at the start of propagation. This method will be called before any calls toForceModel.addContribution(SpacecraftState, TimeDerivativesEquations)
,ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
,ForceModel.acceleration(SpacecraftState, double[])
orForceModel.acceleration(FieldSpacecraftState, RealFieldElement[])
The default implementation of this method does nothing.
- Parameters:
initialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal toinitialState.getDate()
.
-
signedAmplitude
protected double signedAmplitude(SpacecraftState state, double[] parameters)
Compute the signed amplitude of the acceleration.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.
- Specified by:
signedAmplitude
in classAbstractParametricAcceleration
- Parameters:
state
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters- Returns:
- norm of the acceleration
-
signedAmplitude
protected <T extends org.hipparchus.RealFieldElement<T>> T signedAmplitude(FieldSpacecraftState<T> state, T[] parameters)
Compute the signed amplitude of the acceleration.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.
- Specified by:
signedAmplitude
in classAbstractParametricAcceleration
- Type Parameters:
T
- type of the elements- Parameters:
state
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters- Returns:
- norm of the acceleration
-
getParametersDrivers
public ParameterDriver[] getParametersDrivers()
Get the drivers for force model parameters.- Returns:
- drivers for force model parameters
-
-