|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.orekit.parameter.Parameterizable org.orekit.parameter.JacobiansParameterizable org.orekit.forces.maneuvers.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(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 . |
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. |
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, 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, 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(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, 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, 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 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 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 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 |