Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

O_SESSAME::Keplerian Class Reference
[Orbit State Represenations]

#include <Keplerian.h>

Inheritance diagram for O_SESSAME::Keplerian:

Inheritance graph
[legend]
Collaboration diagram for O_SESSAME::Keplerian:

Collaboration graph
[legend]
List of all members.

Detailed Description

Keplerian orbital element representation of the orbital position.

The Keplerian class stores the orbital elements of an orbital position.

Example:

Definition at line 87 of file Keplerian.h.

Public Member Functions

virtual ~Keplerian ()
 Default Deconstructor.
virtual KeplerianNewPointer ()
 Return a pointer to a new instance of a Keplerian orbit state representation type.
virtual KeplerianClone ()
 Return a pointer to a copy of the Keplerian orbit state representation instance.
 Keplerian ()
 Create an initially empty Keplerian orbit state representation.
 Keplerian (const Vector &_Elements)
 Create an initially empty Keplerian orbit state representation.
Keplerian KeplerianCopy ()
 Create a copy of the Keplerian representation.
void SetKeplerianRepresentationMeanAnomaly (const Vector &_OrbitalElements)
 Set the Keplerian representation by a vector representation of Orbital Elements.
void SetKeplerianRepresentationEccentricAnomaly (const Vector &_OrbitalElements)
 Set the Keplerian representation by a vector representation of Orbital Elements.
void SetKeplerianRepresentationTrueAnomaly (const Vector &_OrbitalElements)
 Set the Keplerian representation by a vector representation of Orbital Elements.
void SetPositionVelocity (const Vector &_Position, const Vector &_Velocity)
 Set the Keplerian representation by converting the position and velocity vectors in inertial coordinates (ECI) to Keplerian Orbit Elements. Follows procedure outlined in Analytical Mechanics of Space Systems by Schaub and Junkins (page 409).
void SetPositionVelocity (const Vector &_PositionVelocity)
 Set the Keplerian representation by converting the position and velocity vector given in inertial coordinates.
void SetPositionVelocity (const Vector &_Position, const Vector &_Velocity, const OrbitFrame &_OrbFrame)
 Set the Keplerian representation by converting the position and velocity vectors.
void SetPositionVelocity (const Vector &_PositionVelocity, const OrbitFrame &_OrbFrame)
 Set the Keplerian representation by converting the position and velocity vector.
Vector GetPositionVelocity () const
 Convert the Keplerian orbit representation to position and velocity vectors in the inertial frame.
Vector GetPositionVelocity (const OrbitFrame &_TargetOrbFrame) const
 Convert the Keplerian orbit representation to position and velocity vectors in the specified frame.
void GetPositionVelocity (Vector &_Position, Vector &_Velocity) const
 Return by reference the converted the Keplerian orbit representation to position and velocity vectors in the inertial frame.
void GetPositionVelocity (Vector &_Position, Vector &_Velocity, const OrbitFrame &_TargetOrbFrame) const
 Return by reference the converted Keplerian orbit representation to position and velocity vectors in the specified frame.
Vector GetPositionVelocityPQW () const
 Convert the Keplerian orbit representation to position and velocity vectors in the Perifocal frame (PQW).
double GetEccentricAnomalyFromMeanAnomaly (const double &_MeanAnomaly)
 Solves Kepler's Equation in order to compute eccentric anomaly (E) from mean anomaly (M) and eccentricity (e). Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/.
void GetTrueAnomalyFromEccentricAnomaly (const double &_EccentricAnomaly)
 Calculates true anomaly ($\nu$) from eccentric anomaly (E), semimajor axis (a), and eccentricity (e).
tleStruct ReadTwoLineElementSet (const string &_TwoLineElementSet)
 Parses a two line element set and updates orbital elements, returns a struct of additional information.
double GetEccentricAnomalyFromTrueAnomaly ()
 Determine the Eccentric Anomaly $E$ (rad) from the True Anomaly and Eccentricity.
double GetMeanAnomalyFromEccentricAnomaly ()
 Determine the Mean Anomaly $M$ (-) from the Eccentric Anomaly and Eccentricity.
double GetArgLattitude ()
 Determine the Argument of Lattitude, $\theta$ (rad).
