public final class GravityToolbox extends Object
Modifier and Type | Method and Description |
---|---|
static Vector3D |
computeBalminoAcceleration(Vector3D positionInBodyFrame,
double[][] coefficientsC,
double[][] coefficientsS,
double muc,
double eqRadius,
int degree,
int order,
HelmholtzPolynomial helm)
Method to compute the acceleration, from Balmino algorithm (see
BalminoGravityModel ). |
static Vector3D |
computeCunninghamAcceleration(Vector3D positionInBodyFrame,
double equatorialRadius,
double[][] coefC,
double[][] coefS,
int degree,
int order,
double mu)
Method to compute the acceleration.
|
static double[][] |
computeDAccDPos(Vector3D positionInBodyFrame,
double equatorialRadius,
double mu,
double[][] c,
double[][] s)
Compute the partial derivatives of the acceleration (Cunningham algorithm) with respect to the position.
|
static Vector3D |
computeDrozinerAcceleration(Vector3D positionInBodyFrame,
double[][] coefficientsC,
double[][] coefficientsS,
double muc,
double eqRadius,
double threshold,
int degree,
int order)
Method to compute the acceleration, from Droziner algorithm (see
DrozinerGravityModel ). |
static double[][] |
deNormalize(double[][] tab)
Denormalize an array of coefficients.
|
static double[][] |
normalize(double[][] tab)
Normalize an array of coefficients.
|
static double[][] |
unNormalize(double[][] normalized)
Unnormalize a coefficients array.
|
public static Vector3D computeBalminoAcceleration(Vector3D positionInBodyFrame, double[][] coefficientsC, double[][] coefficientsS, double muc, double eqRadius, int degree, int order, HelmholtzPolynomial helm)
BalminoGravityModel
).positionInBodyFrame
- Position of the spacecraft in the body framecoefficientsC
- array of "C" coeffscoefficientsS
- array of "S" coeffsmuc
- Central body attraction coefficienteqRadius
- Reference equatorial radius of the potentialdegree
- Number of zonal coefficientsorder
- Number of tesseral coefficientshelm
- Helmholtz polynomialpublic static Vector3D computeDrozinerAcceleration(Vector3D positionInBodyFrame, double[][] coefficientsC, double[][] coefficientsS, double muc, double eqRadius, double threshold, int degree, int order) throws PatriusException
DrozinerGravityModel
).positionInBodyFrame
- Position of the spacecraft in the body framecoefficientsC
- array of "C" coeffscoefficientsS
- array of "S" coeffsmuc
- Central body attraction coefficienteqRadius
- Reference equatorial radius of the potentialthreshold
- thresholddegree
- Number of zonal coefficientsorder
- Number of tesseral coefficientsPatriusException
- if an Orekit error occurspublic static Vector3D computeCunninghamAcceleration(Vector3D positionInBodyFrame, double equatorialRadius, double[][] coefC, double[][] coefS, int degree, int order, double mu)
Method to compute the acceleration. This method has been implemented in order to validate the force model only. The reason is that for the validation context, we do not want to set up an instance of the SpacecraftState object to avoid the inertial frame of the spacecraft orbit.
Method taken fromCunninghamGravityModel
positionInBodyFrame
- Position of the spacecraft in the body frameequatorialRadius
- equatorial radius of earthcoefC
- C coefficients arraycoefS
- S coefficients arraydegree
- degreeorder
- ordermu
- gravitation constantCunninghamGravityModel
public static double[][] deNormalize(double[][] tab)
tab
- normalized coefficients arraypublic static double[][] normalize(double[][] tab)
tab
- normalized coefficients arraypublic static double[][] unNormalize(double[][] normalized)
normalized
- normalized coefficients arraypublic static double[][] computeDAccDPos(Vector3D positionInBodyFrame, double equatorialRadius, double mu, double[][] c, double[][] s)
positionInBodyFrame
- Position of the spacecraft in the body frameequatorialRadius
- equatorial radiusmu
- gravitational parameterc
- C coefficientss
- S coefficientsCopyright © 2023 CNES. All rights reserved.