Class AbstractCartesianEnergy
- java.lang.Object
-
- org.orekit.control.indirect.adjoint.cost.AbstractCartesianEnergy
-
- All Implemented Interfaces:
CartesianCost
,EventDetectorsProvider
- Direct Known Subclasses:
BoundedCartesianEnergy
,UnboundedCartesianEnergy
,UnboundedCartesianEnergyNeglectingMass
public abstract class AbstractCartesianEnergy extends Object implements CartesianCost
Abstract class for energy cost with Cartesian coordinates. An energy cost is proportional to the integral over time of the Euclidean norm of the control vector, often scaled with 1/2. This type of cost is not optimal in terms of mass consumption, however its solutions showcase a smoother behavior favorable for convergence in shooting techniques.- Since:
- 12.2
- Author:
- Romain Serra
- See Also:
CartesianCost
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractCartesianEnergy(String name, double massFlowRateFactor)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getAdjointName()
Getter for adjoint vector name.protected double
getAdjointVelocityNorm(double[] adjointVariables)
Computes the Euclidean norm of the adjoint velocity vector.protected <T extends CalculusFieldElement<T>>
TgetFieldAdjointVelocityNorm(T[] adjointVariables)
Computes the Euclidean norm of the adjoint velocity vector.double
getMassFlowRateFactor()
Getter for mass flow rate factor.-
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, getFieldHamiltonianContribution, getFieldThrustAccelerationVector, getHamiltonianContribution, getThrustAccelerationVector, updateAdjointDerivatives, updateFieldAdjointDerivatives
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getEventDetectors, getFieldEventDetectors, getFieldEventDetectors
-
-
-
-
Constructor Detail
-
AbstractCartesianEnergy
protected AbstractCartesianEnergy(String name, double massFlowRateFactor)
Constructor.- Parameters:
name
- namemassFlowRateFactor
- mass flow rate factor
-
-
Method Detail
-
getAdjointName
public String getAdjointName()
Getter for adjoint vector name.- Specified by:
getAdjointName
in interfaceCartesianCost
- Returns:
- name
-
getMassFlowRateFactor
public 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.- Specified by:
getMassFlowRateFactor
in interfaceCartesianCost
- Returns:
- mass flow rate factor
-
getAdjointVelocityNorm
protected double getAdjointVelocityNorm(double[] adjointVariables)
Computes the Euclidean norm of the adjoint velocity vector.- Parameters:
adjointVariables
- adjoint vector- Returns:
- norm of adjoint velocity
-
getFieldAdjointVelocityNorm
protected <T extends CalculusFieldElement<T>> T getFieldAdjointVelocityNorm(T[] adjointVariables)
Computes the Euclidean norm of the adjoint velocity vector.- Type Parameters:
T
- field type- Parameters:
adjointVariables
- adjoint vector- Returns:
- norm of adjoint velocity
-
-