阅读时间大约4分钟(1493字)
作者:Kaspar.S 出品:机器人技术指南
在机械臂的精密控制中, 回差(Backlash) ——即齿轮箱、同步带等传动部件存在的微小间隙——是一个无法忽视的“幽灵”。它导致电机端的转动无法精确地传递到关节端,是影响定位精度的元凶之一。幸运的是,先进的机器人系统通常配备 双编码器(电机端相对编码器 + 关节端绝对编码器) 来应对这一挑战。但有了这套强大的硬件,如何设计控制算法才能真正“看见”并“战胜”回差呢?核心问题在于: 你的位置指令(cmdpos)到底应该和哪个编码器的反馈值做比较?

01 错误的选择:单闭环控制(电机反馈)
一种直观但错误的想法是:使用电机端编码器进行位置闭环。控制逻辑 :指令 cmdpos (换算为电机目标位置)与 电机端编码器 的反馈做差,误差送入PID控制器,驱动电机。致命缺陷 :该系统只关心“电机是否转到位”,而完全不知道“ 关节实际在哪 ”。当电机旋转角度被回差消耗时,系统会认为已到达目标,但关节实际位置却存在一个巨大的稳态误差。比喻 :这好比 蒙眼驾驶 。你只根据自己踩了多大油门(电机转动)来判断车辆走了多远,却不知道车轮一直在空转(回差)——车其实根本没动。结论:此方案无法克服回差,关节精度毫无保证,基本不可用。
02 正确的选择:单闭环控制(关节反馈)
如果我们改用关节端绝对编码器作为反馈呢?控制逻辑 :指令 cmdpos (关节目标位置)直接与 关节端绝对编码器 的反馈做差。优点 :由于反馈是关节的 真实位置 ,PID控制器能“看到”包含回差在内的总误差。它会持续驱动电机,直到关节端位置准确无误。 这意味着,从结果上它能实现高精度的定位。缺点 :控制过程非常“痛苦”。回差是一个强烈的非线性环节,在换向时,会导致系统产生 严重振荡 。为了保证稳定,你不得不将PID参数调得很低,导致系统 响应缓慢、刚性差 。结论:此方案“结果正确,但过程煎熬”,性能低下,仅适用于对动态性能无要求的场合。
03 最佳的实践:双闭环控制(串级PID)
如何既能保证结果正确,又能让过程平稳高效?答案是 双闭环控制 。外环(位置环)反馈源 : 关节端绝对编码器 。
目标 :负责宏观的、最终的精确定位。它计算 cmdpos 与关节实际位置的误差,并将此误差送给内环作为速度指令。 它确保了最终精度,克服了回差。内环(速度环)反馈源 : 电机端相对编码器 (计算得到的速度)。
目标 :负责高速、平稳地执行外环的指令。电机端编码器信号无延迟、无回差,质量极高,使得内环可以设置高增益,从而提供强大的 阻尼 ,抑制振荡,让系统响应快速且稳定。
工作流程比喻 :想象一下用一根有弹性的缰绳牵马。外环 是 你 ,你的眼睛(关节编码器)始终盯着目标位置。内环 是 受过训练的骏马 (电机+内环),它能敏锐感知你的缰绳指令。回差 就是缰绳的 初始松弛量 。当你想让马车移动时,你(外环)只给马一个速度指令。马(内环)会平稳地收紧缰绳(走过回差),然后开始拉动马车。整个过程平稳、高效,没有剧烈晃动。这是发挥双编码器硬件优势的标准且最优方案。

04 一种高效的变体:前馈+反馈控制

在实际编程中,你可能会看到这样一种形式:Torque = pidCtrl.pidControl(CmdPos, CmdVel, FbdPos, FbdVel);
这同样可以实现卓越性能,其秘诀在于:FbdPos (位置反馈)必须来自 关节端编码器 (保证精度)。FbdVel (速度反馈)最好来自 电机端编码器 (保证稳定与快速响应)。CmdVel (速度前馈)能显著提升跟踪性能。这种结构本质上是 将速度环(阻尼)和前馈功能集成在了一个PID控制器中 ,是双闭环思想的一种高效实现。
05 一个关键的延伸:既然控制算法能补偿,为何还要测试回差?
双闭环控制确实能动态补偿回差,保证 稳态精度 。但测试回差依然至关重要,原因在于:动态性能与稳定性调试 :回差大小直接决定了系统在换向时是否会振荡。不知道回差,PID参数调试就是盲人摸象。系统刚性评估 :回差是刚性链条上的“软肋”,影响机械臂抗外力干扰的能力。机械健康监测(预测性维护) :回差随时间增大是传动部件磨损的 最重要指标 。定期测试可以提前发现故障,避免意外停机。控制算法是“治标”的武器,而测试回差是“知彼知己”的诊断,二者结合才能实现最优控制。之后文章将分析回差原理及如何测试回差。
06 总结

因此,请记住这个黄金法则: 指令位置(cmdpos)必须与关节端绝对编码器的反馈值进行比较 ,并充分利用电机端编码器来提升系统的稳定性和响应速度。只有这样,双编码器这套强大的“眼睛”才能真正发挥作用。
