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 Summary
Modifier and TypeMethodDescriptionintGetter for adjoint vector dimension.Getter for adjoint vector name.default AdditionalDerivativesProviderGet the derivatives provider to be able to integrate the cost function.default Stream<EventDetector> Get the detectors needed for propagation.doublegetHamiltonianContribution(double[] adjointVariables, double mass) Computes the Hamiltonian contribution to the cost function.doubleGetter for mass flow rate factor.getThrustAccelerationVector(double[] adjointVariables, double mass) Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.voidupdateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives) Update the adjoint derivatives if necessary.
-
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
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- thrust vector
-
updateAdjointDerivatives
void updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives) Update the adjoint derivatives if necessary.- Parameters:
adjointVariables- adjoint vectormass- massadjointDerivatives- 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 vectormass- mass- Returns:
- contribution to Hamiltonian
-
getEventDetectors
Get the detectors needed for propagation.- Returns:
- event detectors
-
getCostDerivativeProvider
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
-