public class Maneuver extends Object implements ForceModel
ImpulseManeuver
and
FieldImpulseManeuver
).
It contains:
- An attitude override, this is the attitude used during the maneuver, it can be different from the one
used for propagation;
- A maneuver triggers object from the trigger sub-package. It defines the triggers used to start and stop the maneuvers (dates or events for example).
- A propulsion model from sub-package propulsion. It defines the thrust or ΔV, isp, flow rate etc..
Both the propulsion model and the maneuver triggers can contain parameter drivers (for estimation).
The convention here is that the propulsion model drivers are given before the maneuver triggers when calling the
method getParametersDrivers()
DATATION_ACCURACY
Constructor and Description |
---|
Maneuver(AttitudeProvider attitudeOverride,
ManeuverTriggers maneuverTriggers,
PropulsionModel propulsionModel)
Generic maneuver constructor.
|
Modifier and Type | Method and Description |
---|---|
<T extends org.hipparchus.CalculusFieldElement<T>> |
acceleration(FieldSpacecraftState<T> s,
T[] parameters)
Compute acceleration.
|
org.hipparchus.geometry.euclidean.threed.Vector3D |
acceleration(SpacecraftState s,
double[] parameters)
Compute acceleration.
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
addContribution(FieldSpacecraftState<T> s,
FieldTimeDerivativesEquations<T> adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
boolean |
dependsOnPositionOnly()
Check if force models depends on position only.
|
AttitudeProvider |
getAttitudeOverride()
Get the attitude override used for the maneuver.
|
Control3DVectorCostType |
getControl3DVectorCostType()
Get the control vector's cost type.
|
Stream<EventDetector> |
getEventDetectors()
Get the discrete events related to the model.
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getFieldEventDetectors(org.hipparchus.Field<T> field)
Get the discrete events related to the model.
|
ManeuverTriggers |
getManeuverTriggers()
Get the maneuver triggers.
|
String |
getName()
Get the name of the maneuver.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for parameters.
|
PropulsionModel |
getPropulsionModel()
Get the propulsion model.
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
init(FieldSpacecraftState<T> initialState,
FieldAbsoluteDate<T> target)
Initialize the force model at the start of propagation.
|
void |
init(SpacecraftState initialState,
AbsoluteDate target)
Initialize the force model at the start of propagation.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
getEventDetectors, getFieldEventDetectors
public Maneuver(AttitudeProvider attitudeOverride, ManeuverTriggers maneuverTriggers, PropulsionModel propulsionModel)
attitudeOverride
- attitude provider for the attitude during the maneuvermaneuverTriggers
- maneuver triggerspropulsionModel
- propulsion modelpublic String getName()
public AttitudeProvider getAttitudeOverride()
public Control3DVectorCostType getControl3DVectorCostType()
public PropulsionModel getPropulsionModel()
public ManeuverTriggers getManeuverTriggers()
public boolean dependsOnPositionOnly()
dependsOnPositionOnly
in interface ForceModel
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.
init
in interface ForceModel
initialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal to initialState.getDate()
.public <T extends org.hipparchus.CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> 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.
init
in interface ForceModel
T
- type of the elementsinitialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal to initialState.getDate()
.public void addContribution(SpacecraftState s, TimeDerivativesEquations adder)
The default implementation simply adds the acceleration
as a non-Keplerian acceleration.
addContribution
in interface ForceModel
s
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedpublic <T extends org.hipparchus.CalculusFieldElement<T>> void addContribution(FieldSpacecraftState<T> s, FieldTimeDerivativesEquations<T> adder)
addContribution
in interface ForceModel
T
- type of the elementss
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedpublic org.hipparchus.geometry.euclidean.threed.Vector3D acceleration(SpacecraftState s, double[] parameters)
ForceModel
acceleration
in interface ForceModel
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date,
only 1 value for each parameterDriverpublic <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
ForceModel
acceleration
in interface ForceModel
T
- type of the elementss
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date,
only 1 value for each parameterDriverpublic Stream<EventDetector> getEventDetectors()
This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.
getEventDetectors
in interface ForceModel
getEventDetectors
in interface EventDetectorsProvider
public <T extends org.hipparchus.CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(org.hipparchus.Field<T> field)
This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.
getFieldEventDetectors
in interface ForceModel
getFieldEventDetectors
in interface EventDetectorsProvider
T
- extends CalculusFieldElement<T>field
- field to which the state belongspublic List<ParameterDriver> getParametersDrivers()
ParameterDriversProvider
getParametersDrivers
in interface ParameterDriversProvider
Copyright © 2002-2023 CS GROUP. All rights reserved.