1. 什么是死区(Dead-Time)?为什么必须有它
三相逆变器每个桥臂都由上管 + 下管两个开关管组成。它们绝不能同时导通——一旦直通,母线电压直接短路,瞬间烧毁开关管。
但开关管有开通/关断时间:上管还没完全关断、下管就开通的瞬间,两者都会短暂导通(直通)。为了彻底避免直通,必须插入一段上下管都关断的时间,这就是死区时间(Dead-Time)td。
td > toff,max − ton,min + 裕量,典型值几百 ns ~ 几 μs
开关管的数据手册开关时间(ton/toff)、门极驱动电路的延迟、续流二极管反向恢复时间,以及 EMI/共模抑制的要求。死区太短有直通风险,太长则电压误差大——这是一个需要权衡的设计量。
2. 死区效应:电压误差是怎么产生的
死区期间上下管都关断,相电流只能经续流二极管续流。此时相电压不再是"指令决定的",而是由电流方向决定:
- 电流从桥臂流出(i > 0)→ 经下管二极管续流 → 相电压被拉到 −Vdc/2
- 电流流入桥臂(i < 0)→ 经上管二极管续流 → 相电压被拉到 +Vdc/2
也就是说,在死区这段本该"三态悬空"的时间里,输出电压被续流二极管"强制"到了与指令相反的方向。平均下来,实际输出电压比指令电压少了一块固定的量:
Verr ≈ (td / Tsw) · Vdc
vactual = vcmd − sign(i) · Verr
其中 Tsw 是 PWM 周期。例如 20kHz 开关、2.5μs 死区、24V 母线:Verr = (2.5/50)·24 = 1.2V——在 24V 系统里接近 5% 的电压损失。
严格地讲,死区误差还应包括开关管导通压降 VCE(sat) 和续流二极管压降 VF,以及开通/关断时间不对称 (ton−toff)/Tsw·Vdc。在低压大电流场合(如 24V 以下、电流几十安),管压降项占比很大,不可忽略。
3. 死区效应对 FOC 的影响
- 相电压畸变:死区误差是"方波状"的周期性电压误差,直接叠加到三相电压上
- 电流波形畸变:电压误差激励出 6 次、12 次谐波电流,电流过零附近出现"台阶/卡顿"
- 转矩脉动与噪音:谐波电流不产生有效转矩,只产生损耗和 6f 振动噪音
- 低速轻载最严重:电压指令小、电流小,死区误差占比大,低速爬行、过零卡顿明显
- 最小脉宽丢失:指令脉宽接近或小于死区时,脉冲可能被"吃掉",呈强非线性
与齿槽转矩、角度误差不同,死区是电压域的扰动,直接从"驱动源头"污染电流——所以补偿也必须在电压域做(前馈补偿电压)。
4. 补偿原理:电压前馈
核心思想很直接:死区"偷走"了 sign(i)·Verr 的电压,那就原样补回去:
vcmd,comp = vcmd + sign(i) · Verr
三相各算各的:知道每相电流方向,就把 Verr 加回该相电压指令。实现上有两种主流做法:
- 电压前馈法:在反 Park 之后、SVPWM 之前,把补偿电压叠加到三相电压指令(或在 αβ 域构造补偿矢量)。实现简单,不依赖 PWM 硬件。
- PWM 脉宽修正法:直接修改比较寄存器的计数值,电流为正就延长导通时间、为负就缩短。更贴近硬件,但要注意计数上下溢。
死区误差是确定性的(方向由电流极性决定、大小由 td/Tsw·Vdc 决定),所以用前馈即可精确抵消,不改变闭环稳定性。前提是:电流极性判断要准(见下一节)。
5. 电流极性判断:补偿的成败关键
电压前馈补偿需要知道每相电流的符号 sign(i)。问题在于电流过零附近:
- 采样噪声、PWM 纹波让瞬时电流在零附近"抖动"
- 极性误判 → 补偿方向加反 → 不但没补偿,反而把误差放大一倍
- 这正是"过零畸变"补偿不干净的根本原因
工程上的解决办法:
- 滞回比较(hysteresis):电流超过 +Ith 判正、低于 −Ith 判负,中间保持上一极性。简单有效。
- 电流矢量角判断:用 iα/iβ(或 id/iq)的矢量角度判断三相极性,而不是逐相看瞬时值——利用了三相 120° 关系,抗抖动更强。
- 只补偿可靠区:|i| 小于阈值的相不补偿,或降低补偿增益,避免误补。
- 观测器估计过零:用电流观测器/滤波器平滑后的值判断极性。
6. 交互式演示:死区时序与补偿效果
左侧是单相 PWM 时序(上管 S1 / 下管 S4,红色竖条为死区),下方是相电压的理想值(蓝虚线)与实际值(红实线)——注意死区期间实际电压被续流二极管"拽"到与电流方向相反的电平。右侧是电流波形:理想(灰)、死区畸变(红,过零处出现台阶)、补偿后(绿)。
观察要点:
- 电流过零时,左侧死区电平会翻转:i>0 死区续流到下管(−Vdc/2),i<0 续流到上管(+Vdc/2)——这就是电压误差的"方波"来源
- 死区时间、母线电压越大,Verr 越大;电频率越高(相对误差占比越小)、电流越大,过零畸变相对越小——所以低速轻载补偿收益最大
- 打开补偿,绿色电流曲线与理想曲线重合——电压前馈把死区误差"补了回来"
7. 代码实现(C语言)
7.1 电压前馈补偿
7.2 PWM 脉宽修正法
7.3 参数来源与标定
- Verr 的 td 取实际配置的死区时间(不是理论值),Tsw 取 PWM 周期
- 低压大电流场合把 VCE(sat)、VF 折算进去:Verr = (td/Tsw)·Vdc + VCE + VF
- 极性判断阈值 Ith 取电流纹波幅值的一半左右,太小会抖动、太大会漏补
- 补偿效果验证:看电流波形过零处是否还有台阶、iq 的 6 次谐波是否下降
8. 工程要点与常见误区
要点 1:死区时间要权衡,不是越小越好
死区太短有直通风险(炸管),太长则电压误差大、低速性能差。在满足可靠性(开关时间+驱动延迟+反向恢复+裕量)的前提下尽量短,再用补偿把残余误差去掉。
要点 2:低速轻载补偿收益最大
低速时电压指令小、电流小,死区误差相对占比大,过零畸变明显;高速大电流时相对影响小,但 6 次谐波噪音仍可能存在。补偿算法通常全程开启即可。
要点 3:电流极性判断是成败关键
过零附近的极性误判会让补偿"帮倒忙"。务必用滞回 + 阈值或电流矢量角判断,别直接用原始采样瞬时值比零。
要点 4:低压大电流要补管压降
VCE(sat) 和 VF 在低压系统里可能和死区误差同一量级。只补死区时间会补偿不足,需把管压降一并计入 Verr。
要点 5:最小脉宽问题
指令脉宽接近死区时,PWM 脉冲可能被"吃掉"(窄脉冲丢失),此时前馈模型失效。可在 PWM 生成时做最小脉宽钳制,或用高分辨率定时器。
要点 6:与其它补偿的分工
死区补偿在电压域(补电压),齿槽转矩补偿在电流域(补 iq),磁编校正在角度域(补角度)。三者互补,互不冲突,但要各自管理好参数,别重复叠加同一个扰动。
误区 1:死区时间越小越好
过小有直通风险。正确做法是在可靠前提下尽量小,剩余误差交给补偿。
误区 2:只补偿死区时间,忽略管压降
低压大电流场合管压降占比很大,忽略会导致补偿不足、电流仍畸变。
误区 3:直接用采样瞬时值判断电流极性
过零附近噪声/纹波使极性抖动,补偿方向反复横跳。要用滞回、阈值或矢量角。
误区 4:高速就不需要死区补偿
相对影响变小,但 6 次谐波引起的振动噪音在高速反而更突出(频率更高、更刺耳),一般仍需开启。
误区 5:死区补偿 = 齿槽转矩补偿
死区是电压域扰动(与电流极性、td、Vdc 相关),齿槽是电流域扰动(与转子角度相关)。补偿量不同、位置不同,别混为一谈。
9. 小结
- 死区是防止上下管直通的安全时间,代价是输出电压误差
- 死区期间相电压由电流方向决定(续流二极管),等效电压误差 Verr = (td/Tsw)·Vdc,还要加管压降
- 死区误差造成相电压畸变 → 6/12 次谐波电流 → 转矩脉动与噪音,低速轻载最严重
- 补偿核心是电压前馈:vcmd + sign(i)·Verr;也可直接修 PWM 比较值
- 成败关键在于电流极性判断:滞回/阈值/矢量角,避免过零误判
- 与齿槽(电流域)、磁编(角度域)补偿分工互补,按电压域→电流域→角度域分层治理
下一篇我们回到转矩品质的另一面——齿槽转矩补偿,看看"与电流无关"的定位转矩怎么用 q 轴前馈抹平。