4. 电流环控制策略进阶:PI参数整定与带宽设计、前馈补偿技术、电流采样与滤波延迟补偿
各位工程师朋友,大家好。今天我们聊点硬核的——电流环。
做EPS电机控制,电流环是底层基础。基础不牢,地动山摇。你速度环调得再好,位置环算得再准,电流环跟不上,一切都是空谈。我个人习惯把电流环比作汽车的发动机——它得有力、响应快、还不能抖。
这一节,我们聚焦三个核心问题:PI参数怎么整定?前馈怎么加?采样延迟怎么补?
4.1 PI参数整定与带宽设计
先说PI。很多新手上来就调比例、积分,调半天调不好。为什么?因为你没搞清楚带宽。
带宽是什么?说白了,就是电流环能跟踪多快的指令。带宽越高,响应越快,但噪声也越容易被放大。带宽太低,电机就感觉“肉肉的”,转向手感不跟手。
我一般这样设计:
- 先定带宽:EPS电流环带宽通常设在 500Hz ~ 1.5kHz。太高了,PWM开关噪声和采样噪声会进来;太低了,手感发涩。
- 再算PI参数:根据电机电气时间常数 τ = L/R 来推算。
这里给个经验公式:
Kp = L * ω_bw
Ki = R * ω_bw
其中 ω_bw 是你想要的带宽(弧度/秒)。比如你要 1kHz 带宽,ω_bw = 2π × 1000 ≈ 6283 rad/s。
重要提醒:这个公式的前提是电流环被简化为一个一阶惯性环节。实际系统中,由于延迟和采样效应,带宽不能无限高。我建议你留出 20%~30% 的余量。
我在项目中遇到过一个问题:按公式算出来的参数,仿真跑得好好的,一上实车就振荡。后来发现是电感参数 L 随电流变化了。嗯,这里要注意——电机参数不是常数。饱和电流下,L 会下降 20%~30%。
我的做法是:
- 用中电流段的 L 值计算 Kp、Ki
- 实车调试时,从 70% 计算值开始往上加
- 观察电流波形,直到出现轻微振荡,再回调 10%
小技巧:调试时可以用阶跃响应看上升时间。上升时间 ≈ 0.35 / 带宽。比如你要 1ms 上升时间,带宽大概就是 350Hz。反过来也能验证你的带宽设计是否合理。
4.2 前馈补偿技术
PI 控制有个天生的毛病——它总是等误差出现了才去调整。说白了,它是“事后诸葛亮”。
前馈就不一样了。它提前把干扰或指令变化预估出来,直接加到输出上。这样电流环的响应速度能再上一个台阶。
EPS 里最常用的前馈是反电动势前馈和指令前馈。
反电动势前馈:电机转起来会产生反电动势,这个电压会抵消你的驱动电压。如果不补偿,电流环就得靠 PI 慢慢把误差啃回来。我的做法是:
Vq_feedforward = ω_e * Ld * Id + ω_e * ψ_f
Vd_feedforward = -ω_e * Lq * Iq
其中 ω_e 是电角速度,ψ_f 是永磁体磁链。把这些算出来,直接加到 PI 输出上。
你想想看,这样 PI 只需要处理剩下的微小误差,负担小多了。响应自然就快了。
注意:前馈不是万能的。如果模型参数不准,前馈反而会引入误差。我曾经因为磁链参数标定不准,前馈加多了,电流反而出现低频振荡。后来花了半天重新标定参数才解决。
指令前馈:这个更简单。当电流指令突然变化时,直接把指令微分后乘以一个系数加到输出上。相当于给 PI 一个“助推”。
我个人习惯把前馈系数设成 0.8~0.9,留一点余量给 PI 去微调。这样既快又稳。
4.3 电流采样与滤波延迟补偿
好,现在 PI 调好了,前馈也加了。但你会发现——实际响应还是比仿真慢。为什么?
因为采样和滤波有延迟。
电流采样不是瞬时的。ADC 转换需要时间,滤波器会引入相位滞后。这些延迟加起来,可能就有 1~2 个 PWM 周期。对于 10kHz 的 PWM,那就是 100~200μs 的延迟。
别小看这点延迟。在 1kHz 带宽下,100μs 的延迟会让相位裕度下降 36°。搞不好系统就振荡了。
怎么补偿?我常用的方法有三种:
- 方法一:采样时刻对齐。把 ADC 采样触发点放在 PWM 载波的波峰或波谷。这时候电流纹波最小,信噪比最高。我一般放在波谷,因为这时候开关噪声也最小。
- 方法二:软件预测补偿。根据当前电流变化率,预测下一个时刻的电流值。说白了就是外推。公式很简单:
I_compensated = I_sampled + (dI/dt) * T_delay
其中 T_delay 是你估计的延迟时间。
- 方法三:滤波器相位补偿。如果你用了低通滤波器(比如一阶 RC 或数字滤波器),可以在软件里加一个超前环节来补偿相位滞后。
我的经验:不要过度补偿。我曾经试图把延迟完全补偿掉,结果高频噪声被放大了,电流波形反而更差。补偿 70%~80% 的延迟就够了,剩下的交给 PI 去处理。
最后,我画了一张图,把今天讲的核心逻辑串起来:
好了,这一节的内容就到这里。PI 整定、前馈补偿、延迟补偿,这三板斧用好了,你的电流环响应速度至少能提升 30%~50%。
下次调试的时候,不妨按这个顺序试试。你会发现,原来那些“调不出来”的问题,其实都有章可循。
公众号:蓝海资料掘金营,微信deep3321