3. 电流环调优:PI参数整定、带宽设计、电流采样延迟补偿

电流环,说白了就是伺服驱动器的“肌肉反应”。

位置环和速度环再聪明,最终都要靠电流环去执行。电流环调不好,上面两层全是空谈。我见过太多工程师,速度环调得漂漂亮亮,一上负载就抖成筛子——查到最后,都是电流环带宽没跑上去。

这一章,咱们就把电流环的底裤扒干净。

3.1 电流环的物理本质

先想一个问题:电机为什么能转?

因为线圈里有电流,电流在磁场里受力。电流环的任务,就是让线圈里的电流,精确跟随你给的目标值。

但这里有个坑——电机是电感负载。电感这东西,你给它加电压,电流不会瞬间跳变,而是慢慢爬升。这个爬升速度,取决于电感L和电阻R的时间常数τ = L/R。

核心公式:

电压方程:U = iR + L·di/dt + 反电动势

电流环要做的,就是通过调节电压U,让实际电流i快速追上目标电流i*。

我刚开始做伺服驱动时,总觉得电流环很简单——不就是个PI嘛。结果第一次上电,电流波形跟锯齿似的,电机嗡嗡响。后来才明白,反电动势和采样延迟这两个“隐形杀手”,才是真正的难点。

3.2 PI参数整定:从理论到手感

电流环的PI控制器,传递函数长这样:

G_c(s) = Kp + Ki/s

整定PI参数,我习惯用“两步法”:

  1. 先调Kp,让系统响应够快——但别让它振荡。
  2. 再调Ki,消除稳态误差——但别让积分饱和。

具体怎么操作?

第一步:估算电气时间常数

拿万用表测一下电机相电阻R和相电感L。τ = L/R,这个值决定了电流环的“天然速度”。

第二步:设定初始Kp

我一般这样估算:

Kp ≈ L / (3 × Ts × Vdc)

其中Ts是电流环控制周期,Vdc是母线电压。

举个例子:

参数
L5 mH
R0.5 Ω
Ts100 μs
Vdc48 V
估算Kp0.347

这个值不一定准,但能让你从安全区开始调。我曾经有一次直接套用理论值,结果电流振荡得厉害——后来发现是电感测量时没考虑饱和效应。

第三步:现场微调

给一个阶跃电流指令,看响应波形:

  • 上升沿太慢 → 增大Kp
  • 有超调 → 减小Kp
  • 稳态有静差 → 增大Ki
  • 低频振荡 → 减小Ki

我的小技巧:

调Ki时,先把Kp调好,然后从0开始慢慢加Ki。加到电流开始有“呼吸感”的波动时,退回一半。这个“呼吸感”很难描述,但你盯着示波器看几次就懂了。

3.3 带宽设计:你到底能跑多快?

电流环带宽,决定了伺服系统的“反应速度”。

带宽越高,电流跟踪越快,系统刚性越好。但带宽不是你想高就能高——受限于PWM频率、采样延迟、反电动势等因素。

经验法则:

  • 电流环带宽 ≤ PWM频率的 1/10
  • 例如:10 kHz PWM → 带宽约 1 kHz
  • 再往上推,相位裕度就不够了

为什么会有这个限制?

你想想看,PWM一个周期才100 μs,你采样一次、算一次、更新一次占空比,这中间就有延迟。延迟会带来相位滞后,带宽越高,滞后越严重,最后系统就振荡了。

带宽与相位裕度的关系:

一般要求电流环的相位裕度 ≥ 45°

如果相位裕度低于30°,系统就会有明显的谐振峰

我做过一个项目,客户要求电流环带宽做到2 kHz。PWM频率是20 kHz,理论上够。但实际一测,相位裕度只有28°,电流波形有毛刺。后来加了前馈补偿,才勉强压到1.8 kHz。嗯,理论归理论,工程上总要留点余量。

3.4 电流采样延迟补偿

这是电流环调优里最容易被忽略的一环。

电流采样不是瞬时的——ADC需要转换时间,滤波器有延迟,PWM更新也有时序问题。这些延迟加起来,可能就有几十微秒。

延迟带来的后果:

  • 实际电流已经变了,你采到的还是老数据
  • 控制器基于“过时”的数据计算,输出自然不准
  • 高频段相位滞后严重,带宽上不去

怎么补偿?

我常用的方法有两种:

  1. 预测补偿法:根据当前电流变化率,预测下一个时刻的电流值
  2. 相位超前校正:在PI控制器后面串一个超前环节

预测补偿的代码实现:

// 电流采样延迟补偿
float current_predict(float i_meas, float i_prev, float Ts, float Td) {
    // i_meas: 当前采样值
    // i_prev: 上一周期采样值
    // Ts: 控制周期
    // Td: 采样延迟时间
    float di_dt = (i_meas - i_prev) / Ts;
    return i_meas + di_dt * Td;
}

这个补偿量不大,但效果很明显。我曾经在一个高速主轴项目里,加了延迟补偿后,电流环带宽从800 Hz直接干到了1.2 kHz。客户说“这电机像换了个人似的”。

注意:

延迟补偿不能过度。补偿量超过实际延迟,反而会引入高频噪声。我建议先用示波器测一下实际的采样延迟,再设定补偿值。别靠猜。

3.5 电流环调优的完整流程

说了这么多,咱们捋一个实战流程:

  1. 测参数:测电机相电阻、相电感、母线电压
  2. 设初始PI:按公式估算Kp,Ki先设为0
  3. 调Kp:给阶跃指令,调Kp直到响应够快且无振荡
  4. 调Ki:从0开始加Ki,消除稳态误差
  5. 测带宽:扫频测试,确认带宽和相位裕度
  6. 补延迟:如果带宽不够,加采样延迟补偿
  7. 验证:带负载跑一下,看电流波形是否干净

这个流程我用了十年,基本没翻过车。

3.6 知识体系总览

下面这张图,把电流环调优的核心逻辑串起来了:

电流环调优知识体系 电流环调优 PI参数整定 带宽设计 采样延迟补偿 Kp调节 Ki调节 PWM频率限制 相位裕度 预测补偿 相位超前校正 目标:高带宽 + 高稳定性 + 低延迟

这张图你看懂了吗?三个分支互相影响。PI参数调不好,带宽上不去;带宽设计不合理,延迟补偿也救不回来。三者要通盘考虑。

最后说一句:

电流环调优,别光看仿真。上示波器,看实际波形。我见过太多仿真跑得漂亮、一上电就崩的案例。实践出真知,这话在伺服驱动领域,一点不假。


公众号:蓝海资料掘金营,微信deep3321