我一直想搞清楚MOS管的开关损耗计算,在只知道驱动MOS管芯片的输出的驱动电压,MOS管的规格书手册,驱动频率的条件下,能够计算出MOS管的功耗大小。这样我们在原理图设计阶段的时候,就能够判断散热是否有问题,帮助我们进行MOS管选型,特别是封装大小。这样相当于是风险评估前置,不用非要等到板子做出来实测。
那MOS管的损耗由哪几部分构成呢?一般来说由下面5部分构成。
vnk5yuaaspp640124805.png
不过相对来说,导通损耗和开关损耗占大头,此期文章也只说这两个。 1、导通损耗
导通损耗指的是MOS 管完全导通的损耗,这个相对来说最简单,导通后Vgs不变的情况下,导通电阻恒定,知道了通过的电流,开关的占空比D,那么损耗就可以用下面的公式计算:
44lal55ovac640124905.png
不过,上面这个公式有一定的局限性,因为有的时候,MOSFET由关断到开通的Ids,与从开通到关断的Ids,两者并不相同,特别对于感性负载来说。 因为到MOSFET导通之后,负载两端就有电压,感性负载的话,相当与电感L两端加了电压,因此在随后导通的这一段时间内,电感会被充电,电流不断上升,因此在后面MOS管关断的时候,电流发生了变化。如下图所示,开通是电流为Ids_on,关断是电流就上升到了Ids_off。
vx3ynfg1p4s640125005.png
那这种情况下,导通损耗怎么计算呢?我们可以用积分推导的方式求解出来,具体过程如下图:
feq43kaxnv2640125106.png
开关损耗应该是最难的,要想搞清楚,需要了解 MOS管的开关过程,下面我们分别说下MOS管的开通与关断过程。 需要特别说明的是,负载类型不同,MOS管的开通和关断波形是不一样的,结合实际应用的情况,我们分为电感负载和电阻负载吧。 2、电感负载时MOSFET的开关损耗
2.1、电感负载下MOS管的开通过程 先来看电感负载下MOS管的开通过程,如下图t1~t4所示:
khwxdhq0c0i640125206.png
t1阶段:此阶段指的是,从驱动器开始输出驱动电压Vg_drive开始,到MOS的G和S极之间电压被充到Vgs(th)。这个过程中,MOS管始终不导通,没有电流流过,因此Ids始终为0,Vds维持不变。 t2阶段:此阶段指的是MOS的G和S之间的电压从Vgs(th)上升到米勒平台电压的过程,这个过程中,器件工作在线性工作区(Vgs与Id成正比),MOS的电流从0上升到Ids_on,MOS两端的电压保持不变。 t3阶段:这个阶段栅极维持米勒平台电压Vgp不变,同时因为是感性负载,Ids电流基本不变,但栅极一直在被充电,因为Vds在下降。此时栅极驱动器提供的所有栅极电流都被转移,对Cgd进行充电,从而导致D,S之间电压快速变小,即Vds电压下降,直到MOS达到完全导通状态。 t4阶段:MOS完全导通后,栅极驱动器电压因为高于米勒平台Vp电压,因此G和S之间电压会继续抬升,直到Vgs = Vg_drive,这个过程中栅极驱动器给Cgd充电,MOS管保持开通状态。 上面是大致的开通过程,损耗主要发生在两个时间段,t2和t3,为什么呢?也容易看出来t1:流过MOS的电流为0,因此损耗为0(不算栅极损耗的话)t2:电压为Vds,电流从0上升到Ids_on,产生损耗t3:电压从Vds下降到基本为0(严格来说电压=Ids_on*Rds(on)),电流为Ids_on,产生损耗t4:电压保持基本为0(严格来说电压= Ids_on *Rds(on)),电流为Ids_on,相对于t3时间段的损耗,非常小,可忽略。 容易想到,要想计算损耗,我们就需要计算t2和t3的值,计算t2和t3时间也是MOS损耗理论计算的难点。 下面就来说明下如何详细计算下t2,t3,顺带把t1也计算下。 我们知道,MOS的规格书里面有很多参数,Ciss,Crss,Coss,Qg,Qgs,Qgd等。
ehvzyaoiy3z640125306.png
摆在我们面前的第一个问题,我们到底用什么参数来计算呢?是电容(Ciss,Crss,Coss)还是用电荷量Qg,Qgd,Qgs,Qgs(th)?
gw3pputcnq3640125406.png
查了一些资料,MOSFET的损耗计算有用电容的,也有用电荷量的,总的来看,我认为还是用电荷量来算更准确些。 为什么这么说呢? 这是因为规格书手册中Ciss,Crss,Coss电容是某一固定电压条件下测试的,实际上电容本身就是电压的函数,而且是非线性变化的,就是说不同电压下,电容不一样。比如下图是TI的的MOS管csd17506q5a
yv3lszpugqz640125506.png
值得一提的是,哪怕我们的工作电压和规格书中标注的电压一致,也没有用,又为什么这么说呢? 这是因为,MOS开通或者关断,它是一个过程。比如20V供电的情况下,开通过程中,电压Vds会从20V下降到0,电压是变化的,导致电容也都在跟随电压实时变化,我们不能简单的拿20V时的电容Crss=Cgd=50pF来用,因为Vds经历了从20V到0V,所以电容Cgd一直在变化,它经历了从0.3nF到50pF这个过程。
y3xeb2zgoev640125606.png
好,为什么不用表格里面的参数Ciss,Coss,Crss来计算的原因就说到这里。那下面就来具体说说用电荷量Q如何来计算t1,t2,t3。 t1的计算 t1阶段,栅极驱动器通过电阻Rg_drive,Rs_on,Rg给MOS管的栅极充电,栅极电压从0V上升到Vgs(th),示意图如下:
upyew1o0swo640125706.png
简单来看,这个其实就是个RC的充电电路,如下图右边:
oornzqsyeuf640125806.png
由上图可知,R=Rg_drive+Rs_on+Rg,C就是Cgd和Cgs的并联,但是前面说过,规格书中的Cgd,Cgs都没法直接用,他们并不是一个固定的值,那这个C怎么确定呢?这就用到前面说的Qg了。 我们可以从规格书中读取Qg(th)的值,以ti的MOS管csd17506q5a为例,Qg(th)=1.6nC。
st1oz0aecps640125906.png
尽管在给栅极充电的过程中,Cgd在变化,但是我们知道了Qg(th),即知道了充电所需要的电荷,与此同时,我们知道电压为Vgs(th),那我们根据Q=CU,就知道了等效电容C= Qg(th)/Vgs(th)。 我们根据RC充放电的充电公式,可以求得栅极从0V充到Vgs(th)的时间:
q3sdrajqja5640126006.png
t2的计算 t2时间段指的是MOS的G和S之间的电压从Vgs(th)上升到米勒平台电压的过程,这个过程中,器件工作在线性工作区(Vgs与Id成正比),MOS的电流从0上升到Ids_on,MOS两端的电压保持不变。 t2的计算有个麻烦的地方,就是我们不知道米勒平台电压是多少,这个也是需要我们根据相关参数推算出来的。 虽说MOS管规格书中经常给出了米勒平台的电压,但是它也是固定条件下的,与电流Id有关,还是以TI的mos管csd17506q5a为例,下面是其栅极电压与栅极电荷的关系曲线。
0pecpvw2d3j640126106.png
从曲线知道,米勒平台电压大概是2.5V左右,但是它是通流20A的条件下的,如果我们通流是10A,那么米勒平台电压就会不一样。 那如何计算米勒平台电压呢? 网上查到有两种方式,一种方式公式如下(参考TI文档,文档编号为ZHCA770):
owqhz4fampt640126206.png
个人觉得这个方式求解不实用,因为gfs本身就和Ids相关,它不是一个常量,参考下面模电书籍《模拟电子技术基础》
ruczw1o22hg640126306.png
所以呢,就算我们可以从规格书中看到有跨导gfs,也不能直接用,因为它是特定条件下的,咱们得工作条件很难说一模一样。 那怎么办呢? 还有第二种方式是下面的公式(参考onsemi文档,编号为AN-9010CN- MOSFET基础):
ebmcvy34p3z640126406.png
所以我们如果能知道这个参数K,那么就可以得到Ids与Vgs的关系式。那怎么得到参数K呢?根据上面的公式,我们可以得到K的公式如下:
di25b0aelkn640126506.png
一般MOSFET手册都有Vgs与Ids的曲线,我们可以从曲线上读取一个点,同时Vgs(th)电压MOSFET手册中一般本身就有标注。 举个例子: 下面是TI 的 MOSFET管csd17506q5a 的Vgs与Ids的曲线,假设温度是25℃,对应曲线为绿线,在Vgs=2V时,Ids=4A,同时可以查到手册中Vgs(th)典型值为1.3V,所以最终我们可以计算得K=8.17
eesqnujibcc640126607.png
不过,值得一提的,这个方法没有那么准,因为我们另外取一个点的话,会发现计算出的K值不太一样。同样的方法,如果我们从曲线上取的是Vgs=2.5V,那么Ids= 40A,根据上面的公式,我们会计算得K=27.7。 为什么不准呢? 我问了下deepseek,答案如下:
leb22vayimc640126707.png
总之,就是过于理想化。 那怎么办呢?怎么得到不同电流Ids时的米勒平台电压Vgp? 我忽然发现,不是可以直接从 Vgs-Ids曲线上读取吗?我们前面取的点,Vgs=2V时,Ids=4A。其实就是说明了在电流Ids=4A时,米勒平台电压Vgp=2V。 又为什么这么说呢? 我们先理解下Vgs-Ids曲线,首先这个说的是MOS管工作在线性工作区的时候,当Vds一定,我们增大Vgs,那么Ids就相应的增大。 现在假如我们的电路,工作在一个具体的Id电流值的情况下,这个Ids对应到曲线上就有一个Vgs的值,现在电路正好工作在这个状态。现在我们继续给Vgs充电,但是呢,受负载影响,Id不能增大,所以这个时候继续给栅极充电的话,会导致Vds下降, Vds下降,意味着Cgd被充电了,这个时候Vgs电压是不会变的,也就是说开始进入米勒平台电压了,这不就说明这个Vgs的值就是米勒平台电压Vpg了吗? 我们看看TI 的csd17506q5a,根据下面的Qg的曲线,可以看到其20A的米勒平台电压为2.3V,而Vgs-Ids曲线,在20A时,Vgs对应电压也为2.3V左右,说明上面的推断应该是正确的。

