Class LogarithmicBarrierCartesianFuel

All Implemented Interfaces:
CartesianCost

public class LogarithmicBarrierCartesianFuel extends PenalizedCartesianFuelCost
Fuel cost penalized with a logarithmic term, which is a barrier so is not defined for epsilon equal to 0 or 1.
Since:
13.0
Author:
Romain Serra
  • Constructor Details

    • LogarithmicBarrierCartesianFuel

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

    • 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