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参数,我习惯用“两步法”:
- 先调Kp,让系统响应够快——但别让它振荡。
- 再调Ki,消除稳态误差——但别让积分饱和。
具体怎么操作?
第一步:估算电气时间常数
拿万用表测一下电机相电阻R和相电感L。τ = L/R,这个值决定了电流环的“天然速度”。
第二步:设定初始Kp
我一般这样估算:
Kp ≈ L / (3 × Ts × Vdc)
其中Ts是电流环控制周期,Vdc是母线电压。
举个例子:
| 参数 | 值 |
|---|---|
| L | 5 mH |
| R | 0.5 Ω |
| Ts | 100 μs |
| Vdc | 48 V |
| 估算Kp | 0.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更新也有时序问题。这些延迟加起来,可能就有几十微秒。
延迟带来的后果:
- 实际电流已经变了,你采到的还是老数据
- 控制器基于“过时”的数据计算,输出自然不准
- 高频段相位滞后严重,带宽上不去
怎么补偿?
我常用的方法有两种:
- 预测补偿法:根据当前电流变化率,预测下一个时刻的电流值
- 相位超前校正:在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 电流环调优的完整流程
说了这么多,咱们捋一个实战流程:
- 测参数:测电机相电阻、相电感、母线电压
- 设初始PI:按公式估算Kp,Ki先设为0
- 调Kp:给阶跃指令,调Kp直到响应够快且无振荡
- 调Ki:从0开始加Ki,消除稳态误差
- 测带宽:扫频测试,确认带宽和相位裕度
- 补延迟:如果带宽不够,加采样延迟补偿
- 验证:带负载跑一下,看电流波形是否干净
这个流程我用了十年,基本没翻过车。
3.6 知识体系总览
下面这张图,把电流环调优的核心逻辑串起来了:
这张图你看懂了吗?三个分支互相影响。PI参数调不好,带宽上不去;带宽设计不合理,延迟补偿也救不回来。三者要通盘考虑。
最后说一句:
电流环调优,别光看仿真。上示波器,看实际波形。我见过太多仿真跑得漂亮、一上电就崩的案例。实践出真知,这话在伺服驱动领域,一点不假。
公众号:蓝海资料掘金营,微信deep3321