Adaptive PID Authority Case Comparison
Authority-only adaptive PID study using production OSI M9.1 at a 0.050 s update interval. Plots show the guarded adaptive M9.1 decision signal. Raw M9.1 remains saved in ncf_m91, while fast bounded authority slew keeps adaptation from chasing spikes without delaying safety drops.
Excitations are explicit: high-band, low-band, and mixed high + low. The immediate post-switch minimum is shared by causal adaptive runs before enough M9.1 window data is available; the settled metric starts after the configured reaction delay.
The authority update used here is the standalone code-generation-friendly OSI function auth_stability_gain.m, intended for a Simulink MATLAB Function block with scalar state feedback.
Summary Plot

Case Comparison
| Excitation | Case | Name | Fixed min true NCF | Adaptive settled true NCF | Fixed below area | Adaptive below area | Reduction | Min authority | Max authority |
|---|---|---|---|---|---|---|---|---|---|
| high | C1 | Healthy | 0.588 | 0.588 | 0.000 | 0.000 | 0.0% | 0.919 | 1.000 |
| high | C2 | Gain damage (measured) | 0.344 | 0.574 | 3.119 | 0.023 | 99.3% | 0.304 | 1.000 |
| high | C3 | Excess gain (extrapolated) | 0.249 | 0.566 | 5.009 | 0.043 | 99.1% | 0.236 | 1.000 |
| high | C4 | Integral-driven | 0.087 | 0.636 | 8.255 | 0.082 | 99.0% | 0.083 | 1.000 |
| high | C5 | Phase-lag (added delay) | 0.308 | 0.639 | 3.843 | 0.033 | 99.2% | 0.102 | 1.000 |
| low | C1 | Healthy | 0.588 | 0.590 | 0.000 | 0.000 | 0.0% | 0.080 | 1.000 |
| low | C2 | Gain damage (measured) | 0.344 | 0.577 | 3.119 | 0.031 | 99.0% | 0.080 | 1.000 |
| low | C3 | Excess gain (extrapolated) | 0.249 | 0.580 | 5.009 | 0.043 | 99.1% | 0.080 | 1.000 |
| low | C4 | Integral-driven | 0.087 | 0.654 | 8.255 | 0.082 | 99.0% | 0.080 | 1.000 |
| low | C5 | Phase-lag (added delay) | 0.308 | 0.536 | 3.843 | 0.240 | 93.8% | 0.080 | 1.000 |
| mixed | C1 | Healthy | 0.588 | 0.588 | 0.000 | 0.000 | 0.0% | 1.000 | 1.000 |
| mixed | C2 | Gain damage (measured) | 0.344 | 0.574 | 3.119 | 0.023 | 99.3% | 0.304 | 1.000 |
| mixed | C3 | Excess gain (extrapolated) | 0.249 | 0.575 | 5.009 | 0.043 | 99.1% | 0.235 | 1.000 |
| mixed | C4 | Integral-driven | 0.087 | 0.636 | 8.255 | 0.082 | 99.0% | 0.082 | 1.000 |
| mixed | C5 | Phase-lag (added delay) | 0.308 | 0.627 | 3.843 | 0.033 | 99.2% | 0.116 | 1.000 |
Margins And Authority Over Time
high-band 1731 excitation

low-band 1749 excitation

mixed high + low excitation

Authority Law
a_desired = a * (max(m91_margin, 0.05) / target_margin)^power. The plot shows adaptive M9.1 guard. Raw adaptive M9.1 remains stored in ncf_m91. Severe M9.1 dips below down_immediate_margin still reduce authority immediately; moderate dips must persist for down_confirm_n updates. Authority then applies down_rate to avoid step transients. Upward authority recovery waits on a guarded margin with bounded non-severe movement through margin_guard_up_rate and margin_guard_down_rate, plus an upper deadband, hold time, and small rate limit.