Class FieldQuadraticallyPenalizedCartesianFuel<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost<T>
-
- org.orekit.control.indirect.adjoint.cost.FieldPenalizedCartesianFuelCost<T>
-
- org.orekit.control.indirect.adjoint.cost.FieldQuadraticallyPenalizedCartesianFuel<T>
-
- All Implemented Interfaces:
FieldCartesianCost<T>
public class FieldQuadraticallyPenalizedCartesianFuel<T extends CalculusFieldElement<T>> extends FieldPenalizedCartesianFuelCost<T>
Fuel cost penalized with a quadratic term. For epsilon equal to 1, one gets the bounded energy cost.- Since:
- 13.0
- Author:
- Romain Serra
- See Also:
BoundedCartesianEnergy
-
-
Constructor Summary
Constructors Constructor Description FieldQuadraticallyPenalizedCartesianFuel(String name, T massFlowRateFactor, T maximumThrustMagnitude, T epsilon)
Constructor with default event detection settings.FieldQuadraticallyPenalizedCartesianFuel(String name, T massFlowRateFactor, T maximumThrustMagnitude, T epsilon, FieldEventDetectionSettings<T> eventDetectionSettings)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
evaluateFieldPenaltyFunction(T controlNorm)
Evaluate the penalty term (without the weight), assumed to be a function of the control norm.Stream<FieldEventDetector<T>>
getFieldEventDetectors(Field<T> field)
Get the detectors needed for propagation.FieldVector3D<T>
getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.QuadraticallyPenalizedCartesianFuel
toCartesianCost()
Method returning equivalent in non-Field.void
updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.FieldPenalizedCartesianFuelCost
getEpsilon, getEventDetectionSettings, getFieldHamiltonianContribution, getFieldThrustDirection, getMaximumThrustMagnitude
-
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
-
-
-
-
Constructor Detail
-
FieldQuadraticallyPenalizedCartesianFuel
public FieldQuadraticallyPenalizedCartesianFuel(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
-
FieldQuadraticallyPenalizedCartesianFuel
public FieldQuadraticallyPenalizedCartesianFuel(String name, T massFlowRateFactor, T maximumThrustMagnitude, T epsilon)
Constructor with default event detection settings.- Parameters:
name
- adjoint namemassFlowRateFactor
- mass flow rate factormaximumThrustMagnitude
- maximum thrust magnitudeepsilon
- penalty weight
-
-
Method Detail
-
evaluateFieldPenaltyFunction
public T evaluateFieldPenaltyFunction(T controlNorm)
Evaluate the penalty term (without the weight), assumed to be a function of the control norm.- Specified by:
evaluateFieldPenaltyFunction
in classFieldPenalizedCartesianFuelCost<T extends CalculusFieldElement<T>>
- Parameters:
controlNorm
- Euclidean norm of control vector- Returns:
- penalty function
-
getFieldThrustAccelerationVector
public FieldVector3D<T> getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- thrust vector
-
updateFieldAdjointDerivatives
public void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
Update the adjoint derivatives if necessary.- Parameters:
adjointVariables
- adjoint vectormass
- massadjointDerivatives
- derivatives to update
-
getFieldEventDetectors
public Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
Get the detectors needed for propagation.- Parameters:
field
- field- Returns:
- event detectors
-
toCartesianCost
public QuadraticallyPenalizedCartesianFuel toCartesianCost()
Method returning equivalent in non-Field.- Returns:
- cost function for non-Field applications
-
-