ARTICLE DETAIL

资讯详情

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

MOS管关断尖峰与振铃的RC吸收电路LTspice仿真实践

MOS管关断尖峰与振铃的RC吸收电路LTspice仿真实践 搞开关电源和电机驱动的朋友应该都有个共识MOS管关断时那一下电压尖峰是所有硬件工程师绕不开的坎。尖峰大的时候不但白白发热弄不好还会击穿开关管。十次设计里有九次需要靠RC吸收阻尼电路来收场。但RC取值从几十欧到几百欧、从几百皮法到几纳法都有网上说法也不少真正踏实的做法是先仿真再实测。这篇文章我就拿LTspice工具把RC吸收阻尼电路从建模、参数估算到波形调优完整走一遍。适合刚接触电源设计、或者手里有振铃或过冲问题不知道怎么下手的工程师也适合想系统性学习仿真思路的同学。1. 为什么会振铃寄生参数与开关过程分析1.1 开关管关断时的那一瞬间发生了什么MOS管关断时漏极电流正在下降但电流变化率不会无穷大因为功率回路里一定有电感。这个电感主要来自PCB走线、封装引脚、电解电容内部等效串联电感ESL。电感有一个基本脾气电流不能突变。为了继续维持电流电感两端会感应出电压方向是保持电流方向不变。这个感应电压叠加在母线电压上于是漏源电压Vds在关断后的几百纳秒内冲出一个尖峰然后再回落到母线电压附近。具体到Buck电路上管关断之前整个功率回路里稳定流动着负载电流和电感的续流电流关断瞬间电感电流通过下管体二极管继续流但上管这一支路被切断。此时从电源正极到上管漏极之间的走线寄生电感Lp上电流必须从“满负荷”跌到0di/dt非常大于是产生Lp·di/dt的压降这个压降直接把上管漏极电位往母线电压之上顶。这里要特别提醒实际di/dt到底多大并不容易直接测但可以根据栅极驱动速度和MOS开关速度估算。比如一台24V输入、输出10A的降压电源功率回路走线如果比较随意寄生电感做到50nH开关电流在20ns内从10A落到0di/dt就是5×10^8A/sLp上感应电压就是25V。叠加在24V母线上原始尖峰能到50V左右这已经不是小事。再叠加Coss充放电的振铃波形会非常难看。1.2 开关节点上的等效LC回路振铃频率估算振铃来自LC谐振。关断以后漏极节点上并联着MOS管输出电容Coss、实际板上对地分布电容而另一头是刚才说的功率回路电感Lp。这两个东西天然构成一个并联LC回路。Lp里残余的能量在Lp和Coss之间来回交换表现为Vds的衰减振荡。振荡频率就是LC回路的谐振频率f_ring 1 / (2π√(Lp·Cpar))这个频率典型在几十MHz到上百MHz。如果你在示波器上压根看不到高频振铃通常不是没有而是示波器带宽不够、探头地线太长或者被测节点上已经天然被大电容阻尼掉了。很多人问为什么普通100MHz示波器看不到振铃因为探头地线夹会引入额外寄生电感而且100MHz带宽本身就会把几十上百兆的振荡信号衰减掉。仿真里不存在这个问题只要把最大步长设到1ns就能看清上百兆的振荡。这也是我始终坚持用LTspice先做这一步的原因波形细节不会骗人。1.3 先别急着加RC几种常见抑制手段怎么选不是所有尖峰都要靠RC吸收来治。实际工程里可选的手段不少我先列个对比表方便大家选方向。抑制手段原理典型损耗适用场景注意点增加栅极电阻减慢开关速度降低di/dt开关损耗明显变大对效率要求不高的场合简单粗暴但会让发热上升TVS/稳压管钳位把尖峰电压钳到指定值钳位能量全损耗在管子上尖峰能量小、偶发过压要选好钳位电压漏电流要注意RCD吸收电容存能量电阻耗能二极管单向充放中等反激、正激电源常用多一个二极管参数配合麻烦RC吸收电容吸收电阻阻尼纯无源串联RC与C和频率相关振铃型过冲、EMI问题C不能太大R要匹配特征阻抗我选RC吸收作为这篇文章主角的原因很直接所有器件都是线性无源元件不依赖二极管方向不会引入“把能量传递到别处”带来的新问题。它直接给谐振回路提供阻尼让振荡衰减而不是靠钳位硬扛。它适合振幅不算特别高、但一直在振的情况。如果尖峰能量非常大RC会因为电容容量不足而有心无力这时候再考虑RCD或软开关会更合适。2. RC吸收电路原理与参数估算方法2.1 RC支路到底在干什么RC吸收电路就是一支电阻和一支电容串联跨接在需要保护的开关管漏源两端或者跨接在开关节点与地之间。两种接法差别在于“看进去”的寄生回路形态。跨DS间并联时主要解决开关管自身Coss与环路电感产生的过冲和振铃开关节点对地并联时主要治理节点上对外的EMI振铃。本文先以DS间并联为例子来讲。RC支路在谐振频率附近的等效阻抗是Z R 1/(jωC)。频率很高时电容容抗很小R成为主导频率很低时电容容抗很大支路近似开路。所以理想情况下平时低频或直流RC不干扰电路工作开关瞬间的高频振荡则通过C进入支路被R变成热。关键点在于容性支路给Lp一个“接住”能量的位置。尖峰来时一部分充电电流流进CsnubCsnub再通过R把能量变成热。同时R的欧姆损耗带来阻尼把LC回路的品质因数Q降下来振荡自然就衰减了。这里有个常见误区如果只并电容而不串电阻Q值不会下降能量只是在电容之间互相倒来倒去振铃很难收敛如果只串电阻而不并电容直流偏置会被电阻直接分掉既增加静态损耗又破坏工作点。所以必须R和C串联一个负责引路一个负责耗能。2.2 从特征阻抗出发快速定初值对初学者最好用的估算路线是以下几点。从电路拓扑和实测波形估计或测量振铃频率f_ring。用公式求特征阻抗Z0 sqrt(Lp/Cpar)。取Rs≈Z0Cs≈2~5倍的Cpar。麻烦在Lp和Cpar并不直接标注在datasheet上。Lp要根据PCB布局估算或实测Cpar可粗略用MOS管datasheet里Coss曲线中等电压下的值比如400V管子通常取几百pF到1nF。给一个完整算例。假设某个反激电源初级MOS管Coss约为300pF功率回路走线寄生电感Lp估计80nH。那么特征阻抗 Z0 sqrt(80e-9 / 300e-12) sqrt(266.7) ≈ 16.3Ω所以Rs取15~22Ω比较合适Cs取2~5倍300pF即600pF~1.5nF。再看振铃频率 f 1 / (2π√(80e-9×300e-12)) ≈ 32.5MHz在这个频率下Cs1nF的容抗只有约5Ω比Rs小所以高频电流基本能进到RC支路里被消耗掉。这个取值方向在物理上就是合理的。当然这只是初值后面要靠仿真扫描来修正。2.3 实测校准法用两次振铃频率反推寄生参数既然Lp和Cpar不好估可以反过来用波形反推。这个方法在仿真和实测中都适用强烈建议掌握。第一步不装RC测出原始振铃频率f1。第二步在开关管DS两端并联一个已知试验电容C_test比如1nF。第三步再次测振铃频率f2。第四步因为f1 1/(2π√(Lp·Cpar))f2 1/(2π√(Lp·(CparC_test)))所以可以推导出 Cpar C_test / ((f1/f2)^2 - 1)第五步再把Cpar代回去求Lp最后算特征阻抗Z0取Rs≈Z0Cs再取2~3倍Cpar。举个例子f180MHz加1nF后f245MHz。那么 (f1/f2)^2 (80/45)^2 ≈ 3.16 Cpar 1nF / (3.16 - 1) ≈ 0.46nF 460pF再求Lp Lp 1 / (4π²·f1²·Cpar) ≈ 8.6nH这个算例说明一个很重要的事实不同板子的寄生参数差异非常大有的特征阻抗只有几欧有的几十欧。如果无脑套用“10Ω电阻加1nF电容”的公式很可能完全不对症。先量频率再反推参数是更靠谱的工程方法。3. 在LTspice里搭仿真电路建图、配置与波形测量3.1 仿真测试电路结构怎么搭我搭的测试电路模拟的是一个很常见场景感性负载加开关管加续流二极管这也是继电器驱动、线圈驱动、DC电机驱动的基本回路。电路元件如下。V1直流母线电压50V。Lp100nH代表电源到负载这一段走线寄生电感。L1100μH感性负载。Rload10Ω负载电阻。D1续流二极管使用LTspice自带的1N5819。Q1开关管使用LTspice自带的VNMOS右键设置Vto2、Ron0.1。Cpar200pF跨接在Q1漏源之间代表MOSFET的Coss和分布电容。Rsnub、Csnub待扫描的RC吸收支路。电路连接方式如下。V1正极经Lp接到节点busbus再经L1接到节点swsw接Q1漏极Q1源极接地。D1阳极接地阴极接sw起续流作用。Cpar接在sw和地之间。Rsnub与Csnub串联后整体并联在sw和地之间。这里把Q1当作低边开关漏极对地就是开关节点。测V(vsw)就是Q1的Vds因为源极接地读数非常直观。为什么用低边感性负载开关电路而不是完整Buck因为本文要突出RC吸收的机理这个电路足够简单又保留了核心的Lp/Cpar振铃路径初学者更容易看懂。真要分析Buck的高边开关把Cpar换成高边开关的Coss、把D1换成下管体二极管原理完全一样。3.2 元件放置与关键参数设置LTspice几个常用操作新手可以先看这一段能省不少摸索时间。新建原理图File → New Schematic。放置电压源按F2打开组件库输入“voltage”选中放置放置后右键设置直流电压或脉冲源。放置电阻按F2输入“res”或按快捷键R电容输入“cap”或按C电感输入“ind”或按L二极管输入“diode”或按D。放置NMOSF2输入“VNMOS”找到后放置或者输入“nmos4”用SPICE级MOS模型。接地符号按G放置。旋转元件CtrlR镜像CtrlE。修改参数右键元件在当前值输入框里填数值即可。电压源要设置成脉冲方波来模拟开关管的驱动。比如Q1的栅极驱动设为 PULSE(0 10 0 20n 20n 1u 2u)含义是初始0V脉冲高电平10V延迟0上升沿时间20ns下降沿时间20ns脉冲宽度1μs周期2μs。这样Q1以500kHz频率开关。先跑两个完整周期看振铃衰减比只跑一个周期更能说明问题。3.3 瞬态仿真、步长设置与测量指令添加瞬态仿真有两种方式。在Simulate → Edit Simulation Cmd里Transient页填Stop Time10uMaximum Timestep1n或者直接在原理图上放一行指令 .tran 0 10u 0 1n最大步长设1ns非常重要。上面估算过振铃频率几十MHz到上百MHz周期只有10~20ns。要在一个周期内采到足够多的点步长必须比周期的十分之一还小。步长太大会把尖峰削平得到一条“看起来还行”的假波形这直接导致你误判吸收效果是新手最容易踩的坑。测量V(vsw)波形时把鼠标放到Q1漏极那根导线上光标会变成电压探针图标点击一下就会在波形窗口显示该节点电压。想看振铃频率打开波形窗口后选择View → FFT频谱里的尖峰位置就是振铃频率用来反推Lp/Cpar非常方便。想要更精确的数字可以用光标在两个相邻波峰之间读周期再换算成频率。用.meas自动统计尖峰是更高效的办法。在原理图上放一行 .meas TRAN Vover MAX V(vsw) FROM 1u TO 3u仿真结束后View → SPICE Error Log里就能看到Vover的具体数值。这样在扫描不同RC组合时不用肉眼一个个看波形直接对比数字就能快速判断效果。4. 用.step扫描RC参数快速找到合适的组合4.1 固定电容扫电阻观察阻尼变化扫描电阻时把Rsnub的电阻值写成{Rs}并在原理图中放一行.step指令 .step param Rs 10 200 20同时把Csnub临时固定为470pF。仿真结束后波形窗口会一次性画出多条V(vsw)曲线每条对应一个Rs值。我实测下来规律很明显。Rs很小时比如10Ω尖峰还是很高振荡依然明显只是振荡频率会变化。原因是R太小RC支路近似成了纯电容相当于在开关管上多并联了一个电容几乎不消耗能量。Rs很大时比如150Ω以上RC支路在高频下接近开路吸收效果很差波形和没加RC差别不大。只有Rs落在特征阻抗附近时过冲压得最低振铃衰减最快。为什么一定是特征阻抗附近因为阻尼电阻要和回路特征阻抗做匹配。R与sqrt(Lp/Cpar)相等时振荡能量被电阻一次吸收的比例最大。这和在信号传输系统里做阻抗匹配是同一个道理理解了这个你就能明白为什么RC取值不是随便拍脑袋。4.2 固定电阻扫电容平衡吸收能力与损耗再把Rsnub固定为47Ω扫描Csnub .step param Cs 100p 2n 100p把Csnub的值写成{Cs}。这里也有明显规律。Cs小于Cpar时吸收能力不足波形改善有限Cs增大到几百pF到1nF过冲和振铃明显被压制Cs继续加大到几nF波形变化开始变钝但吸收电阻的损耗和发热明显上升。还有一个容易被忽视的点Cs过大时开关管开通瞬间Csnub上储存的电荷会通过开关管泄放形成额外的开通电流尖峰。这个电流尖峰会增加开通损耗甚至干扰电流采样。所以Cs并不是越大越好我一般遵循“够用就好”的原则先取2~3倍Cpar再看波形是否达到EMC或耐压要求不够再往上加。4.3 损耗评估与最终选型建议RC吸收的功耗主要落在R上计算公式是 P_RC Cs × Vds_peak² × fsw为什么是这个形式因为每个开关周期内Csnub被充放各一次各耗0.5·Cs·V²合起来就是Cs·V²·fsw。举个具体算例Vds_peak60VCs470pFfsw200kHz。P 470e-12 × 60² × 2e5 0.338W0.34W落在0603或0805封装电阻上已经比较吃力了建议用1206以上封装或者两只电阻并联分摊。这时候你就能理解为什么很多量产板子用了几nF吸收电容后电阻发烫到变色根本原因就是Cs选得太大。在LTspice里直接看吸收电阻损耗非常方便按住Alt键再点击Rsnub波形窗口就会显示该电阻的瞬时功耗曲线再用光标框选一段时间就能看到平均功耗量级。这个技巧不用额外搭建测量电路非常实用。我的最终选型思路是先按2.3节的实测校准法求特征阻抗定出R再按“2~3倍Cpar”定出初始C然后扫一轮R和一轮C选一个“过冲满足耐压、电阻温升可接受”的组合而不是追求最低过冲。在产品里过冲压到10%以内往往足够了剩下的问题交给环路和布局去解决。5. 常见问题与排错实录5.1 仿真不收敛、time step too small怎么处理这个报错是最常见的劝退点。原因通常是电路里含有大电感加理想开关加极小Cpar开关瞬间导数非常大数值积分步长被迫无限缩小最终低于误差阈值。我的处理顺序是这样。第一把最大步长写小一点比如1ns但总时长控制在5~10μs别让仿真时间爆掉。第二给Lp串联一个0.01Ω到0.1Ω的电阻模拟真实走线的直流电阻能明显改善收敛。第三改用LTspice的Alternate求解器Tools → Control Panel → SPICE → Solver → Alternate。第四如果还不行就把理想M削换成含导通电阻Ron和结电容Vto参数的VNMOS或者给二极管并一个小电容先把“完美开关”造成的数值刚性降下来。建议别在一开始就把模型做得过于复杂。先用理想器件把机制跑通再逐步加入真实型号这既是仿真技巧也是电路调试的通用思路。5.2 仿真结果和实测对不上先查这四个因素我踩过最大的坑就是仿真里明明已经把过冲压到10%以下上板实测却还有20%多。后来逐一排查发现主要原因按影响从大到小排列是这几点。第一Lp估算偏小。很多实测差异来自“功率回路走线电感”这个参数少估10nH都会让结果明显不同。第二探头地线引入了额外寄生电感。示波器探头用接地弹簧比用长地线夹能显著降低测量振铃所以实测方法本身也要注意。第三MOS模型不准。Coss是非线性电容datasheet给的是特定电压下的值电压和温度变了之后实际值会漂。第四电源内阻和输入电容ESL没有被建模。上电之后母线并不是理想电压源这部分参数也要一起考虑。建议在仿真完成后实机上先用第2.3节的方法测原始振铃频率反推Lp和Cpar回填到仿真模型里再重新取参数。做完这一步校准仿真结果基本就能和实测对上了。5.3 LTspice操作效率与模型导入心得最后分享几个提高效率的操作技巧都是平时文档里不太会写、但实际很省时间的东西。界面汉化这件事我个人不推荐装汉化包。LTspice的资料、教程、帮助文档几乎全是英文常用英文词就那些看两三天就习惯了。汉化包还得担心版本更新后失效以及不明bug带来的麻烦。导入第三方模型方面从厂商官网下载模型的.lib或.sub文件后直接在原理图里放一行.include指令比如.include D:/xx/yy.lib再用模型名放置元件或者用File → Open打开模型文件右键选择Create SymbolLTspice会自动生成一个可用原理图符号。这个功能在做真实器件验证时非常有用比如想用某颗具体型号的MOS管来确认驱动能力。常用SPICE指令也可以记一下.tran是瞬态仿真.step是参数扫描.meas是测量统计.four是谐波分析配合View → FFT可以做频域观察。放置电源的小技巧是F2打开元件库后直接搜voltage比盯着工具栏找图标要快得多。复制一组RC串联支路时按住Ctrl再拖动元件可以快速复制出并排的多组测试电路。这些操作都属于“知道一次以后很省事”的类型。仿真本身不难难的是把物理概念和仿真结果对应起来。多跑几次扫描多对比几次实测这种“电路直觉”就慢慢建立了。做了这么多轮RC吸收仿真我最大的体会是这个电路的核心价值不是把尖峰压到没有而是把振铃能量转化成可控的热再用合理的器件和布局把热量处理掉。仿真再准也不能替代示波器实测但它能帮你在几分钟内排除掉所有明显不靠谱的方向。如果你手里正好有个烦人的振铃问题建议先别急着开焊台先在LTspice里把这个模型搭起来跑一轮参数扫描很多问题会比想象中清晰得多。之后再上板测你手里的数据就完全是“验证预期”而不是“碰运气”了。
返回列表