public class AdapterPropagator extends AbstractAnalyticalPropagator
differential effects
.
This propagator is used when a reference propagator does not handle
some effects that we need. A typical example would be an ephemeris
that was computed for a reference orbit, and we want to compute a
station-keeping maneuver on top of this ephemeris, changing its
final state. The principal is to add one or more small maneuvers
analytical models
to it and use it as a new propagator, which takes the
maneuvers into account.
From a space flight dynamics point of view, this is a differential correction approach. From a computer science point of view, this is a use of the decorator design pattern.
Propagator
,
SmallManeuverAnalyticalModel
Modifier and Type | Class and Description |
---|---|
static interface |
AdapterPropagator.DifferentialEffect
Interface for orbit differential effects.
|
DEFAULT_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Constructor and Description |
---|
AdapterPropagator(Propagator reference)
Build a propagator from an underlying reference propagator.
|
Modifier and Type | Method and Description |
---|---|
void |
addEffect(AdapterPropagator.DifferentialEffect effect)
Add a differential effect.
|
protected SpacecraftState |
basicPropagate(AbsoluteDate date)
Propagate an orbit without any fancy features.
|
List<AdapterPropagator.DifferentialEffect> |
getEffects()
Get the differential effects.
|
SpacecraftState |
getInitialState()
Get the propagator initial state.
|
protected double |
getMass(AbsoluteDate date)
Get the mass.
|
Propagator |
getPropagator()
Get the reference propagator.
|
protected Orbit |
propagateOrbit(AbsoluteDate date)
Extrapolate an orbit up to a specific target date.
|
void |
resetInitialState(SpacecraftState state)
Reset the propagator initial state.
|
acceptStep, addEventDetector, clearEventsDetectors, getEventsDetectors, getGeneratedEphemeris, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getFixedStepSize, getFrame, getManagedAdditionalStates, getMode, getPVCoordinates, getStartDate, getStepHandler, isAdditionalStateManaged, propagate, setAttitudeProvider, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, updateAdditionalStates
public AdapterPropagator(Propagator reference)
The reference propagator can be almost anything, numerical, analytical, and even an ephemeris. It may already take some maneuvers into account.
reference
- reference propagatorpublic void addEffect(AdapterPropagator.DifferentialEffect effect)
effect
- differential effectpublic Propagator getPropagator()
public List<AdapterPropagator.DifferentialEffect> getEffects()
public SpacecraftState getInitialState() throws PropagationException
getInitialState
in interface Propagator
getInitialState
in class AbstractPropagator
PropagationException
- if state cannot be retrievedpublic void resetInitialState(SpacecraftState state) throws PropagationException
resetInitialState
in interface Propagator
resetInitialState
in class AbstractPropagator
state
- new initial state to considerPropagationException
- if initial state cannot be resetprotected SpacecraftState basicPropagate(AbsoluteDate date) throws PropagationException
This method is similar in spirit to the AbstractAnalyticalPropagator.propagate(org.orekit.time.AbsoluteDate, org.orekit.time.AbsoluteDate)
method,
except that it does not call any handler during
propagation, nor any discrete events, not additional states. It always
stop exactly at the specified date.
basicPropagate
in class AbstractAnalyticalPropagator
date
- target date for propagationPropagationException
- if propagation cannot reach specified dateprotected Orbit propagateOrbit(AbsoluteDate date) throws PropagationException
propagateOrbit
in class AbstractAnalyticalPropagator
date
- target date for the orbitPropagationException
- if some parameters are out of boundsprotected double getMass(AbsoluteDate date) throws PropagationException
getMass
in class AbstractAnalyticalPropagator
date
- target date for the orbitPropagationException
- if some parameters are out of boundsCopyright © 2002-2015 CS Systèmes d'information. All rights reserved.