第三章 整定黄金法则一:带宽法则——根据系统带宽需求确定PI参数的理论依据

做伺服驱动这些年,我见过太多工程师一上来就调PI参数,调了半天系统还是抖得像筛子。其实,调参之前你得先想清楚一个问题:你的系统到底需要多快的响应?

这个问题的答案,就是带宽。带宽法则,说白了就是:你想要多快的响应,就得给多大的带宽;带宽定了,PI参数的范围也就定了。

3.1 带宽是什么?——别把它想得太玄乎

带宽,在电流环里指的是系统能有效跟踪输入信号的频率范围。单位是Hz(赫兹)或者rad/s(弧度/秒)。

举个例子:你给电机一个正弦波电流指令,频率是100Hz。如果系统带宽是200Hz,那电机电流能很好地跟上指令。如果系统带宽只有50Hz,那电机电流就会明显滞后,幅值也会衰减。

我个人习惯把带宽理解成系统的「反应速度」。带宽越高,反应越快;带宽越低,反应越慢。但注意,不是越高越好——带宽太高,系统容易振荡,噪声也会被放大。

核心观点:带宽是PI参数整定的「天花板」。你调出来的PI参数,最终决定了系统的实际带宽。反过来,你先确定目标带宽,再用公式反推PI参数,这就是带宽法则的精髓。

3.2 电流环的数学模型——简单回顾一下

电流环的控制对象是电机绕组,可以简化成一个RL串联电路。传递函数是:

G(s) = 1 / (L·s + R)

其中:

  • L:电机电感(H)
  • R:电机电阻(Ω)
  • s:拉普拉斯算子

PI控制器的传递函数是:

C(s) = Kp + Ki / s

把两者串联起来,得到开环传递函数:

G_open(s) = (Kp·s + Ki) / (s·(L·s + R))

嗯,这里要注意:我们通常把PI控制器的零点设计成与电机极点对消。也就是让:

Ki / Kp = R / L

为什么要这么做?因为对消之后,开环传递函数就简化成了:

G_open(s) = Kp / (L·s)

你想想看,一个纯积分环节,系统就变得简单可控了。闭环传递函数变成:

G_close(s) = 1 / (1 + (L/Kp)·s)

这是一个一阶低通滤波器,它的带宽(截止频率)就是:

BW = Kp / L  (单位:rad/s)

或者换算成Hz:

BW_Hz = Kp / (2π·L)

技巧:这个公式就是带宽法则的核心。你只要知道目标带宽BW,和电机电感L,就能直接算出Kp。Ki则由极点对消条件得出:Ki = Kp · R / L。

3.3 带宽法则的整定步骤——三步走

我在项目中遇到过很多次,工程师拿着电机参数就开始调,调了半天发现系统响应太慢或者太振荡。其实按照带宽法则来,三步就能搞定:

  1. 确定目标带宽
    • 根据机械系统的需求来定。比如,一个高速主轴可能需要1000Hz以上的电流环带宽;一个大型机械臂可能只需要200Hz。
    • 一般建议:电流环带宽 = 速度环带宽 × 5~10倍。速度环带宽 = 位置环带宽 × 5~10倍。
    • 我曾经在一个项目中,客户要求位置环带宽50Hz,我直接定了电流环带宽500Hz。结果系统响应非常干脆,客户很满意。
  2. 计算Kp
    • 公式:Kp = BW × L
    • 注意单位:BW用rad/s,L用H。
    • 如果BW给的是Hz,先换算:BW_rad/s = 2π × BW_Hz
  3. 计算Ki
    • 公式:Ki = Kp × R / L
    • 或者直接用:Ki = BW × R
    • 这个Ki值能保证极点对消,系统响应最优。

警告:极点对消的前提是电机参数L和R准确。如果参数不准,对消效果会打折扣。我曾经遇到过一台电机,标称电感是5mH,实测只有3.8mH。用标称值算出来的PI参数,系统响应明显有超调。后来用实测值重新算,问题就解决了。

3.4 带宽选择的实际考量——不是越高越好

