实验台/1kHz 控制环的抖动账
实验 2 / 6 · 对照实验
1kHz 控制环的抖动账
同一条控制回路,普通 Linux 和 PREEMPT_RT 差多少微秒——看得见。
运行环境
读数
最大抖动—
99.9 分位—
超时次数—
已采样周期—
数据按实测经验建模(非实时 100–800µs、PREEMPT_RT 10–50µs、隔离核 + 关调频 5–20µs),每次运行有随机波动。真机上用 cyclictest 自己测。
这个实验在解决什么
「机器人要实时」这句话在面试里几乎人人会说,但很少有人能说出具体数字:周期多少、抖动多少、什么在吃抖动。这个实验把周期误差画成直方图,切换配置就能看到差别。
怎么读这张图
左边是周期误差的分布(理想值 1000µs),右边是误差随时间的走势。三个指标:最大抖动、99.9 分位、超时次数(超过 1.5 倍周期的次数)。抖动不是平均值问题,是尾部问题——平均值都很漂亮,偶尔一次 800µs 的延迟就够让机械臂抖一下。
动手改
先看「未优化」,把抖动尾巴记下来;切到「PREEMPT_RT」再切到「+隔离核」。然后想一个问题:如果抖动从 300µs 降到 40µs,你的位置环 Kp 能加多少倍?这就是实时性对性能的真实影响。