我一直想搞清楚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的計算 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的計算 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。 為什么不準呢? 我問了下deepseek,答案如下:
總之,就是過于理想化。 那怎么辦呢?怎么得到不同電流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之間并聯了一個電容,那么表格里面的參數也要對應的變化,該調整哪些參數呢?怎么調呢?這個問題兄弟們也可以自己去思考下,就不做解釋了。