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