4. 电流环参数整定方法:理论计算法、试凑法、自动整定与响应曲线法
电流环是FOC控制中最内层的环,也是整个系统性能的基石。说白了,电流环调不好,速度环和位置环就是空中楼阁。我见过不少工程师花大把时间调速度环,结果发现是电流环的带宽根本不够——嗯,这种弯路我自己也走过。
这一章我们集中火力,把电流环的四种整定方法讲透。每种方法都有它的适用场景,没有银弹,只有合适的工具。
4.1 理论计算法:从电机参数出发
理论计算法是最"硬核"的方式。你只要知道电机的电阻 Rs 和电感 Ls,再加上电流环的采样周期 Ts,就能直接算出 PI 参数。我早期做伺服驱动器时,就靠这方法快速拿到一组可用的初值。
核心公式其实不复杂。电流环被控对象近似为一阶惯性环节:
G(s) = 1 / (Ls * s + Rs)
PI 控制器传递函数:
C(s) = Kp + Ki / s
我习惯把电流环带宽设计在开关频率的 1/10 ~ 1/20。举个例子,如果 PWM 频率是 20kHz,那电流环带宽取 1~2kHz 比较合理。带宽太高容易引入噪声,太低又跟不上速度环的需求。
理论计算步骤:
- 测量或查表得到电机相电阻 Rs(单位:Ω)
- 测量或查表得到电机相电感 Ls(单位:H)
- 确定电流环期望带宽 ωc(单位:rad/s)
- 计算 Kp = ωc × Ls
- 计算 Ki = ωc × Rs
举个例子,某款电机 Rs = 0.5Ω,Ls = 1.2mH,我期望带宽 1500 rad/s(约 240Hz):
Kp = 1500 × 0.0012 = 1.8
Ki = 1500 × 0.5 = 750
嗯,这里要注意。理论计算出来的 Ki 往往偏大,实际调试时我通常会先取计算值的 50%~70% 作为起点,防止积分饱和导致震荡。
避坑提醒: 我曾经在一个项目中直接用理论值上电,结果电流环啸叫得厉害。后来发现是电感的饱和效应——大电流下 Ls 会下降,导致实际增益偏高。所以理论值只能当起点,别指望一步到位。
4.2 试凑法:老工程师的直觉
试凑法,说白了就是"凭感觉调"。别觉得它不专业,实际上很多量产产品的参数最终都是试凑出来的。理论计算给个大概方向,剩下的靠经验和示波器。
我个人的试凑流程是这样的:
- 先把 Ki 设成 0,只调 Kp。从小到大加,直到电流响应出现轻微震荡。
- Kp 回调 30%~50%,留出稳定裕量。
- 加入 Ki,从 0 开始慢慢加,直到稳态误差消失。
- 联合微调,Kp 和 Ki 交替调整 2~3 轮。
小技巧: 试凑时别用电机带负载,空载调好后再带载验证。我曾经空载调得挺好,一带载就震荡——原因是负载增加了系统的转动惯量,等效改变了电流环的等效时间常数。
试凑法的优缺点很明显:
| 优点 | 缺点 |
|---|---|
| 不需要电机参数 | 依赖调试经验 |
| 适应性强,可处理非线性 | 耗时长,效率低 |
| 结果直观,可实时观察 | 难以达到最优性能 |
4.3 自动整定:让算法替你干活
自动整定是近年来比较流行的方式。你想想看,如果每次换电机都要手动调参,那产品怎么批量生产?自动整定的核心思路是:系统自己注入激励信号,根据响应自动算出 PI 参数。
我参与过的一个项目就用到了自动整定。流程大致如下:
- 注入高频方波或正弦波到电流环给定端
- 采集电流响应,用 FFT 或相关分析法提取幅值和相位
- 辨识出 Rs 和 Ls(或者直接辨识出被控对象模型)
- 套用理论公式计算 Kp 和 Ki
自动整定的关键点:
- 激励信号的幅值不能太大,否则会干扰电机正常运行
- 频率要避开机械谐振点
- 整定过程中最好让电机轴锁死,避免反电动势干扰
代码实现上,我常用的方法是注入一个 500Hz~1kHz 的方波,持续 20~50 个周期,然后用最小二乘法拟合出 Rs 和 Ls:
// 伪代码示例:自动整定中的参数辨识
for (i = 0; i < N; i++) {
v_alpha[i] = V_inj * sign(sin(2 * PI * f_inj * i * Ts));
i_alpha[i] = read_current();
}
// 最小二乘拟合
Rs = (sum(v_alpha * i_alpha) - N * mean(v_alpha) * mean(i_alpha)) /
(sum(i_alpha * i_alpha) - N * mean(i_alpha)^2);
Ls = (mean(v_alpha) - Rs * mean(i_alpha)) / (2 * PI * f_inj * mean(i_alpha));
注意: 自动整定不是万能的。我曾经在一个强振动环境中做自动整定,结果电流采样被机械振动干扰,辨识出来的 Ls 偏差了 30%。后来加了数字滤波才搞定。所以自动整定完成后,最好再用阶跃响应验证一下。
4.4 基于响应曲线的整定:用数据说话
响应曲线法,也叫"Ziegler-Nichols 法"的变种。它不依赖电机参数,而是直接看电流对阶跃给定的响应曲线,然后根据曲线的特征量反推 PI 参数。
具体做法是:
- 给电流环一个小的阶跃给定(比如额定电流的 10%)
- 用示波器或 ADC 记录电流响应波形
- 从波形中提取三个关键指标:
- 上升时间 tr:从 10% 到 90% 的时间
- 超调量 σ%:峰值超出稳态值的百分比
- 稳态误差 ess:最终值与给定值的偏差
- 根据指标查表或代入经验公式计算 Kp 和 Ki
经验公式(我常用的):
- 如果超调 < 5%,说明 Kp 偏小,可以增加 20%~30%
- 如果上升时间 > 5 个 PWM 周期,说明带宽不够,Kp 和 Ki 同步增加
- 如果稳态误差 > 2%,说明 Ki 不够,增加 Ki 直到误差消失
我个人习惯把响应曲线法和理论计算法结合起来用。先用理论计算给一组初值,然后看阶跃响应曲线,根据超调和上升时间微调。这样既快又准。
实战经验: 有一次我调试一个 2kW 的伺服电机,理论计算出来的参数导致上升时间只有 0.3ms,但超调达到了 25%。我根据响应曲线把 Kp 降了 40%,Ki 降了 20%,最终得到了 0.5ms 上升时间、5% 超调的满意结果。你看,理论和实践结合才是王道。
4.5 四种方法对比与选择建议
说了这么多,到底该用哪种?我整理了一张对比表,方便你根据实际情况选择:
| 方法 | 适用场景 | 精度 | 效率 | 依赖条件 |
|---|---|---|---|---|
| 理论计算法 | 有电机参数、需要快速初值 | 中等 | 高 | Rs, Ls 准确 |
| 试凑法 | 无参数、调试环境灵活 | 依赖经验 | 低 | 示波器、经验 |
| 自动整定 | 批量生产、换型频繁 | 较高 | 高 | 算法实现 |
| 响应曲线法 | 已有初值、需要优化 | 高 | 中 | 阶跃响应数据 |
我的建议是:理论计算打底,响应曲线微调,自动整定收尾。试凑法可以作为应急手段,但不建议作为量产的标准流程。
嗯,电流环整定就聊到这里。记住一点:参数整定不是一劳永逸的事。电机老化、温度变化、负载变动都会影响参数的最优值。定期验证和微调,才是工程上的常态。