keplerianOrbit

class KeplerianOrbit
#include <keplerianOrbit.h>

The KeplerianOrbit class represents an elliptical orbit and provides a coherent set of common outputs such as position and velocity, orbital period, semi-parameter, etc. It uses the utility orbitalMotion to do orbital element to position and velocity conversion.

Public Functions

KeplerianOrbit()

This constructor initialized to an arbitrary orbit

KeplerianOrbit(classicElements oe, GravBodyData *planet)

The constructor requires orbital elements and a planet

KeplerianOrbit(const KeplerianOrbit &orig)

The copy constructor works with python copy

~KeplerianOrbit()

Generic Destructor

Eigen::Vector3d r_BP_P()
Eigen::Vector3d v_BP_P()
Eigen::Vector3d h_BP_P()
double M()
double n()
double P()
double f()
double fDot()
double RAAN()
double omega()
double i()
double e()
double a()
double h()
double Energy()
double r()
double v()
double r_a()
double r_p()
double fpa()
double E()
double p()
double rDot()
double c3()
classicElements oe()

This method returns the orbital element set for the orbit

Return

classicElements oe

void set_planet(GravBodyData *plt)

This method sets the planet being orbited

void set_a(double a)
void set_e(double e)
void set_i(double i)
void set_omega(double omega)
void set_RAAN(double RAAN)
void set_f(double f)

Private Functions

void change_orbit()

This method populates all outputs from orbital elements coherently if any of the classical orbital elements are changed

void change_f()

This method only changes the outputs dependent on true anomaly so that one orbit may be queried at various points along the orbit

Private Members

GravBodyData *planet
double mu
double semi_major_axis
double eccentricity
double inclination
double argument_of_periapsis
double right_ascension
double true_anomaly
double true_anomaly_rate
double orbital_period
double orbital_energy
double v_infinity
double orbit_radius
double radial_rate
double r_apogee
double r_perigee
double semi_parameter
double flight_path_angle
double eccentric_anomaly
double mean_motion
double mean_anomaly
Eigen::Vector3d orbital_angular_momentum_P
Eigen::Vector3d position_BP_P
Eigen::Vector3d velocity_BP_P