Class QuadraticPenaltyCartesianFuel
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
-
- org.orekit.control.indirect.adjoint.cost.PenalizedCartesianFuelCost
-
- org.orekit.control.indirect.adjoint.cost.QuadraticPenaltyCartesianFuel
-
- All Implemented Interfaces:
CartesianCost
public class QuadraticPenaltyCartesianFuel extends PenalizedCartesianFuelCost
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 QuadraticPenaltyCartesianFuel(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon)Constructor with default event detection settings.QuadraticPenaltyCartesianFuel(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon, EventDetectionSettings eventDetectionSettings)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubleevaluatePenaltyFunction(double controlNorm)Evaluate the penalty term (without the weight), assumed to be a function of the control norm.EventDetectionSettingsgetEventDetectionSettings()Getter for the event detection settings.Stream<EventDetector>getEventDetectors()Get the detectors needed for propagation.Vector3DgetThrustAccelerationVector(double[] adjointVariables, double mass)Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.voidupdateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)Update the adjoint derivatives if necessary.-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.PenalizedCartesianFuelCost
getEpsilon, getHamiltonianContribution, getMaximumThrustMagnitude, getThrustDirection
-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
getAdjointDimension, getAdjointName, getAdjointVelocityNorm, 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.CartesianCost
getCostDerivativeProvider
-
-
-
-
Constructor Detail
-
QuadraticPenaltyCartesianFuel
public QuadraticPenaltyCartesianFuel(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon, EventDetectionSettings eventDetectionSettings)
Constructor.- Parameters:
name- adjoint namemassFlowRateFactor- mass flow rate factormaximumThrustMagnitude- maximum thrust magnitudeepsilon- penalty weighteventDetectionSettings- detection settings
-
QuadraticPenaltyCartesianFuel
public QuadraticPenaltyCartesianFuel(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon)
Constructor with default event detection settings.- Parameters:
name- adjoint namemassFlowRateFactor- mass flow rate factormaximumThrustMagnitude- maximum thrust magnitudeepsilon- penalty weight
-
-
Method Detail
-
getEventDetectionSettings
public EventDetectionSettings getEventDetectionSettings()
Getter for the event detection settings.- Returns:
- detection settings
-
evaluatePenaltyFunction
public double evaluatePenaltyFunction(double controlNorm)
Evaluate the penalty term (without the weight), assumed to be a function of the control norm.- Specified by:
evaluatePenaltyFunctionin classPenalizedCartesianFuelCost- Parameters:
controlNorm- Euclidean norm of control vector- Returns:
- penalty function
-
getThrustAccelerationVector
public Vector3D getThrustAccelerationVector(double[] adjointVariables, double mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- thrust vector
-
updateAdjointDerivatives
public void updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)Update the adjoint derivatives if necessary.- Parameters:
adjointVariables- adjoint vectormass- massadjointDerivatives- derivatives to update
-
getEventDetectors
public Stream<EventDetector> getEventDetectors()
Get the detectors needed for propagation.- Returns:
- event detectors
-
-