Class FieldBoundedCartesianEnergy<T extends CalculusFieldElement<T>>
java.lang.Object
org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost<T>
org.orekit.control.indirect.adjoint.cost.FieldBoundedCartesianEnergy<T>
- Type Parameters:
T- field type
- All Implemented Interfaces:
FieldCartesianCost<T>
public class FieldBoundedCartesianEnergy<T extends CalculusFieldElement<T>>
extends FieldAbstractCartesianCost<T>
Class for bounded energy cost with Cartesian coordinates.
An energy cost is proportional to the integral over time of the squared Euclidean norm of the control vector, often scaled with 1/2.
This type of cost is not optimal in terms of mass consumption, however its solutions showcase a smoother behavior favorable for convergence in shooting techniques.
Here, the control vector is chosen as the thrust force divided by the maximum thrust magnitude and expressed in the propagation frame.
- Since:
- 13.0
- Author:
- Romain Serra
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost
FieldAbstractCartesianCost.FieldSwitchFunction -
Constructor Summary
ConstructorsConstructorDescriptionFieldBoundedCartesianEnergy(String name, T massFlowRateFactor, T maximumThrustMagnitude) Constructor.FieldBoundedCartesianEnergy(String name, T massFlowRateFactor, T maximumThrustMagnitude, FieldEventDetectionSettings<T> eventDetectionSettings) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected FieldAbstractCartesianCost<T>.FieldSwitchFunctionbuildSwitchFunction(T detectionValue) Event detector for control non-differentiability.Getter for event detection settings.getFieldEventDetectors(Field<T> field) Get the detectors needed for propagation.getFieldHamiltonianContribution(T[] adjointVariables, T mass) Computes the Hamiltonian contribution to the cost function.getFieldThrustAccelerationVector(T[] adjointVariables, T mass) Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.protected FieldVector3D<T> getFieldThrustDirection(T[] adjointVariables) Computes the direction of thrust.protected TgetFieldThrustForceNorm(T[] adjointVariables, T mass) Computes the Euclidean norm of the thrust force.Getter for maximum thrust magnitude.Method returning equivalent in non-Field.voidupdateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives) Update the adjoint derivatives if necessary.Methods inherited from class org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost
buildSwitchDetector, getAdjointDimension, getAdjointName, getFieldAdjointVelocityNorm, getMassFlowRateFactorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.control.indirect.adjoint.cost.FieldCartesianCost
getCostDerivativeProvider
-
Constructor Details
-
FieldBoundedCartesianEnergy
public FieldBoundedCartesianEnergy(String name, T massFlowRateFactor, T maximumThrustMagnitude, FieldEventDetectionSettings<T> eventDetectionSettings) Constructor.- Parameters:
name- namemassFlowRateFactor- mass flow rate factormaximumThrustMagnitude- maximum thrust magnitudeeventDetectionSettings- singularity event detection settings
-
FieldBoundedCartesianEnergy
Constructor.- Parameters:
name- namemassFlowRateFactor- mass flow rate factormaximumThrustMagnitude- maximum thrust magnitude
-
-
Method Details
-
getMaximumThrustMagnitude
Getter for maximum thrust magnitude.- Returns:
- maximum thrust
-
getFieldThrustForceNorm
Computes the Euclidean norm of the thrust force.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- norm of thrust
-
getFieldEventDetectors
Get the detectors needed for propagation.- Parameters:
field- field- Returns:
- event detectors
-
toCartesianCost
Method returning equivalent in non-Field.- Returns:
- cost function for non-Field applications
-
getEventDetectionSettings
Getter for event detection settings.- Returns:
- detection settings.
-
getFieldThrustAccelerationVector
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- thrust vector
-
getFieldThrustDirection
Computes the direction of thrust.- Parameters:
adjointVariables- adjoint vector- Returns:
- thrust direction
-
updateFieldAdjointDerivatives
Update the adjoint derivatives if necessary.- Parameters:
adjointVariables- adjoint vectormass- massadjointDerivatives- derivatives to update
-
getFieldHamiltonianContribution
Computes the Hamiltonian contribution to the cost function. It equals the Lagrange-form integrand multiplied by -1.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- contribution to Hamiltonian
-
buildSwitchFunction
Event detector for control non-differentiability.- Parameters:
detectionValue- critical value- Returns:
- switch function
-