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 protectedAbstractCartesianEnergy(String name, double massFlowRateFactor)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetAdjointName()Getter for adjoint vector name.protected doublegetAdjointVelocityNorm(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.doublegetMassFlowRateFactor()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:
getAdjointNamein 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:
getMassFlowRateFactorin 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
-
-