ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

用LTspice仿真RC吸收电路,一招压制开关振铃

用LTspice仿真RC吸收电路,一招压制开关振铃 做电源调试的时候最烦的就是示波器探棒一挂上去开关节点上那一串高频振铃就跑出来——几十兆赫兹、峰峰值比母线电压还高。这玩意儿在反激电源里能把MOSFET直接打穿在Buck里让输出纹波难看在继电器和电机驱动里就是烧触点、干扰单片机的元凶。RC吸收阻尼电路是解决这类问题最老牌、最常用的手段结构就是电阻串电容看着简单但参数怎么定、阻尼效果怎么评估很多工程师其实是靠猜的。我用LTspice把这套流程完整跑过一轮从振铃的产生原理到模型搭建、参数初选、瞬态仿真、参数扫描再到最后和实际板卡的对照验证这套方法可以直接复用。LTspice免费、内置库够用、出波形快非常适合干这类“开关振铃抑制”的仿真分析。这篇文章就把整个过程拆开讲清楚适合正在做电源、电机驱动、继电器控制或者被开关振铃折磨过的硬件工程师也适合想系统学一下RC吸收电路的电子相关专业学生。1. 振铃到底从哪来RC吸收阻尼电路的工作原理1.1 寄生电感与寄生电容才是振铃的“元凶”开关电路里从来没有真正干净的开关。MOSFET有输出电容Coss二极管有结电容PCB走线和器件引脚又带着寄生电感。开关管关断的瞬间回路里的电流不能突变寄生电感会和寄生电容构成一个LC谐振回路。电流还在继续流能量就在电感和电容之间来回倒腾宏观表现就是漏极或开关节点电压上出现高频振荡。这里有个好用的估算公式谐振频率大约是f 1 / (2π√(LC))举个例子环路寄生电感取50nH寄生电容取150pF算出来谐振频率大概是58MHz。这个频段正好落在常见EMI问题的敏感区间所以振铃不仅威胁器件耐压还会带来传导和辐射干扰。振铃的危害可以归纳成三条一是过冲电压叠加在母线电压上容易超过MOSFET的额定耐压二是高频振荡通过走线和线缆传出去EMC测试很难过三是振荡能量最终消耗在寄生电阻上表现为局部发热。明白了这三点就明白为什么要专门给振铃“上手段”。1.2 R和C各干各的活别把RC吸收当RC滤波用RC吸收支路的接法是电阻和电容串联然后跨接在开关器件两端或感性负载两端。它的工作原理和RC低通滤波完全不同我见过不少人把这两个概念搞混所以这里要专门掰开讲。电容C的作用是给高频尖峰电流提供一条低阻抗通道。振铃频率很高电容在这个频段下阻抗很小尖峰电流会优先从这条支路流过而不是继续在寄生电感上产生高压。电阻R的作用是消耗能量。LC振荡本质是能量在电感与电容之间交换如果不加电阻这部分能量会一直振荡下去串上R之后每次交换都会有一部分能量以热量形式耗散在R上振荡幅度就一次比一次小最终收敛。你可以把RC吸收支路理解成一个专门针对振铃频段的“有损负载”它既给高频分量提供泄放路径又把整个回路的品质因数Q值压下去。阻尼效果好不好核心就是看这个R值把Q值压到了什么程度。而RC低通滤波器是另外一回事。网上经常看到“先电容后电阻”“先电阻后电容”的讨论那是用在信号滤波上的——先串电阻再对地并联电容组成的是一阶低通有明确的截止频率fc 1/(2πRC)。RC吸收支路是R和C串联后并联在开关管两端它不是要去“滤掉某个频点的信号”而是要改变开关振铃回路的阻尼条件。把RC低通的截止频率公式直接套到RC吸收上算参数属于方向性错误算出来的值基本没参考价值。那么参数初选怎么定工程上有两个经验方向阻尼电阻R取和振铃回路特征阻抗同量级即R ≈ √(Ls / Coss)吸收电容C取寄生电容的3到10倍左右。具体怎么算下一节展开。2. 仿真前要做的准备模型选型与参数初选2.1 LTspice的模型选择这类仿真真的用不上厂商模型LTspice能不能用TI的芯片模型能。ADI官网自带大量LT/AD的模型TI的器件一般去官网下载.lib文件放到库目录后通过SPICE指令 .include 或 .lib 导入再封装成symbol就能用。网上也有很多LTspice导入第三方模型的教程流程本身不复杂。但做RC吸收阻尼仿真这件事我的经验是不需要厂商模型甚至连具体的MOSFET型号都不太需要。用LTspice自带的理想NMOS或电压控制开关再加上一个电容模拟器件的输出电容一个电感模拟环路寄生电感就能把振铃的机理和RC的阻尼效果还原得很清楚。模型越简单越容易看清现象背后的本质厂商模型带着一堆寄生效应的细节反而会让仿真变慢还可能出现不收敛的问题。如果你想顺便对比稳压二极管钳位、TVS吸收这些方案LTspice自带的稳压二极管模型也够用可以先不加等RC吸收的基线仿真跑通后再复制一份电路改成TVS方案对比功耗和效果这样效率更高。2.2 参数从哪来寄生参数估算和RC初值计算RC吸收仿真的关键输入是两个寄生参数开关节点的寄生电容和环路寄生电感。寄生电容一般从MOSFET数据手册里的Coss参数获取。实际电路中开关节点的电容还包括二极管结电容和PCB焊盘的寄生电容为了方便可以直接用一个Cpar代表比如150pF。寄生电感主要来自PCB走线和器件引脚工程上常用的估算是每毫米走线大约1nH一个开关环路的寄生电感通常在几十nH到几百nH之间。这值很难估准但数量级对了就行反正后面要靠参数扫描来拉范围。用我上面提到的公式做初选假设条件如下开关频率200kHz母线电压12V环路寄生电感Ls50nH开关节点寄生电容Cpar150pF感性负载L1100µH那么阻尼电阻初值R ≈ √(Ls / Cpar) √(50nH / 150pF) ≈ 18Ω吸收电容初值C ≈ 3 × Cpar 到 10 × Cpar也就是450pF到1.5nF可以先取1nF。这个组合可以作为第一轮仿真的起点。注意R和C的实际最优值还要结合损耗、EMI、开关速度一起权衡所以仿真里的参数扫描环节很重要后面专门讲。3. 实操一步一步搭出RC吸收阻尼仿真电路3.1 搭建测试电路一个低边开关驱动的感性负载回路打开LTspice新建原理图。我搭的测试电路如下12V直流电源经过一个50nH的寄生电感Ls后接一个由100µH电感和10Ω电阻串联组成的感性负载负载下端接NMOS漏极NMOS源极接地栅极用脉冲电压源驱动续流二极管阳极接开关节点、阴极接电源正极开关节点对地再并联一个150pF的电容Cpar用来模拟MOSFET输出电容和节点寄生电容。元件放置用快捷键F2打开Component库voltage、res、cap、ind、nmos、diode都在基本库里面。放置电源是新手最常见的问题其实很简单放置voltage元件后右键编辑DC value为12直流电压就设好了。栅极驱动也用voltage但要把函数设置为PULSE这样就能直接生成PWM波形。驱动源的具体设置如下PULSE(0 10 0 10n 10n 2.3u 5u)这个参数的意思是低电平0V、高电平10V延迟0s上升沿和下降沿都是10ns脉宽2.3µs周期5µs。算一下正好是200kHz、占空比46%的PWM信号。用脉冲电压源生成PWM是最直接的方式不需要额外导入任何模块先记住这个方法后续做任何开关电路仿真都用得上。原理图中要记得放置接地符号快捷键G不然仿真会报“floating nodes”的错误。放置完元件后在开关节点、漏极等关键节点上右键添加网络标签比如sw、vds这样后续看波形时可以直接输入节点名不用频繁找坐标。3.2 加入RC吸收支路位置比想象中更讲究测试电路跑通、确认能观察到振铃之后再在开关节点和地之间并联RC吸收支路一个电阻R1和一个电容C1串联。初始值取R118ΩC11nF。关于R和C的位置我倾向于让电阻直接连接开关节点、电容接地。原因是电阻对高频噪声有隔离作用如果你后续想在示波器上挂一个测试点从电阻和电容之间的节点取信号受到的开关噪声会小一点。实际电路板布局时也可以按这个原则摆放吸收支路的引线要尽量短否则支路自身引入的寄生电感会削弱吸收效果。初选R118Ω、C11nF之后先估算损耗免得仿真跑完发现电阻根本扛不住。电容充放电造成的损耗大约为P ≈ f × C × V² 200kHz × 1nF × 12² ≈ 0.029W这个损耗不到30mW普通0603电阻就能承受。但如果后面扫描时把C加到10nF损耗就会接近0.3W需要换大封装电阻或者用多个电阻并联。损耗问题后面还会细说这里先心里有数。3.3 瞬态仿真参数设置步长决定你能不能看见振铃在原理图里加SPICE指令先写瞬态分析.tran 0 60u 0 10n命令含义是仿真60µs从0开始最大步长10ns。为什么最大步长要设10ns因为前面算过振铃频率约58MHz要看清这个频率的波形采样步长至少要达到信号周期的十分之一量级。10ns步长对应的采样能力是100MHz足够分辨58MHz的振铃。如果步长设成1µs仿出来的波形会是平滑的一条线振铃直接被“抹掉”了你会误以为电路很干净。运行仿真后在原理图上点击sw节点LTspice会直接弹出该节点的电压波形。也可以按一下波形窗口工具栏上的对数/线性坐标切换方便看细节。想看振铃的峰值和衰减情况把波形窗口放大到开关管关断瞬间的几微秒范围就能看到叠加在电压台阶上的高频振荡。如果想直接获取一些统计量按住Ctrl再点击波形名称波形窗口底部会显示平均值、有效值、最小值、最大值等信息。这对快速对比参数很有用。到这里一个基本的RC吸收阻尼电路仿真就跑通了。4. 仿真结果怎么读别只看过冲降下来4.1 时域波形判断阻尼效果的标准不加RC吸收支路时我上面那个例子的漏极电压波形会有一个很明显的过冲峰值大概在40到55V之间简化模型下可能更高随后跟着一串频率约58MHz的高频振铃衰减很慢十几个周期后还在。这个波形就是典型的欠阻尼LC振荡。加上R118Ω、C11nF之后第一个过冲峰值通常会压到25V以内振铃的幅度明显下降大概两三个周期就衰减到峰值的20%以下。这就是阻尼起作用了。判断RC吸收“到位”的标准我的经验是第一个尖峰下降50%以上振铃在三到五个周期内基本消失同时开关速度没有明显变慢。如果波形还是抖个不停说明R值没有落在合适的阻尼区间。这里要特别强调RC吸收支路不是把振铃频率“移走”而是把振铃的幅度和持续时间压下去。你在波形上看到的振荡频率可能变化不大因为频率主要由Ls和Cpar决定RC的吸收作用主要是改变Q值。4.2 频谱视角用FFT看EMI改善效果LTspice可以直接对时域波形做FFT。操作路径是View → FFT选择要分析的信号V(sw)窗口函数默认的汉宁窗就可以。为了看到稳定状态建议取波形后半段的几个开关周期做FFT避免起始暂态影响频谱。加了RC吸收之后在几十兆赫兹这个振铃频段频谱包络通常能下降10到20dB。这个数据在实际EMI整改里很有参考价值如果你在传导发射测试中看到某个频点超限RC吸收就是针对这个频点的“定向打击手段”。仿真阶段就能提前知道打击效果大概有多少dB能少打不少板子。不过要提醒一句FFT的分辨率受仿真总时长和步长影响60µs的仿真窗和10ns步长下低频分辨率约16kHz高频上限100MHz完全够看几十MHz的振铃。如果想把频谱看更细可以加长仿真时间但代价是跑得慢。4.3 算一算吸收支路的损耗发热问题要提前想RC吸收支路的损耗由充放电电流经R产生。仿真里可以用两种方式看按住Alt点击电阻R1波形窗口会直接显示该电阻的瞬时功耗曲线或者用.meas指令求平均功耗.meas TRAN P_Rsnb AVG I(R1)*V(sw,mid)其中mid是R1和C1之间的节点。这个方法比看瞬时波形更直观直接出数值。用近似公式P ≈ f × C × V²估算和仿真结果通常对得上。如果损耗偏大比如超过0.5W就要考虑减小C值或者干脆改RCD吸收方案。RCD是电阻电容二极管组合损耗分配和RC不同但在这个话题里先不展开。5. 参数扫描用.step快速逼近最优RC组合5.1 .step和.meas组合出数据表RC吸收电路的参数选择靠人工一个个试太慢LTspice的.step指令可以一次扫多个值。扫描命令写在SPICE指令里.step param C list 470p 1n 2.2n 4.7n 10n扫描C值的同时再配合.meas自动提取每个C值下的最大过冲.meas TRAN vpk MAX V(sw)运行完成后按CtrlL打开SPICE Error Log里面会列出每个C值对应的vpk直接形成一张“C值-峰值电压”的对照表。这个玩法非常适合做选型记录比在波形窗口里一条条曲线用鼠标量效率高得多。我的习惯是先固定R18Ω扫C找到C对过冲和损耗的影响趋势后再固定一个折中的C值去扫R。扫描组合不要一次开太多比如C扫5个值、R扫5个值就是25次仿真虽然LTspice扛得住但波形窗会乱到没法看数据也难整理。5.2 扫描结果怎么选效果、损耗、开关速度的三角权衡根据我那个示例电路的仿真趋势可以整理成下面这张表C值R值漏极峰值电压振铃衰减情况吸收损耗估算不接RC-45V以上10个周期以上0470pF18Ω约35V4到5个周期约14mW1nF18Ω约24V2到3个周期约29mW2.2nF18Ω约18V1到2个周期约64mW4.7nF18Ω约15V基本收敛约140mW注意这些数值基于我上面假定的寄生参数换成你的电路会变但规律是稳定的C越大吸收效果越好但损耗也越大开关的上升/下降沿也会变缓。如果你做的是高频电源C一加大开关损耗和驱动损耗都会上涨很可能得不偿失如果是100kHz以内、对损耗不敏感的工控电路C取大一点问题不大。R的扫描同样重要。R太小比如5Ω阻尼不足振铃即使幅度下降也可能拖尾R太大比如56Ω吸收支路在高频下的阻抗变高尖峰电流泄放不顺畅过冲反而压不住。工程上R一般取几欧到几十欧这个区间结合仿真扫描去定位最优值。6. 常见问题与排查技巧实录6.1 加了RC吸收振铃反而更严重我遇到过这种情况而且新手上路十有八九会踩。排查方向有三个一是R太小阻尼不足变成欠阻尼振荡继续抖二是C取值比寄生电容还小RC支路在振铃频段呈容性相当于给谐振回路额外并联了一个小电容等于改了谐振条件而不是加阻尼三是RC摆放位置不对比如跨接的节点离真正的振铃源太远中间隔着走线电感吸收支路自己又和寄生电感形成新的谐振回路。排查思路很简单先把R调大试试比如从5Ω调到20Ω看振铃是否收敛再把C加大一个数量级看振铃幅度是否有实质变化。如果R和C都改了还是没有改善就回头检查电路寄生参数的设置以及RC支路在原理图上的连接点。6.2 仿真波形密密麻麻或者直接不收敛这是LTspice玩高频开关仿真的常见烦恼。波形像锯齿一样全是毛刺通常是最大步长设得太大了把真实的振荡频率给漏采样了。把.tran命令里的最大步长调小比如10ns甚至1ns波形会立刻顺滑很多。如果仿真直接报错不收敛优先检查几个地方给电感串一个很小的电阻比如10mΩ作为DCR给电容串一个很小的ESR比如1mΩ这样能增强仿真数值稳定性。还可以在SPICE指令里加.options plotwinsize0这个选项是关掉波形压缩保存仿真速度会慢一点但波形细节更真实排查振铃问题时非常有用。如果还不行把.abstol和.reltol适当放宽一般能解决大部分不收敛问题。这类问题在LTspice导入第三方模型时更常见用自带理想器件仿真则很少遇到。6.3 实际板子上RC电阻发烫怎么办仿真里损耗算清楚了板子上的电阻还发烫那就不是“算少了”而是改变了工况。最常见的三个原因开关频率比预设高C取太大C充放电损耗超标开关节点的稳态电压比预估高损耗和电压平方成正比电压翻倍损耗翻四倍实际寄生参数导致振铃频率和幅值都偏高吸收支路承担了额外功耗。解决思路按优先级排序先降C值比如从4.7nF降到1nF损耗能降七八成再考虑换封装从0603换到1210甚至2512最后如果功耗还是压不下去就要换RCD吸收方案重新仿真。电容本身也尽量选C0G或NP0材质X7R在高频下容量会打折而且有压电效应损耗也不好算。最后说一点个人体会。RC吸收电路做仿真分析最大的价值不是把参数一次性算到“精确”而是把趋势和数量级搞清楚C的主导作用是吸收能量R的主导作用是提供阻尼两者都要和寄生参数匹配。我自己的习惯是结构改版前先花半小时搭个LTspice仿真把R和C的大致范围定下来板子回来后微调一两次就能把振铃压到可接受水平。这套仿真文件也可以直接复用——把负载换成继电器线圈或者电机绕组把开关频率和寄生参数改成实际值就是一份新的吸收电路设计方案。如果你正被某个尖峰折磨不妨按这个流程跑一遍大概率能少调好几个晚上的板子。
返回列表