public class PartialDerivativesEquations extends Object implements AdditionalEquations
additional equations
computing the partial derivatives
of the state (orbit) with respect to initial state and force models parameters.
This set of equations are automatically added to a numerical propagator
in order to compute partial derivatives of the orbit along with the orbit itself. This is
useful for example in orbit determination applications.
Constructor and Description |
---|
PartialDerivativesEquations(String name,
NumericalPropagator propagator)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
double[] |
computeDerivatives(SpacecraftState s,
double[] pDot)
Compute the derivatives related to the additional state parameters.
|
List<String> |
getAvailableParameters()
Get the names of the available parameters in the propagator.
|
JacobiansMapper |
getMapper()
Get a mapper between two-dimensional Jacobians and one-dimensional additional state.
|
String |
getName()
Get the name of the additional state.
|
void |
selectParamAndStep(String parameter,
double hP)
Select the parameters to consider for Jacobian processing.
|
void |
selectParameters(String... parameters)
Select the parameters to consider for Jacobian processing.
|
SpacecraftState |
setInitialJacobians(SpacecraftState s1,
double[][] dY1dY0,
double[][] dY1dP)
Set the initial value of the Jacobian with respect to state and parameter.
|
SpacecraftState |
setInitialJacobians(SpacecraftState s0,
int stateDimension,
int paramDimension)
Set the initial value of the Jacobian with respect to state and parameter.
|
public PartialDerivativesEquations(String name, NumericalPropagator propagator) throws OrekitException
Upon construction, this set of equations is automatically added to
the propagator by calling its AbstractIntegratedPropagator.addAdditionalEquations(AdditionalEquations)
method. So
there is no need to call this method explicitly for these equations.
name
- name of the partial derivatives equationspropagator
- the propagator that will handle the orbit propagationOrekitException
- if a set of equations with the same name is already presentpublic String getName()
getName
in interface AdditionalEquations
public List<String> getAvailableParameters()
The names returned depend on the force models set up in the propagator, including the Newtonian attraction from the central body.
public void selectParameters(String... parameters)
Parameters names have to be consistent with some
ForceModel
added elsewhere.
parameters
- parameters to consider for Jacobian processingNumericalPropagator.addForceModel(ForceModel)
,
setInitialJacobians(SpacecraftState, double[][], double[][])
,
ForceModel
,
Parameterizable
public void selectParamAndStep(String parameter, double hP)
Parameters names have to be consistent with some
ForceModel
added elsewhere.
parameter
- parameter to consider for Jacobian processinghP
- step to use for computing Jacobian column with respect to the specified parameterNumericalPropagator.addForceModel(ForceModel)
,
setInitialJacobians(SpacecraftState, double[][], double[][])
,
ForceModel
,
Parameterizable
public SpacecraftState setInitialJacobians(SpacecraftState s0, int stateDimension, int paramDimension) throws OrekitException
This method is equivalent to call setInitialJacobians(SpacecraftState,
double[][], double[][])
with dYdY0 set to the identity matrix and dYdP set
to a zero matrix.
The returned state must be added to the propagator (it is not done automatically, as the user may need to add more states to it).
s0
- initial statestateDimension
- state dimension, must be either 6 for orbit only or 7 for orbit and massparamDimension
- parameters dimensionOrekitException
- if the partial equation has not been registered in
the propagator or if matrices dimensions are incorrectselectedParameters
,
selectParamAndStep(String, double)
public SpacecraftState setInitialJacobians(SpacecraftState s1, double[][] dY1dY0, double[][] dY1dP) throws OrekitException
The returned state must be added to the propagator (it is not done automatically, as the user may need to add more states to it).
s1
- current statedY1dY0
- Jacobian of current state at time t₁ with respect
to state at some previous time t₀ (may be either 6x6 for orbit
only or 7x7 for orbit and mass)dY1dP
- Jacobian of current state at time t₁ with respect
to parameters (may be null if no parameters are selected)OrekitException
- if the partial equation has not been registered in
the propagator or if matrices dimensions are incorrectselectedParameters
,
selectParamAndStep(String, double)
public JacobiansMapper getMapper() throws OrekitException
OrekitException
- if the initial Jacobians have not been initialized yetsetInitialJacobians(SpacecraftState, int, int)
,
setInitialJacobians(SpacecraftState, double[][], double[][])
public double[] computeDerivatives(SpacecraftState s, double[] pDot) throws OrekitException
When this method is called, the spacecraft state contains the main
state (orbit, attitude and mass), all the states provided through
the additional
state providers
registered to the propagator, and the additional state
integrated using this equation. It does not contains any other
states to be integrated alongside during the same propagation.
computeDerivatives
in interface AdditionalEquations
s
- current state information: date, kinematics, attitude, and
additional statepDot
- placeholder where the derivatives of the additional parameters
should be putOrekitException
- if some specific error occursCopyright © 2002-2015 CS Systèmes d'information. All rights reserved.