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¶
-
double semi_major_axis = 1E5¶
-
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¶
-
KeplerianOrbit()¶