Class FieldQuadraticPenaltyCartesianFuel<T extends CalculusFieldElement<T>>

Type Parameters:
T - type of the field elements
All Implemented Interfaces:
FieldCartesianCost<T>

public class FieldQuadraticPenaltyCartesianFuel<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:
  • Constructor Details

    • FieldQuadraticPenaltyCartesianFuel

      public FieldQuadraticPenaltyCartesianFuel(String name, T massFlowRateFactor, T maximumThrustMagnitude, T epsilon, FieldEventDetectionSettings<T> eventDetectionSettings)
      Constructor.
      Parameters:
      name - adjoint name
      massFlowRateFactor - mass flow rate factor
      maximumThrustMagnitude - maximum thrust magnitude
      epsilon - penalty weight
      eventDetectionSettings - detection settings
    • FieldQuadraticPenaltyCartesianFuel

      public FieldQuadraticPenaltyCartesianFuel(String name, T massFlowRateFactor, T maximumThrustMagnitude, T 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 FieldEventDetectionSettings<T> getEventDetectionSettings()
      Getter for the event detection settings.
      Returns:
      detection settings
    • 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 class FieldPenalizedCartesianFuelCost<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 vector
      mass - mass
      Returns:
      thrust vector
    • updateFieldAdjointDerivatives

      public void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
      Update the adjoint derivatives if necessary.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      adjointDerivatives - 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 QuadraticPenaltyCartesianFuel toCartesianCost()
      Method returning equivalent in non-Field.
      Returns:
      cost function for non-Field applications