Class FieldPenalizedCartesianFuelCost<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost<T>
-
- org.orekit.control.indirect.adjoint.cost.FieldPenalizedCartesianFuelCost<T>
-
- All Implemented Interfaces:
FieldCartesianCost<T>
- Direct Known Subclasses:
FieldQuadraticallyPenalizedCartesianFuel
public abstract class FieldPenalizedCartesianFuelCost<T extends CalculusFieldElement<T>> extends FieldAbstractCartesianCost<T>
Abstract class for fuel cost with a penalty term proportional to a weight parameter epsilon. This is typically used in a continuation method, starting from epsilon equal to 1 and going towards 0 where the fuel cost is recovered. The point is to enhance convergence. The control vector is the normalized (by the upper bound on magnitude) thrust force in propagation frame.- Since:
- 13.0
- Author:
- Romain Serra
- See Also:
FieldCartesianFuelCost
,PenalizedCartesianFuelCost
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
FieldPenalizedCartesianFuelCost(String name, T massFlowRateFactor, T maximumThrustMagnitude, T epsilon, FieldEventDetectionSettings<T> eventDetectionSettings)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract T
evaluateFieldPenaltyFunction(T controlNorm)
Evaluate the penalty term (without the weight), assumed to be a function of the control norm.T
getEpsilon()
Getter for the penalty weight epsilon.FieldEventDetectionSettings<T>
getEventDetectionSettings()
Getter for the event detection settings.T
getFieldHamiltonianContribution(T[] adjointVariables, T mass)
Computes the Hamiltonian contribution of the cost function.protected FieldVector3D<T>
getFieldThrustDirection(T[] adjointVariables)
Computes the direction of thrust.T
getMaximumThrustMagnitude()
Getter for maximum thrust magnitude.-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost
getAdjointName, getFieldAdjointVelocityNorm, getMassFlowRateFactor
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.control.indirect.adjoint.cost.FieldCartesianCost
getAdjointDimension, getFieldEventDetectors, getFieldThrustAccelerationVector, toCartesianCost, updateFieldAdjointDerivatives
-
-
-
-
Constructor Detail
-
FieldPenalizedCartesianFuelCost
protected FieldPenalizedCartesianFuelCost(String name, T massFlowRateFactor, T maximumThrustMagnitude, T epsilon, FieldEventDetectionSettings<T> eventDetectionSettings)
Constructor.- Parameters:
name
- adjoint namemassFlowRateFactor
- mass flow rate factormaximumThrustMagnitude
- maximum thrust magnitudeepsilon
- penalty weighteventDetectionSettings
- detection settings
-
-
Method Detail
-
getEpsilon
public T getEpsilon()
Getter for the penalty weight epsilon.- Returns:
- epsilon
-
getMaximumThrustMagnitude
public T getMaximumThrustMagnitude()
Getter for maximum thrust magnitude.- Returns:
- maximum thrust
-
getEventDetectionSettings
public FieldEventDetectionSettings<T> getEventDetectionSettings()
Getter for the event detection settings.- Returns:
- detection settings
-
evaluateFieldPenaltyFunction
public abstract T evaluateFieldPenaltyFunction(T controlNorm)
Evaluate the penalty term (without the weight), assumed to be a function of the control norm.- Parameters:
controlNorm
- Euclidean norm of control vector- Returns:
- penalty function
-
getFieldThrustDirection
protected FieldVector3D<T> getFieldThrustDirection(T[] adjointVariables)
Computes the direction of thrust.- Parameters:
adjointVariables
- adjoint vector- Returns:
- thrust direction
-
-