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:
-
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
-
KeplerianOrbit()