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
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> profile, double isp, String name)
Constructor with default cost type.ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Generic constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ThrustVectorProvider
getActiveProvider(AbsoluteDate date)
Getter for active provider at input date.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).static <T extends ThrustVectorProvider>
ProfileThrustPropulsionModelof(TimeSpanMap<T> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Build with customized profile.-
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
getDateDetector, getEventDetectors, getFieldDateDetector, 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<ThrustVectorProvider> profile, double isp, String name)
Constructor with default cost type.- Parameters:
profile
- thrust profile (N)isp
- specific impulse (s)name
- name of the maneuver- Since:
- 13.0
-
ProfileThrustPropulsionModel
public ProfileThrustPropulsionModel(TimeSpanMap<ThrustVectorProvider> 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- Since:
- 13.0
-
-
Method Detail
-
of
public static <T extends ThrustVectorProvider> ProfileThrustPropulsionModel of(TimeSpanMap<T> profile, double isp, Control3DVectorCostType control3DVectorCostType, String name)
Build with customized profile.- Type Parameters:
T
- segment type- Parameters:
profile
- thrust profile (N)isp
- specific impulse (s)name
- name of the maneuvercontrol3DVectorCostType
- control vector's cost type- Returns:
- propulsion model
- Since:
- 13.0
-
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
-
getActiveProvider
public ThrustVectorProvider getActiveProvider(AbsoluteDate date)
Getter for active provider at input date.- Parameters:
date
- date- Returns:
- active segment
- Since:
- 13.0
-
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)
-
getFlowRate
public double getFlowRate(SpacecraftState s, double[] parameters)
Get the flow rate (kg/s).- Specified by:
getFlowRate
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft stateparameters
- propulsion model parameters- Returns:
- flow rate (kg/s)
-
getThrustVector
public Vector3D getThrustVector(SpacecraftState s, double[] parameters)
Get the thrust vector in spacecraft frame (N).- Specified by:
getThrustVector
in interfaceThrustPropulsionModel
- Parameters:
s
- current spacecraft stateparameters
- propulsion model parameters- Returns:
- thrust vector in spacecraft frame (N)
-
getThrustVector
public <T extends CalculusFieldElement<T>> FieldVector3D<T> getThrustVector(FieldSpacecraftState<T> s, T[] parameters)
Get the thrust vector in spacecraft frame (N).- 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).- 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 everyThrustVectorProvider
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 everyThrustVectorProvider
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()
Get the drivers for parameters.- Specified by:
getParametersDrivers
in interfaceParameterDriversProvider
- Returns:
- drivers for parameters
-
-