Expand description
When a .ork design’s motors light and where its stack comes apart, in the terms hpr’s flight
takes (M1.9c, decision ADR-076).
Ignition. Each motor’s <ignitionevent> and <ignitiondelay> (Ignition) become an
hpr_design::Ignition. OpenRocket’s words are measured by a committed probe (the
.ork format page):
| the file says | hpr lights the motor |
|---|---|
launch plus d | at t = d |
automatic plus d, in the bottom stage | at t = d |
automatic plus d, in a stage above | as ejectioncharge |
ejectioncharge plus d | x + d after the burnout of the stage below’s motor, whose ejection delay is x |
burnout plus d | d after the stage below’s first burnout |
never | never (hpr_design::Ignition::Never) |
burnout or ejectioncharge, in the bottom stage | never: it has no stage below |
ejectioncharge or automatic, the stage below’s motor plugged | never: that fires no charge |
“The stage below” is the next stage aft. Its first burnout is its first motor’s to burn out, by
each motor’s ignition and curve, the first in the file on a tie, as OpenRocket 24.12 flies it
(ADR-172, first_burnout.py’s probe). For a charge its motors must sit in one mount (one tube
or one cluster): which of several fires first is not measured. A motor that never lights is carried
loaded, with no thrust, as OpenRocket 24.12 flies it (M2.2e10), and so is one that
waits on it, which has no burnout or charge to wait on (inferred: no probe chains two). unlit_motors.py sets the booster of OpenRocket’s two-stage example so
that it, or the sustainer waiting on its plugged charge, never lights: OpenRocket lights only
the other motor and loses only that one’s propellant. A configuration is not flown when a
motor waits on a stage below that holds no motor, or on the charge of a stage below with
motors in more than one mount, or of a motor below that states no ejection delay, or has a
negative delay, or when no motor of it lights at all.
Separation. A stage’s <separationevent> says when it drops away from the stage ahead of
it. hpr flies a separation, as a Staging, when its time is known before the flight (a time
after launch, or a motor’s burnout or ejection charge). When the part ahead of it still has a
motor to burn then, burning or due to light, that part is a sustainer, and hpr flies it on
(Staging). The motors of the part that drops away must have burned out by then, but
at a stage’s own burnout (its first) under power: there the stage’s other motors drop still
burning, as in OpenRocket, and the flight leaves their thrust out of the part’s flight as a
point (ADR-172). A motor behind still to light is refused either way.
A separation at its own motor’s burnout or ejection charge, when that motor never lights, never comes, as in the probes, and is left out. One at the ignition of a motor that never lights, or at launch (hpr’s flight fires a separation only once the rocket is off the rod), is not flown.
A separation at apogee or at a height on the way down can only come at or after apogee, so the
climb is the whole stack’s in both programs, as long as every motor is spent by then, and the
separation belongs to the descent, which hpr’s flights of a .ork do not fly yet (the decision
record on reading recovery, ADR-056): it is left out, and the configuration flies
whole. Whether every motor is spent by apogee is known only once flown; cargo xtask ork-flights checks it of every flight it reports. Any other separation with nothing ahead of
it left to burn, such as a payload’s at the booster’s ejection charge, is read when it is the
configuration’s only one: hpr’s flight flies each part from it as a point with its devices’
drag alone (the decision record on separation, ADR-014), so hpr::ork::tumbling
flies it only when the part keeping the nose has a device of its own open from the split
(ADR-165). Beside another separation it is not flown, as each of several must hand
the flight on to a sustainer.
Flying it. A configuration with a Staging is among the design’s rocket configurations,
with each motor’s ignition, but the separation is not part of it: flown without one, the stack
would carry its booster to the ground with the sustainer lit on it. hpr::ork::separation turns
a Staging into the flight’s separation, and the example ork_two_stage in the hpr crate
flies one.
Structs§
- Staging
- A separation a configuration flies: where the stack comes apart and when. It is powered when
the part ahead of it has a motor burning or still to light then (the flight’s test,
hpr_sim::Separation::powered_at), and otherwise the configuration’s only separation.
Enums§
- Staging
Trigger - When a separation fires, in the terms of hpr’s flight triggers
(
hpr_sim::recovery::Trigger, which this crate does not depend on).