Class BasicConstantThrustPropulsionModel

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

public class BasicConstantThrustPropulsionModel extends AbstractConstantThrustPropulsionModel
Constant thrust propulsion model with: - Constant thrust direction in spacecraft frame - Parameter drivers (for estimation) for the thrust norm or the flow rate. Note that both parameters CANNOT be selected at the same time since they depend on one another.
Since:
10.2
Author:
Maxime Journot
  • Field Details

    • THRUST

      public static final String THRUST
      Parameter name for thrust.
      See Also:
    • FLOW_RATE

      public static final String FLOW_RATE
      Parameter name for flow rate.
      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.

    • FLOW_RATE_SCALE

      public static final double FLOW_RATE_SCALE
      Flow rate scaling factor.

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

  • Constructor Details

    • BasicConstantThrustPropulsionModel

      public BasicConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, Control3DVectorCostType control3DVectorCostType, String name)
      Generic constructor.
      Parameters:
      thrust - thrust (N)
      isp - isp (s)
      direction - direction in spacecraft frame
      control3DVectorCostType - control cost type
      name - name of the maneuver
      Since:
      12.0
    • BasicConstantThrustPropulsionModel

      public BasicConstantThrustPropulsionModel(double thrust, double isp, Vector3D direction, String name)
      Simple constructor.
      Parameters:
      thrust - thrust (N)
      isp - isp (s)
      direction - direction in spacecraft frame
      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)