public class BalminoAttractionModel extends JacobiansParameterizable implements ForceModel, GradientModel, AttractionModel
The algorithm implemented in this class has been designed by Balmino Georges (Observatoire Midi-Pyrénées/ Groupe de Recherche de Géodésie Spatiale (GRGS) / Centre National d’Etudes Spatiales (CNES), France) in his 1990 paper: Non-singular formulation of the gravity vector and gravity gradient tensor in spherical harmonics. (Manuscr. Geod., Vol. 15, No. 1, p. 11 - 16, 02/1990). It uses normalized C and S coefficients for greater accuracy.
Warning: using a 0x0 Earth potential model is equivalent to a simple Newtonian attraction. However computation times will be much slower since this case is not particularized and hence conversion from body frame (often ITRF) to integration frame is necessary.
Modifier and Type | Field and Description |
---|---|
static String |
RADIUS
Parameter name for equatorial radius.
|
MU
Constructor and Description |
---|
BalminoAttractionModel(Frame frame,
double ae,
double mu,
double[][] cCoefs,
double[][] sCoefs)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoAttractionModel(Frame frame,
double ae,
double mu,
double[][] cCoefs,
double[][] sCoefs,
int degreePD,
int orderPD)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoAttractionModel(Frame frame,
Parameter ae,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
BalminoAttractionModel(Frame frame,
Parameter ae,
Parameter mu,
double[][] cCoefs,
double[][] sCoefs,
int degreePD,
int orderPD)
Create an instance of a normalized gravity computation model using normalized coefficients.
|
Modifier and Type | Method and Description |
---|---|
void |
addContribution(SpacecraftState state,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
void |
addDAccDParam(SpacecraftState state,
Parameter param,
double[] dAccdParam)
Compute acceleration derivatives with respect to additional parameters.
|
void |
addDAccDState(SpacecraftState state,
double[][] dAccdPos,
double[][] dAccdVel)
Compute acceleration derivatives with respect to state parameters.
|
void |
checkData(AbsoluteDate start,
AbsoluteDate end)
This methods throws an exception if the user did not provide all the required data to perform model call on
provided range [start; end].
|
Vector3D |
computeAcceleration(PVCoordinates pv)
Acceleration in body frame.
|
Vector3D |
computeAcceleration(SpacecraftState state)
Compute the acceleration due to the force.
|
boolean |
computeGradientPosition()
This method returns true if the acceleration partial derivatives with
respect to position have to be computed.
|
boolean |
computeGradientVelocity()
This method returns true if the acceleration partial derivatives with
respect to velocity have to be computed.
|
Frame |
getBodyFrame()
Get the central body frame
|
double[][] |
getC() |
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
double |
getMu()
Get the central attraction coefficient &mu.
|
double[][] |
getS() |
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
addParameter, getParameters, supportsParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameters, supportsParameter
public static final String RADIUS
public BalminoAttractionModel(Frame frame, double ae, double mu, double[][] cCoefs, double[][] sCoefs)
frame
- central body frameae
- equatorial radius constantmu
- standard gravitational constantcCoefs
- Normalized c coefficientssCoefs
- Normalized s coefficientspublic BalminoAttractionModel(Frame frame, double ae, double mu, double[][] cCoefs, double[][] sCoefs, int degreePD, int orderPD)
frame
- central body frameae
- equatorial radius constantmu
- standard gravitational constantcCoefs
- Normalized c coefficients for acceleration computationsCoefs
- Normalized s coefficients for acceleration computationdegreePD
- degree for partial derivativesorderPD
- order for partial derivativespublic BalminoAttractionModel(Frame frame, Parameter ae, Parameter mu, double[][] cCoefs, double[][] sCoefs)
frame
- central body frameae
- parameter storing equatorial radiusmu
- parameter storing standard gravitationalcCoefs
- Normalized c coefficientssCoefs
- Normalized s coefficientspublic BalminoAttractionModel(Frame frame, Parameter ae, Parameter mu, double[][] cCoefs, double[][] sCoefs, int degreePD, int orderPD)
frame
- central body frameae
- parameter storing equatorial radiusmu
- parameter storing standard gravitationalcCoefs
- Normalized c coefficients for acceleration computationsCoefs
- Normalized s coefficients for acceleration computationdegreePD
- degree for partial derivativesorderPD
- order for partial derivativespublic void addContribution(SpacecraftState state, TimeDerivativesEquations adder) throws PatriusException
addContribution
in interface ForceModel
state
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedPatriusException
- if some specific error occurspublic Vector3D computeAcceleration(SpacecraftState state) throws PatriusException
computeAcceleration
in interface ForceModel
state
- current state information: date, kinematics, attitudeSpacecraftState frame
PatriusException
- if some specific error occurspublic final Vector3D computeAcceleration(PVCoordinates pv)
pv
- the PVCoordinates of the spacecraft in the body framepublic EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public final void addDAccDState(SpacecraftState state, double[][] dAccdPos, double[][] dAccdVel) throws PatriusException
addDAccDState
in interface IJacobiansParameterizable
state
- spacecraft statedAccdPos
- acceleration derivatives with respect to positiondAccdVel
- acceleration derivatives with respect to velocityPatriusException
- if derivatives cannot be computedpublic void addDAccDParam(SpacecraftState state, Parameter param, double[] dAccdParam) throws PatriusException
addDAccDParam
in interface IJacobiansParameterizable
state
- spacecraft stateparam
- the parameter with respect to which derivatives are requireddAccdParam
- acceleration derivatives with respect to specified parametersPatriusException
- if derivatives cannot be computedpublic double getMu()
getMu
in interface AttractionModel
public double[][] getC()
public double[][] getS()
public Frame getBodyFrame()
public void checkData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
checkData
in interface ForceModel
start
- range start dateend
- range end datePatriusException
- thrown if some data is missingCopyright © 2020 CNES. All rights reserved.