位置环的数学模型:PID、前馈与滤波器
说实话,位置环的数学模型,是整个运动控制里最绕不开的东西。你调了半天参数,电机还是抖,或者跟丢目标,十有八九是这里没吃透。我刚开始做伺服驱动的时候,也在这上面栽过跟头——明明PID参数看着挺合理,一跑起来就是不行。后来才明白,光有PID不够,前馈和滤波器才是拉开差距的地方。
PID控制器的位置环应用
位置环里最常用的,就是比例-积分-微分控制器。但跟速度环、电流环不一样,位置环的PID有它自己的脾气。
先看标准公式:
u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt
其中 e(t) 是位置指令与实际位置的偏差。这里有个关键点——位置环的积分项要慎用。为什么?
我遇到过一台贴片机,位置环加了积分,结果每次启动都有个过冲。查了半天,发现是积分饱和。位置环的采样周期通常比速度环长(一般是1ms到10ms),积分项一旦饱和,退出来要花好几个周期,位置精度就崩了。
比例增益Kp怎么设?说白了,它决定了位置环的刚度。Kp越大,电机对位置偏差的响应越猛,但容易振荡。我有个经验公式:
Kp ≈ (0.5 ~ 1.0) * 速度环带宽 / 位置环采样频率
举个例子,速度环带宽100Hz,位置环采样1kHz,那Kp大概在0.05到0.1之间。当然,这只是个起点,具体还得看负载。
| 参数 | 作用 | 调大后的影响 | 调小后的影响 |
|---|---|---|---|
| Kp | 位置刚度 | 响应快,易振荡 | 响应慢,跟随差 |
| Ki | 消除静差 | 过冲,积分饱和 | 稳态误差 |
| Kd | 阻尼/预测 | 噪声放大 | 阻尼不足 |
前馈控制原理
光靠PID,位置环的跟随误差永远存在。你想想看,PID是等误差出来了才去纠正,天生就慢半拍。前馈控制就是解决这个问题的——它提前把控制量算好,喂给系统。
位置环里最常用的前馈有两种:速度前馈和加速度前馈。
速度前馈的公式很简单:
u_ff_v = Kff_v * dθ_ref/dt
其中 dθ_ref/dt 是位置指令的速度。Kff_v 一般设成1.0左右,意思是把速度指令直接映射到速度环的输入。这样位置环只需要处理残余误差。
加速度前馈更进一层:
u_ff_a = Kff_a * d²θ_ref/dt²
它补偿的是惯性力。我在做龙门铣床的时候,Z轴负载重,不加加速度前馈,加减速段的位置误差能到0.1mm。加上之后,直接降到0.02mm以内。
我曾经犯过一个错:把加速度前馈设到1.5,结果电机在急停时反向冲出去。后来才意识到,前馈增益超过1.0,相当于给系统注入了额外的能量,稳定性就危险了。
滤波器对精度的影响
滤波器这东西,很多人不重视。觉得不就是滤个波嘛,能有多大影响?我告诉你,影响大了去了。
位置环里常见的滤波器有:
- 低通滤波器:滤除高频噪声,但会引入相位滞后
- 陷波滤波器:针对特定频率(比如机械共振点)
- 移动平均滤波器:平滑位置反馈信号
低通滤波器是最常用的。它的传递函数是:
H(s) = 1 / (τ * s + 1)
τ是时间常数。τ越大,滤波越强,但滞后也越大。这个滞后会直接吃掉位置环的相位裕度。
我测过一组数据:
| 滤波器截止频率 | 相位滞后@100Hz | 位置环带宽 |
|---|---|---|
| 500 Hz | 11.3° | 85 Hz |
| 200 Hz | 26.6° | 62 Hz |
| 100 Hz | 45.0° | 38 Hz |
看到没?截止频率从500Hz降到100Hz,位置环带宽直接腰斩。所以我的原则是:滤波器能不用就不用,非用不可就选最高的截止频率。
移动平均滤波器也有它的坑。它本质上是个FIR滤波器,没有相位滞后?不对——它也有延迟,延迟量等于窗口长度的一半。比如你用10个点的移动平均,采样周期1ms,那就引入了5ms的延迟。这5ms在位置环里,足够让系统振荡了。
从这张图你能看到,前馈和PID是并联的,它们的输出叠加后经过滤波器,再送到被控对象。滤波器放在这个位置,既能平滑控制信号,也会引入延迟。所以滤波器参数的选择,本质上是在噪声抑制和响应速度之间做权衡。
嗯,这里要注意一点:滤波器的延迟会直接削弱前馈的效果。因为前馈算出来的控制量是"准时"的,但滤波器一拖,就变成"迟到"的了。我建议,如果用了前馈,滤波器的截止频率至少要比位置环带宽高3倍以上。
最后说一句,位置环的数学模型不是纸上谈兵。你每改一个参数,都要想清楚它在传递函数里动了什么。Kp动了增益,Ki动了低频特性,Kd动了高频特性,前馈动了指令跟踪能力,滤波器动了相位裕度。把这些关系理清了,调参就不再是玄学。