Class ProfileThrustPropulsionModel
- java.lang.Object
-
- org.orekit.forces.maneuvers.propulsion.ProfileThrustPropulsionModel
-
- All Implemented Interfaces:
PropulsionModel
,ThrustPropulsionModel
,EventDetectorsProvider
,ParameterDriversProvider
public class ProfileThrustPropulsionModel extends Object implements ThrustPropulsionModel
Thrust propulsion model based on segmented profile.- Since:
- 12.0
- Author:
- Luc Maisonobe
-
-
Constructor Summary
Constructors Constructor Description ProfileThrustPropulsionModel(TimeSpanMap<PolynomialThrustSegment> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Generic constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Control3DVectorCostType
getControl3DVectorCostType()
Get the control vector's cost type.Stream<EventDetector>
getEventDetectors()
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventDetectors(Field<T> field)
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
TgetFlowRate(FieldSpacecraftState<T> s, T[] parameters)
Get the flow rate (kg/s).double
getFlowRate(SpacecraftState s)
Get the flow rate (kg/s).double
getFlowRate(SpacecraftState s, double[] parameters)
Get the flow rate (kg/s).String
getName()
Get the maneuver name.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.<T extends CalculusFieldElement<T>>
FieldVector3D<T>getThrustVector(FieldSpacecraftState<T> s, T[] parameters)
Get the thrust vector in spacecraft frame (N).Vector3D
getThrustVector(SpacecraftState s)
Get the thrust vector in spacecraft frame (N).Vector3D
getThrustVector(SpacecraftState s, double[] parameters)
Get the thrust vector in spacecraft frame (N).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Methods inherited from interface org.orekit.forces.maneuvers.propulsion.PropulsionModel
init, init
-
Methods inherited from interface org.orekit.forces.maneuvers.propulsion.ThrustPropulsionModel
getAcceleration, getAcceleration, getDirection, getIsp, getMassDerivatives, getMassDerivatives
-
-
-
-
Constructor Detail
-
ProfileThrustPropulsionModel
public ProfileThrustPropulsionModel(TimeSpanMap<PolynomialThrustSegment> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Generic constructor.- Parameters:
profile
- thrust profile (N)isp
- specific impulse (s)control3DVectorCostType
- control vector's cost typename
- name of the maneuver
-
-
Method Detail
-
getName
public String getName()
Get the maneuver name.- Specified by:
getName
in interfacePropulsionModel
- Returns:
- the maneuver name
-
getControl3DVectorCostType
public Control3DVectorCostType getControl3DVectorCostType()
Get the control vector's cost type.- Specified by:
getControl3DVectorCostType
in interfacePropulsionModel
- Returns:
- control cost type
-
getThrustVector
public Vector3D getThrustVector(SpacecraftState s)
Get the thrust vector in spacecraft frame (N).- Specified by:
getThrustVector
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft state- Returns:
- thrust vector in spacecraft frame (N)
-
getFlowRate
public double getFlowRate(SpacecraftState s)
Get the flow rate (kg/s).- Specified by:
getFlowRate
in interfaceThrustPropulsionModel
- 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 does not depend on parameters
- Specified by:
getThrustVector
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft stateparameters
- 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 does not depend on parameters
- Specified by:
getFlowRate
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft stateparameters
- 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 does not depend on parameters
- Specified by:
getThrustVector
in interfaceThrustPropulsionModel
- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
s
- current spacecraft stateparameters
- 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 does not depend on parameters
- Specified by:
getFlowRate
in interfaceThrustPropulsionModel
- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
s
- current spacecraft stateparameters
- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getEventDetectors
public Stream<EventDetector> getEventDetectors()
Get the discrete events related to the model.This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called..
The single detector returned triggers
Action.RESET_DERIVATIVES
events at everythrust segments
boundaries.- Specified by:
getEventDetectors
in interfaceEventDetectorsProvider
- Specified by:
getEventDetectors
in interfacePropulsionModel
- Returns:
- stream of event detectors
-
getFieldEventDetectors
public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
Get the discrete events related to the model.This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called..
The single detector returned triggers
Action.RESET_DERIVATIVES
events at everythrust segments
boundaries.- Specified by:
getFieldEventDetectors
in interfaceEventDetectorsProvider
- Specified by:
getFieldEventDetectors
in interfacePropulsionModel
- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
field
- field to which the state belongs- Returns:
- stream of event detectors
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Description copied from interface:ParameterDriversProvider
Get the drivers for parameters.- Specified by:
getParametersDrivers
in interfaceParameterDriversProvider
- Returns:
- drivers for parameters
-
-