拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Simulink双脉冲实验5分钟看透MOSFET续流二极管反向恢复

Simulink双脉冲实验5分钟看透MOSFET续流二极管反向恢复

做电源设计这几年,我越来越觉得“反向恢复”这玩意儿属于那种你越是想靠看书弄明白,越容易把自己绕晕的知识点。PN结少子存储、复合时间、反向恢复电荷……教材里每个字都认识,但合上书,你还是说不清楚它到底怎么影响你手里的板子。后来真正让我开窍的,不是再刷一遍书,而是在Simulink里搭了一个双脉冲实验电路,亲眼看着二极管的电流波形在我面前“表演”了一次反向恢复。

这篇文章就是用Simulink双脉冲实验带你5分钟看透MOSFET的续流二极管反向恢复。不需要实验室、不需要示波器、更不用担心炸管子,只要一台装了MATLAB/Simulink的电脑,把电路搭起来,跑一把仿真,就能直观看到反向恢复的电流尖峰、恢复时间和电荷量。适合电源工程师、电机控制器开发者、电力电子方向的学生,以及所有想从“背理论”切换到“看波形”的同行。

1. 反向恢复到底是什么,为什么值得做双脉冲实验

1.1 从续流二极管说起:反向恢复现象的一天

在Buck变换器、半桥逆变电路、电机驱动里,几乎都有一类角色容易被忽略——续流二极管。当开关管关断、对侧管还没开通时,电感里的电流不可能瞬间消失,它必须通过一个二极管继续流动,这就是续流。问题出在二极管并不是理想开关:它正向导通时内部存储了大量电荷,一旦两端电压反向,它并不会啪一下关断,而是会先流出一股反向电流,把这些存储电荷“清理”干净之后才能真正关断。

这个短暂的过程,就是反向恢复。可以打个比方:你往水渠里装了一个水闸,水闸打开时让水畅快流过,现在你突然要关闸,可是闸门后面已经蓄住的水不可能瞬间消失,还得继续泄一会儿才彻底断流。这股泄流就是反向恢复电流,泄流的时间就是反向恢复时间。它发生在每一个开关周期里,频率越高,被这个现象吃掉的能量就越多,产生的电压电流尖峰也越闹心。

理解这个过程之后你就会发现,反向恢复不只是二极管自己的事情。这股反冲电流会穿过正在开通的MOSFET,在漏极电流上形成一个很高的尖峰,还会在寄生电感上感应出电压振荡,抬高开关管的电压应力,增加损耗,甚至成为电磁干扰的来源。所以理论上想得再熟练,不如亲手把这个电流尖峰“勾”出来看一看。

1.2 关键参数:trr、Irr、Qrr

要量化反向恢复,业界最常用的是三个参数:反向恢复时间trr、反向恢复峰值电流Irr、反向恢复电荷Qrr。trr是指二极管从正向导通转入反向阻断这段时间,通常从电流过零点算起,到反向电流衰减到规定比例(比如峰值电流的10%或20%)结束;Irr是反向恢复过程中出现的最大反向电流;Qrr是整个反向恢复过程中流过的总电荷,等于反向电流对时间的积分。

三个参数之间有个近似关系:Qrr约等于0.5乘以Irr乘以trr。这个公式假设反向恢复电流波形接近三角形,虽然实际波形往往带一条长尾巴,但对于估算损耗和挑选二极管已经够用。真正重要的一点是,Qrr直接反映这个二极管存储电荷的总量,数据手册里通常会给;而trr和Irr又决定了电流尖峰的大小和时间,和EMI、驱动回路都有直接关系。

我经常跟同事讲,选型时如果只知道trr小,是远远不够的。两颗二极管trr可能一样,但Irr和Qrr完全不同,实际开关损耗也会差很多。想要直观看出这些差异,双脉冲实验是最合适的场景。

1.3 双脉冲实验为什么能测出反向恢复

