Class AbstractConstantThrustPropulsionModel

    • Constructor Detail

      • AbstractConstantThrustPropulsionModel

        public AbstractConstantThrustPropulsionModel​(double thrust,
                                                     double isp,
                                                     Vector3D direction,
                                                     Control3DVectorCostType control3DVectorCostType,
                                                     String name)
        Generic constructor.
        Parameters:
        thrust - initial thrust value (N)
        isp - initial isp value (s)
        direction - initial thrust direction in S/C frame
        control3DVectorCostType - control cost type
        name - name of the maneuver
        Since:
        12.0
      • AbstractConstantThrustPropulsionModel

        public AbstractConstantThrustPropulsionModel​(double thrust,
                                                     double isp,
                                                     Vector3D direction,
                                                     String name)
        Constructor with default control cost type.
        Parameters:
        thrust - initial thrust value (N)
        isp - initial isp value (s)
        direction - initial thrust direction in S/C frame
        name - name of the maneuver
    • Method Detail

      • getInitialThrustVector

        protected Vector3D getInitialThrustVector()
        Get the initial thrust vector.
        Returns:
        the initial thrust vector
      • getInitialFlowRate

        protected double getInitialFlowRate()
        Get the initial flow rate.
        Returns:
        the initial flow rate
      • getIsp

        public double getIsp()
        Get the specific impulse.
        Returns:
        specific impulse (s), will throw exception if used on PDriver having several driven values, because in this case a date is needed.
      • getIsp

        public double getIsp​(AbsoluteDate date)
        Get the specific impulse at given date.
        Parameters:
        date - date at which the Isp wants to be known
        Returns:
        specific impulse (s).
      • getDirection

        public Vector3D getDirection​(AbsoluteDate date)
        Get the thrust direction in S/C frame.
        Parameters:
        date - date at which the direction wants to be known
        Returns:
        the thrust direction in S/C frame
      • getDirection

        public Vector3D getDirection()
        Get the thrust direction in S/C frame.
        Returns:
        the thrust direction in S/C frame, will throw exception if used on PDriver having several driven values, because in this case a date is needed.
      • getThrustMagnitude

        public double getThrustMagnitude()
        Get the thrust magnitude (N).
        Returns:
        the thrust value (N), will throw an exception if called of a driver having several values driven
      • getThrustMagnitude

        public double getThrustMagnitude​(AbsoluteDate date)
        Get the thrust magnitude (N) at given date.
        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:
        the thrust value (N)
      • getThrustVector

        public Vector3D getThrustVector​(SpacecraftState s)
        Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.
        Specified by:
        getThrustVector in interface ThrustPropulsionModel
        Parameters:
        s - current spacecraft state
        Returns:
        thrust vector in spacecraft frame (N)
      • getFlowRate

        public double getFlowRate​(SpacecraftState s)
        Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state
        Specified by:
        getFlowRate in interface ThrustPropulsionModel
        Parameters:
        s - current spacecraft state
        Returns:
        flow rate (kg/s)
      • getThrustVector

        public Vector3D getThrustVector​(SpacecraftState s,
                                        double[] parameters)
        Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.
        Specified by:
        getThrustVector in interface ThrustPropulsionModel
        Parameters:
        s - current spacecraft state
        parameters - propulsion model parameters
        Returns:
        thrust vector in spacecraft frame (N)
      • getFlowRate

        public double getFlowRate​(SpacecraftState s,
                                  double[] parameters)
        Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state
        Specified by:
        getFlowRate in interface ThrustPropulsionModel
        Parameters:
        s - current spacecraft state
        parameters - propulsion model parameters
        Returns:
        flow rate (kg/s)
      • getThrustVector

        public <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector​(FieldSpacecraftState<T> s,
                                                                                    T[] parameters)
        Get the thrust vector in spacecraft frame (N). Here the thrust vector do not depend on current S/C state.
        Specified by:
        getThrustVector in interface ThrustPropulsionModel
        Type Parameters:
        T - extends CalculusFieldElement<T>
        Parameters:
        s - current spacecraft state
        parameters - propulsion model parameters
        Returns:
        thrust vector in spacecraft frame (N)
      • getFlowRate

        public <T extends CalculusFieldElement<T>> T getFlowRate​(FieldSpacecraftState<T> s,
                                                                 T[] parameters)
        Get the flow rate (kg/s). Here the flow rate do not depend on current S/C state
        Specified by:
        getFlowRate in interface ThrustPropulsionModel
        Type Parameters:
        T - extends CalculusFieldElement<T>
        Parameters:
        s - current spacecraft state
        parameters - propulsion model parameters
        Returns:
        flow rate (kg/s)
      • getThrustVector

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

        public abstract Vector3D getThrustVector​(AbsoluteDate date)
        Get the thrust vector in spacecraft frame (N). Here it does not depend on current S/C state.
        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 abstract double getFlowRate()
        Get the flow rate (kg/s). Here it does not depend on current S/C.
        Returns:
        flow rate (kg/s) will throw an exception if used on driver containing several value spans
      • getFlowRate

        public abstract double getFlowRate​(AbsoluteDate date)
        Get the flow rate (kg/s). Here it does not depend on current S/C.
        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)
      • getThrustVector

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

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

        public abstract <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.
        Type Parameters:
        T - extends CalculusFieldElement<T>
        Parameters:
        parameters - propulsion model parameters
        Returns:
        thrust vector in spacecraft frame (N)
      • getFlowRate

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