pub struct FlightSummary {Show 17 fields
pub termination: Termination,
pub launch_height_m: Option<f64>,
pub rail_exit_speed_m_s: Option<Peak>,
pub apogee: Option<Apogee>,
pub max_speed_m_s: Option<Peak>,
pub max_mach: Option<Peak>,
pub max_dynamic_pressure_pa: Option<Peak>,
pub max_acceleration_m_s2: Option<Peak>,
pub max_descent_acceleration_m_s2: Option<Peak>,
pub min_static_margin_cal: Option<Peak>,
pub min_flight_margin_cal: Option<Peak>,
pub min_powered_static_margin_cal: Option<Peak>,
pub max_powered_moment_slope_per_rad: Option<Peak>,
pub rail_exit_stability: Option<Stability>,
pub max_angle_of_attack_rad: Option<Peak>,
pub landing: Option<Landing>,
pub body_landings: Vec<Landing>,
}Expand description
The metrics of one flight. Every field that may not have happened is an Option.
Fields§
§termination: TerminationWhy the flight ended.
launch_height_m: Option<f64>The center of mass’s height above the launch site as the rocket stood at launch, m. None
for a flight started in the air (Simulation::run_free).
rail_exit_speed_m_s: Option<Peak>The speed as the last rail guide left the rail, m/s, with its time and height.
apogee: Option<Apogee>The apogee of the center of mass. A stack that comes apart at a separation before its
apogee (Termination::Separated) has the apogee of the part that keeps the nose, body 0;
one that comes apart at an ejection (crate::Ejection) has none.
max_speed_m_s: Option<Peak>The largest speed of the center of mass relative to the ground after liftoff, m/s.
max_mach: Option<Peak>The largest Mach number after liftoff.
max_dynamic_pressure_pa: Option<Peak>The largest dynamic pressure after liftoff (“max q”), Pa.
max_acceleration_m_s2: Option<Peak>The largest acceleration of the nose tip (the body origin) relative to the launch frame from liftoff until a recovery device opens, m/s²: the boost and the coast, from the equations of motion.
max_descent_acceleration_m_s2: Option<Peak>The largest acceleration under the recovery devices, m/s²: the opening shock, which follows the inflation model, kept apart from the boost’s.
min_static_margin_cal: Option<Peak>The smallest static margin from the rail exit to apogee or the first deployment, calibres, where it is defined, found inside steps as a peak is. After a powered separation the sustainer’s margins count its own diameter.
min_flight_margin_cal: Option<Peak>The smallest flight margin over the same span, calibres, found the same way. RocketPy’s
min_stability_margin takes its least over the whole flight, so it can differ.
min_powered_static_margin_cal: Option<Peak>The smallest static margin over the same span while a motor burns, calibres, found the
same way: below zero, the rocket is unstable under power
(EnvelopeFlag::UnstableUnderPower; #335). A step counts when the thrust at its
middle is positive. Every ignition, thrust-curve knot and burnout ends a step, so a motor’s
thrust then holds through the step, and a step that ends at a burnout counts up to that
instant. A NaN margin at a step’s start, middle or end while a motor burns is kept, and
then nothing replaces it, so it can’t hide the flag; a NaN thrust counts as burning. None
when no motor burns in the span, the margin is nowhere defined while one does, and in a
summary written before this field was.
max_powered_moment_slope_per_rad: Option<Peak>The largest static pitch-moment slope C_mα per radian
(Margin::pitch_moment_slope_per_rad, C_mα = −(Σ C_Nα,i x_i − C_Nα x_cg) / d) over the
same span while a motor burns, taken only at instants where the static margin is
undefined: above zero, the air turns the rocket away from its path, so it is unstable under
power although hpr can give no margin (EnvelopeFlag::UnstableWithoutMargin). The
margin is undefined where the net normal-force slope is not positive, or is too small
against Σ |C_Nα,i| for the quotient to mean anything (MARGIN_CONDITION_LIMIT); the
moment slope stays finite there and still says which way the air turns the rocket.
Taken at the start, middle and end of each step where a motor burns, counted as for
min_powered_static_margin_cal, not searched
between. A NaN slope is kept, and then nothing replaces it. None when the margin is
defined at every such instant, no motor burns in the span, and in a summary written
before this field was.
rail_exit_stability: Option<Stability>The stability as the last rail guide left the rail.
max_angle_of_attack_rad: Option<Peak>The largest angle of attack more than HIGH_ANGLE_GRACE_S after the rail exit (or the
start of a flight begun in the air), until apogee or the first deployment, rad. Only
instants where a 15° angle would give a normal force of at least
HIGH_ANGLE_MIN_FORCE_SHARE of the rocket’s weight count: as the path turns over near
apogee the angle swings past 15° on an ordinary flight, with too little air to move it (the envelope flags’ decision
record). Taken at each step’s start, middle and end, not searched between.
None when no instant counted, and in a summary written before this field was.
landing: Option<Landing>Where the flight itself landed: the stack, or after a powered separation the sustainer.
body_landings: Vec<Landing>Where each separated body landed, in body order; a body that didn’t land is left out.
Implementations§
Source§impl FlightSummary
impl FlightSummary
Sourcepub fn envelope_flags(&self) -> Vec<EnvelopeFlag>
pub fn envelope_flags(&self) -> Vec<EnvelopeFlag>
The operating envelope’s flags this flight raises, in EnvelopeFlag’s order.
Sourcepub fn ground_hit_speed_m_s(&self) -> Option<f64>
pub fn ground_hit_speed_m_s(&self) -> Option<f64>
The flight’s own ground-hit speed, m/s, if it landed.
Sourcepub fn nose_landing(&self) -> Option<&Landing>
pub fn nose_landing(&self) -> Option<&Landing>
Where the part that keeps the nose landed, as Self::apogee is its apogee: the
flight’s own landing (Self::landing), or, after the stack comes apart with nothing
left to burn (Termination::Separated, which leaves Self::landing empty), part 0’s
from Self::body_landings.
Trait Implementations§
Source§impl Clone for FlightSummary
impl Clone for FlightSummary
Source§fn clone(&self) -> FlightSummary
fn clone(&self) -> FlightSummary
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FlightSummary
impl Debug for FlightSummary
Source§impl<'de> Deserialize<'de> for FlightSummary
impl<'de> Deserialize<'de> for FlightSummary
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for FlightSummary
impl PartialEq for FlightSummary
Source§fn eq(&self, other: &FlightSummary) -> bool
fn eq(&self, other: &FlightSummary) -> bool
self and other values to be equal, and is used by ==.