Class UnboundedCartesianEnergy
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
-
- org.orekit.control.indirect.adjoint.cost.UnboundedCartesianEnergy
-
- All Implemented Interfaces:
CartesianCost
public class UnboundedCartesianEnergy extends AbstractCartesianCost
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:
UnboundedCartesianEnergyNeglectingMass
-
-
Constructor Summary
Constructors Constructor Description UnboundedCartesianEnergy(String name, double massFlowRateFactor)
Constructor.UnboundedCartesianEnergy(String name, double massFlowRateFactor, EventDetectionSettings eventDetectionSettings)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EventDetectionSettings
getEventDetectionSettings()
Getter for event detection settings.Stream<EventDetector>
getEventDetectors()
Get the detectors needed for propagation.double
getHamiltonianContribution(double[] adjointVariables, double mass)
Computes the Hamiltonian contribution of the cost function.Vector3D
getThrustAccelerationVector(double[] adjointVariables, double mass)
Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.protected Vector3D
getThrustDirection(double[] adjointVariables)
Computes the direction of thrust.protected double
getThrustForceNorm(double[] adjointVariables, double mass)
Computes the Euclidean norm of the thrust force.void
updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)
Update the adjoint derivatives if necessary.-
Methods inherited from class org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
getAdjointName, getAdjointVelocityNorm, getFieldAdjointVelocityNorm, getMassFlowRateFactor
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.control.indirect.adjoint.cost.CartesianCost
getAdjointDimension
-
-
-
-
Constructor Detail
-
UnboundedCartesianEnergy
public UnboundedCartesianEnergy(String name, double massFlowRateFactor, EventDetectionSettings eventDetectionSettings)
Constructor.- Parameters:
name
- namemassFlowRateFactor
- mass flow rate factoreventDetectionSettings
- detection settings for singularity detections
-
UnboundedCartesianEnergy
public UnboundedCartesianEnergy(String name, double massFlowRateFactor)
Constructor.- Parameters:
name
- namemassFlowRateFactor
- mass flow rate factor
-
-
Method Detail
-
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
public Stream<EventDetector> getEventDetectors()
Get the detectors needed for propagation.- Returns:
- event detectors
-
getEventDetectionSettings
public EventDetectionSettings getEventDetectionSettings()
Getter for event detection settings.- Returns:
- detection settings.
-
getThrustAccelerationVector
public 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
-
getThrustDirection
protected Vector3D getThrustDirection(double[] adjointVariables)
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 of the cost function.- Parameters:
adjointVariables
- adjoint vectormass
- mass- Returns:
- contribution to Hamiltonian
-
-