双脉冲测试(Double Pulse Test)是电力电子里非常经典的实验,它的核心逻辑就是用一组特别的驱动脉冲,让被测开关管和二极管在一个极短时间内完成“开通-关断-再开通”,从而观测最关心的开关瞬态。对于二极管反向恢复来说,关键在于第二个脉冲到来之前,二极管必须处于正向导通状态。

整个双脉冲工作过程是这样的:第一个脉冲到来时MOSFET导通,直流电源通过电感给负载储能,电感电流线性上升;第一个脉冲结束时MOSFET关断,电感电流无法突变,转而通过续流二极管继续流动,此刻二极管正向导通;在短暂的间隔之后,第二个脉冲到来,MOSFET再次开通,二极管两端突然加上反向电压,必须从导通状态切换为阻断状态,反向恢复就发生在这个瞬间。

为什么要用两个脉冲而不是一直开开关关?因为如果只有单脉冲,二极管要么一直处于反向阻断,要么一直正向导通,始终缺少“正向导通突然变反向阻断”这个关键瞬态。双脉冲把这一段单独拎出来,又让负载电流可控(由第一个脉冲宽度决定),所以能非常干净地观察反向恢复。这也是厂商数据手册里二极管和MOSFET开关特性的标准测试方法。

2. 5分钟搭建Simulink双脉冲实验电路

2.1 元件准备:找到Simulink电力电子模块库

先说明一下环境,我用的是MATLAB/Simulink里自带的Simscape Electrical模块库,老版本里可能叫SimPowerSystems或Specialized Power Systems。打开Simulink Library Browser之后,在Simscape > Electrical > Specialized Power Systems > Fundamental Blocks下面能找到绝大部分需要的元件,包括MOSFET、Diode、电压源、电流源、测量模块等。

你需要准备的模块包括:DC Voltage Source(直流电压源)、Mosfet(MOSFET开关)、Diode(二极管)、Series RLC Branch(这里当电感用)、Pulse Generator(脉冲发生器,准备两个)、Add(加法器)、Voltage Measurement和Current Measurement(电压电流测量)、Scope。另外别忘了放一个Powergui模块,没有它电路是无法仿真的。

第一次搭的人容易犯的错是直接双击Diode,发现参数特别少,以为这就是个理想二极管。实际上Simulink的二极管模型需要选择合适参数化方式,尤其是想要看到反向恢复效果,必须确认模型支持反向恢复电荷参数。以较新版本为例,双击二极管后,在Main标签页里找模型类型或者参数化选项,把二极管模型设置为包含Tt、Qrr这类参数的详细模型,然后再填具体数值。不同的MATLAB版本界面略有差异,但思路都一样:不要让二极管停留在“理想开关”状态。

2.2 电路连接与参数设计

双脉冲实验的电路连接并不复杂,我按从高压端到低压端的顺序说一遍。直流电压源正极接一个功率电感,电感另一端接MOSFET漏极;MOSFET源极直接回直流电源负极。续流二极管接在电感和MOSFET连接点与电源正极之间,阴极接正极,阳极接开关节点。这样当MOSFET关断时,电感电流就可以通过二极管继续环流,形成续流回路。

给你一组可以直接用的参数:直流电压Vin=100V,电感L=100uH,MOSFET和二极管先用默认模型,二极管的导通压降设为1V左右,反向恢复时间Tt或者Qrr按需设定。这里我建议把二极管的反向恢复时间(Tt)设到100ns左右,如果你用的是带Qrr刻画的模型,就设一个合理的电荷量,否则波形里可能看不到明显的反向恢复。

电容不是必须的,但建议在直流母线两端加一个母线电容,让母线电压在开关瞬态中更平稳。测量位置也要注意:用Current Measurement串在MOSFET的源极或漏极,测Ids;再串一个电流表在二极管支路,测二极管电流;用Voltage Measurement并在MOSFET两端,测Vds。这些信号全部进Scope,观察的时候一起比对。

