Interface CartesianCost
-
- All Known Implementing Classes:
AbstractCartesianCost
,BoundedCartesianEnergy
,CartesianFuelCost
,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:
CartesianAdjointDerivativesProvider
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default int
getAdjointDimension()
Getter for adjoint vector dimension.String
getAdjointName()
Getter for adjoint vector name.default Stream<EventDetector>
getEventDetectors()
Get the detectors needed for propagation.double
getHamiltonianContribution(double[] adjointVariables, double mass)
Computes the Hamiltonian contribution of the cost function.double
getMassFlowRateFactor()
Getter for mass flow rate factor.Vector3D
getThrustAccelerationVector(double[] adjointVariables, double mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.void
updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)
Update the adjoint derivatives if necessary.
-
-
-
Method Detail
-
getAdjointName
String getAdjointName()
Getter for adjoint vector name.- Returns:
- adjoint vector name
-
getAdjointDimension
default int getAdjointDimension()
Getter for adjoint vector dimension. Default is 7 (six for Cartesian coordinates and one for mass).- 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 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 of the cost function.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
getEventDetectors
default Stream<EventDetector> getEventDetectors()
Get the detectors needed for propagation.- Returns:
- event detectors
-
-