你可能会想:既然带宽越高响应越快,那我直接把带宽设到最高不就行了?

别急,这里有几个限制因素:

限制因素 说明 我的建议
PWM开关频率 电流环带宽不能超过PWM频率的1/10~1/5 一般取1/8比较安全
采样延迟 电流采样和计算会引入延迟,限制带宽 带宽不要超过采样频率的1/10
噪声放大 带宽越高,高频噪声越容易被放大 如果电流反馈有噪声,适当降低带宽
机械谐振 电流环带宽过高可能激发机械谐振 先做机械模态测试,避开谐振频率

说白了,带宽选择是个权衡。我个人习惯是先按理论值算一个初始带宽,然后在实际系统上微调。比如,理论算出来500Hz,实际跑起来发现电流噪声有点大,那就降到400Hz试试。

3.5 带宽法则的SVG知识图谱

下面这张图总结了带宽法则的核心逻辑,你看一眼就能明白:

带宽法则核心逻辑 ① 确定目标带宽 根据系统需求 ② 计算Kp Kp = BW × L ③ 计算Ki Ki = Kp × R/L 限制因素:PWM频率 | 采样延迟 | 噪声 | 机械谐振 带宽不是越高越好,需要权衡 实际应用:理论计算 → 系统调试 → 微调优化 先用公式算出初始值,再根据实际响应微调 最终结果:稳定、快速的电流环响应 系统带宽达到目标值,且无振荡

3.6 一个完整的计算示例

假设你手头有一台电机,参数如下:

  • 电感 L = 5 mH = 0.005 H
  • 电阻 R = 0.5 Ω
  • 目标电流环带宽 BW = 500 Hz

第一步,换算单位:

BW_rad/s = 2π × 500 = 3141.6 rad/s

第二步,计算Kp:

Kp = BW × L = 3141.6 × 0.005 = 15.708

第三步,计算Ki:

Ki = Kp × R / L = 15.708 × 0.5 / 0.005 = 1570.8

所以,PI参数为:Kp = 15.7,Ki = 1571。

你把这个参数写进控制器,系统响应应该能达到500Hz的带宽。当然,实际调试时可能还需要微调,但至少有了一个靠谱的起点。

小提示:如果你用的驱动器支持自动整定,它内部大概率也是用这个逻辑。但自动整定出来的参数不一定最优,尤其是当电机参数不准或者机械系统有谐振时。我建议你学会手动计算,这样遇到问题能快速定位。

3.7 避坑指南——我曾经踩过的坑

做伺服驱动这么多年,我在带宽法则上栽过几次跟头。分享出来,希望你别重蹈覆辙:

  • 坑一:忽略电感饱和

    我曾经在一个项目中,电机在低速大扭矩时电感会下降30%。用空载时的电感值算出来的Kp,在重载时明显偏大,系统出现振荡。后来我改用饱和电感值重新计算,问题解决。

  • 坑二:带宽设得太高,触发机械谐振

    有一次我把电流环带宽设到了800Hz,结果电机一跑起来就发出刺耳的啸叫声。用频谱仪一测,发现机械谐振频率正好在750Hz。把带宽降到600Hz后,啸叫声消失。

  • 坑三:忽略采样延迟

    有些低端驱动器的电流采样频率只有10kHz,理论上最大带宽只能到1kHz。但我当时没注意,设了1.2kHz的带宽,结果系统相位裕度不够,响应有超调。后来把带宽降到800Hz,一切正常。

嗯,这些坑其实都可以避免。只要你记住:带宽法则给出的是理论值,实际调试时一定要结合系统特性做微调。

3.8 小结

带宽法则的核心就一句话:先定带宽,再算参数。它把PI整定从一个「玄学」问题变成了一个「数学」问题。你只要知道电机参数和目标带宽,就能算出靠谱的Kp和Ki。

当然,实际系统总会有各种非理想因素。但有了这个理论基础,你调试起来就有方向了,而不是盲目地试参数。

下一章,我会讲第二个黄金法则——相位裕度法则。到时候你会看到,光有带宽还不够,还得保证系统有足够的稳定裕量。


专注资料整理