Module: chebyPosEphem¶
This module allows the user to specify a set of Chebyshev coefficients to fit a space ephemeris trajectory. Next the input time is used to determine where a given body is in space.
Functions
-
void
SelfInit_chebyPosEphem
(ChebyPosEphemData *configData, int64_t moduleID)¶ This method creates the output navigation message (translation only) for the ephemeris model
- Return
void
- Parameters
configData
: The configuration data associated with the ephemeris model
-
void
CrossInit_chebyPosEphem
(ChebyPosEphemData *configData, int64_t moduleID)¶ This method initializes the input time correlation factor structure
- Return
void
- Parameters
configData
: The configuration data associated with the ephemeris model
-
void
Update_chebyPosEphem
(ChebyPosEphemData *configData, uint64_t callTime, int64_t moduleID)¶ This method takes the current time and computes the state of the object using that time and the stored Chebyshev coefficients. If the time provided is outside the specified range, the position vectors rail high/low appropriately.
- Return
void
- Parameters
configData
: The configuration data associated with the ephemeris modelcallTime
: The clock time at which the function was called (nanoseconds)
-
void
Reset_chebyPosEphem
(ChebyPosEphemData *configData, uint64_t callTime, int64_t moduleID)¶ This method takes the chebyshev coefficients loaded for the position estimator and computes the coefficients needed to estimate the time derivative of that position vector (velocity).
- Return
void
- Parameters
configData
: The configuration data associated with the ephemeris modelcallTime
: The clock time at which the function was called (nanoseconds)
-
struct
ChebyEphemRecord
¶ - #include <chebyPosEphem.h>
Structure that defines the layout of an Ephemeris “record.” This is basically the set of coefficients for the body x/y/z positions and the time factors associated with those coefficients.
Public Members
-
uint32_t
nChebCoeff
¶ [-] Number chebyshev coefficients loaded into record
-
double
ephemTimeMid
¶ [s] Ephemeris time (TDB) associated with the mid-point of the curve
-
double
ephemTimeRad
¶ [s] “Radius” of time that curve is valid for (half of total range
-
double
posChebyCoeff
[3 *MAX_CHEB_COEFF
]¶ [-] Set of chebyshev coefficients for position
-
double
velChebyCoeff
[3 *MAX_CHEB_COEFF
]¶ [-] Set of coefficients for the velocity estimate
-
uint32_t
-
struct
ChebyPosEphemData
¶ - #include <chebyPosEphem.h>
Top level structure for the Chebyshev position ephemeris fit system. e.
Public Members
-
char
posFitOutMsgName
[MAX_STAT_MSG_LENGTH
]¶ [-] The name of the output navigation message for pos/vel
-
char
clockCorrInMsgName
[MAX_STAT_MSG_LENGTH
]¶ The name of the clock correlation message
-
ChebyEphemRecord
ephArray
[MAX_CHEB_RECORDS
]¶
-
int32_t
posFitOutMsgID
¶ [-] Array of Chebyshev records for ephemeris [-] The ID associated with the outgoing message
-
int32_t
clockCorrInMsgID
¶ [-] The ID associated with the incoming clock correlation
-
uint32_t
coeffSelector
¶ [-] Index in the ephArray that we are currently using
-
EphemerisIntMsg
outputState
¶ [-] The local storage of the outgoing message data
-
char