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_MASS| 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.
|
protected void |
resetIntermediateState(SpacecraftState state,
boolean forward)
Reset an intermediate state.
|
acceptStep, addEventDetector, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getJacobiansColumnsNames, getPvProvider, propagateaddAdditionalStateProvider, createHarvester, getAdditionalStateProviders, getAttitudeProvider, getFrame, getHarvester, getManagedAdditionalStates, getMultiplexer, getPVCoordinates, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalStates, updateUnmanagedStatesclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclearStepHandlers, getDefaultLaw, setStepHandler, setStepHandlergetPositionpublic 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()
getInitialState in interface PropagatorgetInitialState in class AbstractPropagatorpublic void resetInitialState(SpacecraftState state)
resetInitialState in interface PropagatorresetInitialState in class AbstractPropagatorstate - new initial state to considerprotected void resetIntermediateState(SpacecraftState state, boolean forward)
resetIntermediateState in class AbstractAnalyticalPropagatorstate - new intermediate state to considerforward - if true, the intermediate state is valid for
propagations after itselfprotected SpacecraftState basicPropagate(AbsoluteDate date)
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 AbstractAnalyticalPropagatordate - target date for propagationprotected Orbit propagateOrbit(AbsoluteDate date)
propagateOrbit in class AbstractAnalyticalPropagatordate - target date for the orbitprotected double getMass(AbsoluteDate date)
getMass in class AbstractAnalyticalPropagatordate - target date for the orbitCopyright © 2002-2023 CS GROUP. All rights reserved.