3、死区时间设定原则:最小死区时间计算、最大死区时间限制、安全裕量设计
死区时间怎么定?这是每个做电机控制的工程师都绕不开的问题。
定短了,上下管直通,炸管子。定长了,波形畸变,电流谐波大,电机嗡嗡响。
说白了,这就是在「安全」和「性能」之间找平衡。我做了这么多年,见过太多因为死区没设好而翻车的案例。今天咱们就把这个原则掰开揉碎了讲清楚。
3.1 最小死区时间:底线在哪?
最小死区时间,就是保证上下管不会同时导通的最短时间。这个值不是拍脑袋定的,得算。
核心公式其实很简单:
T_dead_min = T_off_max - T_on_min + T_margin
其中:
- T_off_max:功率管关断的最大延迟时间
- T_on_min:功率管开通的最小延迟时间
- T_margin:安全裕量,通常取 100~500ns
举个例子。我手头有个项目用的 IGBT,数据手册上写着:
| 参数 | 典型值 | 最大值 |
|---|---|---|
| 关断延迟 t_off | 350ns | 500ns |
| 开通延迟 t_on | 120ns | 200ns |
那最小死区时间就是:
T_dead_min = 500ns - 120ns + 200ns = 580ns
嗯,这里要注意。很多工程师只看典型值,不看最大值。我在项目中遇到过,有人按典型值算出来 230ns,结果批量生产时,温度一上来,管子参数漂移,直接炸了。所以记住:算最小死区,必须用最坏情况。
3.2 最大死区时间:别为了安全牺牲太多
死区时间不是越大越好。你想想看,死区时间内,电机是处于「自由wheel」状态的,电流会通过续流二极管走。这会导致什么?
- 电压畸变:输出电压和理想 PWM 波形不一样了
- 电流谐波增加:电机发热,效率下降
- 低速性能变差:转速越低,死区影响越明显
最大死区时间怎么定?我个人习惯用这个经验公式:
T_dead_max ≤ 0.05 × T_pwm
其中 T_pwm 是 PWM 周期。比如 PWM 频率 10kHz,周期 100μs,那最大死区建议不超过 5μs。
为什么是 5%?其实没有硬性规定,但超过这个值,死区效应带来的电压误差就会明显影响控制精度。我在一个伺服项目里试过 8% 的死区,结果电流环带宽怎么调都上不去,最后查出来是死区太大,等效于在电流环里加了个大延迟。
3.3 安全裕量设计:留多少才够?
安全裕量,说白了就是给自己留点余量。但留多少,是个技术活。
影响裕量的因素有:
- 温度漂移:功率管的开关速度随温度变化,高温下关断更慢
- 器件批次差异:同一型号不同批次,参数可能差 20%
- 驱动电路寄生参数:PCB 走线电感、栅极电阻都会影响实际开关速度
- 老化效应:管子用久了,开关速度会变慢
我一般这样设计裕量:
| 应用场景 | 裕量建议 | 说明 |
|---|---|---|
| 消费级(风扇、小泵) | 20%~30% | 成本敏感,裕量可以小点 |
| 工业级(伺服、变频器) | 30%~50% | 可靠性优先 |
| 车规/军工 | 50%~100% | 极端工况也要保证不炸 |
举个例子。算出来最小死区是 600ns,工业应用我取 50% 裕量,那就是 900ns。然后看看有没有超过最大死区限制,没有的话,就定 900ns。
3.4 实际调试中的注意事项
最后说几个我在项目中踩过的坑:
- 不要只看数据手册的典型值。数据手册给的典型值是在 25°C 下的,实际工作温度 85°C 时,关断时间可能翻倍。
- 注意死区时间的温度补偿。有些高端驱动芯片支持死区时间随温度调整,这是个好东西。如果芯片不支持,那就按最高工作温度来算。
- 死区时间和 PWM 频率要一起考虑。频率越高,周期越短,死区占比就越大。我见过有人把 PWM 频率从 10kHz 提到 20kHz,死区没改,结果死区占比从 1% 变成了 2%,电机噪音明显变大。
- 不同桥臂的死区可以不一样。如果上下管用的不是同一型号,或者驱动电路不对称,那就分别算。别图省事统一设一个值。
1. 查数据手册,取最坏情况参数
2. 按公式算最小死区
3. 根据应用场景加安全裕量
4. 确认不超过最大死区限制
5. 上示波器实测验证
6. 高低温箱跑一遍,确认没问题
死区时间设定,说难不难,说简单也不简单。核心就是:安全第一,性能第二,裕量要留够,实测不能省。你按这个思路走,基本不会出大问题。