PropagatorConverter
FiniteDifferencePropagatorConverter
, JacobianPropagatorConverter
public abstract class AbstractPropagatorConverter extends Object implements PropagatorConverter
PropagatorConverter
methods for propagators conversions.
This abstract class factors the common code for propagators conversion.
Only one method must be implemented by derived classes: getObjectiveFunction()
.
The converter uses the LevenbergMarquardtOptimizer from the Hipparchus library. Different implementations correspond to different methods for computing the Jacobian.
Modifier | Constructor | Description |
---|---|---|
protected |
AbstractPropagatorConverter(PropagatorBuilder builder,
double threshold,
int maxIterations) |
Build a new instance.
|
Modifier and Type | Method | Description |
---|---|---|
Propagator |
convert(List<SpacecraftState> states,
boolean positionOnly,
String... freeParameters) |
Find the propagator that minimize the mean square error for a sample of
states . |
Propagator |
convert(List<SpacecraftState> states,
boolean positionOnly,
List<String> freeParameters) |
Find the propagator that minimize the mean square error for a sample of
states . |
Propagator |
convert(Propagator source,
double timeSpan,
int nbPoints,
String... freeParameters) |
Convert a propagator to another.
|
Propagator |
convert(Propagator source,
double timeSpan,
int nbPoints,
List<String> freeParameters) |
Convert a propagator to another.
|
Propagator |
getAdaptedPropagator() |
Get the adapted propagator.
|
int |
getEvaluations() |
Get the number of objective function evaluations.
|
protected Frame |
getFrame() |
Get the frame of the initial state.
|
protected abstract MultivariateJacobianFunction |
getModel() |
Get the Jacobian of the function computing position/velocity at sample points.
|
protected abstract MultivariateVectorFunction |
getObjectiveFunction() |
Get the function computing position/velocity at sample points.
|
double |
getRMS() |
Get the Root Mean Square Deviation of the fitting.
|
protected List<SpacecraftState> |
getSample() |
Get the states sample.
|
protected int |
getTargetSize() |
Get the size of the target.
|
protected boolean |
isOnlyPosition() |
Check if fitting uses only sample positions.
|
protected AbstractPropagatorConverter(PropagatorBuilder builder, double threshold, int maxIterations)
builder
- propagator builderthreshold
- absolute convergence threshold for optimization algorithmmaxIterations
- maximum number of iterations for fittingpublic Propagator convert(Propagator source, double timeSpan, int nbPoints, List<String> freeParameters) throws OrekitException, IllegalArgumentException
convert
in interface PropagatorConverter
source
- initial propagator (the propagator will be used for sample
generation, if it is a numerical propagator, its initial state will
be reset unless AbstractIntegratedPropagator.setResetAtEnd(boolean)
has been called beforehand)timeSpan
- time span for fittingnbPoints
- number of fitting points over time spanfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator convert(Propagator source, double timeSpan, int nbPoints, String... freeParameters) throws OrekitException, IllegalArgumentException
convert
in interface PropagatorConverter
source
- initial propagator (the propagator will be used for sample
generation, if it is a numerical propagator, its initial state will
be reset unless AbstractIntegratedPropagator.setResetAtEnd(boolean)
has been called beforehand)timeSpan
- time span for fittingnbPoints
- number of fitting points over time spanfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator convert(List<SpacecraftState> states, boolean positionOnly, List<String> freeParameters) throws OrekitException, IllegalArgumentException
states
.convert
in interface PropagatorConverter
states
- spacecraft states sample to fitpositionOnly
- if true, consider only position data otherwise both position and velocity are usedfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator convert(List<SpacecraftState> states, boolean positionOnly, String... freeParameters) throws OrekitException, IllegalArgumentException
states
.convert
in interface PropagatorConverter
states
- spacecraft states sample to fitpositionOnly
- if true, consider only position data otherwise both position and velocity are usedfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator getAdaptedPropagator()
public double getRMS()
public int getEvaluations()
protected abstract MultivariateVectorFunction getObjectiveFunction()
protected abstract MultivariateJacobianFunction getModel()
protected boolean isOnlyPosition()
protected int getTargetSize()
protected Frame getFrame()
protected List<SpacecraftState> getSample()
Copyright © 2002-2018 CS Systèmes d'information. All rights reserved.