diff --git a/docs/re/captures/pitch-burst-final.csv b/docs/re/captures/pitch-burst-final.csv new file mode 100644 index 0000000..d9c224a --- /dev/null +++ b/docs/re/captures/pitch-burst-final.csv @@ -0,0 +1,7 @@ +throttle,rep,settled_speed,burst_speed,rate_deg_per_wall_s +min,0,126.5,98.1,100.93 +min,1,130.0,115.5,118.43 +cruise,0,414.3,395.5,101.48 +cruise,1,462.7,381.0,107.22 +max,0,1463.5,1330.5,56.83 +max,1,1496.4,1382.8,61.68 diff --git a/docs/re/captures/roll-burst-final.csv b/docs/re/captures/roll-burst-final.csv new file mode 100644 index 0000000..b89b3af --- /dev/null +++ b/docs/re/captures/roll-burst-final.csv @@ -0,0 +1,7 @@ +throttle,rep,settled_speed,burst_speed,rate_deg_per_wall_s +min,0,103.5,99.3,165.34 +min,1,123.8,91.9,149.72 +cruise,0,434.7,352.0,149.9 +cruise,1,423.1,382.5,150.07 +max,0,1230.6,1258.2,102.76 +max,1,1624.8,1319.1,105.38 diff --git a/docs/re/flight-speed-law.md b/docs/re/flight-speed-law.md index 9a280f6..9916215 100644 --- a/docs/re/flight-speed-law.md +++ b/docs/re/flight-speed-law.md @@ -658,3 +658,47 @@ deg/*game*-second cannot be computed from it, and choosing a ratio that makes th numbers fit would be circular. The probe now takes clock screenshots at both ends so the next run closes it. Data: [`captures/pitch-burst-settled-speeds.csv`](captures/pitch-burst-settled-speeds.csv). + + +## Both axes, three settled speeds: shape โœ…, absolute scale ๐ŸŸก + +Repeat of the burst design with the HUD clock bracketed (01:01.86 โ†’ 02:10.61) and +roll measured in the same flight. Clock โ‰ˆ ร—1.26. + +| axis | min speed | cruise | max speed | min:max | definition ratio | +|---|---|---|---|---|---| +| pitch | 87.0 ยฐ/game-s @ 85 | 82.8 @ 308 | 47.0 @ 1 077 | **1.85** | `PitchMinus` 75/40 = **1.88** | +| roll | 125.0 @ 76 | 119.0 @ 291 | 82.6 @ 1 023 | **1.51** | `Roll` 200/125 = **1.60** | + +**The shape is confirmed on both axes** โ€” the rate interpolates between `_Min` (at +minimum speed) and `_Max` (at maximum speed), matching to **1.6 %** for pitch and +**5.6 %** for roll. These ratios are **clock-independent**, so they stand regardless +of the conversion. Pitch's ratio also re-confirms `ly+` = **pitch-minus** (1.88) +rather than plus (2.14), reproducing the earlier run's 1.82. + +**The absolute scale does not match, and not in the same direction:** + +``` +pitch measured / predicted = 1.15, 1.21, 1.07 (consistently OVER) +roll measured / predicted = 0.62, 0.64, 0.60 (consistently UNDER, and very flat) +``` + +**A clock error cannot explain this** โ€” it would scale both axes the same way, and +these go opposite. So the discrepancy is per-axis. Two candidates, neither measured: + +- a **1-second burst may not complete the angular-acceleration ramp**, which would + *under*-read โ€” that fits roll's remarkably constant 0.62 but not pitch's excess; +- a **per-axis multiplier** applied to the cap that is not yet identified. + +Recorded as an open question. The next measurement that would separate them is cheap: +**1 s versus 3 s bursts at the same throttle** โ€” if the ramp is the cause, the longer +burst reads higher. Data: +[pitch](captures/pitch-burst-final.csv) ยท [roll](captures/roll-burst-final.csv). + +## Note on the WEAK-pin guard + +The roll run refused to start: after the pitch bursts the craft was no longer level, +so the row pin came back **WEAK** (margin 0.109). That refusal is correct for pitch +and yaw โ€” but **roll is immune to the up/right labelling**, which is exactly what the +guard's own message says, so `ALLOW_WEAK_PIN=1` is the documented and legitimate +override there. It is worth having a guard that states its own exception.