跟随误差的根源:位置环增益不足导致的滞后、加减速过程中的动态误差、机械传动间隙与弹性形变的影响
做运动控制这些年,我见过太多工程师一上来就调PID,调了半天发现精度就是上不去。其实很多时候,问题根本不在PID参数上,而是我们没搞清楚——跟随误差到底从哪来的。
说白了,跟随误差就是指令位置和实际位置的差值。你让电机走100mm,它只走了99.8mm,那0.2mm就是误差。但为什么会有这个差值?我把它归结为三大类:增益滞后、动态惯性、机械缺陷。咱们一个一个说。
1. 位置环增益不足导致的滞后
先问一个问题:位置环的本质是什么?
位置环就是一个比例控制器,它把位置误差乘以一个系数(也就是位置环增益Kp),输出速度指令给速度环。公式很简单:
V_cmd = Kp × (P_target - P_actual)
这里有个关键点:要让电机动起来,必须存在位置误差。因为误差是驱动力的来源,没有误差就没有速度指令。
所以,当位置环增益Kp不够大时,会产生什么后果?
- 稳态滞后:匀速运动时,实际位置始终落后指令位置一个固定值。这个值等于速度除以Kp。速度越快,滞后越大;Kp越小,滞后也越大。
- 响应迟钝:指令突然变化时,电机需要更长时间才能跟上。我见过一个案例,某台贴片机在高速运行时,位置环增益只设了20,结果跟随误差直接飙到5mm以上,贴片全部偏位。
核心结论:位置环增益Kp决定了系统的"刚性"。Kp越大,跟随误差越小,但过大会引起震荡。这是一个典型的权衡问题。
我个人习惯的做法是:先把Kp调到刚好不震荡的临界值,然后回退15%~20%。这样既保证了响应速度,又留出了稳定裕量。
2. 加减速过程中的动态误差
匀速阶段的滞后还算好理解,真正让人头疼的是加减速阶段。
为什么会这样?你想想看:
- 加速时,电机需要克服惯性力。这个力从哪里来?从位置误差来。误差越大,驱动力越大。
- 减速时,电机需要制动。同样需要位置误差来产生反向驱动力。
- 所以,在加减速过程中,跟随误差会动态变化,形成一个"凸起"或"凹陷"的曲线。
我在项目中遇到过一台高速分拣机器人,每次加减速时都会出现明显的"过冲-回调"现象。后来分析发现,是加速度设置得太高,位置环根本来不及响应。
这里有个经验公式:
动态误差 ≈ 加速度 / (位置环增益 × 速度环带宽)
什么意思呢?加速度越大,动态误差越大;位置环增益和速度环带宽越高,动态误差越小。所以,单纯提高位置环增益是不够的,速度环的响应能力同样重要。
避坑指南:我曾经在调试一台龙门铣床时,为了追求快速响应,把加速度设到了2g。结果位置环怎么调都震荡,最后不得不把加速度降到1.2g,配合前馈控制才解决问题。记住:加速度不是越高越好。
3. 机械传动间隙与弹性形变的影响
这部分是很多工程师容易忽略的。电气上看起来没问题,但机械上的缺陷会直接反映在跟随误差上。
3.1 传动间隙
齿轮、联轴器、丝杠螺母之间都存在间隙。当电机换向时,需要先走完这段间隙,才能真正带动负载。这会导致:
- 换向死区:电机反转时,负载不动,位置误差瞬间增大。
- 回程误差:正向和反向运动时,实际位置存在一个固定的偏移量。
我记得有一次调试一台数控机床,发现Z轴每次下降后再上升,都会出现0.1mm的定位偏差。查了半天,最后发现是丝杠螺母的预紧力不够,间隙达到了0.08mm。
3.2 弹性形变
任何机械结构都不是绝对刚性的。当负载变化或加速时,传动部件会发生弹性形变。比如:
- 同步带在加速时会被拉长
- 联轴器在扭矩突变时会产生扭转
- 长丝杠在重载下会发生弯曲
这些形变会直接叠加到跟随误差上。而且,弹性形变往往是非线性的,很难通过简单的PID补偿。
注意:机械间隙和弹性形变造成的误差,单纯靠提高位置环增益是解决不了的。甚至可能适得其反——增益太高,系统会把这些机械缺陷放大,引发震荡。
知识体系总览
下面这张图总结了跟随误差的三大根源及其相互关系:
如何判断是哪类误差?
在实际调试中,我一般通过观察误差曲线的形状来判断:
| 误差特征 | 可能原因 | 排查方向 |
|---|---|---|
| 匀速段误差恒定,与速度成正比 | 位置环增益不足 | 提高Kp,或加入前馈 |
| 加减速段误差凸起,峰值与加速度相关 | 动态误差(惯性力) | 降低加速度,或提高速度环带宽 |
| 换向时出现死区,误差突变 | 机械间隙 | 检查预紧力,或加入反向间隙补偿 |
| 负载变化时误差波动 | 弹性形变 | 加强机械刚性,或使用自适应控制 |
我的经验:很多时候,跟随误差是多种因素叠加的结果。比如一台设备,匀速段误差0.1mm,加减速段误差0.3mm,换向时再跳0.05mm。这时候你不能只调一个参数,得从电气和机械两个方向同时下手。
嗯,到这里你应该明白了——跟随误差不是单一原因造成的。位置环增益不足是基础问题,加减速动态误差是运行过程中的附加问题,机械缺陷则是硬件层面的固有问题。只有把这三类问题都识别清楚,才能有针对性地制定补偿策略。
下一节,我会讲如何用前馈控制来对抗这些误差。说白了,前馈就是"提前给指令",让电机在误差还没产生之前就做出反应。具体怎么做?咱们接着聊。
公众号:蓝海资料掘金营,微信deep3321