# Method 9.1 adaptive margin report

Generated by `run_m9_vs_m7_compare.m`.

All plotted and reported times are causal window-end times: each point uses only samples at or before that timestamp.

M9.1 combines direct closed-loop `S,T` NCF where `dd_lead` excites a frequency with an input-quiet residual-output fallback. A frequency-matched full-band residual early-warning path is enabled, but it is bounded by the direct `S,T` branch when both bind at the same frequency. Branch 1 is not used. The search band is 2-100 Hz, with only the 60 Hz line rejected.

True loop-only NCF: healthy `0.5879`, damaged `0.3438`.

**Seed-spread note.** M9.1 seed spread includes the injected noise/disturbance seed plus a bootstrap perturbation of the spectral subsegments. It is still not a full model-uncertainty interval, but it avoids plotting a deterministic averaged estimator as if it had no finite-window estimation uncertainty.

## M7 vs M9.1 summary

| Case | M7 healthy | M7 damaged | M7 abs error | M7 seeds | M7 median s | M9.1 healthy | M9.1 damaged | M9.1 abs error | M9.1 seeds | M9.1 median s | M9.1 freq Hz | M7 ms | M9.1 ms | M9.1/M7 |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| high-band | 0.545 | 0.329 | 0.015 | 10 | 12.0 | 0.583 | 0.345 | 0.001 | 10 | 11.0 | 38.0 | 95 | 66 | 0.70 |
| low-band | 0.589 | 0.417 | 0.073 | 10 | 14.8 | 0.572 | 0.407 | 0.063 | 10 | 14.2 | 37.0 | 76 | 50 | 0.66 |
| mixed | 0.545 | 0.329 | 0.015 | 10 | 12.0 | 0.577 | 0.346 | 0.002 | 10 | 11.0 | 38.0 | 69 | 47 | 0.68 |

![M9.1 vs M7 summary](m9_vs_m7_summary.png)

## Why M9.1 addresses the M7 issues

- M7 hard-codes a peak band. M9.1 searches 2-100 Hz point by point and reports the frequency that bound the estimate.
- M7 is relative to `b_nom` and `S_pk,ref`. M9.1 uses the absolute phase-aware branch from `S=1-T`, `T=dm/dd_lead` on excited/coherent bins, and uses the residual branch for output-only evidence.
- If the instability is caused by phase delay instead of gain amplification, the `S,T` branch still sees the Nyquist distance shrink because it uses the complex transfer function, not only output amplitude.
- If the dangerous region is actually excited, M9.1 uses the measured complex FRF instead of waiting for a resonance peak to grow.
- If the dangerous region is not excited, M9.1 falls back to input-quiet residual output noise after removing command-correlated output by coherence.
- If residual growth appears at the same frequency as the direct `S,T` branch before `S,T` crosses the relative alarm level, M9.1 allows that residual evidence to pull the margin down early, but not below 80% of the direct `S,T` estimate.
