2、死区产生机理:功率管开关特性、上下桥臂直通风险、死区插入的必要性
好,咱们接着聊。上一章我讲了死区的基本概念,这一章咱们深入扒一扒——死区到底是怎么来的?说白了,就是功率管不是理想开关,它有个“反应迟钝”的问题。
2.1 功率管的开关特性:不是你想关就能马上关
你想想看,一个MOSFET或者IGBT,给它一个关断信号,它真的能瞬间关断吗?不能。我在项目中遇到过好几次,示波器一看,关断波形拖了个长长的“尾巴”。
功率管的开关过程,其实分几个阶段:
- 开通延迟:栅极电压上升到阈值电压之前,管子基本没反应。这个时间叫td(on)。
- 上升时间:电流从0爬到最大值,电压开始下降。这个时间叫tr。
- 关断延迟:栅极电压开始下降,但管子还在导通。这个时间叫td(off)。
- 下降时间:电流从最大值降到0,电压开始上升。这个时间叫tf。
嗯,这里要注意,关断延迟往往比开通延迟更长。为什么?因为关断时需要把栅极电荷抽走,而驱动电路的拉电流能力通常有限。
关键数据(以典型IGBT为例)
| 参数 | 典型值 | 说明 |
|---|---|---|
| td(on) | 100~300 ns | 开通延迟 |
| tr | 50~200 ns | 电流上升时间 |
| td(off) | 200~500 ns | 关断延迟(通常更大) |
| tf | 100~300 ns | 电流下降时间 |
你看,关断延迟比开通延迟大了将近一倍。这就埋下了隐患。
2.2 上下桥臂直通风险:一个致命的“短路”
咱们以半桥电路为例。上管Q1导通时,下管Q2必须关断;反过来也一样。但问题来了——
假设我想让Q1关断、Q2导通。我同时给Q1发关断信号、给Q2发开通信号。但Q1的关断需要td(off)+tf的时间,而Q2的开通只需要td(on)+tr的时间。如果Q2开通得比Q1关断还快,那就会出现一个瞬间:Q1和Q2同时导通!
这就是上下桥臂直通(Shoot-Through)。
⚠️ 直通的后果有多严重?
- 母线电压直接短路,电流瞬间飙升到几百安培
- 功率管可能在几微秒内烧毁
- 严重时可能炸管、炸电容、甚至烧毁整个驱动板
我曾经在一个早期项目中,就因为死区设置得太小,上电瞬间“啪”的一声,IGBT模块直接炸裂。那味道,至今难忘。
为什么会这样?说白了,就是功率管的开关速度不匹配。你想想看,一个关得慢,一个开得快,中间必然有一段“重叠导通”的时间。
2.3 死区插入的必要性:用时间换安全
那怎么解决?很简单——让两个管子不同时动作。先确保一个完全关断,再让另一个开通。中间留出一段“空白期”,谁都不导通。这段空白期,就是死区。
死区插入的原则:
- 先关断,后开通:确保关断动作完成,再执行开通
- 死区时间 > 最大关断时间:一般取1.5~3倍的安全裕量
- 考虑温度影响:高温下开关速度会变慢,死区要留足余量
我个人的习惯是,先查数据手册,找到最坏情况下的关断延迟和下降时间,然后乘以2作为死区基准值。再根据实际测试波形微调。
💡 经验之谈
死区时间不是越大越好。死区太大,会导致输出电压波形畸变、电流谐波增加、电机噪音变大。我见过有人为了保险,死区设到10微秒,结果电机转起来嗡嗡响,效率也掉了一大截。
所以,死区是个“既要又要”的活——既要保证安全,又要尽量小。
2.4 死区插入的典型实现方式
实际工程中,死区插入有两种常见做法:
- 硬件死区:用RC延迟电路或专用死区芯片(如IR2110自带死区)
- 软件死区:在PWM生成时,通过延时或状态机实现
我个人更倾向于软件死区,因为灵活。你可以根据母线电压、温度、负载电流动态调整死区时间。硬件死区一旦焊上去,想改就得换电阻电容,太麻烦。
下面是一个简单的软件死区插入伪代码:
// 假设PWM周期为T,死区时间为DT
// 上管PWM信号:PWM_H
// 下管PWM信号:PWM_L
void insert_deadtime(uint32_t duty_cycle) {
// 上管关断时刻
uint32_t turn_off_h = duty_cycle;
// 下管开通时刻 = 上管关断 + 死区
uint32_t turn_on_l = duty_cycle + DT;
// 下管关断时刻
uint32_t turn_off_l = T - duty_cycle;
// 上管开通时刻 = 下管关断 + 死区
uint32_t turn_on_h = turn_off_l + DT;
// 生成PWM波形
set_pwm(PWM_H, turn_on_h, turn_off_h);
set_pwm(PWM_L, turn_on_l, turn_off_l);
}
你看,核心逻辑就是:上管关断后,等DT时间,再让下管开通。反过来也一样。
2.5 死区带来的副作用
死区虽然解决了直通问题,但它不是免费的。它带来了几个副作用:
- 电压损失:死区期间没有有效电压输出,相当于“丢”了一小段电压
- 电流畸变:尤其在过零点附近,死区会导致电流波形出现“台阶”
- 转矩脉动:电机低速运行时,死区引起的电压误差会导致转矩波动
嗯,这就是为什么我们需要死区补偿。不过那是后面章节的内容了,咱们先打好基础。
本章小结
- 功率管开关有延迟,关断比开通慢
- 上下桥臂直通会导致短路烧管
- 死区插入是必要的安全措施
- 死区时间要留裕量,但也不能太大
- 软件死区比硬件死区更灵活
下一章,咱们聊聊死区对电压和电流的具体影响,以及怎么用数学去描述它。到时候我会分享一个我踩过的坑——死区补偿参数调反了,结果电机反而抖得更厉害。敬请期待。