public class ConstantThrustManeuver extends AbstractForceModel
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.
Constructor and Description |
---|
ConstantThrustManeuver(AbsoluteDate date,
double duration,
double thrust,
double isp,
Vector3D direction)
Simple constructor for a constant direction and constant thrust.
|
Modifier and Type | Method and Description |
---|---|
FieldVector3D<DerivativeStructure> |
accelerationDerivatives(AbsoluteDate date,
Frame frame,
FieldVector3D<DerivativeStructure> position,
FieldVector3D<DerivativeStructure> velocity,
FieldRotation<DerivativeStructure> rotation,
DerivativeStructure mass)
Compute acceleration derivatives with respect to state parameters.
|
FieldVector3D<DerivativeStructure> |
accelerationDerivatives(SpacecraftState s,
String paramName)
Compute acceleration derivatives with respect to additional parameters.
|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
double |
getFlowRate()
Get the flow rate.
|
double |
getISP()
Get the specific impulse.
|
ParameterDriver[] |
getParametersDrivers()
Get the drivers for force model parameters.
|
double |
getThrust()
Get the thrust.
|
void |
init(SpacecraftState s0,
AbsoluteDate t)
Initialize the force model at the start of propagation.
|
complainIfNotSupported, getParameter, getParameterDriver, getParametersNames, isSupported, setParameter
public ConstantThrustManeuver(AbsoluteDate date, double duration, double thrust, double isp, Vector3D direction)
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.public void init(SpacecraftState s0, AbsoluteDate t)
ForceModel
ForceModel.addContribution(SpacecraftState,
TimeDerivativesEquations)
or ForceModel.accelerationDerivatives(AbsoluteDate, Frame,
FieldVector3D, FieldVector3D, FieldRotation, DerivativeStructure)
or ForceModel.accelerationDerivatives(SpacecraftState, String)
.
The default implementation of this method does nothing.
s0
- spacecraft state at the start of propagation.t
- date of propagation. Not equal to initialState.getDate()
.public double getThrust()
public double getISP()
public double getFlowRate()
public void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws OrekitException
s
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedOrekitException
- if some specific error occurspublic FieldVector3D<DerivativeStructure> accelerationDerivatives(AbsoluteDate date, Frame frame, FieldVector3D<DerivativeStructure> position, FieldVector3D<DerivativeStructure> velocity, FieldRotation<DerivativeStructure> rotation, DerivativeStructure mass) throws OrekitException
The derivatives should be computed with respect to position, velocity and optionnaly mass. The input parameters already take into account the free parameters (6 or 7 depending on derivation with respect to mass being considered or not) and order (always 1). Free parameters at indices 0, 1 and 2 correspond to derivatives with respect to position. Free parameters at indices 3, 4 and 5 correspond to derivatives with respect to velocity. Free parameter at index 6 (if present) corresponds to to derivatives with respect to mass.
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framevelocity
- velocity of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- spacecraft massOrekitException
- if derivatives cannot be computedpublic FieldVector3D<DerivativeStructure> accelerationDerivatives(SpacecraftState s, String paramName) throws OrekitException
s
- spacecraft stateparamName
- name of the parameter with respect to which derivatives are requiredOrekitException
- if derivatives cannot be computedpublic EventDetector[] getEventsDetectors()
public ParameterDriver[] getParametersDrivers()
Copyright © 2002-2016 CS Systèmes d'information. All rights reserved.