4、MOSFET开关损耗:开通与关断过程、米勒平台、开关损耗计算公式与实例
开关损耗,说白了就是MOSFET在开通和关断过程中,电压和电流重叠产生的能量损失。很多新手觉得这玩意儿玄乎,其实你把它拆开看,就是几个关键时间段的积分问题。我个人习惯把开关过程分成四个阶段来理解,这样算起来心里有底。
4.1 开通过程:从关断到导通的四步走
先看开通。我给个典型的波形图,你脑子里过一遍:
- 阶段1:开通延迟(t_d(on))——栅极电压从0充到阈值电压Vth。这时候MOSFET还没通,电流为0,损耗基本可以忽略。
- 阶段2:电流上升(t_ir)——Vgs从Vth充到米勒平台电压Vpl。漏极电流从0升到负载电流Io。注意,这时候Vds还撑着没掉下来,电压电流同时存在,损耗开始出现了。
- 阶段3:米勒平台(t_vf)——这是最关键的阶段。Vgs被钳位在Vpl,栅极电流全部用来给米勒电容Cgd放电。Vds从母线电压Vdc降到导通压降Vds(on)。
- 阶段4:栅极过驱——Vgs继续充到驱动电压Vdr,进一步降低Rds(on)。这个阶段损耗很小,通常忽略。
我在项目中遇到过,很多人只盯着米勒平台看,却忽略了电流上升阶段的损耗。其实在低压大电流的DC/DC里,电流上升那一段的损耗占比不小,千万别漏算。
4.2 关断过程:和开通对称但不一样
关断过程是开通的逆过程,但细节上有差异:
- 阶段1:关断延迟(t_d(off))——Vgs从Vdr降到Vpl。MOSFET还通着,损耗很小。
- 阶段2:米勒平台(t_rv)——Vgs被钳位在Vpl,Cgd充电。Vds从Vds(on)升到Vdc。这是关断损耗的主要来源。
- 阶段3:电流下降(t_fi)——Vgs从Vpl降到Vth。漏极电流从Io降到0。电压已经上去了,电流还在掉,又一段重叠损耗。
- 阶段4:栅极欠驱——Vgs继续降到0,MOSFET完全关断。
嗯,这里要注意:关断时的米勒平台时间通常比开通时长。为什么?因为关断时驱动电流是从栅极抽走的,而驱动电路的下拉能力往往比上拉弱。你想想看,如果驱动芯片的sink电流只有source电流的一半,那关断损耗自然就大了。
4.3 米勒平台的本质
米勒平台,说白了就是栅极电压被Cgd的充放电给"锁住"了。为什么会这样?
当Vgs达到Vpl时,MOSFET开始进入饱和区。这时候Cgd急剧增大(可能比Cgs大10倍以上)。栅极驱动电流I_g大部分都流向了Cgd,导致Vgs上升极慢,甚至停滞。
我给大家一个经验值:对于常见的CoolMOS或SJ-MOSFET,米勒平台电压Vpl大约在3V到5V之间。具体值可以从datasheet的Vgs vs Qg曲线里读出来。
关键公式:米勒平台持续时间
t_vf = (Qgd * Rg) / (Vdr - Vpl)
其中Qgd是栅极-漏极电荷(米勒电荷),Rg是总栅极电阻(驱动内阻+外接电阻),Vdr是驱动电压,Vpl是米勒平台电压。
4.4 开关损耗计算公式
好了,理论讲完,上干货。开关损耗的工程计算公式如下:
P_sw = P_on + P_off
P_on = 0.5 * Vdc * Io * (t_ri + t_vf) * f_sw
P_off = 0.5 * Vdc * Io * (t_rv + t_fi) * f_sw
其中:
Vdc = 母线电压(V)
Io = 负载电流(A)
f_sw = 开关频率(Hz)
t_ri = 电流上升时间(s)
t_vf = 电压下降时间(s)
t_rv = 电压上升时间(s)
t_fi = 电流下降时间(s)
注意,这个公式假设了电压电流波形是线性变化的。实际波形会有一些弯曲,但工程上这么算已经够用了。我个人习惯再乘一个1.1到1.2的修正系数,把非理想因素包进去。
避坑指南:我曾经在一个48V转12V的DC/DC项目里,直接用datasheet给的tr和tf算损耗,结果板子热得一塌糊涂。后来发现datasheet的tr/tf是在特定测试条件下测的(比如Rg=10Ω,Vdc=25V),而我的实际条件完全不同。所以,一定要用实际电路中的Rg和Vdc重新计算开关时间,别偷懒。
4.5 实例计算:12V输入,1.2V/10A输出
咱们来算一个实际的Buck变换器:
- 输入电压Vdc = 12V
- 输出电流Io = 10A
- 开关频率f_sw = 500kHz
- MOSFET:SiR462DP(Vds_max=30V,Rds(on)=4.5mΩ)
- 驱动电压Vdr = 5V
- 总栅极电阻Rg = 2Ω(驱动内阻1Ω + 外接1Ω)
- 米勒电荷Qgd = 6nC(从datasheet读取)
- 米勒平台电压Vpl ≈ 3.2V
第一步:计算开关时间
开通电流上升时间 t_ri ≈ (Qgd * Rg) / (Vdr - Vpl)
= (6e-9 * 2) / (5 - 3.2) = 6.67ns
开通电压下降时间 t_vf ≈ (Qgd * Rg) / (Vdr - Vpl)
= 6.67ns(和t_ri相同,因为都是米勒平台主导)
关断电压上升时间 t_rv ≈ (Qgd * Rg) / Vpl
= (6e-9 * 2) / 3.2 = 3.75ns
关断电流下降时间 t_fi ≈ (Qgd * Rg) / Vpl
= 3.75ns
第二步:计算开关损耗
P_on = 0.5 * 12 * 10 * (6.67e-9 + 6.67e-9) * 500e3
= 0.5 * 120 * 13.34e-9 * 500e3
= 0.4W
P_off = 0.5 * 12 * 10 * (3.75e-9 + 3.75e-9) * 500e3
= 0.5 * 120 * 7.5e-9 * 500e3
= 0.225W
P_sw_total = 0.4 + 0.225 = 0.625W
第三步:对比导通损耗
P_cond = Io² * Rds(on) * D
= 10² * 0.0045 * 0.1(假设占空比D=1.2/12=0.1)
= 0.045W
你看,在这个例子里,开关损耗(0.625W)是导通损耗(0.045W)的14倍!这就是为什么高频DC/DC里,开关损耗往往是热设计的瓶颈。
警告:上面的计算假设了理想的线性波形。实际中,由于PCB寄生电感、驱动回路走线等因素,开关时间会比理论值大20%~50%。我建议你在样机阶段用示波器实测Vds和Id的波形,用积分法算实际损耗,那才是最准的。
4.6 降低开关损耗的实战技巧
最后,分享几个我常用的降损方法:
- 减小栅极电阻Rg——但别太小,否则会引起栅极振荡。我一般留个2Ω到5Ω的余量。
- 提高驱动电压Vdr——从5V提到10V,米勒平台时间能缩短一半。但要注意栅极耐压。
- 选用低Qgd的MOSFET——这是最直接的办法。比如从SiR462DP(Qgd=6nC)换成SiR468DP(Qgd=3.5nC),开关损耗直接降40%。
- 优化PCB布局——驱动回路要短,功率回路要宽。我曾经把驱动回路从3cm缩短到1cm,开关损耗降了15%。
嗯,开关损耗这块内容不少,但核心就一句话:抓住米勒平台,算准开关时间,实测验证。下次咱们聊同步整流管的体二极管损耗,那又是另一个坑了。