
前阵子调试一台反激式开关电源输出5V/6A主开关管用的是一颗450V MOSFET。示波器夹到漏源极两端看到开通和关断瞬间的波形边沿上挂着一串高频衰减振荡频率在10MHz上下峰值甚至比稳态电压还高出快一倍。电源还能正常工作但这串振铃搁在EMI测试里就是麻烦。这篇文章就从这个波形出发把振铃的成因一层层拆开再完整走一遍Ltspice仿真复现、理论计算对账、实验验证的流程最后给出可以实际落地的抑制方案。适合正在做反激、正激、Boost这类硬开关拓扑的电源工程师也适合刚入门想搞懂开关电源波形细节的学习者。1. 振铃长什么样一次实测引发的怀疑1.1 从DS波形上认清振铃的形态先说那天实测的具体波形。反激变换器初级绕组电感100μH输入24V直流占空比大约0.4输出端带满负载。正常状态下MOSFET关断时漏源电压被反射电压和输入电压顶到50V左右波形应该是比较干净的一个平台再加一段缓变的斜坡。但实际看到的不是这样——电压从谷底往上爬升的过程中边沿上叠加了一个高频正弦衰减分量振幅20V上下振荡频率接近6.5MHz大约振荡了十来个周期才衰减干净持续时间差不多1.5μs。这类现象在开关电源调试里太常见了凡是波形边沿上叠加的、频率远高于开关频率的衰减振荡都可以叫振铃。它可能出现在漏源电压上可能出现在二极管反向电压上也可能出现在电流波形上。振铃的频率一般从几MHz到几十MHz不等衰减快慢取决于回路阻尼。如果阻尼很弱你甚至会在下一个开关周期到来前看到它还在余音绕梁。很多工程师第一次看到这个波形会以为示波器探头没接好或者干扰太大。但当你把探头换成短接地弹簧、重新确认了测量方式之后振铃依然存在那说明它不是测量假象而是电路本身的行为。这时候就需要去追问这串高频振荡的能量从哪来又为什么能振起来1.2 振铃为什么值得较真有人会想电源带载正常、输出电压纹波也达标振铃就当没看见行不行我的建议是别忽视它原因有四条EMI风险最大。振铃频率通常在10MHz附近恰好落在传导发射和辐射发射的高频段。板子上多了一串高频正弦就意味着在对应频点上多了好几个dB的噪声峰值后面做EMI整改往往得花几倍的时间去压它。电压应力可能击穿器件。振铃峰值如果超出MOSFET额定耐压那就不是EMI测试过不过的问题了是直接炸管的问题。尤其在大电压尖峰叠加振铃的工况下余量不足的器件很容易失效。每振荡一次都在白耗能量。振铃的本质是寄生电容和寄生电感之间的能量来回交换交换过程中电阻会把部分能量变成热。频率越高、幅度越大高频损耗越明显。振铃可能耦合到控制回路。高压侧的振铃通过寄生电容耦合到低压侧或栅极驱动回路轻则造成波形畸变重则触发误动作。所以别再拿能用就行安慰自己了把振铃成因和抑制方法吃透是硬件工程师绕不开的一课。2. 藏在封装里的凶手寄生LC谐振如何把方波变成正弦2.1 振铃的物理本质能量在两个储能元件之间来回倒腾要理解振铃先理解一个最基本的电路事实当电路里同时存在一个电感和一个电容并且两者形成闭合回路时只要给回路一个初始激励能量就会在电感磁场和电容电场之间来回转移。电感电流不能突变所以它想维持电流流动电容电压不能突变所以它想维持电压不变两者对冲的结果就是以它们固有谐振频率互相充放电形成正弦振荡。我习惯用一个生活化的类比来解释这就像你在秋千上坐好别人狠狠推了你一下之后没人再推了但秋千自己会来回摆好几下。摆动的频率由秋千的绳长决定摆多久才停下来由空气阻力决定。开关电源里的振铃就是寄生电感和寄生电容组成的秋千开关动作的那一下冲击就是推手。这个类比能帮你想清楚两个问题第一振铃频率不由开关频率决定而是由寄生LC的取值决定第二振铃能不能快速衰减取决于回路里有没有足够的空气阻力也就是电阻损耗。搞清楚这两点后面的分析和抑制思路就全通透了。2.2 反激拓扑里寄生电感电容的具体来源具体到反激变换器振铃形成的主要路段是MOSFET关断瞬间、以及输出整流二极管反向恢复期间。这几个瞬态涉及的寄生参数和典型来源我整理在下面寄生参数主要来源典型数量级在振铃中的角色MOSFET输出电容Coss漏源极PN结结电容几十pF到几百pF与漏感构成谐振回路决定振铃频率变压器漏感Lk初次级耦合不完全、磁芯窗口利用率不足初级电感量的1%~3%振铃能量主要储存在这里是能量源之一绕组分布电容Cp层间/匝间的电场储能几pF到几十pF与漏感形成高频路径叠加在高频振铃上PCB走线寄生电感走线铜箔、过孔、引脚长度每厘米几nH到十几nH抬高振铃频率恶化高频噪声耦合整流二极管结电容Cj二极管PN结在反向偏置时的等效电容几十pF到几百pF在次级侧形成独立的高频谐振回路反激变换器里最典型的振铃出现在MOSFET关断之后变压器初级电感被钳位在反射电压但漏感Lk不参与能量传递它的电流不能突变只能向上冲给Coss充电。当Coss电压冲到输出电压反射值以上漏感电流已经放完能量全进了Coss——这时候LC回路开始反向能量又从Coss流回漏感形成振铃。你会发现钳位电路RCD钳位或者TVS钳位存在时它会吸收一部分漏感能量振铃会弱一些但钳位二极管反向恢复结束时产生的那个边沿依然会给残留LC回路来一击照样振。这就是为什么加完钳位之后波形上还有残余振铃。2.3 用一个公式估算振铃频率振铃频率的估算很简单就是LC谐振频率公式f_r 1 / (2π × √(L_k × C_oss))这里的Lk是参与振荡的总电感Coss是参与振荡的总电容。我用实测那台电源的数据算一遍变压器初级电感100μH实测漏感2.3μHMOSFET的Coss在50V工作点附近约300pF。代入f_r 1 / (2π × √(2.3e-6 × 300e-12)) 1 / (2π × √(6.9e-16)) 1 / (2π × 2.63e-8) ≈ 6.05MHz实测波形上读出来的振铃频率接近6.5MHz和理论估算基本吻合差的那零点几MHz来自PCB走线电感和探头测量回路的附加影响这个后面实验部分会细说。这里要特别提醒Coss并不是一个固定值它随着漏源电压升高而急剧下降而且是非线性的。所以你在DS电压低的时候估出来的频率和电压冲到很高的瞬间的频率是不一样的。这也是为什么很多工程师用固定数值估算频率总对不上的原因。更准确的做法是用器件手册里Coss随Vds变化曲线上的工作点附近取值或者直接用仿真模型跑出来看。2.4 振铃衰减快慢取决于阻尼振铃不只是振还得衰。衰减速率由回路的阻尼因子决定。实际回路里总有电阻MOSFET导通电阻和体二极管导通电阻、绕组铜阻、PCB走线电阻、甚至磁芯的涡流损耗。这些电阻串在LC回路里等效串联电阻R越大能量消耗越快振铃衰减越快。用二阶系统语言来说衰减包络近似按exp(-t × R / 2L)指数下降R/2L越大衰减越快。理想情况下你希望这个比值足够大让振铃很快消失。但现实里寄生电阻都非常小往往在几十毫欧到几百毫欧所以振铃不衰减个十来个周期根本停不下来。阻尼不足有两面性一面是上面说的EMI和应力风险另一面是它提醒我们如果能把有效电阻适当引入振铃路径就能把能量快速耗散掉这正是后面讲RC吸收网络的理论基础。所以在定位振铃的成因时我就直接把目标锁定在这个回路上Lk和Coss是秋千R是刹车缺的是那个能踩刹车的元件。3. Ltspice仿真把看不见的寄生参数装进电路里复现3.1 搭一个最小可用的反激仿真骨架要复现振铃不需要搭一个完整闭环的反激真实控制器那会引入巨量附加参数反而干扰对振铃本身的观察。我推荐用一个开环的等效开关模型把关注的寄生参数显式放进去这样每个元件对应一个物理来源分析起来非常清晰。骨架分三层直流输入、开环开关动作、变压器与输出整流。具体元件如下输入24V直流源开关管用Ltspice自带的NMOS例如IRF840模型这个管子的Coss比较大振铃现象容易观察栅极由脉冲电压源驱动变压器模型不追求磁路细节用一个带互感电感的初级、次级对外加一个串联漏感Lk表示漏感输出整流二极管用快恢复二极管1N4148或UF4007注意它的反向恢复特性会影响次级振铃负载电阻负载并联一个大电解电容确保输出侧稳定一个关键建模技巧LTspice里变压器要用耦合电感声明写一个K语句把它们耦合起来耦合系数K取0.98~0.995对应百分之零点几到百分之二的漏感。耦合系数越接近1漏感越小你甚至可以在仿真里直观看到漏感对振铃的影响。如果不想用耦合系数表达更直接的办法是在初级串一个独立电感Lk这个电感的物理含义就是漏感改它的值最直观。3.2 把寄生参数放进模型这是整个仿真里最核心的一步。寄生参数虽然看不见但每个都有明确的建模位置MOSFET输出电容Coss如果你的MOSFET模型本身已经包含输出电容可以直接利用如果没有就在MOSFET漏源两端并一个显式电容初值取实际工作点附近的Coss值变压器漏感Lk在初级绕组的任意一端串一个小电感或者通过耦合系数K来表达绕组分布电容Cp在变压器初级两端并一个皮法级的电容模拟PCB走线电感在功率回路的高dv/dt路径上串几个nH级的小电感我用的是20nH这个量级因为两厘米走线加过孔差不多就是这个数二极管结电容如果你的二极管模型没包含结电容细节可以在二极管两端并一个几十pF电容模拟反向恢复后的寄生振荡这些寄生参数加起来不会让仿真变得很复杂但对结果影响巨大。我特意做过对照组不加任何寄生参数的理想反激电路开关波形就是一条干净的方波完全看不出振铃把所有寄生参数加上波形立刻跟实测对上了。这本身就是对振铃寄生LC谐振这个结论的最好验证。3.3 驱动信号与观测点设置驱动信号用一个PULSE电压源即可不需要控制器。我常用的设置如下Vgate g1 g2 PULSE(0 12 0 20n 20n 4.9u 10u)驱动电压0到12V上升沿下降沿都设20ns这样开关动作足够快能激发高频振铃又不会快到让仿真步长崩掉。开关频率100kHz占空比49%。如果你用真实反激控制器模型麻烦会多很多启动过程、反馈补偿、轻载跳周期都可能干扰你看振铃。所以开环驱动是最适合做机理观察的方案。观测点选在MOSFET的漏源极两端电压、初级电感电流电流和输出电压。具体在Ltspice里跑仿真我的操作步骤是放置所有元件完成原理图连线给谐振相关节点起好明确的网络标签比如DS、GATE、PRIM、SEC写入脉冲源参数和耦合电感K语句设置瞬态仿真指令.tran 0 30u 0 0.5n意思是仿真30μs最大步长0.5ns运行仿真点击DS节点波形3.4 跑出振铃波形的几个关键设置这里要专门提醒一个新手上路最容易踩的坑SPICE仿真的数值算法本身可能引入假振铃。Ltspice默认用改进的梯形法如果仿真步长设得太大波形边沿处经常会出现高频数值振荡频率和你的电路没有任何关系纯属算法假象。区分方法很简单把最大步长改小一个数量级如果振铃频率和幅度明显变化那就是数值振荡如果几乎不变才是真实的寄生振铃。为了保证振铃看得清我建议maxstep设成振铃周期的1/20比如振铃6.5MHz、周期约154nsmaxstep设5ns以内我用0.5n是为了连同上升沿细节一起看清。另外仿真时间不需要很长30μs足够启动后进入稳态观察几个开关周期。振铃发生在每个开关边沿附近你在波形上一目了然。如果想让波形更好看可以用.options plotwinsize0关掉波形平滑压缩避免Ltspice对波形数据做降低采样导致高频细节被抹平。4. 仿真与理论对账从波形里读数据找规律4.1 仿真波形的振铃频率和理论公式能不能对上跑完仿真放大DS节点电压在关断瞬间的波形能看到跟实测几乎同款的振铃。为了把频率读准我直接在Ltspice波形窗口里用两个游标分别落在振铃的两个相邻波峰上读出时间差Δt≈155ns对应频率约6.45MHz。这个值跟2.3节理论计算的6.05MHz差得不多误差来源主要是Coss的非线性——让LC回路在电压摆动的不同工作点上频率略有偏移实际看到的振铃频率是一个平均概念。把仿真结果和理论计算放在一起看数据来源振铃频率备注理论计算6.05MHz用Lk2.3μH、Coss300pF静态计算Ltspice仿真6.45MHz模型中Coss随Vds动态变化且包含走线感实测约6.5MHz探头和PCB附加参数略有影响三者能对齐说明建模仿真这一环是可靠的。这个理论预估-仿真复现-实测验证的三步对账流程是我处理所有波形异常问题的标准动作。如果某一步对不上一定是有模型没建对或者测量有假象要回头看而不该硬凑。4.2 用.step参数扫描看清寄生参数的影响Ltspice的.step命令在这里特别好用。我想知道漏感变大振铃会怎么变直接在网表里写.step param Lk 1u 5u 1u跑完就能看到五条波形叠在一起漏感从1μH扫到5μH振铃频率明显降低同时振铃峰值幅度也有上升趋势。原因也好解释漏感储存的磁场能量与L成正比能量更多而谐振频率随√L反比下降。我又用同样方法扫描了Coss.step param Coss 150p 600p 150pCoss增大后振铃频率降低峰值电压则略有下降——因为更大的电容在同等能量条件下电压摆幅更小。这两个仿真结果能直接指导选型想压低振铃频率避开某个EMI敏感频段可以往增大电容方向调想从源头减少振铃能量那就减小漏感。4.3 从仿真提炼的设计规则基于这轮仿真我可以提炼出几条硬规则就算你只记这几条做电源设计时也够用漏感是振铃能量的主要来源设计变压器时漏感越低越好。反激变压器绕制时可以采用三明治绕法初级包次级、次级包初级交替把漏感压下去代价是分布电容会略有上升。漏感和分布电容是一对矛盾不是越低越好而是找到适合你开关频率和EMI目标的最佳点。Coss不是越大越好虽然Coss能降低谐振频率和峰值摆幅但它会带来更大的开关损耗。MOSFET选型要把Coss、Rds(on)、Qg综合权衡不能单为振铃选大电容。阻尼电阻才是跟振铃正面刚的手段寄生参数决定振铃的音调阻尼决定振铃响多久。想要快速平息还是要靠附加吸收网络或者合理利用钳位电路的损耗。仿真做得再漂亮终究是模型世界的事。我见过太多人仿真波形完美、一上实测就对不上下一章专门讲讲实验台上那点测量假象的破事。5. 实验验证示波器探头也是测量的一部分5.1 为什么实测波形会和仿真不一样有次学员拿着板子来找我说仿真振铃6.5MHz实测出来愣是看到15MHz的振铃怎么调模型都对不上。我去看他测波形就明白了他把示波器标配的地线夹子接了长长一根线这根地线引线本身至少有10cm。地线引线在测量回路里等效出一个大约100nH的电感跟探头输入电容典型10pF~15pF构成了一个新的LC谐振回路固有频率差不多正好在十几MHz。也就是说他测到的里面混了探头的真振铃。示波器探头不是理想连接线它本身就是被测电路的负载。10倍衰减探头输入电容10~15pF你把它压到DS节点上等于在Coss旁边又并联了10pF改变了原电路的谐振频率。地线引线电感更大一高频率就把谐振峰拉出来。所以你在测高频振铃之前必须先把测量系统自身的谐振行为搞清楚。5.2 测振铃的正确打开方式实测振铃的正确姿势我总结下来是几条硬经验用地线弹簧不要用地线夹。示波器原装的弹簧接地极只有几毫米等效电感可以做到5nH以下。没有弹簧的话把地线夹从探头上拆下来用一小段铜箔或粗铜丝缠在探头地环上越短越好。能不用差分探头就不用差分探头。差分探头带宽普遍比单端探头低而且共模抑制比在高频段会劣化。测MOSFET DS电压时如果系统是隔离的可以采用单端探头直接把接地弹簧接到源极测试点旁边。测浮地信号时要把示波器供电隔离问题搞清楚。示波器本身接地探头的地实际上是接到电源地参考点的接错了可能烧探头。隔离电源板上测高压侧波形我建议用隔离探头或者把示波器接隔离变压器并且断开示波器电源地注意安全规范。带宽限制和采样率要匹配。要看6.5MHz振铃示波器带宽至少100MHz足够想看清上升沿里的10ns细节带宽500MHz更好。采样率至少5倍于最高目标频率我用的是2.5GSa/s采样完全够。测量点位要靠近器件本体。探头的接地弹簧尽量直接落在MOSFET源极引脚和PCB铜箔连接处走线距离越短越能减少额外串入的回路电感。照这套方法重新测同一块板子实测波形里那串15MHz的高频杂波基本消失剩下的6.5MHz振铃和仿真模型完全对上了。这一步很关键它证明不是仿真骗你而是测量系统在撒谎。5.3 实测与仿真对账的三个心得对账过程走多了我总结出三条实用心得新手可以直接抄走。第一做仿真的时候就把探头模型考虑进去。如果你打算用示波器验证一个高频波形仿真里可以在测量节点上加一个10pF电容对地、串联100nH电感模拟探头寄生这能看到测量状态下的波形跟理想状态有多大差别。很多时候实测比仿真多出来的那点振铃就是探头自己振出来的。第二别在没看探头自测波形前就下结论。找个短路线把探头输入和接地弹簧短接用信号发生器灌一个方波看探头本身的阶跃响应。如果响应里有明显过冲和振铃换探头或调整补偿电容否则后面测的全是脏数据。第三对不上就量化不搞玄学。仿真频率6.45MHz、实测6.5MHz差1%以内可以放心差到20%先查测量方法再查寄生建模不要上来就责怪仿真软件不靠谱。Ltspice在时域瞬态这种仿真上非常可靠对不上大概率是模型边界条件差异不是软件质量问题。6. 振铃抑制从吸收网络到PCB布局的完整方案6.1 RC吸收网络的设计计算振铃的源头是寄生LC回路抑制思路就是给这个回路增加损耗或者破坏谐振条件。最经典、最有效的手段是RC吸收网络直接跨接在振荡回路上用电阻把振铃能量转化为热。具体到反激的DS振铃最简单的做法是在MOSFET的DS两端并联一个串联RC。设计步骤我给一个工程上常用的流程先测或仿真出振铃频率f_r和平时的DS峰值电压V_ds估算回路特性阻抗Z0 √(Lk / Coss)RC的电阻R_s取Z0量级太小损耗大、太大吸收效果弱RC的电容C_s取Coss的2~4倍太小吸收不了能量太大增加开关损耗上示波器实测看振铃幅度是否衰减到位不到位微调R_s拿我那台实测电源举例Lk2.3μHCoss300pF算得Z0≈87Ω。我取了R_s82ΩC_s1nF约等于3.3倍Coss。并联上之后同一工况下DS波形关断振铃的峰峰值从20V掉到了不到5V振荡周期从十几个衰减到两三个效果立竿见影。要注意的是RC吸收的代价是每个开关周期都要给C_s充放电一次产生额外的损耗。C_s取值越大吸收效果越好但损耗越高功率耗散大致按P 0.5 × C_s × V_ds² × f_sw估算。按上面数值粗算C_s1nFV_ds50Vf_sw100kHz损耗约0.125W这个量级完全可接受。6.2 驱动电阻与栅极振铃的关系很多人以为加大栅极驱动电阻就能压住DS振铃这是个误区。DS振铃由漏感和Coss形成跟栅极回路关系不大你加大栅极电阻只会拖慢开关速度可能降低EMI但代价是更大的开关损耗。真正受栅极驱动电阻影响的是栅极波形自身的振铃——当驱动电阻太小、栅极回路寄生电感与MOSFET输入电容谐振时栅极电压波形上会出现高频振铃严重时甚至能在米勒平台附近引起反复开关振荡。我处理栅极振铃的常规做法是在驱动电阻上串一个几欧姆到几十欧姆的电阻具体值从10Ω开始试直到栅极波形没有明显过冲。如果驱动芯片的输出阻抗已经够大甚至不用外加电阻。这里的原则是够用就好电阻过大会拖慢开关得不偿失。6.3 源头治理PCB布局和绕组工艺吸收网络属于治标真想让振铃从源头变小还得靠变压器和PCB设计。PCB布局上我有一条铁律让你这块电源的所有功率回路面积最小化。MOSFET、变压器初级绕组、输入电容要构成一个紧凑的三角形走线短而粗次级整流回路同样处理。开关节点比如MOSFET漏极那一段铜箔是整板上dv/dt最高的地方这段走线务必越短越好焊盘和铜皮之间不要拖长线。这概念跟热搜里反激式开关电源pcb这个关键词高度相关很多EMI问题其实在布局阶段就已经定型了后面改吸收网络只是补窟窿。变压器绕组工艺上漏感的控制手段主要是三明治绕法和交错绕组。三明治绕法让初级分成两半包裹住次级磁耦合强、漏感小代价是分布电容上升交错绕法同理。具体哪种最优得看你电源的开关频率和振铃频率的取舍但我一般优先保漏感因为在硬开关拓扑里漏感带来的损耗和振铃更致命。另外初级绕组和次级绕组之间的绝缘层尽量薄也能改善耦合。6.4 验证抑制效果别只盯一个波形加完RC吸收网络、调整了布局之后验证不能只看DS波形一个点。我习惯做三项检查DS振铃幅度和持续时间确认关断振铃峰峰值降下来衰减周期数明显减少输出二极管反向电压波形次级回路的振铃同样需要在输出整流二极管上并联RC吸收否则次级侧振铃会耦合回初级整机效率吸收网络会带来损耗实测效率如果掉得太多说明C_s或R_s取值过大需要回调这里分享一个我自己常用的判断标准加吸收网络后效率损失控制在0.5个百分点以内同时振铃幅度减半以上这个方案就是值得保留的。如果效率损失明显而振铃还很顽固那大概率是布局或变压器的问题没解决光靠吸收网络硬压不划算。还有一个容易被忽略的验证手段是热成像。RC吸收电阻在高频振铃状态下会发热用热成像看电阻温度能直观判断损耗大小。温度太高的电阻器寿命会显著缩短选型时要留足降额余量。最后再聊几句个人体会。我调试开关电源这些年振铃这关早晚都要过关键是建立一套稳定的排查方法先用公式估算谐振频率再用Ltspice把寄生参数建模复现一遍最后上实验台用短接地探头实测验证。三步走完振铃从哪来、怎么消你心里基本就有数了。现在我自己调试新板子看到振铃第一反应不是去调参数盲试而是先问一句这个频率跟我算的寄生LC对不对得上——对得上后面所有工作都有方向对不上先怀疑测量方法。这套思路同样适用于正激、Boost、半桥这些拓扑寄生LC谐振的本质是一致的。如果你手头正好有电源板在调试不妨按这个流程走一遍可能一次就能把困扰你很久的波形问题彻底看透。