Class PenalizedCartesianFuelCost
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
-
- org.orekit.control.indirect.adjoint.cost.PenalizedCartesianFuelCost
-
- All Implemented Interfaces:
CartesianCost
- Direct Known Subclasses:
QuadraticallyPenalizedCartesianFuel
public abstract class PenalizedCartesianFuelCost extends AbstractCartesianCost
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:
CartesianFuelCost
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PenalizedCartesianFuelCost(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon, EventDetectionSettings eventDetectionSettings)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract double
evaluatePenaltyFunction(double controlNorm)
Evaluate the penalty term (without the weight), assumed to be a function of the control norm.double
getEpsilon()
Getter for the penalty weight epsilon.EventDetectionSettings
getEventDetectionSettings()
Getter for the event detection settings.double
getHamiltonianContribution(double[] adjointVariables, double mass)
Computes the Hamiltonian contribution of the cost function.double
getMaximumThrustMagnitude()
Getter for maximum thrust magnitude.protected Vector3D
getThrustDirection(double[] adjointVariables)
Computes the direction of thrust.-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
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
getAdjointDimension, getEventDetectors, getThrustAccelerationVector, updateAdjointDerivatives
-
-
-
-
Constructor Detail
-
PenalizedCartesianFuelCost
protected PenalizedCartesianFuelCost(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
-
-
Method Detail
-
getEpsilon
public double getEpsilon()
Getter for the penalty weight epsilon.- Returns:
- epsilon
-
getMaximumThrustMagnitude
public double getMaximumThrustMagnitude()
Getter for maximum thrust magnitude.- Returns:
- maximum thrust
-
getEventDetectionSettings
public EventDetectionSettings getEventDetectionSettings()
Getter for the event detection settings.- Returns:
- detection settings
-
evaluatePenaltyFunction
public abstract double evaluatePenaltyFunction(double 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
-
getThrustDirection
protected Vector3D getThrustDirection(double[] adjointVariables)
Computes the direction of thrust.- Parameters:
adjointVariables
- adjoint vector- Returns:
- thrust direction
-
getHamiltonianContribution
public double getHamiltonianContribution(double[] adjointVariables, double mass)
Computes the Hamiltonian contribution of the cost function.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
-