4. 电流环PI参数整定:基于电机电气时间常数的理论计算,手动调试经验分享

电流环是整个FOC系统的最内环,也是响应最快的环。说白了,电流环调不好,速度环和位置环就是空中楼阁。我见过不少新手一上来就调速度环,结果电机嗡嗡响、电流乱窜,最后发现是电流环根本没锁住。

这一章咱们就专门啃电流环的PI参数。我会从理论计算讲起,再结合我这些年踩过的坑,给你一套能直接上手的调试方法。

4.1 电气时间常数:电流环的“生理特征”

先问一个问题:为什么电流环的PI参数可以用公式算?

因为电流环的模型相对简单。电机绕组就是电阻R和电感L串联,电流响应就是一阶惯性环节。它的时间常数叫电气时间常数,记作τe。

电气时间常数公式:

τe = L / R

其中:L — 相电感(H),R — 相电阻(Ω)

这个τe决定了电流从0上升到稳态值的63.2%需要多长时间。你想想看,如果τe是1ms,那电流环的带宽最多也就几百Hz;如果τe是0.1ms,那带宽可以做到几千Hz。

我在项目中遇到过一台大功率伺服电机,τe算出来只有0.08ms。当时我按常规方法调PI,电流环一直震荡。后来才发现是电流采样延迟和PWM更新周期限制了带宽,跟电机本身没关系。嗯,这里要注意,理论值只是上限,实际还要受硬件限制。

4.2 理论计算:从τe到Kp和Ki

电流环PI控制器的传递函数是:

GPI(s) = Kp + Ki / s

我们希望把电流环校正成典型I型系统,也就是让开环传递函数在穿越频率附近呈现-20dB/dec的斜率。工程上常用的整定方法是零极点对消法。

具体做法是:让PI控制器的零点抵消电机电气时间常数对应的极点。

零极点对消条件:

Ki / Kp = R / L = 1 / τe

即:Ki = Kp / τe

然后根据期望的电流环带宽ωc(单位:rad/s)来确定Kp:

Kp = ωc × L

带宽ωc怎么选?我个人的经验是:

  • 保守方案:ωc = 1 / (2 × τe),适合对噪声敏感或采样频率低的场合
  • 激进方案:ωc = 1 / τe,适合需要快速响应的场合
  • 极限方案:ωc = 2 / τe,但需要非常高的PWM频率和低延迟采样

举个例子,假设电机参数如下:

参数 数值 单位
相电阻 R 0.5 Ω
相电感 L 1.0 mH
电气时间常数 τe 2.0 ms

取ωc = 1 / τe = 500 rad/s,则:

Kp = ωc × L = 500 × 0.001 = 0.5
Ki = Kp / τe = 0.5 / 0.002 = 250

这就是理论计算的起点。但我要提醒你,这只是初始值,不是最终值。

4.3 手动调试:从理论到实践的“最后一公里”

理论计算给了我们一个不错的起点,但实际系统还有各种非理想因素:

  • 电流采样延迟(ADC转换时间、滤波时间)
  • PWM更新延迟(通常是一个PWM周期)
  • 死区效应
  • 逆变器非线性
  • 电机参数误差(R和L会随温度变化)

所以,理论值算出来后,必须上机调试。我总结了一套“三步走”的手动调试法:

步骤1:空载粗调

电机空载,给一个较小的电流指令(比如额定电流的10%)。用示波器观察电流响应波形。

  • 如果电流响应过冲大、震荡:说明Kp太大,或者Ki太大。先减小Kp,再减小Ki。
  • 如果电流响应上升慢、稳态误差大:说明Kp太小,或者Ki太小。先增大Kp,再增大Ki。
  • 如果电流响应有高频噪声:说明Kp太大,或者采样有干扰。减小Kp,检查采样电路。

我的调试技巧:

先调Kp,让电流响应不震荡、不超调。然后调Ki,消除稳态误差。Ki不要太大,否则会引起低频震荡。

步骤2:带载细调

给电机加上额定负载(可以用另一个电机对拖,或者用机械负载)。重复步骤1的观察和调整。

带载后,电流环的响应会变慢一些,因为反电动势的影响变大了。这时候可能需要适当增大Kp来补偿。

步骤3:动态响应测试

给电流指令一个阶跃信号(比如从0跳到额定电流的50%),观察电流的跟踪性能。

  • 上升时间:应该在1~3个PWM周期内
  • 超调量:小于5%
  • 稳态误差:小于1%
  • 调节时间:小于5个PWM周期

如果动态响应不满足要求,可以微调Kp和Ki,但要注意不要引起震荡。

4.4 避坑指南:我曾经踩过的坑

坑1:Ki积分饱和

我曾经在一个项目中,电流环Ki设得比较大,结果电机启动时电流指令限幅了,积分项一直累加,导致电流过冲很大。后来加了积分限幅和抗饱和处理才解决。

解决方案:给积分项加限幅,限幅值一般取额定电流的1.5~2倍。同时使用条件积分法,在输出饱和时停止积分。

坑2:参数随温度变化

电机运行一段时间后,绕组温度升高,电阻R会增大(铜线的温度系数大约是0.4%/℃)。这意味着τe会变小,原来的PI参数可能就不合适了。

解决方案:如果对性能要求高,可以加温度补偿。或者把PI参数设计得保守一些,留足裕量。

坑3:采样噪声放大

Kp越大,对采样噪声的放大越严重。我遇到过一台电机,电流采样有轻微的毛刺,Kp调大后,毛刺被放大,导致电流环震荡。

解决方案:在电流采样后加一阶低通滤波,截止频率设为电流环带宽的5~10倍。或者在PI控制器中加一个低通滤波器。

4.5 知识体系:电流环PI参数整定全景图

下面这张图总结了电流环PI参数整定的完整流程和关键点:

电流环PI参数整定知识体系 电机参数 R, L, τe 期望带宽 ωc = 1/τe ~ 2/τe 硬件限制 PWM频率, ADC延迟 理论计算 Kp = ωc × L, Ki = Kp / τe 手动调试三步走 空载粗调 → 带载细调 → 动态测试 空载粗调 观察阶跃响应 调Kp消除震荡 带载细调 加额定负载 微调Kp补偿 动态测试 阶跃响应测试 验证性能指标 常见陷阱 积分饱和 | 温度变化 | 采样噪声放大

4.6 总结:记住这三点

电流环PI参数整定,说白了就是三件事:

  1. 算出来:用τe和期望带宽算出Kp和Ki的初始值
  2. 调出来:用“空载→带载→动态”三步法手动微调
  3. 防住坑:积分饱和、温度变化、采样噪声,这三个问题要时刻留意

我个人的习惯是,每次调完电流环,都会把最终的Kp和Ki值记录下来,同时记录当时的电机温度、母线电压、PWM频率。这样下次遇到类似电机,可以直接参考历史数据,省去很多重复调试的时间。