public class EpochDerivativesEquations extends Object implements AdditionalDerivativesProvider, AdditionalEquations
AbsolutePartialDerivativesEquations
The computation of the derivatives of the acceleration due to a ThirdBodyAttraction
has been added.
Provider
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.
The partial derivatives with respect to initial state can be either dimension 6 (orbit only) or 7 (orbit and mass).
The partial derivatives with respect to force models parameters has a dimension
equal to the number of selected parameters. Parameters selection is implemented at
force models
level. Users must retrieve a parameter driver
using ForceModel.getParameterDriver(String)
and then
select it by calling setSelected(true)
.
If several force models provide different drivers
for the
same parameter name, selecting any of these drivers has the side effect of
selecting all the drivers for this shared parameter. In this case, the partial
derivatives will be the sum of the partial derivatives contributed by the
corresponding force models. This case typically arises for central attraction
coefficient, which has an influence on Newtonian attraction
, gravity field
, and relativity
.
Constructor and Description |
---|
EpochDerivativesEquations(String name,
NumericalPropagator propagator)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
CombinedDerivatives |
combinedDerivatives(SpacecraftState s)
Compute the derivatives related to the additional state (and optionally main state increments).
|
double[] |
computeDerivatives(SpacecraftState s,
double[] pDot)
Compute the derivatives related to the additional state parameters.
|
double[] |
derivatives(SpacecraftState state)
Deprecated.
|
int |
getDimension()
Get the dimension of the generated derivative.
|
AbsoluteJacobiansMapper |
getMapper()
Get a mapper between two-dimensional Jacobians and one-dimensional additional state.
|
String |
getName()
Get the name of the additional derivatives (which will become state once integrated).
|
ParameterDriversList |
getSelectedParameters()
Get the selected parameters, in Jacobian matrix column order.
|
void |
init(SpacecraftState initialState,
AbsoluteDate target)
Initialize the generator at the start of propagation.
|
SpacecraftState |
setInitialJacobians(SpacecraftState s0)
Set the initial value of the Jacobian with respect to state and parameter.
|
SpacecraftState |
setInitialJacobians(SpacecraftState s1,
double[][] dY1dY0,
double[][] dY1dP)
Set the initial value of the Jacobian with respect to state and parameter.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
yield
public EpochDerivativesEquations(String name, NumericalPropagator propagator)
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 propagationpublic String getName()
getName
in interface AdditionalDerivativesProvider
getName
in interface AdditionalEquations
public int getDimension()
getDimension
in interface AdditionalDerivativesProvider
public ParameterDriversList getSelectedParameters()
The force models parameters for which partial derivatives are desired,
must have been selected
before this method is called, so the proper list is returned.
public SpacecraftState setInitialJacobians(SpacecraftState s0)
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 force models parameters for which partial derivatives are desired,
must have been selected
before this method is called, so proper matrices dimensions are used.
s0
- initial stategetSelectedParameters()
public SpacecraftState setInitialJacobians(SpacecraftState s1, double[][] dY1dY0, double[][] dY1dP)
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).
The force models parameters for which partial derivatives are desired,
must have been selected
before this method is called, and the dY1dP
matrix dimension must
be consistent with the selection.
s1
- current statedY1dY0
- Jacobian of current state at time t₁ with respect
to state at some previous time t₀ (must be 6x6)dY1dP
- Jacobian of current state at time t₁ with respect
to parameters (may be null if no parameters are selected)getSelectedParameters()
public AbsoluteJacobiansMapper getMapper()
setInitialJacobians(SpacecraftState)
,
setInitialJacobians(SpacecraftState, double[][], double[][])
public void init(SpacecraftState initialState, AbsoluteDate target)
init
in interface AdditionalDerivativesProvider
init
in interface AdditionalEquations
initialState
- initial state information at the start of propagationtarget
- date of propagationpublic double[] computeDerivatives(SpacecraftState s, double[] pDot)
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 put@Deprecated public double[] derivatives(SpacecraftState state)
derivatives
in interface AdditionalDerivativesProvider
state
- current state information: date, kinematics, attitude, and
additional states this equations depend on (according to the
yield
method)public CombinedDerivatives combinedDerivatives(SpacecraftState s)
As of 11.2, there is a default implementation that calls the deprecated
AdditionalDerivativesProvider.derivatives(SpacecraftState)
method. This has been done for
backward compatibility only and will be removed in 12.0.
combinedDerivatives
in interface AdditionalDerivativesProvider
s
- current state information: date, kinematics, attitude, and
additional states this equations depend on (according to the
yield
method)Copyright © 2002-2023 CS GROUP. All rights reserved.