public abstract class AbstractPropagatorConverter extends Object implements PropagatorConverter
PropagatorConverter
方法的常见处理,用于传播器转换。
这个抽象类为传播器转换提供了通用代码。派生类只需实现一个方法:getObjectiveFunction()
。
转换器使用来自Hipparchus库的LevenbergMarquardtOptimizer。不同的实现对应于计算雅可比矩阵的不同方法。
Modifier | Constructor and Description |
---|---|
protected |
AbstractPropagatorConverter(PropagatorBuilder builder, double threshold, int maxIterations)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
Propagator |
convert(List<SpacecraftState> states, boolean positionOnly, List<String> freeParameters)
找到使一组 states 的均方误差最小的传播器。
|
Propagator |
convert(List<SpacecraftState> states, boolean positionOnly, String... freeParameters)
找到使一组 states 的均方误差最小的传播器。
|
Propagator |
convert(Propagator source, double timeSpan, int nbPoints, List<String> freeParameters)
将一个传播器转换为另一个。
|
Propagator |
convert(Propagator source, double timeSpan, int nbPoints, String... freeParameters)
将一个传播器转换为另一个。
|
Propagator |
getAdaptedPropagator()
获取适应的传播器。
|
int |
getEvaluations()
获取目标函数评估次数。
|
protected Frame |
getFrame()
获取初始状态的参考系。
|
protected abstract org.hipparchus.optim.nonlinear.vector.leastsquares.MultivariateJacobianFunction |
getModel()
获取在样本点计算位置/速度的函数的雅可比矩阵。
|
protected abstract org.hipparchus.analysis.MultivariateVectorFunction |
getObjectiveFunction()
获取在样本点计算位置/速度的函数。
|
double |
getRMS()
获取拟合的均方根偏差。
|
protected List<SpacecraftState> |
getSample()
获取状态样本。
|
protected int |
getTargetSize()
获取目标的大小。
|
protected boolean |
isOnlyPosition()
检查拟合是否仅使用样本位置。
|
protected AbstractPropagatorConverter(PropagatorBuilder builder, double threshold, int maxIterations)
builder
- 传播器构建器
threshold
- 优化算法的绝对收敛阈值
maxIterations
- 拟合的最大迭代次数
public Propagator convert(Propagator source, double timeSpan, int nbPoints, List<String> freeParameters) throws IllegalArgumentException
convert
在接口 PropagatorConverter
中
source
- 初始传播器(如果是数值传播器,其初始状态将被重置,除非之前调用了AbstractIntegratedPropagator.setResetAtEnd(boolean)
)
timeSpan
- 拟合的时间跨度
nbPoints
- 时间跨度上的拟合点数
freeParameters
- 自由参数的名称
IllegalArgumentException
- 如果其中一个参数不能是自由的
public Propagator convert(Propagator source, double timeSpan, int nbPoints, String... freeParameters) throws IllegalArgumentException
convert
在接口 PropagatorConverter
中
source
- 初始传播器(如果是数值传播器,其初始状态将被重置,除非之前调用了AbstractIntegratedPropagator.setResetAtEnd(boolean)
)
timeSpan
- 拟合的时间跨度
nbPoints
- 时间跨度上的拟合点数
freeParameters
- 自由参数的名称
IllegalArgumentException
- 如果其中一个参数不能是自由的
public Propagator convert(List<SpacecraftState> states, boolean positionOnly, List<String> freeParameters) throws IllegalArgumentException
states
的均方误差最小的传播器。
convert
在接口 PropagatorConverter
中
states
- 要拟合的航天器状态样本
positionOnly
- 如果为true,则仅考虑位置数据,否则位置和速度都会被使用
freeParameters
- 自由参数的名称
IllegalArgumentException
- 如果其中一个参数不能是自由的
public Propagator convert(List<SpacecraftState> states, boolean positionOnly, String... freeParameters) throws IllegalArgumentException
states
的均方误差最小的传播器。
convert
在接口 PropagatorConverter
中
states
- 要拟合的航天器状态样本
positionOnly
- 如果为true,则仅考虑位置数据,否则位置和速度都会被使用
freeParameters
- 自由参数的名称
IllegalArgumentException
- 如果其中一个参数不能是自由的
public Propagator getAdaptedPropagator()
public double getRMS()
public int getEvaluations()
protected abstract org.hipparchus.analysis.MultivariateVectorFunction getObjectiveFunction()
protected abstract org.hipparchus.optim.nonlinear.vector.leastsquares.MultivariateJacobianFunction getModel()
protected boolean isOnlyPosition()
protected int getTargetSize()
protected Frame getFrame()
protected List<SpacecraftState> getSample()
Copyright © 2002-2023 CS GROUP. All rights reserved.