2.3 双脉冲驱动信号生成与脉冲宽度计算

接下来是重点:怎么产生双脉冲。我习惯用两个Pulse Generator加一个Add模块,一个是参数直观,另一个是不用额外学Signal Builder这类工具。设置一个实际案例。目标电流10A,直流母线电压100V,电感100uH,那么第一个脉冲宽度t1约等于I乘以L再除以V,也就是10A乘以100uH除以100V,算出来是10us。所以第一个Pulse Generator设为:幅值1,周期取200us,脉冲宽度10us,相位延迟0。这表示从0时刻开始,MOSFET导通10us,然后关闭。

第二个脉冲要等第一个脉冲关断后,让二极管先续流一段时间,再接一个短脉冲。间隔时长t2需要注意,太长时间电感电流会因为二极管压降和回路电阻而衰减,影响测试准确性,一般取几微秒到十几微秒。这里取5us,第二个脉冲从15us开始,宽度5us。所以第二个Pulse Generator设置为:幅值1,周期200us,脉冲宽度5us,相位延迟15us。两个Pulse Generator输出经过Add之后接到MOSFET的gate端,就得到标准的双脉冲信号。

这里有一个小细节:Pulse Generator默认输出在第一个周期之前是0,所以你不需要额外处理初始状态。但要注意仿真总时间不要设置成200us那么长,那样会跑很多无用波形。把仿真停止时间设为25us左右,刚好覆盖两个脉冲和反向恢复过程,跑起来又快又干净。

2.4 仿真求解器与步长设置:细节决定成败

模型搭完,仿真参数比模型本身更关键。打开Configuration Parameters,将求解器类型设为Fixed-step,步长设到很小,比如1e-8秒甚至更小;同时在Powergui模块中选择Discrete离散模式,采样时间同样设为1e-8或1e-7秒。这样做是因为开关瞬态分析需要时间分辨率足够高,尤其是反向恢复电流可能只有几纳秒到几百纳秒,步长太大等于直接把尖峰抹掉了。

有朋友可能会问,用默认的连续变步长不是更准确吗?理论上连续求解器精度高,但电力电子电路含有强非线性开关元件,很容易出现收敛困难、仿真速度极慢的问题。我的经验是在双脉冲实验里用离散固定步长反而更稳,只要步长取得足够小,波形精度完全够观察反向恢复趋势。如果你用的是较新版本MATLAB,记得把Powergui里的仿真类型切换成Discrete,填好采样时间即可。

注意:不要用1e-6秒这种量级的步长跑双脉冲实验。反向恢复时间往往在百纳秒级别,1微秒的采样间隔根本看不出来尖峰,甚至会给你一个“反向恢复不存在”的错觉。

3. 波形解读:从示波器上认识反向恢复

3.1 双脉冲波形全貌:先从整体看分段

仿真跑完,打开Scope会看到三组或更多曲线。先看整体趋势:驱动电压Vgs上有两个脉冲;漏极电流Ids在第一个脉冲期间线性上升,第一个脉冲结束后立刻降到0附近;第二个脉冲期间,Ids会突然冲高,越过之前的电流值,形成一个尖峰,然后回落到负载电流附近。

这个尖峰就是二极管反向恢复电流叠加到MOSFET电流上的结果。许多人第一次看到会觉得奇怪:开关管第二个脉冲的电流怎么会比负载电流还高?原因恰恰就是二极管在反向恢复期间把存储电荷“吐”给了开关管。把Vgs、Ids、Vds对照着看,你会发现尖峰出现的位置正好是第二个Vgs上升沿之后一点点,这就是反向恢复发生的时间窗口。

把这个窗口单独放大,是整个实验最有价值的部分。如果说第一个脉冲是在给系统建立初始状态,那第二个脉冲的上升沿才是真正的“考题”:二极管能不能在开关管开通瞬间顺利关断,看这一眼就知道了。