好,米勒平台电压我们现在已经有获取的方法了——从规格书手册中的Vgs-Ids曲线直接读取。 下面继续看t2如何计算。 其实方法和t1差不多,我们已经知道t2阶段,电压是从Vgs(th)上升到了Vgp_on,只需要再知道t2阶段栅极充入了多少电荷就可以了,而这个电荷量就是Qgs-Qgs(th),Qgs可以从Qgs的曲线上面读取,如下图所示:

t1+t2的总时间:栅极从0电压被充电到米勒平台所用的时间,总的电荷量为Qgs,电压从0升到了Vgp_on,还是跟前面的RC充电电路模型一样,我们可以求得总时间t1+t2。 然后用总时间减去前面计算出的t1,就可以得到t2时间长度了,具体过程如下:

t3的计算 t3指的是米勒平台阶段,这个时候Vgs的电压保持不变,主要是给电容Cgd充电。 因为Vgs的电压不变,栅极驱动器的电压也不变,因此栅极的电流Ig是不会变的,因此我们可以利用这一点计算米勒平台时间t3。 米勒平台的电荷量Qgd我们可以从规格书中直接获取到,以ti的MOS管csd17506q5a为例,Qgd=2.3nC,根据公式Q=I*t,我们就可以得到充电的时间t了。 t3具体计算如下图:

