public class HarmonicParametricAcceleration extends AbstractParametricAcceleration
parametric acceleration
with harmonic signed amplitude.Constructor and Description |
---|
HarmonicParametricAcceleration(Vector3D direction,
AttitudeProvider attitudeOverride,
String prefix,
AbsoluteDate referenceDate,
double fundamentalPeriod,
int harmonicMultiplier)
Simple constructor.
|
HarmonicParametricAcceleration(Vector3D direction,
boolean isInertial,
String prefix,
AbsoluteDate referenceDate,
double fundamentalPeriod,
int harmonicMultiplier)
Simple constructor.
|
Modifier and Type | Method and 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 RealFieldElement<T>> |
signedAmplitude(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.
|
acceleration, acceleration, getEventsDetectors, getFieldEventsDetectors, isInertial
complainIfNotSupported, getParameterDriver, isSupported
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addContribution, addContribution, getParameters, getParameters
public HarmonicParametricAcceleration(Vector3D direction, boolean isInertial, String prefix, AbsoluteDate referenceDate, double fundamentalPeriod, int harmonicMultiplier)
The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where
γ is parameter 0
and represents the full amplitude, t is current
date, t₀ is reference date, T
is fundamental period, k
is
harmonic multiplier, and φ is parameter 1
and represents phase at t₀.
The value t-t₀ is in seconds.
The fundamental period T
is often set to the Keplerian period of the
orbit and the harmonic multiplier k
is often set to 1 or 2. The model
has two parameters, one for the full amplitude and one for the phase at reference
date.
The two parameters for this model are the full amplitude (parameter 0) and the
phase at reference date (parameter 1). Their reference values (used also as the
initial values) are both set to 0. User can change them before starting the
propagation (or orbit determination) by calling getParametersDrivers()
and ParameterDriver.setValue(double)
.
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
propagation attitude law
)prefix
- prefix to use for parameter driversreferenceDate
- reference date for computing phase, if null
the reference date will be automatically set at propagation startfundamentalPeriod
- fundamental period (typically set to initial orbit
Keplerian period
)harmonicMultiplier
- multiplier to compute harmonic period from
fundamental period)public HarmonicParametricAcceleration(Vector3D direction, AttitudeProvider attitudeOverride, String prefix, AbsoluteDate referenceDate, double fundamentalPeriod, int harmonicMultiplier)
The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where
γ is parameter 0
and represents the full amplitude, t is current
date, t₀ is reference date, T
is fundamental period, k
is
harmonic multiplier, and φ is parameter 1
and represents phase at t₀.
The value t-t₀ is in seconds.
The fundamental period T
is often set to the Keplerian period of the
orbit and the harmonic multiplier k
is often set to 1 or 2. The model
has two parameters, one for the full amplitude and one for the phase at reference
date.
The two parameters for this model are the full amplitude (parameter 0) and the
phase at reference date (parameter 1). Their reference values (used also as the
initial values) are both set to 0. User can change them before starting the
propagation (or orbit determination) by calling getParametersDrivers()
and ParameterDriver.setValue(double)
.
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 phase, if null
the reference date will be automatically set at propagation startfundamentalPeriod
- fundamental period (typically set to initial orbit
Keplerian period
)harmonicMultiplier
- multiplier to compute harmonic period from
fundamental period)public boolean dependsOnPositionOnly()
public void init(SpacecraftState initialState, AbsoluteDate target)
ForceModel.addContribution(SpacecraftState, TimeDerivativesEquations)
,
ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
,
ForceModel.acceleration(SpacecraftState, double[])
or ForceModel.acceleration(FieldSpacecraftState, RealFieldElement[])
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()
.protected 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.
. The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where γ is parameter0
and represents the full amplitude, t is current
date, t₀ is reference date, T
is fundamental period, k
is
harmonic multiplier, and φ is parameter 1
and represents phase at t₀.
The value t-t₀ is in seconds.signedAmplitude
in class AbstractParametricAcceleration
state
- current state information: date, kinematics, attitudeparameters
- values of the force model parametersprotected <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.
The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where γ is parameter0
and represents the full amplitude, t is current
date, t₀ is reference date, T
is fundamental period, k
is
harmonic multiplier, and φ is parameter 1
and represents phase at t₀.
The value t-t₀ is in seconds.signedAmplitude
in class AbstractParametricAcceleration
T
- type of the elementsstate
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic ParameterDriver[] getParametersDrivers()
Copyright © 2002-2020 CS Group. All rights reserved.