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, const double mu)

The constructor requires orbital elements and a gravitational constant value

KeplerianOrbit(const KeplerianOrbit &orig)

The copy constructor works with python copy

~KeplerianOrbit()

Generic Destructor

Eigen::Vector3d r_BP_P() const

body position vector relative to planet

body position vector relative to planet

Eigen::Vector3d v_BP_P() const

body velocity vector relative to planet

body velocity vector relative to planet

Eigen::Vector3d h_BP_P() const

angular momentum of body relative to planet

angular momentum of body relative to planet

double M() const

return mean anomaly angle

double n() const

return mean orbit rate

double P() const

return mean orbit rate

return orbit period

double f() const

return orbital period

return true anomaly

double fDot() const

return true anomaly

return true anomaly rate

double RAAN() const

return right ascencion of the ascending node

double omega() const

return argument of periapses

double i() const

return inclination angle

double e() const

return eccentricty

double a() const

return semi-major axis

double h() const

return orbital angular momentum magnitude

double Energy()

return orbital energy

double r() const

return orbit radius

double v() const

return velocity magnitude

double r_a() const

return radius at apoapses

double r_p() const

return radius at periapses

double fpa() const

return flight path angle

double E() const

return eccentric anomaly angle

double p() const

return semi-latus rectum or the parameter

double rDot() const

return radius rate

double c3() const

return escape velocity

ClassicElements oe()

This method returns the orbital element set for the orbit

Returns:

ClassicElements oe

void set_mu(const double mu)

This method sets the gravitational constants of the body being orbited

void set_a(double a)

set semi-major axis

void set_e(double e)

set eccentricity

void set_i(double i)

set inclination angle

void set_omega(double omega)

set argument of periapsis

void set_RAAN(double RAAN)

set right ascension of the ascending node

void set_f(double f)

set true anomaly angle

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

double mu = MU_EARTH * pow(10, 9)
double semi_major_axis = 1E5 * 1000
double eccentricity = 1E-5
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