control//frequency response//stability margins//delay margin
The delay margin is the extra pure delay a stable feedback loop can absorb before it starts to oscillate, and it is the number every timing budget of a control system is checked against: the latencies of the sensor, the filters, the bus, the computation and the actuator must add up to less than it, with room to spare. It is the phase margin converted into seconds. A delay \(\tau\) leaves the gain alone and removes \(\omega\tau\) radians of phase at frequency \(\omega\), so the loop survives as long as the phase it loses at crossover is less than the margin it had:
The delay margin is the extra pure delay a stable feedback loop can absorb before it starts to oscillate, and it is the number every timing budget of a control system is checked against: the latencies of the sensor, the filters, the bus, the computation and the actuator must add up to less than it, with room to spare. It is the phase margin converted into seconds. A delay τ\tauτ leaves the gain alone and removes ωτ\omega\tauωτ radians of phase at frequency ω\omegaω, so the loop survives as long as the phase it loses at crossover is less than the margin it had:
τmax=φmωc,\tau_{max}=\frac{\varphi_m}{\omega_c},τmax=ωcφm,
with φm\varphi_mφm in radians and ωc\omega_cωc the crossover frequency in rad/s. A drone's altitude PID crossing at about 4.8 rad/s with 64 degrees of margin tolerates about 230 ms of extra delay. An attitude loop crossing at 30 rad/s with 45 degrees tolerates only 26 ms. The faster the loop, the less delay it tolerates, and that single inequality is why fast loops run on fast hardware with light filters and slow loops can live on a network.
It turns a vague worry into a budget. List every delay between measuring and acting (half a sample period for the hold, the low-pass filter's 1/(2πfc)1/(2\pi f_c)1/(2πfc), the sensor's internal processing, the bus transfer, the computation, the actuator's lag), add the worst case of each, and compare with τmax\tau_{max}τmax; the sources and their typical sizes are in loop delay. Jitter counts at its worst value, since the margin has to hold on the slowest cycle as well as on the average one.
It explains why fast poles are expensive. Asking a controller for a faster response raises the crossover, which divides the delay margin by the same factor; a design that needs 5 ms of tolerance on hardware that has 8 ms of latency fails before any gain is tuned (pole).
The idea travels beyond single loops. A fleet that averages its states over a radio link has a delay margin too, which shrinks as the agents gain neighbours (consensus protocol), and an MPC whose solver takes 5 ms has spent 5 ms of its margin before it acts.
The formula assumes the delay is the only thing that changes and that the loop has one crossover; with several crossovers the smallest ratio counts, and with lags that grow alongside the delay (a motor heating up, a filter retuned) the real margin is smaller.