pid/integral_limit
A scenario of the PID controller, from tools/trace/scenarios/pid/integral_limit.cpp.
✓ pass
- The clang run (clang 18.1 optimized) matches the committed trace.
- The gcc run (gcc 13.3 optimized) matches the committed trace.
Shown on
These players show the same trace, with panels chosen to explain it:
- How large a disturbance can the integral cancel? (PID Deployment)
Every channel
height [m] height
offset_prediction [m] offset_prediction
integral [m/s²] integral
needed [m/s²] needed
t = 0.000 s / 12.000 s
Keys (with the player focused): Space play/pause · ← → one sample (Shift: ten) · Home/End · [ ] speed
12 s of the control/pid scenario integral_limit.cpp, 601 samples every 0.02 s. The panels plot every channel that changes: height, offset_prediction, integral, needed. 2 events are marked. Pass criteria: BB-V1 height_error_vs_closed_form_offset <= 0.001 m.
- offset −1.5 m/s², within the integral's ±2
- offset −3 m/s², beyond it
- ✓ passBB-V1 height_error_vs_closed_form_offset = 4.04e-9 m (<= 0.001), computed by the scenario harness
Constant over the run
setpoint= 1 mintegral_limit= 2 m/s²