3.2 反向恢复参数提取:从Ids波形中找到trr、Irr、Qrr

要提取Irr,看Ids波形上的峰值即可。由于Ids同时包含负载电流和反向恢复电流,可以用峰值减去当时的负载电流水平(即第二个脉冲开通前电感电流),得到的差值就是近似的反向恢复峰值电流。如果你单独测量二极管支路电流,那更直观,直接读负向电流的最大绝对值就是Irr,因为二极管反向恢复期间电流是反向的。

trr的读取麻烦一点:从二极管电流过零开始,到反向电流衰减到一定比例峰值电流为止,这段时长就是反向恢复时间。有些标准会按反向电流下降沿最大斜率点做切线,和零轴交点作为恢复结束,结果会比阈值法略短。仿真里我一般直接用阈值法,简单重复性好。Qrr需要积分:在Simulink里可以用Integrator模块对二极管反向电流部分做积分,或者把Scope数据导出来到MATLAB工作区,用trapz函数算。后面一种方法更灵活,尤其你想批量分析多组参数时非常方便。

这里补充一个实用技巧:双击Scope的波形,用光标读取两点坐标,能快速估算trr和Irr。对精度要求不高的初步分析完全够用;要精确提取,就把数据导出到工作区,用脚本算,后面我会再提到。

3.3 Vds波形与二极管电流对照:反向恢复的完整故事

只看Ids还不够,把Vds和二极管电流放一起,才能讲完整故事。第二个脉冲到来时,Vds从母线电压开始跌落,与此同时二极管开始反向恢复,电流从正向续流掉头变成反向电流,并很快达到峰值。随着恢复过程结束,二极管恢复阻断能力,反向电流消失,Vds也进一步下降到接近饱和导通压降。

很多实际设计里关心的电压过冲,也发生在反向恢复结束的瞬间。因为反向恢复电流快速截止,di/dt很大,会在母线和回路寄生电感上感应出尖峰电压,叠加在Vds上。这个现象在仿真里如果用了理想导线,是看不见的;要看到它,可以在直流母线或二极管支路串联一个很小的高频寄生电感,比如几纳亨到几十纳亨。我建议大家加上这个寄生电感,因为真实电路里它确实存在,而且往往就是它把开关管电压应力推高的。

另外,驱动波形Vgs上还能看到密勒平台。第二个脉冲上升沿时,MOSFET正在导通过程中,Vgs有一段近似水平的平台,这是米勒电容充放电造成的。虽然本节重点是反向恢复,但双脉冲实验同时测到栅极驱动行为,所以你可以在同一个Scope里观察密勒平台,这算是这套实验附赠的福利。

4. 影响反向恢复的因素:参数扫描与损耗分析

4.1 驱动电阻如何改变di/dt与反向恢复

反向恢复和开关管的开通速度是绑在一起的。MOSFET开通速度由栅极驱动电阻Rg决定:Rg越大,栅极充电越慢,开通di/dt越小,二极管反向恢复电流变化越平缓;Rg越小,开通越猛,反向恢复电流尖峰越尖锐。

在Simulink里做这个对比很简单。给MOSFET的Gate支路串联一个电阻Rg,跑一次仿真,记录Ids和Vds;然后把Rg从2欧改成10欧或22欧,再跑一次,把两组波形放一起比较。你会发现大Rg时Irr明显变小,但Vds和Id电流拖出来的开关时间变长,意味着开通损耗可能反而增加。这就是一个典型的工程权衡:想压尖峰就要付出损耗,想降损耗就要承受尖峰,设计时只能找平衡点。

这也能解释为什么现代驱动电路里经常采用分段驱动或可调Rg方案:让器件在该快的时候快,该慢的时候慢。理解了反向恢复与Rg的关系之后,你再去看那些高端驱动芯片的文档,思路就清晰多了。

4.2 二极管选型差异:快恢复二极管与SiC二极管

