2、运动控制实时性要求

大家好,我是老张。今天咱们聊聊运动控制里最要命的一个话题——实时性。

说实话,我见过太多工程师把运动控制当成普通程序来写。结果呢?电机一跑起来,要么抖动,要么丢步,要么干脆飞车。嗯,这些都是实时性没搞好的典型症状。

2.1 运动控制系统的实时性指标

什么叫实时性?说白了就是:系统必须在规定时间内完成规定动作。晚一毫秒都不行。

运动控制里,我们通常关注三个核心指标:

指标 典型要求 说明
响应时间 1μs ~ 1ms 从事件发生到系统开始处理的时间
控制周期 50μs ~ 1ms 位置环/速度环的更新间隔
抖动上限 ≤ 控制周期的5% 周期波动的最大允许范围

我个人习惯把这三个指标记成「快、稳、准」。快是响应快,稳是周期稳,准是执行准。

核心观点:运动控制的实时性不是「越快越好」,而是「可预测地快」。宁可慢一点,也不能忽快忽慢。

2.2 抖动与延迟——两个隐形杀手

我在项目中遇到过最头疼的问题,就是抖动。明明代码逻辑没问题,电机就是跑不顺。

2.2.1 延迟(Latency)

延迟就是「等」。从传感器采集到数据,到控制器算完,再到驱动器执行,每一步都有延迟。

  • 输入延迟:编码器信号滤波、AD转换时间
  • 计算延迟:PID运算、轨迹插补时间
  • 输出延迟:PWM更新、通信传输时间

你想想看,如果总延迟是200μs,而你的控制周期是100μs,那意味着你用的永远是「过时」的数据。控制精度能好吗?

2.2.2 抖动(Jitter)

抖动比延迟更可怕。延迟是固定的,可以补偿。抖动是随机的,没法补偿。

举个例子:

// 理想情况:每100μs执行一次
周期1: 100μs
周期2: 100μs
周期3: 100μs

// 实际情况:抖动来了
周期1: 100μs
周期2: 120μs  ← 慢了20μs
周期3: 85μs   ← 快了15μs

我曾经调试一台高速贴片机,就是被5μs的抖动折磨了整整两周。后来发现是中断优先级设置不当,一个低优先级的UART中断偶尔抢占了定时器中断。嗯,这种坑踩过一次就记住了。

避坑指南:我曾经以为只要CPU够快,抖动就不是问题。后来发现,中断嵌套、DMA抢占、Cache miss,这些才是抖动的真正来源。别迷信主频,要关注确定性。

2.3 抖动对控制精度的影响

咱们用数据说话。假设一个伺服系统,控制周期标称1ms,实际抖动±200μs:

抖动幅度 位置误差(典型值) 影响
±50μs 0.01mm 基本可接受
±200μs 0.05mm 低速还行,高速明显
±500μs 0.2mm 电机明显抖动,无法使用

为什么会这样?因为PID控制器假设采样间隔是均匀的。一旦间隔变了,积分项和微分项的计算就全错了。

我见过一个极端案例:某国产机器人,手臂末端抖动达到0.5mm。查到最后,是看门狗复位导致控制周期偶尔跳变。你说冤不冤?

2.4 实时操作系统(RTOS)简介

好了,既然裸机编程搞不定抖动,那就要上RTOS了。

RTOS不是万能的,但没有RTOS是万万不能的。我个人的经验是:只要控制周期小于1ms,就必须上RTOS

2.4.1 RTOS的核心能力

  • 任务优先级管理:高优先级任务可以抢占低优先级任务
  • 确定性调度:任务切换时间可预测,通常几μs到几十μs
  • 中断管理:中断响应时间可控,不会因为任务太多而延迟
  • 资源同步:信号量、互斥锁,避免数据竞争

2.4.2 常见RTOS对比

RTOS 最小内核 任务切换 适用场景
FreeRTOS 4KB ~5μs 中小型运动控制
RT-Thread 6KB ~3μs 国产化项目,生态好
μC/OS-III 8KB ~4μs 工业级,认证齐全
VxWorks 20KB ~1μs 高端伺服,军工级

个人建议:初学者从FreeRTOS入手就够了。别一上来就搞VxWorks,那玩意儿学习曲线陡得很。我当年花了三个月才把VxWorks的BSP调通,现在想想真没必要。

2.4.3 RTOS在运动控制中的典型架构

下面这张图是我自己总结的,运动控制中RTOS的任务划分方式:

运动控制RTOS任务架构 中断层(最高优先级) 编码器捕获 | 急停信号 | 限位开关 | 过流保护 实时控制任务(高优先级) 位置环(50-200μs) | 速度环(100-500μs) | 电流环(10-50μs) 通信任务(中优先级) EtherCAT | CANopen | Modbus | 上位机指令解析 后台任务(低优先级) 日志记录 | 状态显示 | 参数保存 | 看门狗喂狗 优先级从上到下递减,高优先级任务可抢占低优先级任务

这张图我用了很多年。核心思想就一句话:把最紧急的事交给最高优先级的任务,别让它们排队等

2.5 小结

今天聊了三个重点:

  • 实时性的三个指标:响应时间、控制周期、抖动上限
  • 抖动比延迟更可怕,因为它不可预测
  • RTOS是解决抖动问题的有效手段,但要用对架构

嗯,内容不少。但这些都是基本功。下一节咱们会深入看门狗的具体设计,到时候这些实时性知识全都会用上。

一句话总结:运动控制的实时性,不是比谁跑得快,而是比谁跑得稳。稳不住,再快的CPU也是白搭。


公众号:蓝海资料掘金营,微信deep3321