至此,我们就把三个时间t1,t2,t3都求出来了,那下面来计算功耗。 开通过程中的功耗计算 根据开通时的波形,损耗发生在t2和t3阶段,如下图:

在t2阶段,电压为Vds不变,电流从0上升到Ids_on,因此平均功率为P=1/2*Vds*Ids_on,损耗为Et2=P*t2=1/2*Vds*Ids_on*t2 (单位为焦耳)。 在t3阶段,电流为Ids_on不变(严格来说感性负载,电流应该是略有上升,因为t3时间很短,电流近似看作不变),电压从Vds下降到0,因此平均功率也为P=1/2*Vds* Ids_on,损耗为Et2=P*t3=1/2*Vds* Ids_on *t3(单位为焦耳)。 所以 ,开通过程中总的功耗(单位为焦耳)为:Etr=Et2+Et3=1/2*Vds* Ids_on *(t2+t3)

至此,开通过程中的损耗计算已全部给出,下面来看关断过程的损耗 2.2、电感负载下MOS管的关断过程 关断过程是开通过程的逆过程,示意图如下图右边所示:

t5阶段:驱动器输出电压为0V,此时t5阶段启动 ,Vgs电压开始下降,直到降低到米勒平台的过程,这个过程MOSFET一直处于持续导通的状态,是t4的逆过程,损耗较小,忽略。 t6阶段:米勒平台电压阶段,类似与t3过程,Ids_off保持不变,D,S之间电压从0升高到Vds,有较大损耗,不可忽略。 t7阶段:米勒平台电压到Vgs(th)的阶段,类似于t2阶段,D,S之间电压为Vds不变,电流从Ids_off下降到0,有较大损耗,不可忽略。 t8阶段:Vgs(th)下降到0的阶段,类似于t1阶段,Id为0,D,S之间电压为Vds不变,损耗较小,忽略 那损耗是不是就和开通过程一样呢? 当然不是,为什么呢?主要原因是因为关断时,驱动电压不再是Vg_drive了,而是0V,它与米勒平台电压接近,充放电的压差更小,因此不做特殊处理的情况下,放电的时间会有所不同,通常是会更长。 示意图如下图所示。

