Skip to content

pid/external_saturation

A scenario of the PID controller, from tools/trace/scenarios/pid/external_saturation.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:

Every channel

pid/external_saturation: every channel 1× real time
response [0] [1]
setpoint setpoint
command [0] [1]
delivered [0] [1]
integral [0] [1]
t = 0.000 s / 5.000 s

Keys (with the player focused): Space play/pause · ← → one sample (Shift: ten) · Home/End · [ ] speed

5 s of the control/pid scenario external_saturation.cpp, 501 samples every 0.01 s. The panels plot every channel that changes: response, setpoint, command, delivered, integral. 4 events are marked. Pass criteria: BB-V1 reported_integral_vs_park_value <= 0.001.

  1. setpoint 0.3, beyond the 0.2 the stage delivers
  2. setpoint 0.1
  3. reported: within 2 % from here, 0.54 s after the drop
  4. not reported: within 2 % from here, 1.19 s after the drop
  • ✓ passBB-V1 reported_integral_vs_park_value = 2.44e-4 (<= 0.001), computed by the scenario harness

Constant over the run

  • delivery_limit = 0.2

All scenarios