ARTICLE DETAIL

资讯详情

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

LTspice EMC仿真实战:从LISN建模到滤波器参数反推

LTspice EMC仿真实战:从LISN建模到滤波器参数反推 1. 为什么LTspice做EMC仿真总让人心里没底很多人第一次拿LTspice跑EMC仿真心里其实是虚的。原理图搭好了波形也出来了但看着那条频谱曲线总忍不住问自己一句这玩意儿到底准不准我测过不少项目也见过太多人在这上面翻车——有人拿LTspice跑出来的传导辐射结果跟实验室实测差了20dB有人仿真里干干净净、一上电就超标还有人干脆把LTspice当成画个图看看趋势的工具压根没指望它能指导EMC设计。这种不信任感不是没来由的。EMC仿真本身就是一个跨了器件、PCB、线缆、探头、接收机好几个域的活儿LTspice作为一个以电路仿真为核心的SPICE工具它擅长的是时域瞬态和频域小信号而EMC关心的传导辐射、共模差模、LISN阻抗特性、探头校准这些都需要你在仿真之前把测试环境先搬进电路里。这一步做不好后面跑出来的东西就是自娱自乐。但反过来说LTspice做EMC仿真又是真香。它免费、轻量、收敛性好跑一个开关电源的传导辐射扫描几分钟就能出结果改一个Y电容值、换一个共模电感立刻能看到频谱怎么动。这种迭代速度是实验室给不了的。关键在于你得知道它的边界在哪、哪些东西必须自己补上、哪些结果只能看趋势不能看绝对值。这篇文章就是把我这些年用LTspice做EMC仿真的经验捋一遍。从LISN怎么搭、干扰源怎么建模、探头和接收机怎么等效到频谱怎么扫、结果怎么读、哪些坑必须绕开全部按实操顺序讲清楚。不管你是刚接触EMC仿真还是已经跑过几轮但结果总对不上都能从里面找到能直接抄的东西。2. 把测试环境搬进LTspiceLISN与接收机的等效建模2.1 LISN不是随便放个电感就行传导辐射测试的第一步是LISN也就是线性阻抗稳定网络。它的作用有两个一是给被测设备提供一个稳定的50欧姆阻抗参考二是把电网侧的干扰滤掉让接收机只看到被测设备产生的干扰。很多人仿真的时候直接拿一个50欧姆电阻代替LISN结果频谱形状完全不对就是因为忽略了LISN的阻抗频率特性。标准CISPR 16-1-2里规定的V型LISN结构其实不复杂电网侧有一个50微亨的电感加一个1微法电容组成低通被测设备侧有一个0.1微法电容耦合到50欧姆的接收机端口还有一个1千欧姆电阻做直流泄放。在LTspice里搭这个网络关键是要把每个元件的寄生参数考虑进去尤其是电感。我一般这样搭电网侧用L150uH串联R10.1欧姆表示电感直流电阻C11uF串联R20.01欧姆表示电容ESR被测设备侧C20.1uF串联R30.05欧姆接收机端口用R450欧姆。这样搭出来的LISN在150kHz到30MHz范围内的阻抗曲线跟实测LISN的偏差能控制在2欧姆以内。注意LISN里的50uH电感在低频段阻抗很低仿真时如果直接用一个理想电感低频段的共模干扰会被短路掉导致结果偏乐观。一定要加上直流电阻和并联寄生电容。2.2 接收机等效峰值、准峰值和平均值LTspice本身没有EMI接收机模型但你可以用FFT加后处理来等效。接收机的检波方式有三种峰值、准峰值和平均值。峰值检波最简单就是取包络最大值准峰值要考虑充放电时间常数跟脉冲重复频率有关平均值就是取包络的平均。在LTspice里跑瞬态仿真然后用FFT看频谱默认出来的是峰值。如果你要看准峰值需要在FFT之后对每个频点做加权权系数跟脉冲重复频率有关。这个加权在LTspice里可以用behavioral source实现但比较麻烦。我的做法是先用峰值检波看最坏情况如果峰值都过了那准峰值和平均值肯定过如果峰值超了但不多再手动算准峰值。具体操作跑瞬态仿真时把仿真时间设长一点至少覆盖几十个开关周期这样FFT的频率分辨率才够。比如开关频率100kHz你想看到150kHz的分辨率仿真时间至少要跑1ms以上。FFT的窗函数选Blackman-Harris旁瓣衰减大适合看EMI频谱。2.3 探头和线缆的等效别忽略那几皮法的寄生电容传导辐射测试里探头和线缆的寄生参数对高频段影响很大。电流探头有转移阻抗电压探头有输入电容线缆有分布电感和电容。这些在LTspice里都要等效进去。电流探头我一般用一个变压器模型加一个50欧姆负载来等效转移阻抗按探头手册给的值设。电压探头用一个1兆欧姆电阻并联10皮法电容来等效。线缆的话如果长度超过四分之一波长就要用传输线模型LTspice里有tline元件可以直接用。这里有个坑很多人仿真时把探头直接接在LISN输出端忽略了探头本身的寄生电容。实际上探头接上去之后LISN输出端的阻抗会变尤其是高频段。我一般会在LISN输出和探头之间加一个1皮法的电容到地模拟探头的负载效应。3. 干扰源建模开关电源的EMI到底从哪来3.1 开关管不是理想开关dv/dt和di/dt才是关键EMC仿真的核心是干扰源。开关电源的EMI主要来自开关管的dv/dt和di/dt。dv/dt通过寄生电容产生共模干扰di/dt通过寄生电感产生差模干扰。在LTspice里如果你用理想开关模型dv/dt和di/dt是无穷大跑出来的频谱会偏高很多。我的做法是用LTspice里的SW元件加一个串联电阻和并联电容来模拟真实开关。串联电阻表示开关管的导通电阻并联电容表示输出电容。然后通过调整驱动信号的上升下降时间来控制dv/dt。比如一个650V的GaN开关管实际dv/dt大概在50V/ns到100V/ns你就在驱动信号里把上升时间设成6.5ns到13ns。di/dt的控制更麻烦一点因为它跟回路寄生电感有关。我一般会在开关管源极串联一个1nH到10nH的电感表示PCB走线的寄生电感然后通过调整这个电感值来匹配实测的di/dt。提示如果你不知道实际的dv/dt和di/dt可以先跑一个双脉冲测试仿真看看开关管在关断时的电压电流波形从中提取dv/dt和di/dt再代回EMI仿真里。3.2 寄生电容共模干扰的隐形推手共模干扰的路径是开关管漏极到散热器的寄生电容散热器到机壳的寄生电容机壳到地的寄生电容。这些电容一般在几十皮法到几百皮法之间。在LTspice里你要把这些电容都画出来否则共模干扰根本跑不出来。我一般这样处理开关管漏极到散热器加一个50皮法电容散热器到机壳加一个100皮法电容机壳到地加一个200皮法电容。这些值可以根据实际结构估算比如散热器和机壳之间的电容可以用平行板电容公式算CεS/dε是空气介电常数S是接触面积d是绝缘垫厚度。还有一个容易被忽略的变压器原副边之间的寄生电容。这个电容是共模干扰从原边传到副边的主要路径一般在10皮法到100皮法之间。在LTspice里你可以在变压器模型里加一个耦合电容来表示。3.3 差模干扰别只盯着共模很多人做EMC仿真只关注共模因为共模难搞。但实际上差模干扰在低频段往往是主要矛盾。差模干扰的路径是开关管电流回路里的寄生电感包括输入电容的ESL、PCB走线电感、开关管封装电感。在LTspice里差模干扰的建模相对简单把输入电容的ESL加上把PCB走线电感加上把开关管封装电感加上。这些电感值一般在几纳亨到几十纳亨之间。我一般会在输入电容上串联一个5nH电感在开关管源极串联一个3nH电感在PCB走线上串联一个2nH电感。差模干扰的频谱在开关频率的谐波处有峰值峰值大小跟di/dt和回路电感成正比。如果你仿真出来的差模干扰在低频段偏低先检查一下这些寄生电感是不是漏了。4. 从瞬态到频谱FFT设置与扫描策略4.1 瞬态仿真时间不是越长越好FFT的频率分辨率等于1/TT是仿真时间。你想看150kHz的分辨率T至少要6.67微秒。但实际上为了看到稳定的频谱仿真时间要覆盖至少几十个开关周期。比如开关频率100kHz周期10微秒你至少跑1毫秒也就是100个周期。但仿真时间也不是越长越好。时间太长LTspice的步长会累积误差而且FFT出来的频谱会变得很密反而不好看。我一般跑10到20个开关周期然后用FFT的zero padding来增加频率分辨率。LTspice的FFT设置里有一个Number of points选项你把它设成2的18次方或者2的20次方频率分辨率就够了。还有一个关键瞬态仿真的最大步长要设得足够小。我一般设成开关周期的1/1000比如100kHz开关频率最大步长设成10纳秒。这样dv/dt和di/dt的细节才能被捕捉到。4.2 FFT窗函数Blackman-Harris是首选LTspice的FFT窗函数有矩形窗、Hanning窗、Blackman窗、Blackman-Harris窗等。做EMC仿真我推荐用Blackman-Harris窗。原因是EMI频谱的动态范围很大从几十dBuV到上百dBuV都有矩形窗的旁瓣衰减只有13dB根本不够用。Blackman-Harris窗的旁瓣衰减有92dB能看清小信号。具体设置在LTspice的FFT对话框里Window type选Blackman-HarrisNumber of points选2的18次方Bin width会自动算出来。然后你看频谱的时候用dB刻度参考电平设成1uV这样出来的单位就是dBuV。4.3 扫描策略先粗后细先共模后差模EMC仿真最忌讳一上来就扫全频段。我的策略是先跑一个宽频段的粗扫看看哪些频段有峰值然后再针对这些频段做细扫。粗扫的时候LISN和探头的模型可以简化干扰源也可以用理想开关先看个大概。细扫的时候再把寄生参数、探头负载、接收机检波都加上。共模和差模要分开扫。共模干扰看的是LISN两个输出端对地的电压差模看的是两个输出端之间的电压。在LTspice里你可以用两个电压探针分别测共模和差模然后分别做FFT。注意共模和差模的分离要在LISN输出端做不要在LISN输入端做。因为LISN本身对共模和差模的阻抗不一样在输入端分离会引入误差。5. 结果解读仿真频谱和实测差多少算正常5.1 低频段差3到6dB是正常的仿真和实测的偏差主要来自几个方面寄生参数估算不准、器件模型不完整、探头和线缆的寄生效应、接收机的检波方式。在150kHz到1MHz的低频段差模干扰为主仿真和实测的偏差一般在3到6dB。如果你的偏差超过10dB那肯定是某个寄生参数漏了或者估错了。我一般会先跑一个已知的参考电路比如一个简单的Buck电路看看仿真和实测的偏差有多大。如果偏差在可接受范围内再跑实际电路。如果偏差太大先检查LISN模型和探头模型。5.2 高频段差10dB以上要警惕在1MHz到30MHz的高频段共模干扰为主仿真和实测的偏差会大一些一般在6到10dB。如果偏差超过15dB那就要仔细检查了。常见的原因有共模路径的寄生电容估错了、变压器的寄生电容没加、PCB的寄生电感没加、探头的寄生电容没加。还有一个容易被忽略的接收机的输入阻抗。实际接收机的输入阻抗不是理想的50欧姆在高频段会有几欧姆的偏差。这个偏差在仿真里可以用一个串联电阻来表示。5.3 仿真只能看趋势不能看绝对值这句话我说了很多遍但还是要再说一遍LTspice做EMC仿真最大的价值是看趋势不是看绝对值。你改一个Y电容看频谱怎么动你换一个共模电感看峰值怎么移你加一个RC吸收看高频段怎么降。这些趋势是准的绝对值只能参考。我一般会把仿真结果和实测结果放在一起对比看峰值的频率对不对、峰值的相对大小对不对、改一个参数之后的变化趋势对不对。如果这三样都对那仿真就是成功的。6. 那些年我踩过的LTspice EMC仿真坑6.1 收敛问题不是电路错了是步长太激进LTspice跑EMC仿真最容易遇到的就是收敛问题。波形跑着跑着就停了或者出现莫名其妙的振荡。很多人以为是电路搭错了其实大部分时候是步长设得太激进。我的经验是瞬态仿真的最大步长不要小于开关周期的1/1000最小步长不要小于1皮秒。如果还是收敛不了把积分方法从trap改成geargear的数值稳定性更好但精度稍差。还可以在.options里加cshunt1e-15给每个节点加一个1飞法的对地电容帮助收敛。还有一个技巧先跑一个短时间的仿真比如10个开关周期看看能不能收敛。如果能收敛再把时间拉长。如果短时间都收敛不了那就要检查电路了。6.2 模型问题厂商模型不一定适合EMC仿真很多人喜欢用厂商提供的SPICE模型比如MOSFET的模型、二极管的模型。这些模型做电源仿真没问题但做EMC仿真往往不够。原因是厂商模型通常不包含封装寄生参数也不包含高频段的寄生电容。我的做法是在厂商模型的基础上自己加封装电感和寄生电容。比如一个TO-247封装的MOSFET漏极和源极之间加一个5皮法电容源极串联一个3纳亨电感。这些值可以从封装尺寸估算也可以从实测的S参数里提取。6.3 文件管理LTspice保存时多出来的文件别乱删LTspice保存原理图的时候会生成.asc文件、.raw文件、.log文件、.net文件等。.raw是仿真波形数据.log是仿真日志.net是网表。这些文件在仿真过程中会不断更新如果你在仿真过程中删了.raw文件仿真会报错。还有一个坑LTspice的.asc文件里保存的是原理图的文本描述如果你用文本编辑器打开.asc文件可以看到里面的元件和连线。有时候原理图打不开就是因为.asc文件里的语法错了。这时候你可以用文本编辑器打开.asc文件找到错误的那一行手动改过来。提示LTspice的.asc文件里元件的语法是SYMBOL开头连线的语法是WIRE开头。如果你看到unknown schematic syntax的错误就是这两类语法有问题。6.4 快捷键改一改能省不少时间LTspice的默认快捷键不太好用我一般会改几个。比如把Run改成F5Stop改成F6FFT改成F7Copy改成CtrlCPaste改成CtrlV。改的方法是在菜单栏选Tools-Control Panel-Keyboard然后找到对应的命令按新的键。还有一个技巧在原理图上按右键可以快速放置元件、连线、探针。按空格键可以旋转元件。按CtrlR可以镜像元件。这些快捷键用熟了搭图速度能快一倍。7. 把仿真变成设计工具从结果反推EMI滤波器参数7.1 共模滤波器Y电容和共模电感的配合共模滤波器的核心是Y电容和共模电感。Y电容把共模干扰旁路到地共模电感增加共模路径的阻抗。在LTspice里你可以通过扫描Y电容和共模电感的值看频谱怎么变。我一般这样扫Y电容从100皮法扫到10纳法共模电感从1毫亨扫到10毫亨。每扫一个组合跑一次FFT记录150kHz到30MHz的最大峰值。然后画一个二维图横轴是Y电容纵轴是共模电感颜色是峰值。这样一眼就能看出哪个组合最优。实际设计的时候Y电容受漏电流限制不能太大。共模电感受体积和成本限制也不能太大。所以最优解往往在中间某个位置需要折中。7.2 差模滤波器X电容和差模电感的配合差模滤波器的核心是X电容和差模电感。X电容把差模干扰旁路掉差模电感增加差模路径的阻抗。扫描方法和共模类似但差模电感的感值一般比共模电感小在几十微亨到几百微亨之间。差模滤波器还有一个关键X电容的ESL。X电容的ESL在高频段会降低滤波效果所以在LTspice里一定要把ESL加上。我一般会在X电容上串联一个5纳亨到10纳亨的电感。7.3 从仿真到实测怎么把仿真结果翻译成滤波器参数仿真跑完之后你得到的是频谱曲线。怎么从频谱曲线反推滤波器参数我的做法是先看没有滤波器时的频谱找到超标频段。然后加上滤波器看超标频段降了多少。如果降了20dB那滤波器的插入损耗就是20dB。插入损耗跟滤波器参数的关系可以用公式算IL20log(1Z/Y)Z是滤波器阻抗Y是源和负载的导纳。在LTspice里你可以直接用AC扫描来算插入损耗比瞬态FFT更准。具体操作把干扰源换成AC源跑AC扫描看LISN输出端的电压。然后加上滤波器再跑一次AC扫描两次的比值就是插入损耗。这个方法比瞬态FFT快得多而且精度更高。8. 一些让仿真更靠谱的细节8.1 温度对EMI的影响别忽略很多人仿真的时候用室温模型但实际工作时开关管的结温可能到100度以上。温度会影响开关管的导通电阻和输出电容进而影响dv/dt和di/dt。在LTspice里你可以用.temp命令设置温度或者用behavioral source来模拟温度对参数的影响。我一般会跑两个温度25度和100度。如果两个温度的频谱差很多那就要在实测时注意温度的影响。8.2 元件容差蒙特卡洛分析帮你找最坏情况实际元件的容差会影响EMI频谱。比如Y电容的容差一般是±20%共模电感的容差一般是±10%。在LTspice里你可以用蒙特卡洛分析来跑多个组合看最坏情况下的频谱。具体操作在元件值后面加一个{gauss(1,0.2)}之类的表达式然后跑多次仿真。LTspice本身不支持蒙特卡洛但你可以用.step命令来扫多个值或者用外部脚本调用LTspice跑多次。8.3 仿真和实测的对比方法最后说一个实操技巧怎么把仿真频谱和实测频谱放在一起对比。我一般会把仿真数据导出成CSV然后用Excel或者Python画图。实测数据从接收机导出也是CSV。两个CSV放在一起横轴是频率纵轴是dBuV一眼就能看出偏差。如果偏差在可接受范围内那仿真就是成功的。如果偏差太大先检查LISN模型和探头模型再检查寄生参数。实在对不上就用仿真看趋势用实测定参数。提示LTspice的FFT数据可以用File-Export把波形导出成文本文件然后用Python的matplotlib画图。这样比在LTspice里看更方便也更容易和实测数据对比。我在实际项目里LTspice的EMC仿真大概能帮我省掉一半的实验室调试时间。剩下的那一半是仿真给不了的——比如PCB布局的细节、线缆的走向、机壳的缝隙。但至少仿真能让我在进实验室之前心里有个底。
返回列表