double GetLongPerigee ()
 Determine the Longitude of Perigee, $\Pi$ (rad).
double GetTrueLongitude ()
 Determine the True Longitude, $\ell$ (rad).
double GetSemiParameter () const
 Compute and return the Semiparameter $p$ of the orbit position.
double GetSemimajorAxis () const
 Return the Semimajor Axis $a$ of the orbit position. (km).
double GetEccentricity () const
 Return the Eccentricity $e$ of the orbit position. (-).
double GetInclination () const
 Return the Inclination $i$ of the orbit position. (-).
double GetLongAscNode () const
 Return the Longitude of the Ascending Node $\Omega$ of the orbit position. (rad).
double GetArgPerigee () const
 Return the Argument of Perigee $\omega$ of the orbit position. (rad).
double GetTrueAnomaly () const
 Return the True Anomaly $\nu$ of the orbit position. (rad).
double GetMeanMotion () const
 Return the Mean orbital motion $n$ of the orbit position. (rad/s).
double GetEccentricAnomaly () const
 Return the Eccentric Anomaly $E$ of the orbit position. (rad).
double GetMeanAnomaly () const
 Return the Mean Anomaly $M$ of the orbit position. (-).
virtual void SetState (const Vector &_Elements)
 Set the vector of the representation's state vector.
virtual Vector GetState () const
 Return a vector of the representation's state vector.
virtual void GetState (Vector &_Elements) const
 Return a vector by reference of the representation's state vector.

Private Attributes

Vector m_OrbitalElements
Vector m_OrbitalParameters
tleStruct m_tleData


Constructor & Destructor Documentation

O_SESSAME::Keplerian::~Keplerian  )  [virtual]
 

Default Deconstructor.

Definition at line 17 of file Keplerian.cpp.

O_SESSAME::Keplerian::Keplerian  ) 
 

Create an initially empty Keplerian orbit state representation.

Definition at line 49 of file Keplerian.cpp.

References NUM_KEPLERIAN_ELEMENTS, and NUM_KEPLERIAN_PARAMETERS.

Referenced by Clone(), and NewPointer().

O_SESSAME::Keplerian::Keplerian const Vector _Elements  ) 
 

Create an initially empty Keplerian orbit state representation.

Create a Keplerian orbit state representation from a vector of orbital elements.

Parameters:
_Elements 6-element vector of Keplerian orbital elements [a, e, i, $\Omega$, $\omega$, $\nu$]. (km, -, rad, rad, rad, rad)

Definition at line 62 of file Keplerian.cpp.

References NUM_KEPLERIAN_ELEMENTS, NUM_KEPLERIAN_PARAMETERS, SetKeplerianRepresentationTrueAnomaly(), and O_SESSAME::Vector.


Member Function Documentation

Keplerian * O_SESSAME::Keplerian::Clone  )  [virtual]
 

Return a pointer to a copy of the Keplerian orbit state representation instance.

This is used to request memory for a copy of this instance of Keplerian. It is necessary when attempting to get a pointer from the abstract data type OrbitStateRepresentation and the actual representation type isn't known.

Returns:
a pointer to a copy of the Keplerian object.

Implements O_SESSAME::OrbitStateRepresentation.

Reimplemented in O_SESSAME::OsculatingOrbitalElements.

Definition at line 42 of file Keplerian.cpp.

References Keplerian().

double O_SESSAME::Keplerian::GetArgLattitude  ) 
 

Determine the Argument of Lattitude, $\theta$ (rad).

Equation:

\[\theta = \omega + f \]

Definition at line 267 of file Keplerian.cpp.

References O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, and O_SESSAME::TRUE_ANOMALY.

Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

double O_SESSAME::Keplerian::GetEccentricAnomalyFromMeanAnomaly const double &  _MeanAnomaly  ) 
 

Solves Kepler's Equation in order to compute eccentric anomaly (E) from mean anomaly (M) and eccentricity (e). Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/.

Todo:
Allow user to specify tolerance for numerical convergence.

Todo:
Allow user to specify tolerance for numerical convergence.

Definition at line 463 of file Keplerian.cpp.

References O_SESSAME::ECCENTRICITY, and m_OrbitalElements.

Referenced by ReadTwoLineElementSet(), and SetKeplerianRepresentationMeanAnomaly().

