
设计EMI滤波器或者在LTSpice里评估电源输入侧的噪声特性时“差模”和“共模”这两个词基本上绕不开。LTSpice自带的AC扫描指令.ac是分析这两条路径最快、最直观的工具但在实际使用中很多人会卡在电路搭建上——差模共模到底怎么激励、节点怎么命名、曲线怎么提取。这篇东西就是把我自己用LTSpice做差模/共模AC分析的过程整理一遍从电路结构到仿真设置再到读曲线和排坑希望能帮到正在跟EMI滤波器较劲的朋友。1. 先弄清楚AC扫描和分析差模/共模是什么关系1.1 差模信号和共模信号在滤波器里走的是完全不同的路差模是两根线之间的信号比如开关电源输入端的电流纹波本质上就是差模噪声共模是两根线相对于参考地的同相信号比如开关节点的高dv/dt经过寄生电容耦合出来的噪声就是典型的共模干扰。滤波器里不同的元件对这两种模式的响应完全不同X电容跨接在两根线之间主要抑制差模Y电容分别接到地主要抑制共模共模电感的两个绕组中差模电流方向相反、磁通相互抵消所以共模电感对差模几乎不起作用真正起作用的是它的漏感而对共模电流来说两个绕组电流方向相同、磁通叠加呈现很高的感抗。这个区别非常关键。如果你想把滤波器做对就必须把差模和共模分开分析。混在一起看你会发现某个元件明明取值很大但对总噪声改善却不明显原因很可能是你改的这个元件只对其中一种模式有效而当前主导噪声的是另一种模式。这也是在LTSpice里必须分别搭建两种测试电路的根本原因。1.2 为什么AC扫描是看差模/共模的首选工具AC分析本质上是线性小信号频域分析。对滤波器这种线性网络来说AC扫描直接给出传输函数随频率变化的曲线速度非常快一次仿真就能看全频段。相比之下瞬态仿真要跑很长时间才能让滤波器进入稳定状态做完FFT才能得到频域信息不仅慢分辨率也受仿真时间和步长限制。不过要记住AC扫描是在静态工作点附近做小信号线性化不关心非线性特性。磁芯饱和、二极管导通压降这类非线性效应在AC分析里都会被线性化处理。所以被测网络里的元件尤其是电感电容要保证在工作点附近是线性的仿真结果才有参考价值。对电感来说只要磁芯没有饱和线性模型就是合理的。2. LTSpice里的AC扫描准备工作2.1 一个能用的AC信号源长什么样很多人搭完电路点Run之后发现波形是一条水平直线十有八九是电压源属性里的AC Amplitude没有设置。在LTSpice中放置一个电压源右键打开属性点“Advanced”按钮可以看到AC Amplitude和AC Phase两个参数。AC Amplitude要设成1AC Phase保持0。设成1的最大好处是后面读取传输增益时输出节点的电压值就直接等于增益不需要再做额外除法。如果你放置的是SINE电压源同样要到Advanced里面给AC幅度赋值。否则在AC分析中这个源就是一个零幅值的小信号源输出当然为零。还有个容易忽略的点AC扫描里的1V是小信号幅度不是直流工作点。直流DC值用于确定静态工作点AC值用于小信号扫描激励两者可以独立设置。比如Buck电路输入端是12VDC值就设12VAC幅度设1V这样静态工作点合理AC结果又是归一化的。2.2 一个带互感的共模电感模型怎么建共模电感在LTSpice里不需要专门的元件模型。用两个电感L1和L2再加一条K语句把它们耦合起来就行K1 L1 L2 0.995这里0.995是耦合系数范围0到1。很多人一开始会把K设成1但这样会导致漏感为零差模仿真里共模电感完全不发挥作用。真实的共模电感耦合系数一般在0.98到0.999之间越接近1漏感越小。为了建模更真实我通常取0.99到0.995。实际共模电感两个绕组之间还有匝间电容LTSpice里要精确建模可以在两绕组之间并联一个等效电容但一般做滤波器前期设计不用管主要看电感特性和电容的配合就够了。2.3 扫描范围和步进的合理选择LTSpice的AC扫描指令典型写法是.ac dec 100 1k 10megdec表示按十倍频程均匀取点100表示每个十倍频程100个点1k是起始频率10meg是结束频率。我做开关电源输入滤波器分析时关注频段一般是150kHz到30MHz这个传导噪声范围但扫描起始频率不会直接设150k而是从1kHz甚至10Hz开始。原因是滤波器的转折频率往往在10k到30kHz左右从更低频率开始扫才能看到完整的滚降过程判断滤波器的性格。每十倍频程点数设100曲线足够平滑读谐振点也准确。如果只粗略看趋势20个点也够用。LTSpice的AC扫描计算量很小即便每十倍频程100点、扫6个数量级也就几百个频点不存在性能问题。有一点要注意起始频率别设太低比如1mHz甚至0Hz因为电感在极低频下等效短路电容等效开路这些渐近线没参考价值还可能带来数值计算问题。3. 差模和共模测试电路具体怎么搭3.1 差模测试电路信号从两根线之间进去差模测试的目标是给被测网络的两根输入线之间加交流激励然后在两根输出线之间测量响应。以最典型的“共模电感差模电容”滤波器为例被测网络有In和In-两个输入节点Out和Out-两个输出节点共模电感两个绕组L1接In到OutL2接In-到Out-两者通过K1耦合。极性一定要一致同名端都在In侧或都在Out侧这决定了耦合的方向。差模电容Cx接在In和In-之间或者Out和Out-之间也可以两边各放一个。共模电容Cy1接In到GNDCy2接In-到GND。搭差模测试电路时把交流电压源V1接在In和In-之间正极接In负极接In-。输出端Out和Out-之间接负载电阻RL取值按实际应用来射频领域常用50欧姆电源测试场景可以按LISN的阻抗特性来做等效如果只是看滤波器趋势50欧姆基本够用。测量量就是V(Out)减去V(Out-)这个差值就是差模输出响应。这里最核心的一点在差模测试中共模电感两个绕组的电流方向相反磁通相互抵消共模电感表现为很小的漏感。这时候真正起作用的是X电容Cx和共模电感的漏感所构成的差模滤波网络。如果差模曲线在高频几乎没有滚降大概率是漏感太小没有形成有效的差模电感。很多共模电感规格书里会标“差模电感”或“漏感”参数就是这个含义。3.2 共模测试电路信号从对地回路进去共模测试的目标是在两根输入线与地之间加交流激励然后测量两根输出线与地之间的响应。电路搭建方式和差模完全不同。首先把In和In-短接成一个节点In_cm把Out和Out-短接成一个节点Out_cm。然后把交流电压源V2接在In_cm和GND之间正极接In_cm负极接GND。输出侧负载电阻RL接在Out_cm和GND之间。测量V(Out_cm)就是共模输出响应。为什么这样接就是共模测试因为把两根输入线短接后再施加激励相当于两个输入端同时加上了幅度相同、相位相同的电压这正是共模信号的定义。输出端同样短接保证我们只观察对地的共模分量。在共模测试中共模电感两个绕组的电流方向相同磁通叠加所以共模电感呈现很大的阻抗。同时两个Y电容是并联关系都接到地在共模路径里形成对地的低阻抗通道。共模滤波效果主要由“共模电感Y电容”这个组合决定。3.3 节点命名和输出表达式的技巧在LTSpice里节点名称直接影响工作效率。默认节点名是net1、net2这种表达式里头很容易搞混。我习惯用Place Net Label功能给关键节点命名把In命名为INPIn-命名为INNOut命名为OUTPOut-命名为OUTN地保持GND。这样在波形窗口输入表达式非常直观差模输入V(INP)-V(INN)差模输出V(OUTP)-V(OUTN)共模输入V(IN_cm)共模输出V(OUT_cm)。显示传输增益时因为输入是1VV(OUTP)-V(OUTN)的幅值本身就等于增益。如果想用dB显示把波形窗口的纵轴改成dB或者直接输入表达式20*log10(mag(V(OUTP)-V(OUTN)))注意AC分析的结果是复数要取模。很多人画出来的曲线毛刺多、形状怪异其实就是忘了取模直接对复数的实部或者虚部画图。mag()函数就是干这个用的不要省略。4. 结果判读从曲线上能读出什么4.1 插入损耗曲线怎么看拿到AC扫描曲线先把x轴设成对数频率AC分析默认就是对数y轴用dB更好读。如果输入是1V输出是0.1V那么增益是20*log10(0.1)-20dB。-20dB意味着信号衰减到原来的十分之一-40dB是百分之一。EMI滤波器设计通常希望在开关噪声频点上至少有20~40dB的衰减这是很粗略的经验值具体取决于噪声源强度和限值要求。滤波器的衰减特性一般有几个明显的区段低频段电容阻抗很大、电感阻抗很小信号几乎全通过增益接近0dB转折频率附近LC组合发生谐振可能出现谐振峰也可能平滑过渡高频段以固定斜率滚降单极点网络是-20dB/dec二阶LC网络是-40dB/dec阶数越高滚降越快。在差模测试曲线上通常能看到一个明显的二阶谐振峰这是Cx和差模电感形成的谐振。谐振峰的高度与阻尼有关阻尼小的滤波器会在某个频点出现很高的尖峰这在EMI设计里很危险因为那个频点噪声反而会被放大。我见过滤波器谐振峰在几MHz处凸起十几dB测试时恰好那个频点超标后来通过在电容上串阻尼电阻才压下去。所以看曲线不能只盯高频衰减还要注意谐振峰是否可控。4.2 差模和共模的典型曲线长什么样差模曲线的典型形态中低频段接近0dB到Cx和差模电感的转折频率后开始下降通常以-40dB/dec左右的斜率滚降。如果转折频率设在几十kHz那么150kHz处通常能拿到-20dB以上的衰减到MHz级别能到-40dB以上。这个衰减能力对开关电源的输入纹波抑制已经足够了。共模曲线和差模有明显区别。共模电感激值通常大得多mH级别很常见所以转折频率往往更低从几kHz甚至更低就开始下降。高频段的斜率取决于阶数共模路径通常是共模电感加Y电容形成的二阶滤波但Y电容容量一般很小几纳法到几百皮法所以转折频率不会太低除非共模电感很大。有些曲线上会看到反谐振点或者凹陷这种情况多半是共模电感的自身谐振或者是Y电容和漏感之间的相互作用导致的。4.3 用光标和.MEAS提取关键参数波形窗口里有个很实用的功能点Toggle Cursor或者按Ctrl加鼠标左键可以读取曲线上任意频点的精确数值。我习惯用它来找-3dB频点、谐振峰频率和峰值增益。另一个更高效的方式是用.MEAS指令在SPICE指令框里写.meas AC f3dB WHEN mag(V(OUTP)-V(OUTN))0.707仿真结束后打开View - SPICE Error Log就能看到自动提取的-3dB频率。这个方法适合批量处理参数扫描结果比如对比不同电容值对应的转折频率不用一条条曲线手动去读。配合.STEP指令做参数扫描也很方便。比如把电容Cx的值写成变量{Cx}然后用.step param Cx 100n 1u 100n一次仿真就能得到一簇曲线直观看到电容值从100nF到1uF变化时差模特性的变化趋势。同理可以对电感量、负载阻抗做扫描。这是LTSpice设计滤波器时最实用的方法强烈建议动手试一次。5. 实操中的坑我一个个踩给你看5.1 耦合系数直接设1差模曲线消失了共模电感用K语句耦合时如果设成K1 L1 L2 1耦合系数为1意味着漏感为零。此时在差模激励下共模电感完全不发挥作用差模滤波就只剩X电容曲线看起来就是一个单电容的滤波特性高频衰减只有-20dB/dec。如果你做差模分析时发现曲线衰减明显不够先检查K系数是不是设成了1。换成0.99或0.995差模路径里就会体现出漏感的作用曲线会呈现LC二阶滤波的特性。当然如果设计上刻意忽略漏感那另说但实际器件一定存在漏感。5.2 信号源没设AC幅度扫出来是条直线这个错误很基础但出现频率极高。放到电路里的电压源如果不进Advanced设置AC AmplitudeAC仿真就是零激励输出全是0画出来是一条水平直线或者-几百dB。AC扫描看的是小信号AC参数不是直流参数。每次新建电压源之后第一件事就是打开Advanced确认AC Amplitude已经填了1。养成这个习惯能省掉大量排查时间。5.3 共模测试把参考地接错结果全乱共模测试必须有一个明确的参考地。有人把输入短接点接到信号源负极但信号源负极又没有和地连起来整个回路变成浮地。仿真器照样能算但结果会出现一堆莫名其妙的极点曲线一会儿凸起一会儿凹陷物理上完全解释不通。正确做法是信号源负极、输出负载接地端、Y电容接地端统一连到同一个GND节点。只有参考地明确了共模路径才算闭合。5.4 扫描频率范围太窄滤波特征看不全默认从1kHz扫到1MHz是很多人的习惯结果发现转折频率刚好在10kHz高频衰减没看全或者某个谐振峰被截断了一半。建议第一次仿真先扫宽范围比如10Hz到100MHz把滤波器的主要特征全部看清再缩小范围细看重点频段。另外如果电路里有大电感不要从0Hz开始扫0Hz对应直流电感阻抗为零会引入数值计算的奇异点LTSpice可能会报错或者给出离谱的结果。5.5 忘了取模直接在复平面上看增益AC扫描的结果是复数包含幅值和相位。直接对V(OUTP)-V(OUTN)画图看到的是实部和虚部混合后的东西曲线形状会让人摸不着头脑。正确做法是在表达式外边套上mag()函数再画图或者用20*log10(mag(表达式))直接显示dB值。相位曲线如果有需要可以单开一个Pane看phase()但幅频特性一定基于mag()。5.6 参数扫描时变量命名冲突用.STEP配合参数扫描时如果电路里还有别的变量用了相同名字仿真会报错或者参数互相覆盖。比如既想扫描Cx又想扫描Cy不能都用{C}这个名字。用{Cx}和{Cy}区分开表达式里也要一一对应。养成变量名带语义的习惯在复杂电路里能省很多麻烦。最后再分享一点个人体会。我做电源EMI整改的时候第一步永远是先在LTSpice里把输入侧的差模和共模路径扫一遍看明白当前滤波器实际能压住哪些频段、哪些频段还有凸起然后再去动元件。这套AC扫描方法看起来基础但它能让你在动烙铁之前就对滤波器的性格了解个七七八八。测试电路接对了、K系数设置对了、取模用对了读出来的曲线基本就能指导你下一步该加大电感还是加电容。如果你也在用LTSpice琢磨滤波器希望这篇能帮你把这条路走顺一点。