Regression
Commit `afffd36` added an orange `[LOW AUTHORITY] max=Xdps — recommendations unreliable` label to the PNG legend (base P:D section, before Conservative/Moderate/Aggressive entries) and a matching console warning in the Optimal P section.
PR #151 label reformatting removed the PNG label from the base P:D section. The console Optimal P warning still exists but is buried inside the `--estimate-optimal-p` block with no effect on recommendation output.
Fix
Restore `[LOW AUTHORITY]` label-override in both PNG and console, and limit base P:D recommendations to Conservative-only when LOW AUTHORITY fires.
Base P:D recommendations (PNG + console)
- Restore orange `[LOW AUTHORITY] max=Xdps — recommendations unreliable` label before the recommendation entries (as in `afffd36`)
- Conservative: retain — a small incremental adjustment is directionally safe even on noisy data; append `[LOW AUTHORITY — verify before applying]`
- Moderate / Aggressive: suppress — replace with `Recommendation (Moderate): Skipped [LOW AUTHORITY]` and `Recommendation (Aggressive): Skipped [LOW AUTHORITY]`
Optimal P section (PNG + console)
- Apply the same `[LOW AUTHORITY]` label consistently. Currently the console prints a bare inline warning and the PNG shows nothing; both should carry the label.
Deduplication
`afffd36` recomputed `is_low_authority` independently in `plot_step_response.rs` and `main.rs`. Compute it once after the step-response loop, cache in `[bool; AXIS_COUNT]`, and share across both sections:
// After step-response loop, before base P:D section:
let mut low_authority: [bool; AXIS_COUNT] = [false; AXIS_COUNT];
let mut low_authority_max_sp: [f32; AXIS_COUNT] = [0.0; AXIS_COUNT];
for axis_index in 0..ROLL_PITCH_AXIS_COUNT {
if let Some((_, _, max_sps)) = &step_response_calculation_results[axis_index] {
let max_sp = max_sps.iter().cloned().fold(0.0_f32, f32::max);
low_authority_max_sp[axis_index] = max_sp;
low_authority[axis_index] = max_sp < LOW_AUTHORITY_SETPOINT_THRESHOLD_DEG_S;
}
}
Related
Regression
Commit `afffd36` added an orange `[LOW AUTHORITY] max=Xdps — recommendations unreliable` label to the PNG legend (base P:D section, before Conservative/Moderate/Aggressive entries) and a matching console warning in the Optimal P section.
PR #151 label reformatting removed the PNG label from the base P:D section. The console Optimal P warning still exists but is buried inside the `--estimate-optimal-p` block with no effect on recommendation output.
Fix
Restore `[LOW AUTHORITY]` label-override in both PNG and console, and limit base P:D recommendations to Conservative-only when LOW AUTHORITY fires.
Base P:D recommendations (PNG + console)
Optimal P section (PNG + console)
Deduplication
`afffd36` recomputed `is_low_authority` independently in `plot_step_response.rs` and `main.rs`. Compute it once after the step-response loop, cache in `[bool; AXIS_COUNT]`, and share across both sections:
Related