double O_SESSAME::Keplerian::GetEccentricAnomalyFromTrueAnomaly  ) 
 

Determine the Eccentric Anomaly $E$ (rad) from the True Anomaly and Eccentricity.

Equation:

\[E = 2 \arctan{ \sqrt{ \frac{ 1-e }{ 1+e } } \tan{ \frac{f}{2} } }\]

Definition at line 298 of file Keplerian.cpp.

References O_SESSAME::ECCENTRIC_ANOMALY, O_SESSAME::ECCENTRICITY, m_OrbitalElements, m_OrbitalParameters, and O_SESSAME::TRUE_ANOMALY.

Referenced by SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

double O_SESSAME::Keplerian::GetLongPerigee  ) 
 

Determine the Longitude of Perigee, $\Pi$ (rad).

Equation:

\[\theta = \Omega + \omega\]

Definition at line 277 of file Keplerian.cpp.

References O_SESSAME::ARG_PERIGEE, O_SESSAME::LONG_ASC_NODE, O_SESSAME::LONG_PERIGEE, m_OrbitalElements, and m_OrbitalParameters.

Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

double O_SESSAME::Keplerian::GetMeanAnomalyFromEccentricAnomaly  ) 
 

Determine the Mean Anomaly $M$ (-) from the Eccentric Anomaly and Eccentricity.

Equation:

\[M = E - e\sin{E}\]

Definition at line 310 of file Keplerian.cpp.

References O_SESSAME::ECCENTRIC_ANOMALY, O_SESSAME::ECCENTRICITY, m_OrbitalElements, m_OrbitalParameters, and O_SESSAME::MEAN_ANOMALY.

Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

void O_SESSAME::Keplerian::GetPositionVelocity Vector _Position,
Vector _Velocity,
const OrbitFrame _TargetOrbFrame
const
 

Return by reference the converted Keplerian orbit representation to position and velocity vectors in the specified frame.

Parameters:
_Position a Vector through which to return the 3-element position vector. (km)
_Velocity a Vector through which to return the 3-element velocity vector. (km/s)
_TargetOrbFrame the desired reference frame to return the vector components in.

Definition at line 445 of file Keplerian.cpp.

References GetPositionVelocity(), OrbitFrame::GetRotationFromIJK(), and O_SESSAME::Vector.

void O_SESSAME::Keplerian::GetPositionVelocity Vector _position,
Vector _velocity
const [virtual]
 

Return by reference the converted the Keplerian orbit representation to position and velocity vectors in the inertial frame.

required to match the OrbitStateRepresentation abstract class interface.

Parameters:
_Position a Vector through which to return the 3-element position vector in inertial corrdinates. (km)
_Velocity a Vector through which to return the 3-element velocity vector in inertial corrdinates. (km/s)
_TargetOrbFrame the desired reference frame to return the vector components in.

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 430 of file Keplerian.cpp.

References _, GetPositionVelocity(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Vector O_SESSAME::Keplerian::GetPositionVelocity const OrbitFrame _TargetOrbFrame  )  const
 

Convert the Keplerian orbit representation to position and velocity vectors in the specified frame.

Parameters:
_TargetOrbFrame the desired reference frame to return the vector components in.
Returns:
6-element vector of position and velocity vector components in the specified reference frame. [km, km, km, km/s, km/s, km/s]^T

Definition at line 412 of file Keplerian.cpp.

References _, GetPositionVelocity(), OrbitFrame::GetRotationFromIJK(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Vector O_SESSAME::Keplerian::GetPositionVelocity  )  const [virtual]
 

Convert the Keplerian orbit representation to position and velocity vectors in the inertial frame.

Required to match the OrbitStateRepresentation abstract class interface.

Returns:
6-element vector of position and velocity vector components in the inertial reference frame (ECI). [km, km, km, km/s, km/s, km/s]^T

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 371 of file Keplerian.cpp.

References _, GetArgPerigee(), GetInclination(), GetLongAscNode(), GetPositionVelocityPQW(), O_SESSAME::R1(), O_SESSAME::R3(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Referenced by GetPositionVelocity(), and O_SESSAME::TestKeplerian::Keplerian2ECI2Keplerian().

Vector O_SESSAME::Keplerian::GetPositionVelocityPQW  )  const
 