二极管本身的特性对反向恢复影响更大。硅基快恢复二极管通过掺金、铂等杂质和少子寿命控制技术,把反向恢复电荷压得比普通PN二极管低;但低到什么程度还取决于工艺。碳化硅(SiC)二极管是多数载流子器件,没有少子存储效应,反向恢复几乎可以忽略,实际波形只剩下结电容充放电引起的很小电流振荡。

在Simulink里复现这个对比,最简单的方式是改二极管模型参数:快恢复二极管保留一定Tt或Qrr,SiC二极管则把反向恢复相关参数设得很小或者关闭封装电荷。跑完对比你会发现,SiC二极管支路的反向恢复尖峰又矮又窄,开关管Ids波形明显更干净,这是做高频高效率变换器时SiC器件的一大优势。

顺便说一句,如果你用的是带内部二极管的MOSFET模型,要注意内部二极管也有反向恢复。很多MOSFET数据手册里专门给出体二极管反向恢复参数,就是因为半桥电路死区时间内电流会流过体二极管,它同样产生反向恢复损耗。实验时用外接二极管还是体二极管,要看你想模拟的真实工况。

4.3 温度对反向恢复的影响:热起来会更严重

温度是反向恢复的隐藏变量。硅二极管的少子寿命随温度升高而变长,存储电荷更多,反向恢复电流和恢复时间都会增大;反向恢复电荷Qrr在一百多摄氏度的结温下可能比常温高出一倍以上。这就是为什么有些电源在常温下测试正常,一旦满载温度上来,开关管电流尖峰和EMI突然变严重的原因。

仿真中要体现温度效应不太容易,因为Simulink自带二极管模型默认是常温模型,温度系数是一个半固定参数。但如果你的模型来自器件厂商,或者用了热模型端口,就可以设置结温。就算只是用自带模型,你也应该把“温度会让反向恢复恶化”这个概念焊死在脑子里,实际测试时记得在高温工况下复核波形,不要只在25摄氏度下看数据。

4.4 从波形估算开关损耗:反向恢复与MOSFET损耗详解

双脉冲实验另一个高频用途是测开关损耗。MOSFET一个开关周期的损耗粗略分成开通损耗、关断损耗和导通损耗,其中开通损耗在大多数硬开关拓扑里都和反向恢复纠缠在一起。要想定量估,可以在仿真里用Product模块把Vds和Id相乘,得到瞬时功率,再用Integrator对时间积分,得到一次开通过程累计的能量。

具体做法是:把Scope记录的两个信号送到Product,瞬时功率波形一般在第二个脉冲上升沿附近会有一个很高的尖峰,这就是反向恢复贡献的额外损耗。将这个尖峰对应的能量积分出来,和你用Qrr估算的理论值对照,能对损耗构成有更清晰的认识。很多损耗计算工具里“二极管反向恢复损耗占总开关损耗比例”这个数值,就是这么从波形里抠出来的。

对于MOSFET自身,双脉冲实验同样能测开通损耗和关断损耗,做法是取相同窗口内的Vds乘以Id再积分。正因为一个实验能同时提取二极管反向恢复参数和开关管损耗,它才成为电力电子工程师最常做的实测项目之一。

5. 常见问题与排查技巧实录

5.1 反向恢复尖峰太大,示波器数据溢出

第一个常见问题是:设置合理,但Ids尖峰大得离谱,波形直接超出Scope显示范围,或者数值大到不符合物理常识。这多半是模型里缺少寄生电阻和阻尼。真实电路里有引脚电感、回路电阻、电容ESR等寄生元素,它们都会限制电流尖峰;纯理想电路模型则容易让电流在纳秒级冲上天。

解决方法是给母线、开关管和二极管回路加一些微小但真实的寄生参数,比如母线串联一个0.1uH的杂散电感,二极管串联一个0.2欧的寄生电阻,开关管导通电阻设一个合理值。加完之后波形会从“理想又尖锐”变成“实际有圆角”,这才贴近真实。同时要确保仿真步长足够小,否则峰值可能因为采样点不够而被锯齿状畸变。

