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, waitgetNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupportedgetEventDetectors, getFieldEventDetectorspublic 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 ForceModelpublic 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 ForceModelinitialState - 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 ForceModelT - 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 ForceModels - 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 ForceModelT - 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)
ForceModelacceleration in interface ForceModels - 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)
ForceModelacceleration in interface ForceModelT - 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 ForceModelgetEventDetectors in interface EventDetectorsProviderpublic <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 ForceModelgetFieldEventDetectors in interface EventDetectorsProviderT - extends CalculusFieldElement<T>field - field to which the state belongspublic List<ParameterDriver> getParametersDrivers()
ParameterDriversProvidergetParametersDrivers in interface ParameterDriversProviderCopyright © 2002-2023 CS GROUP. All rights reserved.