运动控制基础:三环架构与PID调优

做运动控制这些年,我见过不少工程师一上来就调位置环参数。结果呢?电机嗡嗡响,定位精度上不去。说白了,他们没搞懂底层那两环在干嘛。

今天咱们就把位置环、速度环、电流环这三层扒开看看。我保证,看完你就能明白——为什么调参要从里往外调。

三环架构:谁在管谁?

先看一张图,把整体逻辑理清楚。

三环伺服控制架构 位置环 P / PI 控制 速度环 PI 控制 电流环 PI 控制 位置反馈 速度反馈 电流反馈 调参铁律:从内到外 ① 先调电流环(最内层)→ ② 再调速度环 → ③ 最后调位置环 内环响应速度必须比外环快 5~10 倍,否则系统会震荡 电流环带宽通常 1~5 kHz,速度环 100~500 Hz,位置环 10~50 Hz

你看,三个环是嵌套的。位置环在最外面,它给速度环发指令。速度环在中间,它给电流环发指令。电流环在最里面,直接驱动电机。

我刚开始做多轴同步时,犯过一个低级错误——位置环调得飞快,速度环跟不上。结果电机一启动就过冲,差点把夹具撞坏。嗯,从那以后我再也不敢跳过电流环了。

电流环:最底层,也最硬

电流环控制的是电机绕组里的电流。说白了,就是控制力矩。你想想看,电机转不转、转多大力,全看电流给多少。

电流环的响应速度最快,一般在微秒级。它用的是PI控制器,很少加微分项——因为电流采样噪声大,微分会放大噪声,得不偿失。

实战经验: 调电流环时,先把积分系数设成0,只调比例增益。让电流实际值能跟上指令值,误差在5%以内就行。然后再慢慢加积分,消除稳态误差。我一般把电流环带宽设在2kHz左右,太高了容易啸叫。

速度环:承上启下的关键

速度环接收位置环的位置指令,计算出需要的速度,然后发给电流环。它控制的是电机转多快。

速度环也是PI控制为主。但这里有个坑——速度反馈通常来自编码器,低速时量化误差很大。我曾经遇到一个项目,电机在1rpm以下运行时速度波动超过20%,怎么调PI都没用。

后来怎么解决的?我加了个低速滤波器,把编码器脉冲的量化噪声滤掉。效果立竿见影。

参数 作用 调大后的影响 调小后的影响
比例增益 Kv 决定速度响应速度 响应快,但容易超调 响应慢,跟踪误差大
积分时间 Ti 消除稳态速度误差 消除误差快,但可能震荡 消除误差慢,有静差
速度前馈 提前补偿速度指令 跟踪误差减小 跟踪滞后明显

位置环:最外层,决定精度

位置环是用户直接打交道的环。你给个位置指令,它负责让电机走到那个位置。位置环的输出就是速度环的指令。

位置环通常只用P控制,很少加I。为什么?因为位置环的积分会导致位置过冲,而且恢复很慢。我见过有人给位置环加积分,结果定位完成后总要来回晃几下才能停稳。

避坑指南: 位置环的比例增益不要调太大。我曾经为了追求快速响应,把位置环增益调到极限。结果电机一启动就尖叫,位置超调了30%。后来测了一下,发现速度环根本来不及响应位置环的指令。记住:外环的带宽必须比内环低一个数量级。

PID控制原理:三个参数各司其职

PID三个字母,P是比例,I是积分,D是微分。咱们一个一个说。

  • P(比例):当前误差有多大,我就给多大力量。误差大,出力大;误差小,出力小。但光有P,系统会有稳态误差——比如你推一个箱子,推到离目标还有1厘米时,力量太小推不动了。
  • I(积分):把过去的误差累积起来。只要还有误差,积分就一直增加,直到误差消失。I能消除稳态误差,但加多了会让系统震荡。
  • D(微分):预测误差的变化趋势。误差在变大,我就提前刹车;误差在变小,我就收力。D能抑制超调,但对噪声敏感。

我个人的调参习惯是:先调P,让系统能响应但不震荡。再加一点I,消除静差。最后看情况加D,抑制超调。三步走,稳得很。

前馈控制:让系统跑得更快

纯PID有个问题——它总是等误差出现了才去纠正。说白了,就是被动挨打。前馈控制不一样,它提前知道你要干什么,提前给出补偿。

举个例子。你开车过弯,PID的做法是:等车偏离路线了再打方向盘。前馈的做法是:看到弯道了,提前打方向盘。哪个更稳?显然是后者。

在运动控制里,常用的前馈有:

  • 速度前馈:根据位置指令的变化率,提前给速度环一个指令。这样位置环还没输出,速度环已经开始动了。
  • 加速度前馈:根据位置指令的二阶导数,提前补偿惯性力。对高速高加速的场合特别有用。
  • 摩擦力前馈:根据速度方向,提前补偿摩擦力。低速时静摩擦力大,不加前馈容易有爬行现象。
实战案例: 我在做一台高速贴片机时,位置跟踪误差一直降不下来。PID参数调到极限了,误差还有0.5mm。后来加了速度前馈和加速度前馈,误差直接降到0.05mm。前馈不是万能的,但没有前馈是万万不能的。

补偿技术:对付非线性

实际系统不是线性的。有摩擦、有间隙、有弹性形变。这些非线性因素,PID搞不定,得靠补偿。

常用的补偿手段:

  • 摩擦补偿:在低速时额外加一个力矩,克服静摩擦力。我习惯用Stribeck模型来拟合摩擦力曲线。
  • 反向间隙补偿:齿轮或丝杠有间隙,换向时会丢步。加一个固定脉冲补偿,让电机多走一点。
  • 陷波滤波器:机械系统有共振频率。在控制器里加一个陷波滤波器,把共振频率附近的增益压下去。

我记得有一次做龙门双驱同步,两个电机中间有机械耦合。一跑起来就震荡,怎么调PID都没用。后来用频谱分析仪一测,发现200Hz处有个共振峰。加了个陷波滤波器,问题立刻解决。

调参流程总结

说了这么多,最后给个实操流程。你照着做,基本不会翻车。

  1. 电流环调参:断开速度环和位置环,直接给电流指令。调P,让电流响应快且不超调。再加I,消除稳态误差。带宽目标:1~5kHz。
  2. 速度环调参:闭合电流环,断开位置环。给速度阶跃指令,调P让速度响应快。加I消除静差。带宽目标:100~500Hz。
  3. 位置环调参:闭合速度环和电流环。给位置阶跃指令,调P让定位快且不超调。带宽目标:10~50Hz。
  4. 加前馈:先加速度前馈,再加速度前馈。观察跟踪误差,逐步增加前馈系数。
  5. 加补偿:根据实际情况加摩擦补偿、反向间隙补偿、陷波滤波器。
小技巧: 调参时用示波器看三个信号:指令值、实际值、误差值。误差曲线最能反映问题。如果误差曲线有高频抖动,说明电流环或速度环带宽太高。如果误差曲线有低频波动,说明机械共振或者前馈不够。

好了,三环架构和PID调优就讲到这里。记住那句老话:从内到外,先稳后快。你把这个顺序搞明白了,多轴同步的底子就算打牢了。