2. 死区时间设置:硬件死区与软件死区、死区时间计算、不同功率器件的死区要求

死区时间,说白了就是给上下桥臂同时关断的那一小段缓冲。我刚开始做FOC驱动时,总觉得这玩意儿可有可无,直到有一次在实验室里亲眼看着IGBT模块冒烟……嗯,从那以后我再也不敢小看死区了。

这一节我们聊聊死区到底怎么设,硬件死区和软件死区有什么区别,以及不同功率器件对死区的要求。内容偏实战,你拿过去就能用。

2.1 为什么需要死区?

先看一个最简单的半桥结构。上管导通时,下管必须关断;下管导通时,上管必须关断。但问题是,功率管的开通和关断都不是瞬间完成的——开通需要时间,关断也需要时间。

如果上管还没完全关断,下管就开始导通了,那就形成了直通短路。电流瞬间飙升,管子直接炸掉。我见过一个项目,就是因为死区设得太小,MOSFET在500kHz开关频率下连续炸了三次,最后才发现是死区少了50ns。

核心原则:死区时间必须大于功率管关断时间与开通时间的差值。简单说,就是确保一个管子彻底关断后,另一个管子才能开始导通。

2.2 硬件死区 vs 软件死区

实现死区有两种方式:硬件死区和软件死区。我个人的习惯是,能用硬件死区就用硬件死区,软件死区只作为辅助或调试手段。

硬件死区

硬件死区是通过专门的死区插入电路或驱动芯片来实现的。比如TI的DRV8301、Infineon的IR2136这些驱动芯片,内部都有死区时间设置引脚,你只需要接一个电阻或电容,就能设定死区时间。

优点很明显:

  • 可靠性高——死区由硬件保证,不受软件跑飞影响
  • 精度高——ns级别的精度,温度漂移小
  • 不占CPU资源——PWM信号进来,硬件自动插入死区

我在一个工业伺服项目中用过DRV8301,死区设成200ns,跑了几万小时没出过问题。硬件死区一旦设好,基本不用操心。

软件死区

软件死区是在MCU的PWM模块里,通过配置寄存器来实现的。比如STM32的TIM定时器,有死区插入功能,你只需要设置TIM_BDTR寄存器的DTG位段。

软件死区的优势是灵活:

  • 可动态调整——运行时可以根据工况改变死区时间
  • 节省硬件成本——不需要额外的死区芯片
  • 调试方便——改个寄存器值就行,不用换电阻

注意:软件死区有一个致命问题——如果MCU死机或程序跑飞,PWM输出可能失去死区保护。我曾经在一个项目中遇到过,MCU在强电磁干扰下复位,PWM输出瞬间变成直通,直接烧了三个MOSFET。从那以后,我要求所有量产项目必须同时使用硬件死区作为后备保护。

2.3 死区时间怎么算?

死区时间的计算没有固定公式,但有一个经验法则:

死区时间 ≥ 最大关断延迟时间 - 最小开通延迟时间 + 安全裕量

其中:

  • 最大关断延迟时间:从驱动信号撤销到功率管完全关断的时间,包括驱动延迟和管子本身的关断延迟
  • 最小开通延迟时间:从驱动信号给出到功率管开始导通的时间
  • 安全裕量:一般取20%~50%的额外时间,用于补偿温度变化、器件老化等因素

举个例子,我常用的一个MOSFET——IRFP460,它的典型参数是:

参数 典型值 最大值
开通延迟时间 td(on) 25ns 50ns
上升时间 tr 45ns 90ns
关断延迟时间 td(off) 80ns 160ns
下降时间 tf 40ns 80ns

那么死区时间计算如下:

  • 最大关断延迟 = 160ns + 80ns = 240ns
  • 最小开通延迟 = 25ns + 45ns = 70ns
  • 理论死区 = 240ns - 70ns = 170ns
  • 加上50%安全裕量 = 170ns × 1.5 ≈ 255ns

所以我一般会设成300ns,留点余量。你想想看,如果直接设成170ns,温度一高、管子一老化,直通风险就上来了。

2.4 不同功率器件的死区要求

不同功率器件的开关速度差异很大,死区要求也完全不同。我整理了一个对照表,方便你参考:

器件类型 典型开关频率 推荐死区时间 注意事项
低压MOSFET(<100V) 20kHz~200kHz 50ns~200ns 开关速度快,死区可以很小
高压MOSFET(>200V) 10kHz~100kHz 200ns~500ns 米勒效应明显,关断延迟大
IGBT 2kHz~20kHz 1μs~3μs 拖尾电流严重,死区必须足够大
SiC MOSFET 50kHz~500kHz 30ns~100ns 开关极快,但驱动要求高
GaN FET 100kHz~1MHz 10ns~50ns 死区过大会导致体二极管导通损耗剧增

这里我要特别说一下IGBT。IGBT关断时有拖尾电流现象,就是关断信号给出后,电流不会立刻降到零,而是有一个缓慢的拖尾过程。这个拖尾时间可能长达几百纳秒甚至几微秒。所以IGBT的死区时间通常要设得比较大,1μs起步。

我记得有一次做变频器项目,用的是英飞凌的IGBT模块,手册上写关断延迟典型值300ns,我就设了500ns死区。结果一上电,模块温度飙升,波形畸变得厉害。后来仔细看手册才发现,拖尾电流部分没算进去,实际关断时间接近1.2μs。改成2μs死区后,一切正常。

小技巧:如果你不确定死区该设多少,可以先用示波器测量实际波形。把上下管的栅极电压和漏极电压同时抓下来,看看从关断到开通之间有没有重叠。我每次换新器件都会做这个测试,心里才有底。

2.5 死区对电流重构的影响

死区时间不仅影响安全性,还直接影响电流重构的精度。为什么?因为死区期间,电流采样电阻上的电压是不准确的——死区时上下管都关断,电流通过体二极管续流,采样电阻上的压降和正常导通时不一样。

我做过一个对比实验:死区设成500ns时,电流重构的THD(总谐波失真)大约是3%;把死区优化到200ns后,THD降到了1.2%。效果很明显。

所以,在保证安全的前提下,死区时间越小越好。但也不能太小,否则直通风险增加。这是一个权衡。

2.6 死区补偿的思路

既然死区会影响电流波形,那能不能补偿掉?当然可以。死区补偿的基本思路是:根据电流方向,在PWM占空比上做修正。

简单说:

  • 当电流从桥臂流向负载(正向电流)时,死区会导致输出电压降低,需要增加占空比
  • 当电流从负载流向桥臂(反向电流)时,死区会导致输出电压升高,需要减小占空比

补偿量的大小就是死区时间对应的占空比。比如死区500ns,PWM周期10μs,那么补偿量就是500ns/10μs = 5%。

这部分内容在后面的章节会详细展开,这里先留个印象。

2.7 本章小结

死区时间设置,说白了就是安全与性能的平衡。设大了安全,但波形变差、效率降低;设小了效率高,但直通风险大。

我的建议是:

  1. 优先用硬件死区,软件死区作为辅助
  2. 根据器件手册计算理论值,再用示波器实测验证
  3. 留足安全裕量,至少20%~50%
  4. 考虑温度影响——高温下开关速度会变慢,死区要适当增大
  5. 死区补偿要跟上,否则电流重构精度会受影响

嗯,死区这块就聊到这儿。下一节我们讲电流采样,那是FOC的另一个关键环节。


公众号:蓝海资料掘金营,微信deep3321