Interface FieldCartesianCost<T extends CalculusFieldElement<T>>

Type Parameters:
T - type of the field elements
All Known Implementing Classes:
FieldAbstractCartesianCost, FieldBoundedCartesianEnergy, FieldCartesianFlightDurationCost, FieldCartesianFuelCost, FieldLogarithmicBarrierCartesianFuel, FieldPenalizedCartesianFuelCost, FieldQuadraticPenaltyCartesianFuel, FieldUnboundedCartesianEnergy, FieldUnboundedCartesianEnergyNeglectingMass

public interface FieldCartesianCost<T extends CalculusFieldElement<T>>
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.
Since:
13.0
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

      T 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
    • getFieldThrustAccelerationVector

      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

      void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
      Update the adjoint derivatives if necessary.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      adjointDerivatives - derivatives to update
    • getFieldHamiltonianContribution

      T getFieldHamiltonianContribution(T[] adjointVariables, T 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
    • getFieldEventDetectors

      default Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
      Get the detectors needed for propagation.
      Parameters:
      field - field
      Returns:
      event detectors
    • getCostDerivativeProvider

      default FieldAdditionalDerivativesProvider<T> 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
    • toCartesianCost

      CartesianCost toCartesianCost()
      Method returning equivalent in non-Field.
      Returns:
      cost function for non-Field applications