3. 位置环增益与跟随误差:Kp越大误差越小?小心过冲和震荡

上一章我们聊了跟随误差是怎么来的。说白了,就是指令跑得比实际位置快,中间差的那一段距离。

那怎么让这个误差变小呢?很多新手第一反应就是——把位置环增益 Kp 往大了调。听起来很合理,对吧?误差大,我就加大增益,让它追得快一点。

嗯,这里我要泼一盆冷水了。事情没那么简单。

3.1 Kp 与跟随误差的关系

先看理论。位置环本质上是一个比例控制器。它的输出 = Kp × 位置偏差。偏差越大,输出的速度指令就越大,电机就跑得越快。

在匀速跟踪时,跟随误差的稳态值可以用一个简单公式估算:

跟随误差 ≈ 指令速度 / Kp

从这个公式看,Kp 越大,误差确实越小。比如:

指令速度 (r/min) Kp (1/s) 理论跟随误差 (脉冲)
1000 20 50
1000 40 25
1000 80 12.5

看起来 Kp 翻倍,误差减半。很诱人,对吧?

但这里有个陷阱——这个公式只在系统完全稳定、没有其他限制的情况下成立。实际系统中,Kp 不能无限大。

3.2 为什么不能无限加大 Kp?

我刚开始做伺服调试那会儿,也犯过这个错。当时调一台贴片机的 X 轴,跟随误差总是偏大。我一口气把 Kp 从 30 提到了 80。结果呢?

电机开始嗡嗡响,停下来的时候机身抖了两下。用示波器一看,位置曲线在目标值附近来回震荡了好几次才稳住。

为什么会这样?因为系统有惯性、有延迟。位置环的输出要经过速度环、电流环,再到机械本体。这一路下来,信号是有延时的。

当你把 Kp 调得太大时,位置环的反应就过于激进。电机还没跑到目标位置,控制器已经给了很大的加速指令。等电机真的到了,又因为惯性冲过头。控制器一看超了,又猛减速。结果就是——过冲和震荡。

⚠ 警告: Kp 过大导致的过冲,在高速高加减速场合尤其危险。轻则影响加工精度,重则触发跟随误差报警,甚至损坏机械结构。

3.3 过冲和震荡的机理

我们用一个简单的比喻来理解。

你开车去接人,目标位置是 100 米外的路口。如果 Kp 很小,你就慢慢开,误差一直存在,但不会超。如果 Kp 很大,你一脚油门踩到底,快到路口时才发现刹不住,冲过去再倒回来——这就是过冲和震荡。

在控制理论里,这叫做系统的阻尼比下降。Kp 增大,系统的响应变快,但稳定性变差。当 Kp 超过某个临界值,系统就会从欠阻尼进入不稳定状态。

具体表现有三种:

  • 轻微过冲: 位置曲线超过目标值 5%-10%,然后快速回调。对大多数应用还能接受。
  • 衰减震荡: 在目标值附近来回摆动几次,幅度逐渐减小。这已经会影响加工质量了。
  • 持续震荡: 系统完全稳不住,位置一直在目标值附近来回跳动。这是绝对不能接受的。

3.4 如何找到合适的 Kp?

我个人习惯的做法是:先保守,再试探,最后微调。

具体步骤:

  1. 从低开始: 先把 Kp 设到厂家推荐值的 50% 左右。比如推荐 40,我就从 20 开始。
  2. 跑一个梯形曲线: 给一个固定的速度指令,观察跟随误差的稳态值。
  3. 逐步增加: 每次增加 20%-30%,观察响应。注意听电机声音,看位置曲线。
  4. 找到临界点: 当出现轻微过冲时,记下这个 Kp 值。这就是当前系统的临界增益。
  5. 回退 20%: 把 Kp 设为临界值的 80%。这个值通常就是最佳平衡点。
💡 技巧: 我曾经调试一台高速分拣机器人,发现临界增益是 55。但我最终设到了 45。为什么?因为机器人抓取时有负载变化,留点余量更安全。实际运行下来,跟随误差完全满足要求。

3.5 Kp 与系统惯量的关系

还有一个容易被忽略的因素——负载惯量。

同样的 Kp,带大惯量负载和小惯量负载,效果完全不同。大惯量系统反应慢,同样的 Kp 可能不会过冲,但响应也慢。小惯量系统反应快,Kp 稍微大一点就容易震荡。

负载惯量比 推荐 Kp 范围 (1/s) 注意事项
< 3 倍 30 - 60 响应快,可适当提高 Kp
3 - 10 倍 20 - 40 需要折中,注意震荡
> 10 倍 10 - 25 响应慢,Kp 不宜过高

你想想看,如果负载惯量经常变化,比如机器人抓取不同重量的工件,那 Kp 就不能卡得太死。我一般会按最重负载来设定,确保在任何情况下都不会震荡。

3.6 核心逻辑图

下面这张图总结了 Kp 与跟随误差、系统稳定性之间的关系:

位置环增益 Kp 的影响逻辑 增大 Kp ✅ 跟随误差减小 ✅ 响应速度加快 ⚠ 过冲风险增加 ⚠ 震荡风险增加 结论:Kp 不是越大越好 需要在误差与稳定性之间找到平衡点 调 Kp 时,先找到临界增益,再回退 20% 作为安全值。负载变化大的场合,留更多余量。

3.7 避坑指南

最后,分享几个我踩过的坑:

  • 不要只看稳态误差: 我曾经只盯着稳态误差调 Kp,结果加减速阶段的过冲完全没注意到。后来用示波器抓了完整曲线才发现问题。
  • 注意机械共振: Kp 调大后,如果听到电机或机械有异常响声,很可能是激发了机械共振点。这时候不是继续调 Kp,而是要考虑加滤波器。
  • 不同速度下表现不同: 低速时稳定的 Kp,高速时可能震荡。我习惯用最高运行速度来验证稳定性。
  • 温度影响: 伺服驱动器运行一段时间后会发热,电气参数会漂移。我一般会让设备跑 30 分钟后再做最终确认。

核心要点: Kp 增大确实能减小跟随误差,但代价是系统稳定性下降。过冲和震荡是 Kp 过大的典型症状。调参时,找到临界增益再回退 20%,是工程上最稳妥的做法。