Class SphericalConstantThrustPropulsionModel

java.lang.Object
org.orekit.forces.maneuvers.propulsion.AbstractConstantThrustPropulsionModel
org.orekit.forces.maneuvers.propulsion.SphericalConstantThrustPropulsionModel
All Implemented Interfaces:
PropulsionModel, ThrustPropulsionModel, EventDetectorsProvider, ParameterDriversProvider

public class SphericalConstantThrustPropulsionModel extends AbstractConstantThrustPropulsionModel
Constant thrust propulsion model with: - Constant thrust direction in spacecraft frame - Parameter drivers (for estimation) for the thrust vector in spherical coordinates.
Since:
13.1
Author:
Romain Serra
See Also:
  • Field Details

    • THRUST_MAGNITUDE

      public static final String THRUST_MAGNITUDE
      Parameter name for thrust magnitude.
      See Also:
    • THRUST_RIGHT_ASCENSION

      public static final String THRUST_RIGHT_ASCENSION
      Parameter name for thrust right ascension.
      See Also:
    • THRUST_DECLINATION

      public static final String THRUST_DECLINATION
      Parameter name for thrust declination.
      See Also:
    • THRUST_SCALE

      public static final double THRUST_SCALE
      Thrust scaling factor.

      We use a power of 2 to avoid numeric noise introduction in the multiplications/divisions sequences.

  • Constructor Details

    • SphericalConstantThrustPropulsionModel

      public SphericalConstantThrustPropulsionModel(double isp, double thrustMagnitude, Vector3D thrustDirection, String name)
      Generic constructor.
      Parameters:
      isp - isp (s)
      thrustMagnitude - thrust magnitude (N)
      thrustDirection - thrust direction in spacecraft frame
      name - name of the maneuver
    • SphericalConstantThrustPropulsionModel

      public SphericalConstantThrustPropulsionModel(double isp, Vector3D thrustVector, String name)
      Constructor with thrust vector.
      Parameters:
      isp - isp (s)
      thrustVector - thrust vector in spacecraft frame (N)
      name - name of the maneuver
  • Method Details

    • getThrustVector

      public Vector3D getThrustVector()
      Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.
      Specified by:
      getThrustVector in class AbstractConstantThrustPropulsionModel
      Returns:
      thrust vector in spacecraft frame (N), will throw an exception if used on driver containing several value spans
    • getThrustVector

      public Vector3D getThrustVector(AbsoluteDate date)
      Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.
      Specified by:
      getThrustVector in class AbstractConstantThrustPropulsionModel
      Parameters:
      date - date at which the thrust vector wants to be known, often the date parameter will not be important and can be whatever if the thrust parameter driver as only value estimated over the all orbit determination interval
      Returns:
      thrust vector in spacecraft frame (N)
    • getFlowRate

      public double getFlowRate()
      Get the flow rate (kg/s). Here it does not depend on current S/C.
      Specified by:
      getFlowRate in class AbstractConstantThrustPropulsionModel
      Returns:
      flow rate (kg/s) will throw an exception if used on driver containing several value spans
    • getFlowRate

      public double getFlowRate(AbsoluteDate date)
      Get the flow rate (kg/s). Here it does not depend on current S/C.
      Specified by:
      getFlowRate in class AbstractConstantThrustPropulsionModel
      Parameters:
      date - date at which the thrust vector wants to be known, often the date parameter will not be important and can be whatever if the thrust parameter driver as only value estimated over the all orbit determination interval
      Returns:
      flow rate (kg/s)
    • getParametersDrivers

      public List<ParameterDriver> getParametersDrivers()
      Get the drivers for parameters.
      Returns:
      drivers for parameters
    • getThrustVector

      public Vector3D getThrustVector(double[] parameters)
      Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.
      Specified by:
      getThrustVector in class AbstractConstantThrustPropulsionModel
      Parameters:
      parameters - propulsion model parameters
      Returns:
      thrust vector in spacecraft frame (N)
    • getFlowRate

      public double getFlowRate(double[] parameters)
      Get the flow rate (kg/s). Here it does not depend on current S/C state.
      Specified by:
      getFlowRate in class AbstractConstantThrustPropulsionModel
      Parameters:
      parameters - propulsion model parameters
      Returns:
      flow rate (kg/s)
    • getThrustVector

      public <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector(T[] parameters)
      Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.
      Specified by:
      getThrustVector in class AbstractConstantThrustPropulsionModel
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      parameters - propulsion model parameters
      Returns:
      thrust vector in spacecraft frame (N)
    • getFlowRate

      public <T extends CalculusFieldElement<T>> T getFlowRate(T[] parameters)
      Get the flow rate (kg/s). Here it does not depend on current S/C state.
      Specified by:
      getFlowRate in class AbstractConstantThrustPropulsionModel
      Type Parameters:
      T - extends CalculusFieldElement<T>
      Parameters:
      parameters - propulsion model parameters
      Returns:
      flow rate (kg/s)