public abstract class AbstractMultipleShooting extends Object implements MultipleShooting
Modifier | Constructor and Description |
---|---|
protected |
AbstractMultipleShooting(List<SpacecraftState> initialGuessList,
List<NumericalPropagator> propagatorList,
List<AdditionalEquations> additionalEquations,
double arcDuration,
double tolerance,
String additionalName)
Simple Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addConstraint(int patchNumber,
int componentIndex,
double constraintValue)
Add a constraint on one component of one patch point.
|
List<SpacecraftState> |
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 SpacecraftState |
getAugmentedInitialState(SpacecraftState initialState,
AdditionalEquations additionalEquations2)
Compute the additional state from the additionalEquations.
|
protected Map<Integer,Double> |
getConstraintsMap()
Get the map of patch points components which are constrained.
|
protected boolean[] |
getFreeEpochMap()
Get the flags representing the free epoch of patch points.
|
protected boolean[] |
getFreePatchPointMap()
Get the flags representing the free components of patch points.
|
protected int |
getNumberOfConstraints()
Get the number of constraints.
|
protected int |
getNumberOfFreeEpoch()
Get the number of free epoch.
|
protected int |
getNumberOfFreeVariables()
Get the number of free variables.
|
protected List<SpacecraftState> |
getPatchedSpacecraftState()
Get the list of patched spacecraft states.
|
protected List<NumericalPropagator> |
getPropagatorList()
Get the list of propagators.
|
protected boolean |
isClosedOrbit()
Get he flag representing if the orbit is closed.
|
void |
setClosedOrbitConstraint(boolean isClosed)
Set the constraint of a closed orbit or not.
|
void |
setEpochFreedom(int patchNumber,
boolean isFree)
Set the epoch a patch point to free or not.
|
void |
setPatchPointComponentFreedom(int patchNumber,
int componentIndex,
boolean isFree)
Set a component of a patch point to free or not.
|
protected void |
updateAdditionalConstraints(int startIndex,
double[] fxAdditional)
Update the array of additional constraints.
|
protected AbstractMultipleShooting(List<SpacecraftState> initialGuessList, List<NumericalPropagator> propagatorList, List<AdditionalEquations> additionalEquations, double arcDuration, double tolerance, String additionalName)
Standard constructor for multiple shooting
initialGuessList
- initial patch points to be corrected.propagatorList
- list of propagators associated to each patch point.additionalEquations
- list of additional equations linked to propagatorList.arcDuration
- initial guess of the duration of each arc.tolerance
- convergence tolerance on the constraint vector.additionalName
- name of the additional equationspublic void setPatchPointComponentFreedom(int patchNumber, int componentIndex, boolean isFree)
patchNumber
- Patch point with constraintcomponentIndex
- Component of the patch points which are constrained.isFree
- constraint valuepublic void addConstraint(int patchNumber, int componentIndex, double constraintValue)
patchNumber
- Patch point with constraintcomponentIndex
- Component of the patch points which are constrained.constraintValue
- constraint valuepublic void setEpochFreedom(int patchNumber, boolean isFree)
patchNumber
- Patch pointisFree
- constraint valuepublic List<SpacecraftState> compute()
compute
in interface MultipleShooting
protected double[][] computeEpochJacobianMatrix(List<SpacecraftState> propagatedSP)
propagatedSP
- propagatedSPprotected void updateAdditionalConstraints(int startIndex, double[] fxAdditional)
startIndex
- start indexfxAdditional
- array of additional constraintsprotected abstract double[] computeAdditionalConstraints(List<SpacecraftState> propagatedSP)
propagatedSP
- propagated SpacecraftStateprotected abstract double[][] computeAdditionalJacobianMatrix(List<SpacecraftState> propagatedSP)
propagatedSP
- propagatedSPprotected abstract SpacecraftState getAugmentedInitialState(SpacecraftState initialState, AdditionalEquations additionalEquations2)
initialState
- SpacecraftState without the additional stateadditionalEquations2
- Additional Equations.public void setClosedOrbitConstraint(boolean isClosed)
isClosed
- true if orbit should be closedprotected int getNumberOfFreeVariables()
protected int getNumberOfFreeEpoch()
protected int getNumberOfConstraints()
protected boolean[] getFreePatchPointMap()
protected boolean[] getFreeEpochMap()
protected Map<Integer,Double> getConstraintsMap()
protected List<SpacecraftState> getPatchedSpacecraftState()
protected List<NumericalPropagator> getPropagatorList()
protected boolean isClosedOrbit()
Copyright © 2002-2020 CS GROUP. All rights reserved.