Convert the Keplerian orbit representation to position and velocity vectors in the Perifocal frame (PQW).

This does not match the the OrbitStateRepresentation abstract class interface, but is used to obtain ECI position and velocity.

Returns:
6-element vector of position and velocity vector components in the inertial reference frame (PQW). [km, km, km, km/s, km/s, km/s]^T

Definition at line 394 of file Keplerian.cpp.

References GetEccentricity(), GetSemiParameter(), GetTrueAnomaly(), MU, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Referenced by GetPositionVelocity().

void O_SESSAME::Keplerian::GetState Vector _Elements  )  const [virtual]
 

Return a vector by reference of the representation's state vector.

Warning:
Deprecated - Do Not Use - will be moved internally

Definition at line 815 of file Keplerian.cpp.

References O_SESSAME::Vector.

Vector O_SESSAME::Keplerian::GetState  )  const [virtual]
 

Return a vector of the representation's state vector.

Warning:
Deprecated - Do Not Use - will be moved internally

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 806 of file Keplerian.cpp.

References O_SESSAME::Vector.

void O_SESSAME::Keplerian::GetTrueAnomalyFromEccentricAnomaly const double &  _EccentricAnomaly  ) 
 

Calculates true anomaly ($\nu$) from eccentric anomaly (E), semimajor axis (a), and eccentricity (e).

Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/

Definition at line 497 of file Keplerian.cpp.

References O_SESSAME::ECCENTRICITY, m_OrbitalElements, O_SESSAME::SEMIMAJOR_AXIS, and O_SESSAME::TRUE_ANOMALY.

Referenced by ReadTwoLineElementSet(), SetKeplerianRepresentationEccentricAnomaly(), and SetKeplerianRepresentationMeanAnomaly().

double O_SESSAME::Keplerian::GetTrueLongitude  ) 
 

Determine the True Longitude, $\ell$ (rad).

Equation:

\[\ell = \Omega + \omega + f \]

Definition at line 287 of file Keplerian.cpp.

References O_SESSAME::ARG_PERIGEE, O_SESSAME::LONG_ASC_NODE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::TRUE_ANOMALY, and O_SESSAME::TRUE_LONGITUDE.

Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

Keplerian O_SESSAME::Keplerian::KeplerianCopy  ) 
 

Create a copy of the Keplerian representation.

Definition at line 71 of file Keplerian.cpp.

Referenced by O_SESSAME::OsculatingOrbitalElements::SetMeanOrbitalElements(), and O_SESSAME::OsculatingOrbitalElements::SetOsculatingOrbitalElements().

Keplerian * O_SESSAME::Keplerian::NewPointer  )  [virtual]
 

Return a pointer to a new instance of a Keplerian orbit state representation type.

This is used to request memory for a new instance of a Keplerian. It is necessary when attempting to get a pointer from the abstract data type OrbitStateRepresentation and the actual representation type isn't known.

Returns:
a pointer to a new allocation of memory for the Keplerian object.

Implements O_SESSAME::OrbitStateRepresentation.

Reimplemented in O_SESSAME::OsculatingOrbitalElements.

Definition at line 29 of file Keplerian.cpp.

References Keplerian().

tleStruct O_SESSAME::Keplerian::ReadTwoLineElementSet const string &  _TwoLineElementSet  ) 
 

Parses a two line element set and updates orbital elements, returns a struct of additional information.

Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/

Sample TLEs: COSMOS 2278 1 23087U 94023A 98011.59348139 .00000348 00000-0 21464-3 0 5260 2 23087 71.0176 58.4285 0007185 172.8790 187.2435 14.12274429191907

NOAA 14 1 23455U 94089A 97320.90946019 .00000140 00000-0 10191-3 0 2621 2 23455 99.0090 272.6745 0008546 223.1686 136.8816 14.11711747148495

TLE Definition AAAAAAAAAAAAAAAAAAAAAAAA 1 NNNNNU NNNNNAAA NNNNN.NNNNNNNN +.NNNNNNNN +NNNNN-N +NNNNN-N N NNNNN 2 NNNNN NNN.NNNN NNN.NNNN NNNNNNN NNN.NNNN NNN.NNNN NN.NNNNNNNNNNNNNN Line 0 is a twenty-four character name (to be consistent with the name length in the NORAD SATCAT). Lines 1 and 2 are the standard Two-Line Orbital Element Set Format identical to that used by NORAD and NASA.

