Class FieldBoundedCartesianEnergy<T extends CalculusFieldElement<T>>

java.lang.Object
org.orekit.control.indirect.adjoint.cost.FieldAbstractCartesianCost<T>
org.orekit.control.indirect.adjoint.cost.FieldBoundedCartesianEnergy<T>
Type Parameters:
T - field type
All Implemented Interfaces:
FieldCartesianCost<T>

public class FieldBoundedCartesianEnergy<T extends CalculusFieldElement<T>> extends FieldAbstractCartesianCost<T>
Class for bounded energy cost with Cartesian coordinates. An energy cost is proportional to the integral over time of the squared 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. Here, the control vector is chosen as the thrust force divided by the maximum thrust magnitude and expressed in the propagation frame.
Since:
13.0
Author:
Romain Serra
See Also:
  • Constructor Details

    • FieldBoundedCartesianEnergy

      public FieldBoundedCartesianEnergy(String name, T massFlowRateFactor, T maximumThrustMagnitude, FieldEventDetectionSettings<T> eventDetectionSettings)
      Constructor.
      Parameters:
      name - name
      massFlowRateFactor - mass flow rate factor
      maximumThrustMagnitude - maximum thrust magnitude
      eventDetectionSettings - singularity event detection settings
    • FieldBoundedCartesianEnergy

      public FieldBoundedCartesianEnergy(String name, T massFlowRateFactor, T maximumThrustMagnitude)
      Constructor.
      Parameters:
      name - name
      massFlowRateFactor - mass flow rate factor
      maximumThrustMagnitude - maximum thrust magnitude
  • Method Details

    • getMaximumThrustMagnitude

      public T getMaximumThrustMagnitude()
      Getter for maximum thrust magnitude.
      Returns:
      maximum thrust
    • getFieldThrustForceNorm

      protected T getFieldThrustForceNorm(T[] adjointVariables, T mass)
      Computes the Euclidean norm of the thrust force.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      Returns:
      norm of thrust
    • getFieldEventDetectors

      public Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
      Get the detectors needed for propagation.
      Parameters:
      field - field
      Returns:
      event detectors
    • toCartesianCost

      public BoundedCartesianEnergy toCartesianCost()
      Method returning equivalent in non-Field.
      Returns:
      cost function for non-Field applications
    • getEventDetectionSettings

      public FieldEventDetectionSettings<T> getEventDetectionSettings()
      Getter for event detection settings.
      Returns:
      detection settings.
    • getFieldThrustAccelerationVector

      public FieldVector3D<T> getFieldThrustAccelerationVector(T[] adjointVariables, T mass)
      Computes the thrust acceleration vector in propagation frame from the adjoint variables and the mass.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      Returns:
      thrust vector
    • getFieldThrustDirection

      protected FieldVector3D<T> getFieldThrustDirection(T[] adjointVariables)
      Computes the direction of thrust.
      Parameters:
      adjointVariables - adjoint vector
      Returns:
      thrust direction
    • updateFieldAdjointDerivatives

      public void updateFieldAdjointDerivatives(T[] adjointVariables, T mass, T[] adjointDerivatives)
      Update the adjoint derivatives if necessary.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      adjointDerivatives - derivatives to update
    • getFieldHamiltonianContribution

      public T getFieldHamiltonianContribution(T[] adjointVariables, T mass)
      Computes the Hamiltonian contribution to the cost function. It equals the Lagrange-form integrand multiplied by -1.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      Returns:
      contribution to Hamiltonian
    • buildSwitchFunction

      protected FieldAbstractCartesianCost<T>.FieldSwitchFunction buildSwitchFunction(T detectionValue)
      Event detector for control non-differentiability.
      Parameters:
      detectionValue - critical value
      Returns:
      switch function