5.2 波形振荡严重,像得了帕金森

很多人跑完仿真发现Vds和Ids振荡得乱七八糟,持续几十微秒还不平息。这通常不是反向恢复本身导致的,而是仿真模型里的LC谐振回路缺少阻尼,或者说你把寄生电感、电容搞得太大,而回路电阻又太小。

处理办法有三个:一是检查Pulse Generator周期和仿真总时间,如果总时间达到几百微秒,波形里可能包含了一些低频振荡成分,把显示窗口缩小到20us以内再看;二是在二极管和MOSFET两端并联一个很小的RC吸收电路,比如100pF串联10欧,能明显抑制高频振荡;三是重新考虑母线电容位置,仿真里如果母线电容离开关节点太远,也会因为连接线电感制造出额外振荡。记住,观察到一点点振荡是正常的,重点是第二脉冲上升沿之后的第一个恢复周期的形态,后面那些细碎振荡可以忽略。

5.3 怎么都看不到反向恢复,问题出在哪

有朋友照着教程搭完,发现Ids波形平平整整,一点反向恢复尖峰都没有。十有八九是二极管模型被设成了理想模型。Simulink自带的Diode模块如果当前参数化方式里没有启用反向恢复特性,它就是一个近似理想开关,根本不会存储电荷,自然就没有反向恢复。

检查路径是双击Diode,查看参数化区域,找到反向恢复相关参数,比如Tt、Qrr、RC等,确保它们不是零。我遇到过一种情况:所有参数都对,但仿真的离散步长太大——100ns的恢复过程被1us的采样点彻底漏掉了。把Powergui采样时间和求解器步长同时降到1e-8秒,反向恢复尖峰立刻就冒出来了。所以看到不到波形不要怀疑物理现象不存在,先检查模型类型和时间分辨率。

如果二极管没有设反向恢复参数,波形里永远不会出现尖峰。先确认Diode模型类型,再确认仿真步长,九成“看不到恢复”的问题都是这两个原因。

5.4 测量方向容易搞混,二极管电流显示反了

Simulink里的电流测量模块是有方向的,箭头方向代表正方向。测二极管电流时,如果电流表方向和元件方向一致,那你看到的波形在正向续流阶段是正的,反向恢复阶段是负的;如果方向接反,反向恢复会显示成正向尖峰,很容易把Irr误读成普通负载电流。

所以搭建模型时要刻意确认电流表箭头方向:二极管电流的正方向建议定义为阳极到阴极,也就是正向导通方向。这样做有一个好处:你在Scope里一眼就能分辨哪一段是续流、哪一段是反向恢复,不用每次都想半天。电压测量虽然没有方向,但要注意参考点,Vds的测量建议直接并在MOSFET的D-S两端,不要用相减的方式去间接算,那样反而容易引入噪声。

5.5 进阶玩法:参数扫描与批量提取

最后分享一个我很喜欢的扩展玩法。我习惯把模型里二极管的反向恢复电荷Tt和驱动电阻Rg抽出来,用MATLAB脚本循环赋值,每次跑完后自动把Ids数据导进工作区,再对反向恢复时间窗口做处理,提取Irr、trr、Qrr并整理成表格。这样一来,二极管选型对比就有了量化依据,而不只是靠直觉。Simulink双脉冲实验最让我受益的,不是它能替代实验室,而是它让我能把最微小的物理过程放大了反复观察,从“背理论”变成“看懂了”。下次你再遇到反向恢复相关的损耗、尖峰或者EMI问题,别急着翻书,先搭个双脉冲仿真看看波形,很多之前想不通的参数关系,自己就顺了。这也是为什么我一直建议周围的人,接触新器件时先花几分钟跑个双脉冲,比硬啃理论高效得多。

返回列表