Skip to content

pid/timing_fault

A scenario of the PID controller, from tools/trace/scenarios/pid/timing_fault.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/timing_fault: every channel 1× real time
response response
setpoint setpoint
command command
integral integral
dt_passed [s] dt_passed
t = 0.000 s / 0.250 s

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

0.25 s of the control/pid scenario timing_fault.cpp, 251 samples every 0.001 s. The panels plot every channel that changes: response, setpoint, command, integral, dt_passed. 5 events are marked. Pass criteria: BB-T1 output_and_integral_change_on_faulted_ticks <= 0.

  1. setpoint 0.5
  2. duplicated tick: dt = 0
  3. clock steps back: dt = −1 ms
  4. the controller misses 49 ticks
  5. it runs again, with dt = 50 ms
  • ✓ passBB-T1 output_and_integral_change_on_faulted_ticks = 0 (<= 0), computed by the scenario harness

All scenarios