Class CR3BPMultipleShooter

java.lang.Object
org.orekit.utils.AbstractMultipleShooting
org.orekit.propagation.numerical.cr3bp.CR3BPMultipleShooter
All Implemented Interfaces:
MultipleShooting

public class CR3BPMultipleShooter extends AbstractMultipleShooting
Multiple shooting method applicable for orbits, either propagation in CR3BP, or in an ephemeris model.
Author:
William Desprats, Alberto Fossà
See Also:
  • "TRAJECTORY DESIGN AND ORBIT MAINTENANCE STRATEGIES IN MULTI-BODY DYNAMICAL REGIMES by Thomas A. Pavlak, Purdue University"
  • Constructor Details

    • CR3BPMultipleShooter

      public CR3BPMultipleShooter(List<SpacecraftState> initialGuessList, List<NumericalPropagator> propagatorList, List<STMEquations> stmEquations, double tolerance, int maxIter)
      Simple Constructor.

      Standard constructor for multiple shooting which can be used with the CR3BP model.

      Parameters:
      initialGuessList - initial patch points to be corrected
      propagatorList - list of propagators associated to each patch point
      stmEquations - list of additional derivatives providers linked to propagatorList
      tolerance - convergence tolerance on the constraint vector
      maxIter - maximum number of iterations
  • Method Details

    • getAugmentedInitialState

      protected SpacecraftState getAugmentedInitialState(int i)
      Compute the additional state from the additionalEquations.
      Specified by:
      getAugmentedInitialState in class AbstractMultipleShooting
      Parameters:
      i - index of the state
      Returns:
      augmentedSP SpacecraftState with the additional state within.
    • setEpochFreedom

      public void setEpochFreedom(int patchIndex, boolean isFree)
      Set the epoch of a patch point to free or not.
      Overrides:
      setEpochFreedom in class AbstractMultipleShooting
      Parameters:
      patchIndex - Patch point index (zero-based)
      isFree - constraint value
    • setScaleLength

      public void setScaleLength(double scaleLength)
      Set the scale length.
      Overrides:
      setScaleLength in class AbstractMultipleShooting
      Parameters:
      scaleLength - scale length in meters
    • setScaleTime

      public void setScaleTime(double scaleTime)
      Set the scale time.
      Overrides:
      setScaleTime in class AbstractMultipleShooting
      Parameters:
      scaleTime - scale time in seconds
    • setClosedOrbitConstraint

      public void setClosedOrbitConstraint(boolean isClosed)
      Set the constraint of a closed orbit or not.
      Parameters:
      isClosed - true if orbit should be closed
    • computeAdditionalJacobianMatrix

      protected double[][] computeAdditionalJacobianMatrix(List<SpacecraftState> propagatedSP)
      Compute a part of the Jacobian matrix from additional constraints.
      Specified by:
      computeAdditionalJacobianMatrix in class AbstractMultipleShooting
      Parameters:
      propagatedSP - propagatedSP
      Returns:
      jacobianMatrix Jacobian sub-matrix
    • computeAdditionalConstraints

      protected double[] computeAdditionalConstraints(List<SpacecraftState> propagatedSP)
      Compute the additional constraints.
      Specified by:
      computeAdditionalConstraints in class AbstractMultipleShooting
      Parameters:
      propagatedSP - propagated SpacecraftState
      Returns:
      fxAdditional additional constraints
    • getNumberOfConstraints

      protected int getNumberOfConstraints()
      Get the total number of constraints.
      Overrides:
      getNumberOfConstraints in class AbstractMultipleShooting
      Returns:
      the total number of constraints