Todo:
Error checking for syntactically correct TLEs, including endlines, carriage returns.

Include full year info logic as per the tle standard, wherein 57-99 --> 19__ and 00-56 --> 20__.

verify that RAAN = longitude of the ascending node.

Definition at line 547 of file Keplerian.cpp.

References O_SESSAME::ARG_PERIGEE, O_SESSAME::tleStruct::bstarDrag, O_SESSAME::tleStruct::checksumLine1, O_SESSAME::tleStruct::checksumLine2, O_SESSAME::tleStruct::eccentricAnomaly, O_SESSAME::ECCENTRICITY, O_SESSAME::tleStruct::elementNumber, O_SESSAME::tleStruct::ephemerisType, O_SESSAME::tleStruct::epochDay, O_SESSAME::tleStruct::epochYear, GetEccentricAnomalyFromMeanAnomaly(), GetTrueAnomalyFromEccentricAnomaly(), O_SESSAME::INCLINATION, O_SESSAME::tleStruct::launchNumber, O_SESSAME::tleStruct::launchPiece, O_SESSAME::tleStruct::launchYear, O_SESSAME::LONG_ASC_NODE, m_OrbitalElements, m_tleData, O_SESSAME::tleStruct::meanAnomaly, O_SESSAME::tleStruct::meanMotion, O_SESSAME::tleStruct::meanmotion1stDeriv, O_SESSAME::tleStruct::meanmotion2ndDeriv, MU, PI, O_SESSAME::tleStruct::revolutionNumber, O_SESSAME::tleStruct::satClassification, O_SESSAME::tleStruct::satName, O_SESSAME::tleStruct::satNumber, and O_SESSAME::SEMIMAJOR_AXIS.

void O_SESSAME::Keplerian::SetKeplerianRepresentationEccentricAnomaly const Vector _OrbitalElements  ) 
 

Set the Keplerian representation by a vector representation of Orbital Elements.

Parameters:
_Elements 6-element vector of Keplerian orbital elements [a, e, i, $\Omega$, $\omega$, E]. (km, -, rad, rad, rad, rad)

Definition at line 104 of file Keplerian.cpp.

References _, O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, O_SESSAME::ECCENTRIC_ANOMALY, GetArgLattitude(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::MEAN_ANOMALY, O_SESSAME::SEMIMAJOR_AXIS, O_SESSAME::TRUE_LONGITUDE, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

void O_SESSAME::Keplerian::SetKeplerianRepresentationMeanAnomaly const Vector _OrbitalElements  ) 
 

Set the Keplerian representation by a vector representation of Orbital Elements.

Parameters:
_Elements 6-element vector of Keplerian orbital elements [a, e, i, $\Omega$, $\omega$, M]. (km, -, rad, rad, rad, rad)

Definition at line 131 of file Keplerian.cpp.

References _, O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, O_SESSAME::ECCENTRIC_ANOMALY, GetArgLattitude(), GetEccentricAnomalyFromMeanAnomaly(), GetLongPerigee(), GetTrueAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::MEAN_ANOMALY, O_SESSAME::SEMIMAJOR_AXIS, O_SESSAME::TRUE_LONGITUDE, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Referenced by O_SESSAME::OsculatingOrbitalElements::Mapping().

void O_SESSAME::Keplerian::SetKeplerianRepresentationTrueAnomaly const Vector _OrbitalElements  ) 
 

Set the Keplerian representation by a vector representation of Orbital Elements.

Parameters:
_Elements 6-element vector of Keplerian orbital elements [a, e, i, $\Omega$, $\omega$, $\nu$]. (km, -, rad, rad, rad, rad)

Definition at line 81 of file Keplerian.cpp.

