Class UnboundedCartesianEnergyNeglectingMass

java.lang.Object
org.orekit.control.indirect.adjoint.cost.AbstractCartesianCost
org.orekit.control.indirect.adjoint.cost.UnboundedCartesianEnergyNeglectingMass
All Implemented Interfaces:
CartesianCost

public class UnboundedCartesianEnergyNeglectingMass extends AbstractCartesianCost
Class for unbounded energy cost with Cartesian coordinates neglecting the mass consumption. Under this assumption, the mass is constant and there is no need to consider the corresponding adjoint variable. Here, the control vector is chosen as the acceleration given by thrusting, expressed in the propagation frame. This leads to the optimal thrust force being equal to the adjoint velocity vector times the mass.
Since:
12.2
Author:
Romain Serra
  • Constructor Details

    • UnboundedCartesianEnergyNeglectingMass

      public UnboundedCartesianEnergyNeglectingMass(String name)
      Constructor.
      Parameters:
      name - name
  • Method Details

    • 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 vector
      mass - mass
      Returns:
      thrust vector
    • updateAdjointDerivatives

      public void updateAdjointDerivatives(double[] adjointVariables, double mass, double[] adjointDerivatives)
      Update the adjoint derivatives if necessary.
      Parameters:
      adjointVariables - adjoint vector
      mass - mass
      adjointDerivatives - 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 vector
      mass - mass
      Returns:
      contribution to Hamiltonian
    • getEventDetectors

      public Stream<EventDetector> getEventDetectors()
      Get the detectors needed for propagation.
      Returns:
      event detectors