|
||||||||||
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.VariableThrustManeuver
public class VariableThrustManeuver
This class implements a maneuver using variable thrust and ISP.
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. The current attitude of the spacecraft, defined by the current spacecraft state, will be used to compute the thrust direction in the inertial frame when direction is defined in satellite frame.
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).
Constructor Summary | |
---|---|
VariableThrustManeuver(AbsoluteDate date,
double duration,
IDependentVariable<SpacecraftState> variableThrust,
IDependentVariable<SpacecraftState> variableIsp,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
String partName)
Constructor for a variable direction in spacecraft frame, thrust and ISP. |
|
VariableThrustManeuver(AbsoluteDate date,
double duration,
IDependentVariable<SpacecraftState> variableThrust,
IDependentVariable<SpacecraftState> variableIsp,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
String partName,
Frame refFrame)
Constructor for a variable direction in provided frame, thrust and ISP. |
|
VariableThrustManeuver(AbsoluteDate date,
double duration,
IDependentVariable<SpacecraftState> variableThrust,
IDependentVariable<SpacecraftState> variableIsp,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
String partName,
LOFType lofTyp)
Constructor for a variable direction in provided local orbital frame, thrust and ISP expressed in a LocalOrbitalFrame . |
|
VariableThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
TankProperty tank)
Constructor for a variable direction in spacecraft frame, thrust and ISP, using PropulsiveProperty and TankProperty . |
|
VariableThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
TankProperty tank,
Frame refFrame)
Constructor for a variable direction in provided frame, thrust and ISP, using PropulsiveProperty and TankProperty . |
|
VariableThrustManeuver(AbsoluteDate date,
double duration,
PropulsiveProperty engine,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
TankProperty tank,
LOFType lofTyp)
Constructor for a variable direction in provided local orbital frame, thrust and ISP expressed in a LocalOrbitalFrame , using PropulsiveProperty and TankProperty . |
|
VariableThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
IDependentVariable<SpacecraftState> variableThrust,
IDependentVariable<SpacecraftState> variableIsp,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
String partName)
Constructor for a variable direction in spacecraft frame, thrust and ISP. |
|
VariableThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
IDependentVariable<SpacecraftState> variableThrust,
IDependentVariable<SpacecraftState> variableIsp,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
String partName,
Frame refFrame)
Constructor for a variable direction in provided frame, thrust and ISP. |
|
VariableThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
IDependentVariable<SpacecraftState> variableThrust,
IDependentVariable<SpacecraftState> variableIsp,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
String partName,
LOFType lofTyp)
Constructor for a variable direction in provided local orbital frame, thrust and ISP expressed in a LocalOrbitalFrame . |
|
VariableThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
TankProperty tank)
Constructor for a variable direction in spacecraft frame, thrust and ISP, using PropulsiveProperty
and TankProperty . |
|
VariableThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
TankProperty tank,
Frame refFrame)
Constructor for a variable direction in spacecraft frame, thrust and ISP, using PropulsiveProperty
and TankProperty . |
|
VariableThrustManeuver(EventDetector startEventDetector,
EventDetector stopEventDetector,
PropulsiveProperty engine,
IDependentVectorVariable<SpacecraftState> variableDirection,
MassProvider massModel,
TankProperty tank,
LOFType lofTyp)
Constructor for a variable direction in provided local orbital frame, thrust and ISP expressed in a LocalOrbitalFrame . |
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. |
Vector3D |
getDirection(SpacecraftState s)
Get the thrust direction. |
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. |
double |
getFlowRate(SpacecraftState s)
Get the flow rate. |
Frame |
getFrame()
Get the frame of the acceleration direction. |
double |
getISP(SpacecraftState s)
Get the specific impulse. |
AbsoluteDate |
getStartDate()
Return the maneuver start date (if a date or a DateDetector as been provided). |
double |
getThrust(SpacecraftState s)
Get the thrust. |
boolean |
isFiring()
Returns maneuver status (firing or not). |
void |
setFiring(boolean isFiring)
Set maneuver status (firing/not firing). |
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 |
Constructor Detail |
---|
public VariableThrustManeuver(AbsoluteDate date, double duration, IDependentVariable<SpacecraftState> variableThrust, IDependentVariable<SpacecraftState> variableIsp, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, String partName)
date
- maneuver dateduration
- the duration of the thrust (s) (if negative,
the date is considered to be the stop date)variableThrust
- the thrust force (N)variableIsp
- engine specific impulse (s)variableDirection
- the acceleration direction in satellite frame.massModel
- mass modelpartName
- name of part firingpublic VariableThrustManeuver(AbsoluteDate date, double duration, PropulsiveProperty engine, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, 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) informationvariableDirection
- the acceleration direction in satellite frame.massModel
- mass modeltank
- tank property gathering mass and part name informationpublic VariableThrustManeuver(AbsoluteDate date, double duration, IDependentVariable<SpacecraftState> variableThrust, IDependentVariable<SpacecraftState> variableIsp, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, String partName, Frame refFrame)
date
- maneuver dateduration
- the duration of the thrust (s) (if negative,
the date is considered to be the stop date)variableThrust
- the thrust force (N)variableIsp
- engine specific impulse (s)variableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modelpartName
- name of part firingrefFrame
- the frame of the acceleration direction. SpacecraftFrame
class is an unsupported frame.
IllegalArgumentException
- if input frame is SpacecraftFrame
.public VariableThrustManeuver(AbsoluteDate date, double duration, PropulsiveProperty engine, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, TankProperty tank, Frame refFrame)
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) informationvariableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modeltank
- tank property gathering mass and part name informationrefFrame
- the frame of the acceleration direction. SpacecraftFrame
class is an unsupported frame.
IllegalArgumentException
- if input frame is SpacecraftFrame
.public VariableThrustManeuver(AbsoluteDate date, double duration, IDependentVariable<SpacecraftState> variableThrust, IDependentVariable<SpacecraftState> variableIsp, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, String partName, LOFType lofTyp)
LocalOrbitalFrame
.
date
- maneuver dateduration
- the duration of the thrust (s) (if negative,
the date is considered to be the stop date)variableThrust
- the thrust force (N)variableIsp
- engine specific impulse (s)variableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modelpartName
- name of part firinglofTyp
- lofType the LOF type of the acceleration directionpublic VariableThrustManeuver(AbsoluteDate date, double duration, PropulsiveProperty engine, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, TankProperty tank, LOFType lofTyp)
LocalOrbitalFrame
, using 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) informationvariableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modeltank
- tank property gathering mass and part name informationlofTyp
- lofType the LOF type of the acceleration directionpublic VariableThrustManeuver(EventDetector startEventDetector, EventDetector stopEventDetector, IDependentVariable<SpacecraftState> variableThrust, IDependentVariable<SpacecraftState> variableIsp, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, String partName)
startEventDetector
- event detector upon which maneuver should startsstopEventDetector
- event detector upon which maneuver should stopsvariableThrust
- the thrust force (N)variableIsp
- engine specific impulse (s)variableDirection
- the acceleration direction in satellite frame.massModel
- mass modelpartName
- name of part firingpublic VariableThrustManeuver(EventDetector startEventDetector, EventDetector stopEventDetector, PropulsiveProperty engine, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, TankProperty tank)
PropulsiveProperty
and TankProperty
.
startEventDetector
- event detector upon which maneuver should startsstopEventDetector
- event detector upon which maneuver should stopsengine
- engine property gathering thrust force (N) and isp (s) informationvariableDirection
- the acceleration direction in satellite frame.massModel
- mass modeltank
- tank property gathering mass and part name informationpublic VariableThrustManeuver(EventDetector startEventDetector, EventDetector stopEventDetector, IDependentVariable<SpacecraftState> variableThrust, IDependentVariable<SpacecraftState> variableIsp, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, String partName, Frame refFrame)
startEventDetector
- event detector upon which maneuver should startsstopEventDetector
- event detector upon which maneuver should stopsvariableThrust
- the thrust force (N)variableIsp
- engine specific impulse (s)variableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modelpartName
- name of part firingrefFrame
- the frame of the acceleration direction. SpacecraftFrame
class is an unsupported frame.
IllegalArgumentException
- if input frame is SpacecraftFrame
.public VariableThrustManeuver(EventDetector startEventDetector, EventDetector stopEventDetector, PropulsiveProperty engine, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, TankProperty tank, Frame refFrame)
PropulsiveProperty
and TankProperty
.
startEventDetector
- event detector upon which maneuver should startsstopEventDetector
- event detector upon which maneuver should stopsengine
- engine property gathering thrust force (N) and isp (s) informationvariableDirection
- the acceleration direction in satellite frame.massModel
- mass modeltank
- tank property gathering mass and part name informationrefFrame
- the frame of the acceleration direction. SpacecraftFrame
class is an unsupported frame.public VariableThrustManeuver(EventDetector startEventDetector, EventDetector stopEventDetector, IDependentVariable<SpacecraftState> variableThrust, IDependentVariable<SpacecraftState> variableIsp, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, String partName, LOFType lofTyp)
LocalOrbitalFrame
.
startEventDetector
- event detector upon which maneuver should startsstopEventDetector
- event detector upon which maneuver should stopsvariableThrust
- the thrust force (N)variableIsp
- engine specific impulse (s)variableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modelpartName
- name of part firinglofTyp
- lofType the LOF type of the acceleration directionpublic VariableThrustManeuver(EventDetector startEventDetector, EventDetector stopEventDetector, PropulsiveProperty engine, IDependentVectorVariable<SpacecraftState> variableDirection, MassProvider massModel, TankProperty tank, LOFType lofTyp)
LocalOrbitalFrame
.
startEventDetector
- event detector upon which maneuver should startsstopEventDetector
- event detector upon which maneuver should stopsengine
- engine property gathering thrust force (N) and isp (s) informationvariableDirection
- the acceleration direction in the frame defined by the usermassModel
- mass modeltank
- tank property gathering mass and part name informationlofTyp
- lofType the LOF type of the acceleration directionMethod Detail |
---|
public double getThrust(SpacecraftState s)
s
- the current state information: date, kinematics, attitude
public Vector3D getDirection(SpacecraftState s)
s
- the current state information: date, kinematics, attitude
public double getISP(SpacecraftState s)
s
- the current state information: date, kinematics, attitude
public double getFlowRate(SpacecraftState s)
s
- the current state information: date, kinematics, attitude
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 boolean isFiring()
Used in conjunction with setFiring(boolean)
, the user can stop/restart a propagation during
a maneuver.
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 void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws OrekitException
addContribution
in interface ForceModel
s
- current state information: date, kinematics, attitudeadder
- object where the contribution should be added
OrekitException
- if some specific error occurspublic Vector3D computeAcceleration(SpacecraftState s) throws OrekitException
ForceModel
computeAcceleration
in interface ForceModel
s
- current state information: date, kinematics, attitude
SpacecraftState frame
OrekitException
- if some specific error occurspublic void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel) throws OrekitException
addDAccDState
in interface IJacobiansParameterizable
s
- spacecraft statedAccdPos
- acceleration derivatives with respect to positiondAccdVel
- acceleration derivatives with respect to velocity
OrekitException
- if derivatives cannot be computedpublic void addDAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam) throws OrekitException
addDAccDParam
in interface IJacobiansParameterizable
s
- 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()
ForceModel
getEventsDetectors
in interface ForceModel
public boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |