Interface CartesianCost

All Known Implementing Classes:
AbstractCartesianCost, BoundedCartesianEnergy, CartesianFlightDurationCost, CartesianFuelCost, LogarithmicBarrierCartesianFuel, PenalizedCartesianFuelCost, QuadraticPenaltyCartesianFuel, UnboundedCartesianEnergy, UnboundedCartesianEnergyNeglectingMass

public interface CartesianCost
Interface to definite cost function in the frame of Pontryagin's Maximum Principle using Cartesian coordinates. It provides the link between the optimal control and the adjoint variables. This relationship is obtained by maximizing the Hamiltonian. The choice of control vector impacts on it. Both standard (double type) and (Calculus)Field versions are to be implemented by inheritors.
Since:
12.2
Author:
Romain Serra
See Also:
  • Method Details

    • getAdjointName

      String getAdjointName()
      Getter for adjoint vector name.
      Returns:
      adjoint vector name
    • getAdjointDimension

      int getAdjointDimension()
      Getter for adjoint vector dimension.
      Returns:
      adjoint dimension
    • getMassFlowRateFactor

      double getMassFlowRateFactor()
      Getter for mass flow rate factor. It is negated and multiplied by the thrust force magnitude to obtain the mass time derivative. The fact that it is a constant means that the exhaust speed is assumed to be independent of time.
      Returns:
      mass flow rate factor
    • getThrustAccelerationVector

      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

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

      double getHamiltonianContribution(double[] adjointVariables, double mass)
      Computes the Hamiltonian contribution to the cost function. It equals the Lagrange-form integrand multiplied by -1.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      Returns:
      contribution to Hamiltonian
    • getEventDetectors

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

      default AdditionalDerivativesProvider getCostDerivativeProvider(String name)
      Get the derivatives provider to be able to integrate the cost function.
      Parameters:
      name - name of cost as additional state variable
      Returns:
      derivatives provider
      Since:
      13.0