类似于开通过程,我们同样计算下t6,t7,t8 t6的计算 t6阶段为米勒平台阶段,G极的电压维持Vgp_off不变,而驱动端接地,因此电阻上面的电压恒定,驱动电流就恒定,放电电荷为Qgd,因此我们可以求得t6的时间长度如下图:

t7计算 t7为GS电压从米勒平台电压Vgp_off到Vgs(th)的放电过程,使用RC放电电路模型,如下图所示

这个过程中,放电的电荷量为Qgs-Qg(th),电压变化量为,Vgp_off-Vgs(th),因此等效电容C = Q/U =
(Qgs-Qg(th))/ (Vgp_off-Vgs(th))。 我们根据RC放电电路的公式,最终求得t7的大小如下图:

t8计算 t8阶段是栅极电压从Vgs(th)下降到0的过程,电荷量为Qg(th),电压变化量为Vgs(th),因此等效电容C=Q/U=Qg(th)/Vgs(th) 理论上根据RC放电模型,栅极是永远到不了0V的。考虑到一般MOSFET的Vgs(th)也就2V左右,经过3个时间常数,电压就能下降到初始电压的5%,如果按照2V计算,经过3个时间常数,电压下降到 2V*5% = 0.1V,我们可以取放电时间为3个时间常数。

因此,按照上面的方式,我们求得t8如下:

关断过程中的功耗计算 关断过程主要发生在t6和t7 t6阶段,电流保持Ids_off不变,电压从0上升到Vds。而在t7阶段,电压不变,电流从Ids_off下降到0,因此这个阶段的损耗计算如下图所示:

2.3、电感负载下MOS管的开关损耗
前面已经分别求出了MOS管的开通损耗和关断损耗,我们把他们加起来,就能得到总的开关损耗了,相关公式汇总如下:

不过,实际运用中我们会发现,这个计算功耗是偏高的,为什么呢? 因为我们上面推导公式用的波形电压和电流是交替变化的,比如开通过程,上面给出的波形是电流从0上升到Ids_on后D和S极之间的电压才开始下降,而我们实际应用中会发现,在电流还没到Ids_on时,电压已经下降了,因此实际损耗会更小一点。

下面deepseek给出的解释,并给出了推荐系数为1/4

我们引入纠正系数k,电感负载时,k=1/4, 那这个系数准确吗?后面我们会进行仿真,从仿真结果来看,1/4的仿真结果和计算结果比较接近(后面会给出具体的仿真情况)。 那么最终的公式如下:

3、电阻负载时MOSFET的开关损耗
上面是电感负载的损耗情况,为什么强调电感负载呢?这是因为它俩的情况不太一样,那区别在哪里呢? 以开通过程为例,画个对比示意图吧

可以看到,差异主要在电压和电流切换的时机不太相同。电感负载:电流先从0上升到Ids_on,然后电压从Vds下降到0。电阻负载:电流和电压同时变化,电流从0上升到Ids_on的同时,电压也从Vds开始下降。 电感负载的开关损耗上面已经有了,下面来看下电阻负载的损耗计算,推导过程如下图

从推导的电感负载开通过程知道,开通时间和关断时间的长短主要取决于栅极电阻,驱动器电压,MOSFET的栅极电荷,Qg,Ids等大小,跟什么类型的负载没关系。 因此,上面的tr类比于电感负载的t2+t3,即tr=t2+t3;tf类比于电感负载关断时间t6+t7,即tf=t6+t7,最终可得总开关损耗:

我们拿电阻负载和电感负载的开关损耗做对比,会发现仅仅是系数有个差异,电感负载为1/4,电阻负载为1/6,因此我们可以归一化公式。
4、开关损耗归一化公式最终我们我们把公式汇总如下:

5、栅极外部串联电阻的损耗
除了导通损耗和开关损耗,我们通常还比较关心MOSFET的栅极串联电阻的损耗,因为电阻有额定功率,我们需要根据功率选择合适的封装大小。 这个损耗的计算公式我们可以用deepseek轻松查到:

