Class ConstantThrustManeuver
- java.lang.Object
-
- org.orekit.forces.maneuvers.Maneuver
-
- org.orekit.forces.maneuvers.ConstantThrustManeuver
-
- All Implemented Interfaces:
ForceModel
,EventDetectorsProvider
,ParameterDriversProvider
public class ConstantThrustManeuver extends Maneuver
This class implements a simple maneuver with constant thrust.The maneuver is defined by a direction in satellite frame. The current attitude of the spacecraft, defined by the current spacecraft state, will be used to compute the thrust direction in inertial frame. A typical case for tangential maneuvers is to use a
LOF aligned
attitude provider for state propagation and a velocity increment along the +X satellite axis.- Author:
- Fabien Maussion, Véronique Pommier-Maurussane, Luc Maisonobe, Maxime Journot
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description ConstantThrustManeuver(AttitudeProvider attitudeOverride, DateBasedManeuverTriggers dateBasedManeuverTriggers, AbstractConstantThrustPropulsionModel constantThrustPropulsionModel)
Simple constructor for a constant direction and constant thrust.ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, Vector3D direction)
Simple constructor for a constant direction and constant thrust.ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, Vector3D direction, String name)
Simple constructor for a constant direction and constant thrust.ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, AttitudeProvider attitudeOverride, Vector3D direction)
Simple constructor for a constant direction and constant thrust.ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, AttitudeProvider attitudeOverride, Vector3D direction, String name)
Simple constructor for a constant direction and constant thrust.ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, AttitudeProvider attitudeOverride, Vector3D direction, Control3DVectorCostType control3DVectorCostType, String name)
Simple constructor for a constant direction and constant thrust.ConstantThrustManeuver(AbsoluteDate date, double duration, AttitudeProvider attitudeOverride, AbstractConstantThrustPropulsionModel constantThrustPropulsionModel)
Simple constructor for a constant direction and constant thrust.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Vector3D
getDirection()
Get the direction.Vector3D
getDirection(AbsoluteDate date)
Get the direction.double
getDuration()
Get the duration of the maneuver (s).AbsoluteDate
getEndDate()
Get the end date.double
getFlowRate()
Get the flow rate.double
getFlowRate(AbsoluteDate date)
Get the flow rate at given date.double
getIsp()
Get the specific impulse.double
getIsp(AbsoluteDate date)
Get the specific impulse at given date.AbsoluteDate
getStartDate()
Get the start date.double
getThrustMagnitude()
Get the thrust magnitude.double
getThrustMagnitude(AbsoluteDate date)
Get the thrust magnitude.Vector3D
getThrustVector()
Get the thrust vector (N) in S/C frame.Vector3D
getThrustVector(AbsoluteDate date)
Get the thrust vector (N) in S/C frame.<T extends CalculusFieldElement<T>>
booleanisFiring(FieldSpacecraftState<T> s)
Check if maneuvering is on.boolean
isFiring(SpacecraftState s)
Check if maneuvering is on.boolean
isFiring(AbsoluteDate date)
Check if maneuvering is on.-
Methods inherited from class org.orekit.forces.maneuvers.Maneuver
acceleration, acceleration, addContribution, addContribution, dependsOnPositionOnly, getAttitudeModelParameters, getAttitudeModelParameters, getAttitudeOverride, getControl3DVectorCostType, getEventDetectors, getFieldEventDetectors, getManeuverTriggers, getManeuverTriggersParameters, getManeuverTriggersParameters, getName, getParametersDrivers, getPropulsionModel, getPropulsionModelParameters, getPropulsionModelParameters, init, init
-
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.forces.ForceModel
dependsOnAttitudeRate
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
ConstantThrustManeuver
public ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, Vector3D direction)
Simple constructor for a constant direction and constant thrust.It uses the propulsion model
BasicConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
Calling this constructor is equivalent to call
ConstantThrustManeuver(date, duration, thrust, isp, direction, "")
, hence not using any prefix for the parameters drivers names.- Parameters:
date
- maneuver dateduration
- the duration of the thrust (s) (if negative, the date is considered to be the stop date)thrust
- the thrust force (N)isp
- engine specific impulse (s)direction
- the acceleration direction in satellite frame.
-
ConstantThrustManeuver
public ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, AttitudeProvider attitudeOverride, Vector3D direction, String name)
Simple constructor for a constant direction and constant thrust.It uses the propulsion model
BasicConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
Calling this constructor is equivalent to call
ConstantThrustManeuver(date, duration, thrust, isp, direction, "")
, hence not using any prefix for the parameters drivers names.- Parameters:
date
- maneuver dateduration
- the duration of the thrust (s) (if negative, the date is considered to be the stop date)thrust
- the thrust force (N)isp
- engine specific impulse (s)attitudeOverride
- the attitude provider to use for the maneuver, or null if the attitude from the propagator should be useddirection
- the acceleration direction in satellite frame.name
- name of the maneuver, used as a prefix for theparameters drivers
- Since:
- 12.0
-
ConstantThrustManeuver
public ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, AttitudeProvider attitudeOverride, Vector3D direction)
Simple constructor for a constant direction and constant thrust.It uses the propulsion model
BasicConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
Calling this constructor is equivalent to call
ConstantThrustManeuver(date, duration, thrust, isp, direction, "")
, hence not using any prefix for the parameters drivers names.- Parameters:
date
- maneuver dateduration
- the duration of the thrust (s) (if negative, the date is considered to be the stop date)thrust
- the thrust force (N)isp
- engine specific impulse (s)attitudeOverride
- the attitude provider to use for the maneuver, or null if the attitude from the propagator should be useddirection
- the acceleration direction in satellite frame.- Since:
- 9.2
-
ConstantThrustManeuver
public ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, Vector3D direction, String name)
Simple constructor for a constant direction and constant thrust.It uses the propulsion model
BasicConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
The name of the maneuver is used to distinguish the parameter drivers. A typical use case is to use something like "1A-" or "2B-" as a prefix corresponding to the name of the thruster to use, so separate parameters can be adjusted for the different thrusters involved during an orbit determination where maneuvers parameters are estimated.
- Parameters:
date
- maneuver dateduration
- the duration of the thrust (s) (if negative, the date is considered to be the stop date)thrust
- the thrust force (N)isp
- engine specific impulse (s)direction
- the acceleration direction in satellite framename
- name of the maneuver, used as a prefix for theparameters drivers
- Since:
- 9.0
-
ConstantThrustManeuver
public ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, AttitudeProvider attitudeOverride, Vector3D direction, Control3DVectorCostType control3DVectorCostType, String name)
Simple constructor for a constant direction and constant thrust.It uses the propulsion model
BasicConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
The name of the maneuver is used to distinguish the parameter drivers. A typical use case is to use something like "1A-" or "2B-" as a prefix corresponding to the name of the thruster to use, so separate parameters can be adjusted for the different thrusters involved during an orbit determination where maneuvers parameters are estimated.
- Parameters:
date
- maneuver dateduration
- the duration of the thrust (s) (if negative, the date is considered to be the stop date)thrust
- the thrust force (N)isp
- engine specific impulse (s)attitudeOverride
- the attitude provider to use for the maneuver, or null if the attitude from the propagator should be useddirection
- the acceleration direction in satellite framecontrol3DVectorCostType
- control vector's cost typename
- name of the maneuver, used as a prefix for theparameters drivers
- Since:
- 12.0
-
ConstantThrustManeuver
public ConstantThrustManeuver(AbsoluteDate date, double duration, AttitudeProvider attitudeOverride, AbstractConstantThrustPropulsionModel constantThrustPropulsionModel)
Simple constructor for a constant direction and constant thrust.It uses an
AbstractConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
The names of the maneuver (and thus its parameter drivers) are extracted from the propulsion model.
- Parameters:
date
- maneuver dateduration
- the duration of the thrust (s) (if negative, the date is considered to be the stop date)attitudeOverride
- the attitude provider to use for the maneuver, or null if the attitude from the propagator should be usedconstantThrustPropulsionModel
- user-defined constant thrust propulsion model
-
ConstantThrustManeuver
public ConstantThrustManeuver(AttitudeProvider attitudeOverride, DateBasedManeuverTriggers dateBasedManeuverTriggers, AbstractConstantThrustPropulsionModel constantThrustPropulsionModel)
Simple constructor for a constant direction and constant thrust.It uses an
AbstractConstantThrustPropulsionModel
and the maneuver triggersDateBasedManeuverTriggers
The names of the maneuver (and thus its parameter drivers) are extracted from the propulsion model or the maneuver triggers. Propulsion model name is evaluated first, if it isn't empty, it becomes the name of the maneuver. In that case the name in the maneuver triggers should be the same or empty, otherwise this could be misleading when retrieving estimated parameters by their names.
- Parameters:
attitudeOverride
- the attitude provider to use for the maneuver, or null if the attitude from the propagator should be useddateBasedManeuverTriggers
- user-defined maneuver triggers object based on a start and end dateconstantThrustPropulsionModel
- user-defined constant thrust propulsion model
-
-
Method Detail
-
getThrustVector
public Vector3D getThrustVector(AbsoluteDate date)
Get the thrust vector (N) in S/C frame.- 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 (N) in S/C frame.
-
getThrustVector
public Vector3D getThrustVector()
Get the thrust vector (N) in S/C frame.- Returns:
- thrust vector (N) in S/C frame.
-
getThrustMagnitude
public double getThrustMagnitude(AbsoluteDate date)
Get the thrust magnitude.- 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 force (N).
-
getThrustMagnitude
public double getThrustMagnitude()
Get the thrust magnitude.- Returns:
- thrust force (N).
-
getIsp
public double getIsp(AbsoluteDate date)
Get the specific impulse 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:
- specific impulse (s).
-
getIsp
public double getIsp()
Get the specific impulse.- Returns:
- specific impulse (s).
-
getFlowRate
public double getFlowRate(AbsoluteDate date)
Get the flow rate at given date.- Parameters:
date
- at which the Thrust wants to be known- Returns:
- flow rate (negative, kg/s).
-
getFlowRate
public double getFlowRate()
Get the flow rate.- Returns:
- flow rate (negative, kg/s).
-
getDirection
public Vector3D getDirection(AbsoluteDate date)
Get the direction.- Parameters:
date
- at which the Thrust wants to be known- Returns:
- the direction
- Since:
- 9.2
-
getDirection
public Vector3D getDirection()
Get the direction.- Returns:
- the direction
- Since:
- 9.2
-
getStartDate
public AbsoluteDate getStartDate()
Get the start date.- Returns:
- the start date
- Since:
- 9.2
-
getEndDate
public AbsoluteDate getEndDate()
Get the end date.- Returns:
- the end date
- Since:
- 9.2
-
getDuration
public double getDuration()
Get the duration of the maneuver (s). duration = endDate - startDate- Returns:
- the duration of the maneuver (s)
- Since:
- 9.2
-
isFiring
public boolean isFiring(SpacecraftState s)
Check if maneuvering is on.- Parameters:
s
- current state- Returns:
- true if maneuver is on at this state
- Since:
- 10.1
-
isFiring
public <T extends CalculusFieldElement<T>> boolean isFiring(FieldSpacecraftState<T> s)
Check if maneuvering is on.- Type Parameters:
T
- type of the field elements- Parameters:
s
- current state- Returns:
- true if maneuver is on at this state
- Since:
- 10.1
-
isFiring
public boolean isFiring(AbsoluteDate date)
Check if maneuvering is on.- Parameters:
date
- current date- Returns:
- true if maneuver is on at this date
- Since:
- 10.1
-
-