死区效应机理分析

做电机控制这些年,我见过不少工程师在调试SVPWM时遇到一个怪现象:明明算法算得挺准,电流波形就是有毛刺,电机跑起来嗡嗡响。其实说白了,问题大概率出在死区效应上。

今天我们就来彻底扒一扒死区效应的机理。你搞懂了它,后面做补偿就是顺理成章的事。

理想SVPWM与实际SVPWM的差异

先看理想情况。在仿真里,我们假设功率管是完美开关——给高电平就立刻导通,给低电平就立刻关断。上下桥臂的切换是瞬时的,没有任何延迟。

但实际器件不是这样的。IGBT或MOSFET关断需要时间,导通也需要时间。而且关断时间通常比导通时间长。你想想看,如果上管还没完全关断,下管就导通了,那会发生什么?

直通短路! 上下桥臂瞬间导通,电流会急剧上升,轻则炸保险,重则烧模块。我在项目里见过一次,那味道...嗯,至今难忘。

为了避免直通,我们在PWM信号里人为插入一段死区时间(Dead Time),也叫互锁时间。在这段时间里,上下桥臂都关断。典型值在1μs到3μs之间,具体看功率管的开关速度。

好,问题来了。死区时间内,电流不是零。它必须找个地方走。走哪?走续流二极管。这一走,就把输出电压给带偏了。

对比项 理想SVPWM 实际SVPWM(含死区)
开关切换 瞬时完成 存在死区间隔
输出电压 完全跟随参考电压 存在误差电压
电流波形 正弦光滑 存在畸变和毛刺
谐波含量 低 高(尤其低次谐波)
零电流钳位 无 存在

这张表我建议你存一下。调试时对照着看,能快速定位问题。

死区导致的误差电压矢量分析

我们深入一点。死区时间内,电流通过续流二极管续流。这时候输出电压取决于电流方向,而不是PWM指令。

举个例子。假设A相电流为正(流出桥臂),死区时间内下管续流二极管导通,A相输出被钳位到负母线(-Vdc/2)。但PWM指令可能要求输出正电压。这一来一回,就产生了误差。

反过来,如果A相电流为负(流入桥臂),死区时间内上管续流二极管导通,输出被钳位到正母线(+Vdc/2)。

我习惯用一个公式来理解这个误差电压:

V_err = -sign(I_phase) * V_dc * (T_dead / T_sw)

其中:

  • V_err:误差电压
  • sign(I_phase):电流极性(+1或-1)
  • V_dc:直流母线电压
  • T_dead:死区时间
  • T_sw:开关周期

你看,误差电压的大小和死区时间成正比,和开关频率也有关。频率越高,死区占比越大,误差越明显。

关键点: 死区误差电压是一个与电流极性相反的方波。这个方波叠加到参考电压上,就造成了电压失真。

我在一个2kW的伺服驱动器项目里实测过。死区2μs,开关频率10kHz,母线电压310V。算下来误差电压幅值大约6.2V。看起来不大,但折算到基波电压里,畸变率能到3%以上。对于高精度控制来说,这个量级已经不能忍了。

误差电压与电流极性的关系

这是死区效应里最核心的关系,也是做补偿的切入点。

我们画个图来理解。假设A相电流过零点附近,电流从正变负。在电流为正的半周期内,误差电压是负的;电流为负的半周期内,误差电压是正的。

这个误差电压在电流过零点附近会发生跳变。跳变幅度就是2倍的误差电压幅值。这个跳变会直接反映在相电压上,造成所谓的"零电流钳位"现象——电流在过零点附近被"粘住"了,过不去。

为什么会这样?因为误差电压的方向总是试图阻止电流换向。电流想从正变负,误差电压就推它往正方向走。结果就是电流过零点被延迟,波形出现台阶。

我的经验: 判断死区补偿做得好不好,最直观的方法就是看电流过零点附近有没有台阶。有台阶,说明补偿没到位或者补偿方向反了。

下面这张图展示了死区效应下误差电压与电流极性的关系:

死区误差电压与电流极性关系 电流 I 时间 误差 V_err -V_err +V_err -V_err 过零点 过零点 电流为正时,误差电压为负;电流为负时,误差电压为正 误差电压在过零点跳变,导致零电流钳位现象

从图上你能清楚看到:误差电压的极性和电流极性始终相反。这就是死区效应的本质——它像一个负反馈,一直在跟电流"对着干"。

知道了这个关系,补偿思路就清晰了:我们只需要检测电流极性,然后叠加一个方向相反的补偿电压,就能把死区吃掉。

注意: 电流极性检测在过零点附近非常容易出错。因为电流很小,采样噪声可能把极性判断反了。一旦补偿方向反了,不但没效果,反而会加剧畸变。我曾经在这个坑里爬了整整一周。

总结一下死区效应的核心要点:

  • 死区是为了防止直通,但带来了电压误差
  • 误差电压大小与死区时间、母线电压、开关频率有关
  • 误差电压极性始终与电流极性相反
  • 过零点附近的极性判断是补偿成败的关键