Class UnboundedCartesianEnergy
java.lang.Object
org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
org.orekit.control.indirect.adjoint.cost.UnboundedCartesianEnergy
- All Implemented Interfaces:
CartesianCost
Class for unbounded energy cost with Cartesian coordinates.
Here, the control vector is chosen as the thrust force, expressed in the propagation frame.
This leads to the optimal thrust being in the same direction as the adjoint velocity.
- Since:
- 12.2
- Author:
- Romain Serra
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionUnboundedCartesianEnergy(String name, double massFlowRateFactor) Constructor.UnboundedCartesianEnergy(String name, double massFlowRateFactor, EventDetectionSettings eventDetectionSettings) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionGetter for event detection settings.Get the detectors needed for propagation.doublegetHamiltonianContribution(double[] adjointVariables, double mass) Computes the Hamiltonian contribution to the cost function.getThrustAccelerationVector(double[] adjointVariables, double mass) Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.protected Vector3DgetThrustDirection(double[] adjointVariables) Computes the direction of thrust.protected doublegetThrustForceNorm(double[] adjointVariables, double mass) Computes the Euclidean norm of the thrust force.voidupdateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives) Update the adjoint derivatives if necessary.Methods inherited from class org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
buildSwitchDetector, getAdjointDimension, getAdjointName, getAdjointVelocityNorm, getMassFlowRateFactorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.control.indirect.adjoint.cost.CartesianCost
getCostDerivativeProvider
-
Constructor Details
-
UnboundedCartesianEnergy
public UnboundedCartesianEnergy(String name, double massFlowRateFactor, EventDetectionSettings eventDetectionSettings) Constructor.- Parameters:
name- namemassFlowRateFactor- mass flow rate factoreventDetectionSettings- detection settings for singularity detections
-
UnboundedCartesianEnergy
Constructor.- Parameters:
name- namemassFlowRateFactor- mass flow rate factor
-
-
Method Details
-
getThrustForceNorm
protected double getThrustForceNorm(double[] adjointVariables, double mass) Computes the Euclidean norm of the thrust force.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- norm of thrust
-
getEventDetectors
Get the detectors needed for propagation.- Returns:
- event detectors
-
getEventDetectionSettings
Getter for event detection settings.- Returns:
- detection settings.
-
getThrustAccelerationVector
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.- Parameters:
adjointVariables- adjoint vectormass- mass- Returns:
- thrust vector
-
getThrustDirection
Computes the direction of thrust.- Parameters:
adjointVariables- adjoint vector- Returns:
- thrust direction
-
updateAdjointDerivatives
public void updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives) Update the adjoint derivatives if necessary.- Parameters:
adjointVariables- adjoint vectormass- massadjointDerivatives- derivatives to update
-
getHamiltonianContribution
public 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
-