Class SequentialBatchLSEstimator


  • public class SequentialBatchLSEstimator
    extends BatchLSEstimator
    Sequential least squares estimator for orbit determination.

    When an orbit has already been estimated and new measurements are given, it is not efficient to re-optimize the whole problem. Only considering the new measures while optimizing will neither give good results as the old measurements will not be taken into account. Thus, a sequential estimator is used to estimate the orbit, which uses the old results of the estimation and the new measurements.

    In order to perform a sequential optimization, the user must configure a SequentialGaussNewtonOptimizer. Depending if its input data are an empty LeastSquaresProblem.Evaluation, a complete Evaluation or an a priori state and covariance, different configuration are possible.

    1. No input data from a previous estimation

    Then, the SequentialBatchLSEstimator can be used like a BatchLSEstimator to perform the estimation. The user can initialize the SequentialGaussNewtonOptimizer using the default constructor.

    final SequentialGaussNewtonOptimizer optimizer = new SequentialGaussNewtonOptimizer();

    By default, a QRDecomposer is used as decomposition algorithm. In addition, normal equations are not form. It is possible to update these two default configurations by using:

    2. Initialization using a previous Evalutation

    In this situation, it is recommended to use the second constructor of the optimizer class.

    final SequentialGaussNewtonOptimizer optimizer = new SequentialGaussNewtonOptimizer(decomposer, formNormalEquations, evaluation);

    Using this constructor, the user can directly configure the MatrixDecomposer and set the flag for normal equations without calling the two previous presented methods.

    Note: This constructor can also be used to perform the initialization of 1. In this case, the Evaluation evaluation is null.

    3. Initialization using an a priori estimated state and covariance

    These situation is a classical satellite operation need. Indeed, a classical action is to use the results of a previous orbit determination (estimated state and covariance) performed a day before, to improve the initialization and the results of an orbit determination performed the current day. In this situation, the user can initialize the SequentialGaussNewtonOptimizer using the default constructor.

    final SequentialGaussNewtonOptimizer optimizer = new SequentialGaussNewtonOptimizer();

    The MatrixDecomposer and the flag about normal equations can again be updated using the two previous presented methods. The a priori state and covariance matrix can be set using:

    • withAPrioriData method: optimizer.withAPrioriData(aPrioriState, aPrioriCovariance);
    Since:
    11.0
    Author:
    Julie Bayard
    • Constructor Detail

      • SequentialBatchLSEstimator

        public SequentialBatchLSEstimator​(SequentialGaussNewtonOptimizer sequentialOptimizer,
                                          PropagatorBuilder... propagatorBuilder)
        Simple constructor.

        If multiple propagator builders are set up, the orbits of several spacecrafts will be used simultaneously. This is useful if the propagators share some model or measurements parameters (typically pole motion, prime meridian correction or ground stations positions).

        Setting up multiple propagator builders is also useful when inter-satellite measurements are used, even if only one of the orbit is estimated and the other ones are fixed. This is typically used when very high accuracy GNSS measurements are needed and the navigation bulletins are not considered accurate enough and the navigation constellation must be propagated numerically.

        The solver used for sequential least squares problem is a sequential Gauss Newton optimizer. Details about how initialize it are given in the class JavaDoc.

        Parameters:
        sequentialOptimizer - solver for sequential least squares problem
        propagatorBuilder - builders to use for propagation.