Module: planetEphemeris

The planetEphemeris module uses classical heliocentric orbit elements to specify a planet’s position and velocity vectors.

Optionally, the planet’s orientation can also be specified through a right ascension angle, a declination angle, and a location sidereal time at epoch. The planet rotation about its third (polar) axis can be specified as well. If the planet attitude information is not complete or missing then an inertially fixed zero planet orientation is modeled. The module is able to receive a stack or vector of classical orbit elements and orientation information to output a series of planet ephemeris messages. The module PDF Description contains further information on this module’s function, how to run it, as well as testing.


class PlanetEphemeris : public SysModel

Public Functions

PlanetEphemeris()

This constructor initializes the variables.

~PlanetEphemeris()

Module deconstructor

void SelfInit()

This method initializes the object.

Return

void

void Reset(uint64_t CurrentSimNanos)
void UpdateState(uint64_t CurrentSimNanos)

This update routine loops over all the planets and creates their heliocentric position and velocity vectors at the current time. If the planet orientation information is provided, then this is computed as well. The default orientation information is a zero orientation.

Return

void

Parameters
  • CurrentSimNanos: The current clock time for the simulation

Public Members

uint64_t outputBufferCount

Number of output buffers to use

std::vector<std::string> planetNames

Array of planet names

std::vector<classicElements> planetElements

Array of planet classical orbit elements

std::vector<double> rightAscension

[r] right ascension of the north pole rotation axis (3-axis)

std::vector<double> declination

[r] Declination of the north pole rotation axis (neg. 2-axis)

std::vector<double> lst0

[r] initial planet local sidereal time angle

std::vector<double> rotRate

[r/s] planet rotation rate

BSKLogger bskLogger

BSK Logging

Private Members

std::vector<std::uint64_t> planetOutMsgId

array of output message IDs

double epochTime

[s] time of provided planet ephemeris epoch

int computeAttitudeFlag

flag indicating if the planet orienation information is provided

std::vector<Eigen::Vector3d> eHat_N

planet north pole rotation axis