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 |
getMultiplicativeFactor()
Get the force multiplicative factor.
|
double[][] |
getS() |
void |
setMultiplicativeFactor(double coefficient)
Set the multiplicative factor.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameteraddParameter, getParameters, supportsParameterclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetParameters, supportsParameterpublic 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 ForceModelstate - 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 ForceModelstate - current state information: date, kinematics, attitudeSpacecraftState framePatriusException - 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 ForceModelpublic boolean computeGradientPosition()
computeGradientPosition in interface GradientModelpublic boolean computeGradientVelocity()
computeGradientVelocity in interface GradientModelpublic final void addDAccDState(SpacecraftState state, double[][] dAccdPos, double[][] dAccdVel) throws PatriusException
addDAccDState in interface IJacobiansParameterizablestate - 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 IJacobiansParameterizablestate - 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 AttractionModelpublic double[][] getC()
public double[][] getS()
public Frame getBodyFrame()
public void checkData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
checkData in interface ForceModelstart - range start dateend - range end datePatriusException - thrown if some data is missingpublic double getMultiplicativeFactor()
getMultiplicativeFactor in interface AttractionModelpublic void setMultiplicativeFactor(double coefficient)
setMultiplicativeFactor in interface AttractionModelcoefficient - the factor to set.Copyright © 2021 CNES. All rights reserved.