给出的公式倒是没什么问题,但是为什么是这样的?我网上找了也没看到有比较信服的理由,所有我又自己推了下。 我们先看MOSFET的整个开通过程,我们知道,MOSFET导通的过程,就是驱动器对栅极电容充电的过程,只不过这个电容是动态变化的,我们化繁为简,假定栅极平均电容为C,因此构建电路模型如下图所示:

那么问题就变成了求解电阻R的功耗的问题了,这是一个纯数学问题了

问题详述:当栅极电压从0变到Vg_drive,电容C从0被充电至Vg_drive电压,这个过程中电阻R的耗能是多少?

同理,我们可以求得关断过程中电阻R的耗能是多少,如下图:

可以看到,一次开通和一次关断,栅极电阻消耗的功率是相同的,因此我们可以求得总的功率损耗如下图

至此,我们就推导出了MOSFET栅极电阻的功耗 需要注意的是,实际应用的时候,Qg指的是实际Vg_drive对应的电荷量大小,不同Vg_drive驱动电压,Qg是不一样的,如下图的Ti的MOSFET管csd17506q5a,10V对应的Qg为5.5nC

就我个人而言,我喜欢用Qg,不用Ciss,所以我推荐用下面这个公式计算驱动电阻的损耗

如果按照前面的模型,电阻R由三部分构成:驱动器的内阻,MOSFET的内置栅极电阻Rg,线路串联的电阻Rs_on/Rs_off (有时有快关断电路,比如Rs上并联了二极管,那么可以看作Rs_off = 0),最终的公式如下图:

6、MOS管损耗理论计算公式推导及LTspice仿真验证
6.1 电感负载举例
电路举例:

我们构建如上的电路,其中MOSFET M1类似于Boost电路中的下管,R1仅仅用于用来仿真采集电流。 电路中,电流为10A,电压为约为15V(14V+二极管D1的压降),MOS管使用前面提到的ti的管子CSD170506Q5A,spice模型为官网下载,栅极驱动器电压为10V,内阻设置为0,栅极串联电阻为100Ω,开关频率为20KHz。 根据前面推导的公式,我先做了个excel表格,填入已知参数后(其中k=1/4=0.25),得到上图对应电路图的理论计算损耗结果如下表:

再来看看仿真的结果:

汇总对比结果如下图:

可以看到,结果还是挺接近的,误差不大。 6.2、电阻负载举例

LTspice仿真电路图如上,R1为负载1.5Ω,Vds=V2的电压=15V,导通时电流为10A,开关频率为20Khz。 同样将相关参数代入excel计算表格(其中k=1/6),得到上图对应电路图的理论计算损耗结果如下表:

再来看看仿真的结果:

汇总对比结果如下图:

可以看到,导通损耗和串联电阻Rs损耗误差较小,开关损耗误差较大,有30%,计算值比仿真值要大,总损耗误差为20.6%。 总结
以上就是最近关于MOS管损耗计算的一些总结,网上相关资料很多,但很少有全面的分析过程,没找到直接能用的且令人信服的,故此我就自己来了。 虽然我上面提供了具体的计算方法,但兄弟们一定要注意它的局限性,并非是很准确的,只能参考,比如下面几点就是没有考虑的:1、忽略了死区时间体二极管的功耗,忽略了反向恢复电荷带来的损耗 2、忽略了MOSFET内部的寄生电感带来的影响,忽略了栅极走线电感带来的影响。3、忽略了温度带来的影响,Rds_on随温度上升而上升,也忽略了米勒平台电压随温度的影响。 另外,我们在应用中也要有一些变通,我也没有办法把所以得场景都列出来。 举个例子,如果我们实际应用电路在D,S之间并联了一个电容,或者在G,S之间并联了一个电容,那么表格里面的参数也要对应的变化,该调整哪些参数呢?怎么调呢?这个问题兄弟们也可以自己去思考下,就不做解释了。 相关参考资料,包括excel,我同样都放置在了我的百度网盘。 下载方法: 关注我的微信公众号“硬件工程师炼成之路”,在后台回复“炼成之路Pro”,就可以下载了,放置在目录:炼成之路-->器件-->08-MOS-->MOS管损耗

声明:以上内容仅是个人观点,不保证正确性,如有问题,请留言指出。
推荐阅读:
1、还在用CAM350吗?
2、我写的东西都在这里了
3、MOS管的安全工作区SOA详解(一)限制线介绍
4、MOS管的安全工作区SOA详解(二)举例说明如何运用
5、PMOS开关电路常见的问题分析
6、MOS管电流方向能反吗?体二极管能过多大电流? |