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
()¶ body position vector relative to planet
body position vector relative to planet
-
Eigen::Vector3d
v_BP_P
()¶ body velocity vector relative to planet
body velocity vector relative to planet
-
Eigen::Vector3d
h_BP_P
()¶ angular momentum of body relative to planet
angular momentum of body relative to planet
-
double
M
()¶ return mean anomaly angle
-
double
n
()¶ return mean orbit rate
-
double
P
()¶ return mean orbit rate
return orbit period
-
double
f
()¶ return orbital period
return true anomaly
-
double
fDot
()¶ return true anomaly
return true anomaly rate
-
double
RAAN
()¶ return right ascencion of the ascending node
-
double
omega
()¶ return argument of periapses
-
double
i
()¶ return inclination angle
-
double
e
()¶ return eccentricty
-
double
a
()¶ return semi-major axis
-
double
h
()¶ return orbital angular momentum magnitude
-
double
Energy
()¶ return orbital energy
-
double
r
()¶ return orbit radius
-
double
v
()¶ return velocity magnitude
-
double
r_a
()¶ return radius at apoapses
-
double
r_p
()¶ return radius at periapses
-
double
fpa
()¶ return flight path angle
-
double
E
()¶ return eccentric anomaly angle
-
double
p
()¶ return semi-latus rectum or the parameter
-
double
rDot
()¶ return radius rate
-
double
c3
()¶ return escape velocity
-
classicElements
oe
()¶ This method returns the orbital element set for the orbit
- Return
-
void
set_planet
(GravBodyData *plt)¶ This method sets the planet 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
-
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
¶
-