Package org.orekit.utils
Class AbstractMultipleShooting
java.lang.Object
org.orekit.utils.AbstractMultipleShooting
- All Implemented Interfaces:
MultipleShooting
- Direct Known Subclasses:
CR3BPMultipleShooter,MultipleShooter
Multiple shooting method using only constraints on state vectors of patch points (and possibly on epoch and integration time).
- Since:
- 10.2
- Author:
- William Desprats, Alberto Fossà
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractMultipleShooting(List<SpacecraftState> initialGuessList, List<NumericalPropagator> propagatorList, double tolerance, int maxIter, boolean isAutonomous, String additionalName) Simple Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConstraint(int patchIndex, int componentIndex, double constraintValue) Add a constraint on one component of one patch point.compute()Return the list of corrected patch points.protected abstract double[]computeAdditionalConstraints(List<SpacecraftState> propagatedSP) Compute the additional constraints.protected abstract double[][]computeAdditionalJacobianMatrix(List<SpacecraftState> propagatedSP) Compute a part of the Jacobian matrix from additional constraints.protected double[][]computeEpochJacobianMatrix(List<SpacecraftState> propagatedSP) Compute a part of the Jacobian matrix with derivatives from epoch.protected abstract SpacecraftStategetAugmentedInitialState(int i) Compute the additional state from the additionalEquations.Get the map of patch points components which are constrained.protected boolean[]Get the map of free state components.protected intGet the total number of constraints.protected intGet the number of free state components.protected List<SpacecraftState> Get the list of patched spacecraft states.protected SpacecraftStategetPatchPoint(int i) Get a patch point.voidsetEpochFreedom(int patchIndex, boolean isFree) Set the epoch of a patch point to free or not.voidsetPatchPointComponentFreedom(int patchIndex, int componentIndex, boolean isFree) Set a component of a patch point to free or not.voidsetScaleLength(double scaleLength) Set the scale length.voidsetScaleTime(double scaleTime) Set the scale time.protected voidupdateAdditionalConstraints(int startIndex, double[] fxAdditional) Update the array of additional constraints.
-
Constructor Details
-
AbstractMultipleShooting
protected AbstractMultipleShooting(List<SpacecraftState> initialGuessList, List<NumericalPropagator> propagatorList, double tolerance, int maxIter, boolean isAutonomous, String additionalName) Simple Constructor.Standard constructor for multiple shooting
- Parameters:
initialGuessList- initial patch points to be correctedpropagatorList- list of propagators associated to each patch pointtolerance- convergence tolerance on the constraint vectormaxIter- maximum number of iterationsisAutonomous- true if the dynamical system is autonomous (i.e. not dependent on the epoch)additionalName- name of the additional equations- Since:
- 11.1
-
-
Method Details
-
getPatchPoint
Get a patch point.- Parameters:
i- index of the patch point- Returns:
- state of the patch point
- Since:
- 11.1
-
setPatchPointComponentFreedom
public void setPatchPointComponentFreedom(int patchIndex, int componentIndex, boolean isFree) Set a component of a patch point to free or not.- Parameters:
patchIndex- Patch point index (zero-based)componentIndex- Index of the component to be constrained (zero-based)isFree- constraint value
-
setEpochFreedom
public void setEpochFreedom(int patchIndex, boolean isFree) Set the epoch of a patch point to free or not.- Parameters:
patchIndex- Patch point index (zero-based)isFree- constraint value
-
setScaleTime
public void setScaleTime(double scaleTime) Set the scale time.- Parameters:
scaleTime- scale time in seconds
-
setScaleLength
public void setScaleLength(double scaleLength) Set the scale length.- Parameters:
scaleLength- scale length in meters
-
addConstraint
public void addConstraint(int patchIndex, int componentIndex, double constraintValue) Add a constraint on one component of one patch point.- Parameters:
patchIndex- Patch point index (zero-based)componentIndex- Index of the component which is constrained (zero-based)constraintValue- constraint value
-
compute
Return the list of corrected patch points. An optimizer is better suited for this problem- Specified by:
computein interfaceMultipleShooting- Returns:
- patchedSpacecraftStates patchedSpacecraftStates
-
computeEpochJacobianMatrix
Compute a part of the Jacobian matrix with derivatives from epoch. The CR3BP is a time invariant problem. The derivatives w.r.t. epoch are zero.- Parameters:
propagatedSP- propagatedSP- Returns:
- jacobianMatrix Jacobian sub-matrix
-
updateAdditionalConstraints
protected void updateAdditionalConstraints(int startIndex, double[] fxAdditional) Update the array of additional constraints.- Parameters:
startIndex- start indexfxAdditional- array of additional constraints
-
computeAdditionalConstraints
Compute the additional constraints.- Parameters:
propagatedSP- propagated SpacecraftState- Returns:
- fxAdditional additional constraints
-
computeAdditionalJacobianMatrix
Compute a part of the Jacobian matrix from additional constraints.- Parameters:
propagatedSP- propagatedSP- Returns:
- jacobianMatrix Jacobian sub-matrix
-
getAugmentedInitialState
Compute the additional state from the additionalEquations.- Parameters:
i- index of the state- Returns:
- augmentedSP SpacecraftState with the additional state within.
- Since:
- 11.1
-
getNumberOfFreeComponents
protected int getNumberOfFreeComponents()Get the number of free state components.- Returns:
- number of free components
-
getNumberOfConstraints
protected int getNumberOfConstraints()Get the total number of constraints.- Returns:
- the total number of constraints
-
getFreeCompsMap
protected boolean[] getFreeCompsMap()Get the map of free state components.- Returns:
- map of free state components
-
getConstraintsMap
Get the map of patch points components which are constrained.- Returns:
- a map of patch points components which are constrained
-
getPatchedSpacecraftState
Get the list of patched spacecraft states.- Returns:
- a list of patched spacecraft states
-