public class ImpulseDeManeuver extends ImpulseManeuver implements ImpulseParKepManeuver
AbstractDetector.PropagationDelayType
EventDetector.Action
deltaVSat
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
DECREASING, INCREASING, INCREASING_DECREASING
Constructor and Description |
---|
ImpulseDeManeuver(EventDetector inTrigger,
double de,
double da,
double isp,
MassProvider massModel,
String part,
boolean throwExceptionIfNotSolution)
Build a new instance.
|
ImpulseDeManeuver(EventDetector inTrigger,
double de,
double da,
PropulsiveProperty engine,
MassProvider massModel,
TankProperty tank,
boolean throwExceptionIfNotSolution)
Build a new instance using propulsive and engine property.
|
Modifier and Type | Method and Description |
---|---|
void |
computeDV(SpacecraftState state)
Method to compute the DV thanks to Keplerian parameters included in the Spacecraft state.
|
double |
getDa()
Getter for semi-major axis increment.
|
double |
getDe()
Getter for eccentricity axis increment.
|
SpacecraftState |
resetState(SpacecraftState oldState)
Reset the state (including additional states) prior to continue propagation.
|
copy, eventOccurred, g, getDeltaVSat, getFrame, getIsp, getLofType, getMaxCheckInterval, getMaxIterationCount, getPropulsiveProperty, getSlopeSelection, getTankProperty, getThreshold, getTrigger, getUsedDV, hasFired, init, shouldBeRemoved
getPropagationDelayType, getSignalEmissionDate, getSignalReceptionDate, setPropagationDelayType
public ImpulseDeManeuver(EventDetector inTrigger, double de, double da, double isp, MassProvider massModel, String part, boolean throwExceptionIfNotSolution) throws PatriusException
inTrigger
- triggering event (it must generate a STOP event action to trigger the
maneuver)de
- eccentricity incrementda
- semi major axis increment (m)isp
- engine specific impulse (s)massModel
- mass modelpart
- part of the mass model that provides the propellantthrowExceptionIfNotSolution
- throw exception if no solution found, returns 0 otherwisePatriusException
- thrown if mass from mass provider is negativepublic ImpulseDeManeuver(EventDetector inTrigger, double de, double da, PropulsiveProperty engine, MassProvider massModel, TankProperty tank, boolean throwExceptionIfNotSolution)
inTrigger
- triggering event (it must generate a STOP event action to trigger the
maneuver)de
- eccentricity incrementda
- semi major axis increment (m)engine
- engine property (specific impulse)massModel
- mass modeltank
- tank property gathering mass and part name informationthrowExceptionIfNotSolution
- throw exception if no solution found, returns 0 otherwisepublic SpacecraftState resetState(SpacecraftState oldState) throws PatriusException
This method is called after the step handler has returned and before the next step is started, but only when
EventDetector.eventOccurred(fr.cnes.sirius.patrius.propagation.SpacecraftState, boolean, boolean)
has itself returned the EventDetector.Action.RESET_STATE
indicator. It allows the
user to reset the state for the next step, without perturbing the step handler of the finishing step. If the
EventDetector.eventOccurred(fr.cnes.sirius.patrius.propagation.SpacecraftState, boolean, boolean)
never returns the EventDetector.Action.RESET_STATE
indicator, this function will
never be called, and it is safe to simply return null.
resetState
in interface EventDetector
resetState
in class ImpulseManeuver
oldState
- old statePatriusException
- thrown if the mass becomes negative
(PatriusMessages.SPACECRAFT_MASS_BECOMES_NEGATIVE)public void computeDV(SpacecraftState state) throws PatriusException
computeDV
in interface ImpulseParKepManeuver
state
- S/C statePatriusException
- thrown if there is no solutionpublic double getDa()
public double getDe()
Copyright © 2021 CNES. All rights reserved.