|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.orekit.parameter.Parameterizable
org.orekit.parameter.JacobiansParameterizable
org.orekit.forces.maneuvers.ConstantThrustManeuver
public class ConstantThrustManeuver
This class implements a simple maneuver with constant thrust.
The maneuver is defined by a direction in satellite frame or in a frame defined by user or in a LOF with type defined
by user. In first case, the current attitude of the spacecraft, defined by the current spacecraft state, will be used to convert the
thrust direction in satellite frame into inertial frame when direction is defined in satellite 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.
The implementation of this class enables the computation of partial derivatives by finite differences with respect to thrust and flow rate.
The maneuver is associated to two triggering EventDetector (one to start the thrust, the other one to stop the thrust): the maneuver is triggered only if
the underlying event generates a
STOP event, in which case this class will generate a
RESET_STATE event (the stop event from the
underlying object is therefore filtered out).
Note: including this force in a numerical propagator with adaptive step-size integrator may require to set up a small lower bound for step-size (such as 1E-8s) since force discontinuity may cause difficulties to the integrator when the maneuver stops.
| Field Summary | |
|---|---|
static String |
FLOW_RATE
Parameter name for flow rate. |
static String |
THRUST
Parameter name for thrust. |
| Constructor Summary | |
|---|---|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName)
Constructor for a constant direction in satellite frame and constant thrust. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
Frame frame)
Constructor for a constant direction in provided frame and constant thrust. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
LOFType lofType)
Constructor for a constant direction in provided local orbital frame and constant thrust. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D direction,
MassProvider massProvider,
String partName)
Constructor for a constant direction in satellite frame and constant thrust using Parameter. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D direction,
MassProvider massProvider,
String partName,
Frame frame)
Constructor for a constant direction in provided frame and constant thrust using Parameter. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D direction,
MassProvider massProvider,
String partName,
LOFType lofType)
Constructor for a constant direction in provided local orbital frame and constant thrust using Parameter with a local orbital frame defined by its type. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName)
Constructor for a constant direction in satellite frame and constant thrust. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
Frame frame)
Constructor for a constant direction in provided frame and constant thrust. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
LOFType lofType)
Constructor for a constant direction in provided local orbital frame and constant thrust. |
|
| Method Summary | |
|---|---|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing acceleration. |
void |
addDAccDParam(SpacecraftState s,
Parameter param,
double[] dAccdParam)
Compute acceleration derivatives with respect to additional parameters. |
void |
addDAccDState(SpacecraftState s,
double[][] dAccdPos,
double[][] dAccdVel)
Compute acceleration derivatives with respect to state parameters. |
Vector3D |
computeAcceleration(SpacecraftState s)
Compute the acceleration due to the force. |
boolean |
computeGradientPosition()
This method returns true if the acceleration partial derivatives with respect to position have to be computed. |
boolean |
computeGradientVelocity()
This method returns true if the acceleration partial derivatives with respect to velocity have to be computed. |
AbsoluteDate |
getEndDate()
Return the maneuver stop date (if a date or a DateDetector as been provided). |
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model. |
Frame |
getFrame()
Get the frame of the acceleration direction. |
double |
getISP()
Get the specific impulse. |
AbsoluteDate |
getStartDate()
Return the maneuver start date (if a date or a DateDetector as been provided). |
boolean |
isFiring()
Returns maneuver status (firing or not). |
void |
setFiring(boolean isFiring)
Set maneuver status. |
| Methods inherited from class org.orekit.parameter.JacobiansParameterizable |
|---|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter |
| Methods inherited from class org.orekit.parameter.Parameterizable |
|---|
addParameter, getParameters, supportsParameter |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.orekit.parameter.IParameterizable |
|---|
getParameters, supportsParameter |
| Field Detail |
|---|
public static final String THRUST
public static final String FLOW_RATE
| Constructor Detail |
|---|
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName)
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.massProvider - the mass providerpartName - the part of the mass provider whose mass diminishes
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
Frame frame)
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 the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminishesframe - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
LOFType lofType)
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 the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminisheslofType - the LOF type of the acceleration direction
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D direction,
MassProvider massProvider,
String partName)
Parameter.
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) parameterflowRate - the flow rate parameterdirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminishes
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D direction,
MassProvider massProvider,
String partName,
Frame frame)
Parameter.
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) parameterflowRate - the flow rate parameterdirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminishesframe - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D direction,
MassProvider massProvider,
String partName,
LOFType lofType)
Parameter with a local orbital frame defined by its type.
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) parameterflowRate - the flow rate parameterdirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminisheslofType - the LOF type of the acceleration direction
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName)
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsthrust - the thrust force (N)isp - engine specific impulse (s)direction - the acceleration direction in satellite frame.massProvider - the mass providerpartName - the part of the mass provider whose mass diminishes
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
Frame frame)
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsthrust - the thrust force (N)isp - engine specific impulse (s)direction - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminishesframe - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D direction,
MassProvider massProvider,
String partName,
LOFType lofType)
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsthrust - the thrust force (N)isp - engine specific impulse (s)direction - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartName - the part of the mass provider whose mass diminisheslofType - the LOF type of the acceleration direction| Method Detail |
|---|
public double getISP()
public AbsoluteDate getStartDate()
DateDetector as been provided).
DateDetector as been provided, null otherwise.public AbsoluteDate getEndDate()
DateDetector as been provided).
DateDetector as been provided, null otherwise.public Frame getFrame()
public void setFiring(boolean isFiring)
Used in conjunction with isFiring(), the user can stop/restart a propagation during a maneuver.
isFiring - true if propagation should start during the maneuverpublic boolean isFiring()
Used in conjunction with setFiring(boolean), the user can stop/restart a propagation during
a maneuver.
public void addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
throws OrekitException
addContribution in interface ForceModels - current state information: date, kinematics, attitudeadder - object where the contribution should be added
OrekitException - if some specific error occurs
public Vector3D computeAcceleration(SpacecraftState s)
throws OrekitException
computeAcceleration in interface ForceModels - current state information: date, kinematics, attitude
SpacecraftState frame
OrekitException - if some specific error occurs
public void addDAccDState(SpacecraftState s,
double[][] dAccdPos,
double[][] dAccdVel)
throws OrekitException
addDAccDState in interface IJacobiansParameterizables - spacecraft statedAccdPos - acceleration derivatives with respect to positiondAccdVel - acceleration derivatives with respect to velocity
OrekitException - if derivatives cannot be computed
public void addDAccDParam(SpacecraftState s,
Parameter param,
double[] dAccdParam)
throws OrekitException
addDAccDParam in interface IJacobiansParameterizables - spacecraft stateparam - the parameter with respect to which derivatives are requireddAccdParam - acceleration derivatives with respect to specified parameters
OrekitException - if derivatives cannot be computedpublic EventDetector[] getEventsDetectors()
getEventsDetectors in interface ForceModelpublic boolean computeGradientPosition()
computeGradientPosition in interface GradientModelpublic boolean computeGradientVelocity()
computeGradientVelocity in interface GradientModel
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||