Class 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:
  • Constructor Details

    • QuadraticPenaltyCartesianFuel

      public QuadraticPenaltyCartesianFuel(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon, EventDetectionSettings eventDetectionSettings)
      Constructor.
      Parameters:
      name - adjoint name
      massFlowRateFactor - mass flow rate factor
      maximumThrustMagnitude - maximum thrust magnitude
      epsilon - penalty weight
      eventDetectionSettings - detection settings
    • QuadraticPenaltyCartesianFuel

      public QuadraticPenaltyCartesianFuel(String name, double massFlowRateFactor, double maximumThrustMagnitude, double epsilon)
      Constructor with default event detection settings.
      Parameters:
      name - adjoint name
      massFlowRateFactor - mass flow rate factor
      maximumThrustMagnitude - maximum thrust magnitude
      epsilon - penalty weight
  • Method Details

    • 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:
      evaluatePenaltyFunction in class PenalizedCartesianFuelCost
      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 vector
      mass - mass
      Returns:
      thrust vector
    • updateAdjointDerivatives

      public void updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)
      Update the adjoint derivatives if necessary.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      adjointDerivatives - derivatives to update
    • getEventDetectors

      public Stream<EventDetector> getEventDetectors()
      Get the detectors needed for propagation.
      Returns:
      event detectors