Module: oeStateEphem

Executive Summary

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.

Message Connection Descriptions

The following table lists all the module input and output messages. The module msg connection is set by the user from python. The msg type contains a link to the message structure definition, while the description provides information on what this message is used for.

../../../../_images/moduleImgOeStateEphem.svg

Figure 1: oeStateEphem() Module I/O Illustration

Module I/O Messages

Msg Variable Name

Msg Type

Description

stateFitOutMsg

EphemerisMsgPayload

output navigation message for pos/vel

clockCorrInMsg

TDBVehicleClockCorrelationMsgPayload

clock correlation input message


Defines

MAX_OE_RECORDS
MAX_OE_COEFF

Functions

void SelfInit_oeStateEphem(OEStateEphemData *configData, int64_t moduleID)

This method creates the output navigation message (translation only) for the ephemeris model

Parameters:
  • configData – The configuration data associated with the ephemeris model

  • moduleID – The module identification integer

Returns:

void

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.

Parameters:
  • configData – The configuration data associated with the ephemeris model

  • callTime – The clock time at which the function was called (nanoseconds)

  • moduleID – The module identification integer

Returns:

void

void Reset_oeStateEphem(OEStateEphemData *configData, uint64_t callTime, int64_t moduleID)

This Reset method is empty

Parameters:
  • configData – The configuration data associated with the ephemeris model

  • callTime – The clock time at which the function was called (nanoseconds)

  • moduleID – The module identification integer

Returns:

void

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)

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

EphemerisMsg_C stateFitOutMsg

[-] output navigation message for pos/vel

TDBVehicleClockCorrelationMsg_C clockCorrInMsg

clock correlation input message

double muCentral

[m3/s^2] Gravitational parameter for center of orbital elements

ChebyOERecord ephArray[MAX_OE_RECORDS]

[-] Array of Chebyshev records for ephemeris

uint32_t coeffSelector

[-] Index in the ephArray that we are currently using

BSKLogger *bskLogger

BSK Logging.