|
||||||||||
| 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
fr.cnes.sirius.patrius.forces.ConstantThrustManeuver
public class ConstantThrustManeuver
This class implements a simple maneuver with constant thrust.
The maneuver is defined by a inDirection 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 inDirection in satellite frame into inertial frame when inDirection 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.
Warning: if variable ISP and thrust are used (using PropulsiveProperty), ISP and thrust parameters
cannot be used (set as NaN).
| 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 inDirection,
MassProvider massProvider,
String partNameIn)
Constructor for a constant direction in satellite frame and constant thrust. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
Frame frameIn)
Constructor for a constant direction in provided frame and constant thrust. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
LOFType lofTyp)
Constructor for a constant direction in provided local orbital frame and constant thrust. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn)
Constructor for a constant direction in satellite frame and constant thrust using Parameter. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
Frame frameIn)
Constructor for a constant dDirection in provided frame and constant thrust using Parameter. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
LOFType lofTyp)
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(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank)
Constructor for a constant direction in satellite frame and constant thrust using Parameter,
PropulsiveProperty and TankProperty. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
Frame frameIn)
Constructor for a constant direction in satellite frame and constant thrust using Parameter,
PropulsiveProperty and TankProperty. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
LOFType lofTyp)
Constructor for a constant direction in satellite frame and constant thrust using Parameter,
PropulsiveProperty and TankProperty. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank)
Constructor for a constant direction in satellite frame and constant thrust, using PropulsiveProperty and TankProperty. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
Frame frameIn)
Constructor for a constant direction in provided frame and constant thrust, using PropulsiveProperty and TankProperty. |
|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
LOFType lofTyp)
Constructor for a constant direction in provided local orbital frame and constant thrust, using PropulsiveProperty and TankProperty. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn)
Constructor for a constant direction in satellite frame and constant thrust. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
Frame frameIn)
Constructor for a constant direction in provided frame and constant thrust. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
LOFType lofTyp)
Constructor for a constant direction in provided local orbital frame and constant thrust. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank)
Constructor for a constant direction in satellite frame and constant thrust with PropulsiveProperty and TankProperty properties. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
Frame frameIn)
Constructor for a constant direction in provided frame and constant thrust with PropulsiveProperty and TankProperty properties. |
|
ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
LOFType lofTyp)
Constructor for a constant direction in local orbital frame and constant thrust with PropulsiveProperty and TankProperty properties. |
|
| 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 inDirection. |
double |
getISP()
Get the specific impulse. |
IPartProperty |
getPropulsiveProperty()
Get the propulsive property. |
AbsoluteDate |
getStartDate()
Return the maneuver start date (if a date or a DateDetector as been provided). |
IPartProperty |
getTankProperty()
Get the tank property. |
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 inDirection,
MassProvider massProvider,
String partNameIn)
throws OrekitException
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)inDirection - the acceleration direction in satellite frame.massProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminishes
OrekitException - if mass from mass provider is negative
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank)
PropulsiveProperty and TankProperty.
date - maneuver dateduration - the duration of the thrust (s) (if negative,
the date is considered to be the stop date)engine - engine property gathering thrust force (N) and isp (s) informationinDirection - the acceleration direction in satellite framemassProvider - the mass providertank - tank property gathering mass and part name information
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
Frame frameIn)
throws OrekitException
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)inDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminishesframeIn - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
OrekitException - if mass from mass provider is negative
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
Frame frameIn)
PropulsiveProperty and TankProperty.
date - maneuver dateduration - the duration of the thrust (s) (if negative,
the date is considered to be the stop date)engine - engine property gathering thrust force (N) and isp (s) informationinDirection - the acceleration direction in satellite framemassProvider - the mass providertank - tank property gathering mass and part name informationframeIn - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
LOFType lofTyp)
throws OrekitException
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)inDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminisheslofTyp - the LOF type of the acceleration direction
OrekitException - if mass from mass provider is negative
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
LOFType lofTyp)
PropulsiveProperty and TankProperty.
date - maneuver dateduration - the duration of the thrust (s) (if negative,
the date is considered to be the stop date)engine - engine property gathering thrust force (N) and isp (s) informationinDirection - the acceleration direction in satellite framemassProvider - the mass providertank - tank property gathering mass and part name informationlofTyp - the LOF type of the acceleration inDirection
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn)
throws OrekitException
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 parameterinDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminishes
OrekitException
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank)
throws OrekitException
Parameter,
PropulsiveProperty and TankProperty.
date - maneuver dateduration - the duration of the thrust (s) (if negative, the date is considered to be the stop date)engine - engine property gathering thrust force (N) and isp (s) informationflowRate - the flow rate parameterinDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providertank - tank property gathering mass and part name information
OrekitException - if mass from mass provider is negative
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
Frame frameIn)
throws OrekitException
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 parameterinDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminishesframeIn - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
OrekitException
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
Frame frameIn)
throws OrekitException
Parameter,
PropulsiveProperty and TankProperty.
date - maneuver dateduration - the duration of the thrust (s) (if negative, the date is considered to be the stop date)engine - engine property gathering thrust force (N) and isp (s) informationflowRate - the flow rate parameterinDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providertank - tank property gathering mass and part name informationframeIn - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
OrekitException - if mass from mass provider is negative
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
Parameter thrust,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
LOFType lofTyp)
throws OrekitException
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 parameterinDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminisheslofTyp - the LOF type of the acceleration inDirection
OrekitException
public ConstantThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
Parameter flowRate,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
LOFType lofTyp)
throws OrekitException
Parameter,
PropulsiveProperty and TankProperty.
date - maneuver dateduration - the duration of the thrust (s) (if negative, the date is considered to be the stop date)engine - engine property gathering thrust force (N) and isp (s) informationflowRate - the flow rate parameterinDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providertank - tank property gathering mass and part name informationlofTyp - the LOF type of the acceleration direction
OrekitException - if mass from mass provider is negative
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn)
throws OrekitException
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsthrust - the thrust force (N)isp - engine specific impulse (s)inDirection - the acceleration direction in satellite frame.massProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminishes
OrekitException
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank)
throws OrekitException
PropulsiveProperty and TankProperty properties.
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsengine - engine property gathering thrust force (N) and isp (s) informationinDirection - the acceleration direction in satellite framemassProvider - the mass providertank - tank property gathering mass and part name information
OrekitException - if mass from mass provider is negative
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
Frame frameIn)
throws OrekitException
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsthrust - the thrust force (N)isp - engine specific impulse (s)inDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminishesframeIn - the frame of the acceleration direction. SpacecraftFrame class is an unsupported frame.
OrekitException
IllegalArgumentException - thrown if input frame is SpacecraftFrame.
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
Frame frameIn)
throws OrekitException
PropulsiveProperty and TankProperty properties.
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsengine - engine property gathering thrust force (N) and isp (s) informationinDirection - the acceleration direction in satellite frame.massProvider - the mass providertank - tank property gathering mass and part name informationframeIn - the frame of the acceleration inDirection. SpacecraftFrame class is an unsupported frame.
OrekitException - if mass from mass provider is negative
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
double thrust,
double isp,
Vector3D inDirection,
MassProvider massProvider,
String partNameIn,
LOFType lofTyp)
throws OrekitException
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsthrust - the thrust force (N)isp - engine specific impulse (s)inDirection - the acceleration direction in the frame defined by the usermassProvider - the mass providerpartNameIn - the part of the mass provider whose mass diminisheslofTyp - the LOF type of the acceleration direction
OrekitException
public ConstantThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
Vector3D inDirection,
MassProvider massProvider,
TankProperty tank,
LOFType lofTyp)
throws OrekitException
PropulsiveProperty and TankProperty properties.
startEventDetector - event detector upon which maneuver should startsstopEventDetector - event detector upon which maneuver should stopsengine - engine property gathering thrust force (N) and isp (s) informationinDirection - the acceleration direction in satellite frame.massProvider - the mass providertank - tank property gathering mass and part name informationlofTyp - the LOF type of the acceleration direction
OrekitException - if mass from mass provider is negative| Method Detail |
|---|
public double getISP()
Warning: if a variable ISP has been used, NaN will be returned.
public IPartProperty getTankProperty()
public IPartProperty getPropulsiveProperty()
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 | |||||||||