References O_SESSAME::ARG_LATTITUDE, O_SESSAME::ECCENTRIC_ANOMALY, GetArgLattitude(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::MEAN_ANOMALY, O_SESSAME::TRUE_LONGITUDE, and O_SESSAME::Vector.

Referenced by O_SESSAME::TestKeplerian::Check(), Keplerian(), and SetState().

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _PositionVelocity,
const OrbitFrame _OrbFrame
 

Set the Keplerian representation by converting the position and velocity vector.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 6-element vector of position and velocity components. (km, km/s)
_TargetOrbFrame Reference frame that the vector components are in.

Definition at line 357 of file Keplerian.cpp.

References _, SetPositionVelocity(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _Position,
const Vector _Velocity,
const OrbitFrame _OrbFrame
 

Set the Keplerian representation by converting the position and velocity vectors.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 3-element vector of position components. (km)
_Velocity 3-element vector of vector components. (km/s)
_TargetOrbFrame Reference frame that the vector components are in.

Definition at line 341 of file Keplerian.cpp.

References OrbitFrame::GetRotation2IJK(), SetPositionVelocity(), and O_SESSAME::Vector.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _PositionVelocity  )  [virtual]
 

Set the Keplerian representation by converting the position and velocity vector given in inertial coordinates.

required to match the OrbitStateRepresentation abstract class interface.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 6-element vector of position and velocity components in inertial coordinates. (km, km/s)

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 324 of file Keplerian.cpp.

References _, SetPositionVelocity(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _position,
const Vector _velocity
[virtual]
 

Set the Keplerian representation by converting the position and velocity vectors in inertial coordinates (ECI) to Keplerian Orbit Elements. Follows procedure outlined in Analytical Mechanics of Space Systems by Schaub and Junkins (page 409).

Required to match the OrbitStateRepresentation abstract class interface.

Parameters:
_position 3-element vector of position components in inertial coordinates. (km)
_velocity 3-element vector of vector components in inertial coordinates. (km/s)

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 166 of file Keplerian.cpp.

References _, abs, O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, O_SESSAME::crossP(), CAMvectorBase::dot(), O_SESSAME::ECCENTRIC_ANOMALY, O_SESSAME::ECCENTRICITY, GetArgLattitude(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::INCLINATION, O_SESSAME::LONG_ASC_NODE, O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::Matrix, O_SESSAME::MEAN_ANOMALY, MU, O_SESSAME::norm2(), PI, O_SESSAME::SEMIMAJOR_AXIS, O_SESSAME::TRUE_ANOMALY, O_SESSAME::TRUE_LONGITUDE, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Referenced by O_SESSAME::AttitudeState::GetRotation2Orbital(), O_SESSAME::TestKeplerian::Keplerian2ECI2Keplerian(), O_SESSAME::OsculatingOrbitalElements::SetMeanOrbitalElements(), O_SESSAME::OsculatingOrbitalElements::SetOsculatingOrbitalElements(), and SetPositionVelocity().

void O_SESSAME::Keplerian::SetState const Vector _Elements  )  [virtual]
 

Set the vector of the representation's state vector.

Warning:
Deprecated - Do Not Use - will be moved internally

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 794 of file Keplerian.cpp.

References SetKeplerianRepresentationTrueAnomaly(), and O_SESSAME::Vector.


Member Data Documentation

Vector O_SESSAME::Keplerian::m_OrbitalElements [private]
 

6x1 vector of Keplerian orbital elements [a, e, i, $\Omega$, $\omega$, $\nu$ ] (km, -, rad, rad, rad, rad)

Definition at line 204 of file Keplerian.h.

Referenced by GetArgLattitude(), GetEccentricAnomalyFromMeanAnomaly(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueAnomalyFromEccentricAnomaly(), GetTrueLongitude(), ReadTwoLineElementSet(), SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

Vector O_SESSAME::Keplerian::m_OrbitalParameters [private]
 

nx1 vector of Keplerian orbital elements [E, E_o, M, Mo ] (rad, rad, -, - )

Definition at line 207 of file Keplerian.h.

Referenced by GetArgLattitude(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueLongitude(), SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity().

tleStruct O_SESSAME::Keplerian::m_tleData [private]
 

All of the non-orbital element data that's inside of a TLE.

Definition at line 210 of file Keplerian.h.

Referenced by ReadTwoLineElementSet().


The documentation for this class was generated from the following files:
Generated on Wed Sep 5 12:54:48 2007 for DSACSS Operational Code by  doxygen 1.3.9.1