一、问题从哪来
上周调一台伺服驱动器,电流环带宽按仿真算到 1.8kHz,上机一跑就抖,负载侧还带轻微啸叫。排查到最后发现,问题不在 PI 参数本身,而是死区补偿、采样时序和积分限幅三处没对齐。带宽不是算出来的,是测出来、调出来的。
二、机理拆解
电流环带宽取决于开环增益穿越频率,但实际受三件事约束:采样延迟、PWM 占空比更新延迟、以及 MOS 死区造成的电流畸变。采样如果没对齐到 PWM 中点,等效会引入额外相位滞后;死区补偿不到位,低速段电流波形被削,PI 输出会反复饱和又退出,形成低频振荡。
抗积分饱和不是简单限幅,而是要让积分项在饱和时停止累积,退出饱和时平滑接管。否则 PI 输出在限幅边界来回弹,带宽测出来虚高,实际带载就失稳。
三、实现推理
我在 DSP 上按"采样-计算-更新"三段时序落地。采样点固定在 PWM 中点,避开开关瞬态;PI 计算放在采样中断里,输出限幅前加 anti-windup 反馈,把饱和偏差扣回积分项。
死区补偿先用符号判据判断电流过零点,再做过零附近线性插值,避免硬切换引入阶跃扰动。带宽整定从低频开始逐步抬升,用阶跃响应看超调和调节时间,同时挂 FFT 看噪声峰值,不盲目追高。
四、参数对照
| 采样对齐方式 | PWM 中点采样 | 常规电流环 | 相位滞后最小,但需硬件触发精确配合 |
| 积分限幅系数 | 额定电流的 1.2 倍 | 带载阶跃 | 过小响应慢,过大易饱和振荡 |
| 死区补偿斜率 | 过零±20µs 线性过渡 | 低速小电流 | 斜率太陡引入噪声,太缓补偿不足 |
| 带宽目标值 | 载波的 1/10 到 1/8 | 通用伺服 | 过高易受采样延迟和死区影响失稳 |
| 抗饱和反馈增益 | 0.5 到 1.0 | 大惯量负载 | 增益大退出快,但可能引入二次超调 |
五、配置要点
最容易踩的坑是采样时序与 PWM 对齐没锁死。我见过一块板子,软件里写了中点采样,但硬件触发相位被默认配置偏了半个周期,结果采样点落在开关边沿上,电流反馈全是毛刺,PI 怎么调都不稳。上机第一件事务必用示波器双通道挂 PWM 和采样触发,确认相位关系。
六、工程笔记
现象:带宽仿真 1.8kHz,上机抖动啸叫。原因:采样点偏离开关中点,死区补偿硬切换。处置:校正触发相位,过零段改线性插值。
现象:阶跃响应超调大、调节时间长。原因:积分限幅过小,抗饱和反馈没生效。处置:限幅抬到 1.2 倍额定,anti-windup 增益调到 0.7。
现象:低速段电流波形锯齿明显。原因:死区补偿斜率不足,电流过零处出现台阶。处置:过零过渡区展宽到±25µs,斜率重新拟合。
爱控电子在调这一类电流环时,会把死区补偿和采样时序放在同一张调试表里核对,三项对齐后再动 PI 增益。
以上数据以实测为准,不同工况会有差异。欢迎评论区交流。你们那边电流环带宽一般整定到载波的几分之一?
我要赚赏金
