Module: oeStateEphem¶
This module takes the TDB time, current object time and computes the state of the object using the time corrected by TDB and the stored Chebyshev coefficients.
If the time provided is outside the specified range for which the stored Chebyshev coefficients are valid then the position vectors rail high/low appropriately. More information can be found in the
PDF Description
.
Functions
-
void
SelfInit_oeStateEphem
(OEStateEphemData *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 modelmoduleID
: The module identification integer
-
void
CrossInit_oeStateEphem
(OEStateEphemData *configData, int64_t moduleID)¶ This method initializes the input time correlation factor structure
- Return
void
- Parameters
configData
: The configuration data associated with the ephemeris modelmoduleID
: The module identification integer
-
void
Update_oeStateEphem
(OEStateEphemData *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)moduleID
: The module identification integer
-
void
Reset_oeStateEphem
(OEStateEphemData *configData, uint64_t callTime, int64_t moduleID)¶ This Reset method is empty
- Return
void
- Parameters
configData
: The configuration data associated with the ephemeris modelcallTime
: The clock time at which the function was called (nanoseconds)moduleID
: The module identification integer
-
struct
ChebyOERecord
¶ - #include <oeStateEphem.h>
Structure that defines the layout of an Ephemeris “record.” This is basically the set of coefficients for the ephemeris elements 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
rPeriapCoeff
[MAX_OE_COEFF
]¶ [-] Set of chebyshev coefficients for radius at periapses
-
double
eccCoeff
[MAX_OE_COEFF
]¶ [-] Set of chebyshev coefficients for eccentrity
-
double
incCoeff
[MAX_OE_COEFF
]¶ [-] Set of chebyshev coefficients for inclination
-
double
argPerCoeff
[MAX_OE_COEFF
]¶ [-] Set of chebyshev coefficients for argument of periapses
-
double
RAANCoeff
[MAX_OE_COEFF
]¶ [-] Set of chebyshev coefficients for right ascention of the ascending node
-
double
anomCoeff
[MAX_OE_COEFF
]¶ [-] Set of chebyshev coefficients for true anomaly angle
-
uint32_t
anomalyFlag
¶ [-] Flag indicating if the anomaly angle is true (0), mean (1)
-
uint32_t
-
struct
OEStateEphemData
¶ - #include <oeStateEphem.h>
Top level structure for the Chebyshev position ephemeris fit system. Allows the user to specify a set of chebyshev coefficients and then use the input time to determine where a given body is in space.
Public Members
-
char
stateFitOutMsgName
[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.
-
double
muCentral
¶ [m3/s^2] Gravitational parameter for center of orbital elements
-
ChebyOERecord
ephArray
[MAX_OE_RECORDS
]¶ [-] Array of Chebyshev records for ephemeris
-
int32_t
stateFitOutMsgId
¶ [-] 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
-
char