Class ConstantThrustManeuver
- java.lang.Object
-
- org.orekit.forces.AbstractForceModel
-
- org.orekit.forces.maneuvers.Maneuver
-
- org.orekit.forces.maneuvers.ConstantThrustManeuver
-
- All Implemented Interfaces:
ForceModel
,ParametersDriversProvider
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
-
-
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, 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.double
getDuration()
Get the duration of the maneuver (s).AbsoluteDate
getEndDate()
Get the end date.double
getFlowRate()
Get the flow rate.double
getISP()
Get the specific impulse.AbsoluteDate
getStartDate()
Get the start date.double
getThrust()
Get the thrust.Vector3D
getThrustVector()
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, getAttitudeOverride, getEventsDetectors, getFieldEventsDetectors, getManeuverTriggers, getName, getParametersDrivers, getPropulsionModel, init, init
-
Methods inherited from class org.orekit.forces.AbstractForceModel
complainIfNotSupported, getParameterDriver, isSupported
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.forces.ForceModel
getParameters, getParameters
-
-
-
-
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)
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, 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 framename
- name of the maneuver, used as a prefix for theparameters drivers
- Since:
- 9.2
-
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()
Get the thrust vector (N) in S/C frame.- Returns:
- thrust vector (N) in S/C frame.
-
getThrust
public double getThrust()
Get the thrust.- Returns:
- thrust force (N).
-
getISP
public double getISP()
Get the specific impulse.- Returns:
- specific impulse (s).
-
getFlowRate
public double getFlowRate()
Get the flow rate.- Returns:
- flow rate (negative, kg/s).
-
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
-
-