死区效应机理分析
做电机控制这些年,我见过不少工程师在调试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倍的误差电压幅值。这个跳变会直接反映在相电压上,造成所谓的"零电流钳位"现象——电流在过零点附近被"粘住"了,过不去。
为什么会这样?因为误差电压的方向总是试图阻止电流换向。电流想从正变负,误差电压就推它往正方向走。结果就是电流过零点被延迟,波形出现台阶。
下面这张图展示了死区效应下误差电压与电流极性的关系:
从图上你能清楚看到:误差电压的极性和电流极性始终相反。这就是死区效应的本质——它像一个负反馈,一直在跟电流"对着干"。
知道了这个关系,补偿思路就清晰了:我们只需要检测电流极性,然后叠加一个方向相反的补偿电压,就能把死区吃掉。
总结一下死区效应的核心要点:
- 死区是为了防止直通,但带来了电压误差
- 误差电压大小与死区时间、母线电压、开关频率有关
- 误差电压极性始终与电流极性相反
- 过零点附近的极性判断是补偿成败的关键