ARTICLE DETAIL

资讯详情

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

用LTSpice AC扫描分析差模与共模:从EMI滤波器到运放CMRR

用LTSpice AC扫描分析差模与共模:从EMI滤波器到运放CMRR 最近调试一块电源板的传导EMI输入侧滤波器用的是共模电感加X/Y电容的常规组合。中频段共模噪声始终压不下去电容加了一轮又一轮改到第三版才意识到问题不在电容容量而是共模电感和Y电容的谐振点刚好落在了测试频段里。后来我用LTSpice的AC扫描指令把整个滤波网络分别按差模和共模扫了一遍插入损耗曲线一出来问题一目了然。这篇文章我就围绕“用LTSpice的AC扫描指令分析差模和共模”这件事展开先讲清楚差模和共模的基本概念再带你搭出两种测试电路跑出插入损耗曲线最后附上延伸玩法用同样的方法分析运放的CMRR以及我在实战中踩过的几个比较典型的坑。做电源、做EMC、做模拟信号链的工程师都应该用得上。1. 先搞清楚差模和共模AC扫描才能不白做1.1 差模信号与共模信号的定义差模和共模这两个概念是理解一切滤波器和差分电路的基础。拿开关电源的输入端口举例L线和N线之间是220V的市电电压主要落在L-N之间这就是一个典型的差模信号定义为V_dm V_L - V_N与此同时功率管开关节点的dv/dt非常高高频噪声会通过寄生电容耦合到L线和N线上使得两条线同时对地出现同方向、同大小的电压波动这就是共模成分定义为V_cm (V_L V_N) / 2真实电路里L线和N线上的电压是差模和共模的叠加。EMI滤波器之所以要拆分成差模滤波和共模滤波两条路径就是因为这两种成分的抑制手段完全不同。X电容跨接在L-N之间专门对付差模Y电容接在L-E和N-E之间专门对付共模共模电感则比较特殊它对共模呈高阻抗对差模却几乎不起作用。这些特性如果不借助仿真只能在暗箱里猜测。而AC扫描正好能把滤波器的频域响应画得明明白白比反复改板子换电容试错高效太多。1.2 共模电感为什么能放过差模、掐死共模很多人问过我一个问题共模电感为什么可以让50Hz的交流电直接通过答案其实藏在磁通方向里。共模电感是在同一个磁芯上绕两个匝数相同的绕组。当差模电流流过时L线上的电流从绕组1的同名端流入N线上的电流从绕组2的非同名端流入两个绕组产生的磁通方向相反在磁芯里正好抵消。此时磁芯几乎不参与工作电感对差模电流只呈现漏感大约只有几微亨到几十微亨对50Hz来说这点感抗完全可以忽略所以交流电能顺畅通过。当共模电流流过时L线和N线上的电流方向相同都从同名端流入两个绕组产生的磁通同向叠加磁芯对共模电流呈现一个很大的电感量可能是几十毫亨级别。高频共模噪声面对这么大感抗基本就被挡在了滤波器之前。所以共模电感的本质是一个模式选择器差模几乎无损通过共模遇到高阻。理解这一点之后你再看滤波器拓扑就会明白共模电感两头串联的X电容和Y电容各自承担什么任务了。1.3 AC扫描不是玄学它是怎么工作的LTSpice里的AC扫描全称是交流小信号分析。它的做法是先计算电路在某个直流工作点下的状态然后把所有非线性器件在这个工作点处线性化变成电阻、电容、受控源组成的线性电路再在每个扫描频点上计算正弦稳态响应。你不需要管电路里有没有开关管、有没有振荡器AC扫描默认电路处于一个已经稳定的线性化状态。这意味着它可以非常快地扫出几十万到几百兆赫兹的频率范围内某个节点电压相对激励源的变化曲线。AC扫描指令的格式很固定例如.ac dec 20 1k 30meg其中dec表示十倍频程20是每个十倍频程内的采样点数1k是起始频率30meg是终止频率。这个配置在做电源EMI滤波器分析时非常常用。你也可以用oct八倍频程或者lin线性但大多数人习惯用dec。AC扫描里电压源的幅度设置是有讲究的它在AC分析中代表的是相对幅度参与增益和衰减的计算。比如后面我会用AC幅度为2V的源来模拟标准插入损耗测试就是为了读数方便。你不需要让AC分析去模拟真实的电压大小只需要保证源和负载的比例关系符合测试标准就可以了。2. 测试电路的搭建思路把差模和共模分离开2.1 差模测试与共模测试的标准拓扑想要在仿真里分别看差模和共模的响应首先要解决一个问题同一个共模电感怎么让它只对某一种模式起作用标准做法是参考插入损耗测试的标准拓扑把滤波器的输入和输出按照两种不同的方式连接测试模式信号源连接负载连接测量目标差模信号源接L-N之间负载接L-N之间差模插入损耗共模输入端L,N短接信号源接短接点与地之间输出端L,N短接负载接短接点与地之间共模插入损耗差模测试时共模电感两个绕组中流过方向相反的电流磁通抵消测出来的就是漏感和X电容共同作用的差模特性。共模测试时两个绕组流过同向电流磁通叠加测出来的就是共模电感和Y电容共同作用的共模特性。这套接法和我之前说的磁通方向分析完全对应。LTSpice里不需要真的去测量磁通只要把电路拓扑按照这两种方式搭出来AC扫描就能直接给出电压响应。2.2 从两个电感开始搭建共模电感模型LTSpice元件库里没有一个叫“共模电感”的现成器件但用两个电感和一个耦合系数指令就能建出来。原理很简单两个绕组绕在同一个磁芯上用K指令表示它们之间的磁耦合。在原理图里放置两个电感L1、L2然后添加SPICE指令L1 L_in out1 1m L2 N_in out2 1m K1 L1 L2 0.99第一条指令表示电感L1接在L_in和out1之间电感量1mH第二条表示L2接在N_in和out2之间电感量也是1mH第三条K1是关键它把L1和L2耦合在一起耦合系数0.99。这里重点提醒一下耦合系数。实际共模电感的漏感一般在0.5%到5%之间K值取0.99对应的差模漏感大约是L_leak ≈ L × (1 - K) 1mH × 0.01 10uH这个量级非常接近真实共模电感的差模漏感。如果你想模拟漏感更小的理想器件可以把K设为0.999如果想观察漏感偏大的情况可以设为0.98甚至更低。K值越小差模路径上看到电感量就越大。同时要注意同名端方向。在LTSpice原理图中电感符号上的圆点表示同名端。我习惯把L1的圆点放在L_in侧L2的圆点放在N_in侧这样才能保证共模电流同时从同名端流入、磁通相加。如果同名端放反了后面跑出来的差模和共模曲线会完全颠倒这是个非常隐蔽的坑。2.3 源、负载和测量点的工程化设置搭建差模测试电路时输入侧放一个电压源V1正极串联一个50Ω电阻后接L_in负极接N_in同时把N_in作为参考地。源AC幅度设为2V。输出侧用另一个50Ω电阻连接L_out和N_out作为负载。搭建共模测试电路时先把输入端的L_in和N_in短接成一个节点命名成IN_CM输出电压源V2正极串联50Ω电阻后接IN_CM负极接地AC幅度同样设为2V。输出端的out1和out2也短接成一个节点命名成OUT_CM用50Ω电阻接到地作为共模负载。这两个测试电路可以画在同一张原理图里使用不同的节点名称和各自的地互不干扰。跑一次AC扫描就能同时得到差模和共模两条插入损耗曲线。为什么源AC幅度要设成2V而不是1V这其实是个数学技巧。标准插入损耗测试是50Ω源阻抗、50Ω负载在没有滤波器串联的情况下源电压2V经过一对50Ω电阻分压负载上正好得到1V。那么在带滤波器的情况下只要直接看负载电压相对1V是多少dB就能得到插入损耗。也就是说差模插入损耗IL_dm 20 × log10( V(L_out, N_out) / 1V )共模插入损耗IL_cm 20 × log10( V(OUT_CM) / 1V )在波形窗里直接看V(L_out, N_out)或V(OUT_CM)的dB数值数值的绝对值就是插入损耗。省去了手动换算的麻烦。3. 实操环节跑AC扫描拿到插入损耗曲线3.1 AC扫描指令怎么填在原理图中添加AC扫描指令可以直接按快捷键T弹出SPICE Directive窗口输入.ac dec 20 1k 30meg如果对指令不熟悉也可以用菜单操作Edit → SPICE Analysis在AC Analysis选项卡里填写参数。Type选择DecadePoints/Decade设置为20Start Frequency填1kStop Frequency填30meg。这里填入的频率范围覆盖了电源EMI传导测试最关注的频段。如果只是想看开关电源开关频率附近的滤波效果可以把起点设为1k或10k都行想看更宽的频段终点可以放到100meg。设置好之后点击运行仿真图标。LTSpice会自动先做直流工作点计算然后按照扫描指令逐频点求解。整个过程通常只需要几秒钟几乎不需要等待。运行结束后在波形窗里添加测量节点即可。添加差模曲线就输入V(L_out, N_out)添加共模曲线就输入V(OUT_CM)。波形窗默认以线性幅度显示对于插入损耗分析右键点击Y轴刻度把显示方式切换成Bode也就是对幅度取dB、相位作为另一条可选曲线。X轴保持对数刻度这样看出来的曲线才是标准的滤波器波特图。3.2 差模插入损耗曲线怎么解读差模测试跑出来的典型曲线低频段基本是0dB也就是没有衰减。这是因为前面说过共模电感对差模只呈现漏感感抗极低X电容在低频段容抗又很大滤波器在这个频率范围内基本是“透明”的。随着频率升高漏感感抗变大X电容容抗变小二者形成LC低通滤波曲线开始以约-40dB/dec的斜率下降。如果X电容、漏感构成的谐振回路阻尼不足你会看到谐振峰。所谓谐振峰是指在某个频点附近插入损耗非但没有继续增大反而出现一个尖峰插损值明显变差。这个峰的位置取决于漏感量值和X电容容量频率点越高说明漏感或电容越小。实际EMI测试中如果在某个频点噪声超标这个谐振峰很可能就是罪魁祸首。看差模曲线时我一般会重点关注三个点高频段的滚降斜率是否符合预期、谐振峰出现在哪个频率、峰值深度能不能接受。如果谐振峰压在了测试频段内部就需要调整X电容容量或者改变共模电感的漏感设计。3.3 共模插入损耗曲线怎么解读共模测试的拓扑是把L和N短接后对地施加激励所以共模电感两个绕组在这个测试里是并联关系对共模信号呈现大电感。低频段同样基本是0dB到了共模截止频率之后开始以大约-40dB/dec滚降。滚降的转折频率由共模电感量和Y电容容量共同决定。共模曲线上最值得关注的是谐振峰。共模电感与Y电容构成的并联谐振如果阻尼不足会在某个频率处产生明显的阻抗峰插入损耗曲线在这个点会突然变差。这个峰如果落在150kHz到30MHz的传导测试频段那基本就是EMI测量仪上那个“莫名其妙”的超标尖峰。我通常会在跑出共模曲线后用光标功能直接读取谐振峰的频率。这个频率数据和实际EMI预扫描的超标频点对照起来能节省大量排查时间。如果谐振峰位置不理想可以考虑调整Y电容容量或者换用不同磁材的共模电感通过仿真先做一轮虚拟迭代再上板验证。3.4 用.meas自动提取关键指标看曲线当然直观但每次手动读取工作量太大。LTSpice提供了.meas指令可以在AC扫描结束后自动计算指标并把结果输出到SPICE Error Log里。例如我想知道差模在100kHz处的插入损耗可以写.meas AC il_dm_100k_lin FIND mag(V(L_out,N_out)) AT 100k .meas AC il_dm_100k_db PARAM 20*log10(il_dm_100k_lin)第一条指令找到100kHz处的负载电压线性值第二条指令把它换算成dB。之所以分成两步是因为.meas对db()函数的支持在不同版本里表现不一致直接对mag()取测量值再换算是最稳的写法。如果想找共模的-3dB截止频率可以写.meas AC f3db_cm WHEN mag(V(OUT_CM)) 0.707这里0.707就是-3dB对应的线性幅度。注意WHEN条件只在曲线上升或下降穿越该值时触发如果整个扫描范围内都没出现这个点日志里会提示Measurement failed。解决办法是把频率范围扩大或者改用RISE、FALL参数指定检测方向。还有一个比较实用的测量项共模曲线在整个扫描范围内的最差插入损耗也就是最小电压点。可以用MIN函数.meas AC il_cm_min_lin MIN mag(V(OUT_CM)) .meas AC il_cm_min_db PARAM 20*log10(il_cm_min_lin)运行仿真后打开View → SPICE Error Log就能看到这些测量结果。批量对比多个参数组合时这个功能非常省事。4. 扩展应用用AC扫描评估运放的CMRR4.1 差模增益和共模增益测试电路AC扫描做差模共模分析不局限在滤波器上。运放的共模抑制比CMRR也可以这么测。CMRR的定义是差模增益Ad与共模增益Ac之比写成dB形式是CMRR 20 × log10( Ad / Ac )在LTSpice里我通常搭两个独立的同相放大电路。第一个电路是标准的同相放大运放V端接AC信号源V-端通过电阻R1接地通过Rf接输出输出节点命名为DM_OUT。当源幅度为1V时DM_OUT的电压除以1V就是闭环差模增益等于1 Rf/R1。第二个电路把运放的两个输入端直接短接然后接同一个AC信号源输出节点命名为CM_OUT。两个输入端接同一信号相当于给运放输入一个纯共模电压。DM_OUT的电压与1V的比值就是闭环共模增益。两个电路共用一个AC信号源、各自独立接地放在同一张原理图里完全没问题。跑一次AC扫描就能得到两条增益曲线。需要注意的是千万不要把两个运放的输出节点都命名为OUT否则节点名冲突会让仿真结果完全乱掉。4.2 在波形窗里一键算出CMRR曲线跑完仿真后在波形窗里分别添加V(DM_OUT)和V(CM_OUT)曲线。由于两个电路的输入源幅度都是1V这两条曲线的dB值分别是差模增益和共模增益。要得到CMRR曲线不需要再手动做任何换算直接添加第三个tracedb(V(DM_OUT) / V(CM_OUT))db()函数在LTSpice波形算术里的定义就是20 × log10(幅度)对复数相量会自动取模。所以这条曲线就是CMRR随频率变化的曲线。这里有个容易犯的错误如果用理想运放模型来测共模增益因为理想运放的共模增益严格为零CM_OUT输出几乎为0CMRR曲线就会趋近于无穷大看起来毫无参考价值。所以做这个分析时务必用有限CMRR参数的宏模型比如UniversalOpamp2右键元件后把CMRR参数设成一个有限值比如80dB。这样低频段CMRR就会落在80dB附近而不是一个虚高的数值。更贴近实际情况的做法是直接使用厂商提供的真实运放模型比如ADI、TI官网上都能下载对应器件的SPICE模型。导入后跑出来的CMRR曲线会随频率下降高频段明显滚降这个趋势和datasheet里的CMRR曲线是一致的。4.3 从理想模型换成真实器件模型如果你不想折腾下载模型LTSpice自带的UniversalOpamp2已经足够用于教学和拓扑验证。但如果要拿仿真结果和实际芯片对比就必须用真实模型。方法很简单去厂商官网下载器件的SPICE模型文件一般是.lib或者.cir后缀比如OPA2376.lib。把这个文件放到工程目录下然后在原理图里添加SPICE指令.include OPA2376.lib接下来在放置元件窗口里选择Auto-Generated Symbol元件名填写模型文件里的子电路名。运行仿真时LTSpice会把.lib文件里的子电路实例化模型就能直接使用。这里有一个常见问题有些厂商提供的模型是加密的LTSpice可能会提示无法读取。我的建议是优先下载专门标注支持LTSpice的模型或者选择厂商官网提供的明文版本。另外模型文件的语法兼容性也需要留意PSpice模型直接改名后缀给LTSpice用有时会报错。多试几次以实际能跑通为准。5. 实战中踩过的坑和排查技巧5.1 AC扫描不出曲线的常见原因这是新手最常见的问题之一。我经常看到有人搭好了电路点了Run结果波形窗里空荡荡什么曲线都没有。遇到这种情况按优先级排查三件事。第一检查AC源是否设置了AC幅度。在LTSpice里电压源需要点击Advanced在Small Signal AC Analysis一栏填入AC幅度值。很多人只填了DC值就运行AC扫描这时候源在AC分析中等效为0所有输出都是噪声底。第二检查是否真的添加了.ac指令。有时候指令打错或者没有生效仿真默认识别不到AC分析请求会直接报错或者什么也不扫。打开SPICE Error Log看一眼确认里面有AC Sweep相关的记录。第三检查测量节点名称是否拼对。LTSpice对节点名大小写不敏感但拼错了会提示找不到节点。如果波形窗里输入V(OUT)提示circuit not found那就是节点名对不上。5.2 耦合电感同名端接反差模共模结果直接互换这个坑我踩过好几次而且每次都是花了好几分钟才反应过来。症状是差模测试时看到很大的电感量共模测试时反而只有很小的漏感和理论预期完全相反。原因就是两个绕组的同名端没有一致指向输入侧导致K耦合的正方向反了。LTSpice里K1 L1 L2 0.99只能表示两个电感存在正耦合但同名端的物理方向完全由原理图上电感符号的圆点位置决定。如果L1的圆点在输入侧、L2的圆点在输出侧那共模电流就是一个从同名端进、一个从非同名端进磁通互相抵消共模测试当然就看不到大电感了。快速验证方法跑一个最简单的电感量测试电路不接X/Y电容只测差模和共模路径的阻抗。如果差模路径在低频段就已经呈现明显高阻说明同名端方向肯定反了。把L2的两个引脚互换一下或者把L2的圆点移到输入侧重新仿真即可。5.3 波形运算和.meas的坑波形窗里的运算表达式虽然灵活但也要注意语法。AC扫描结果里的V(out)是复数相量直接写20log10(V(out))这类表达式经常会得到异常结果因为log10对复数不会自动取模。正确的做法是用db(V(out))函数它等价于20log10(mag(V(out)))会自动处理复数模值。.meas指令的坑同样不少。最典型的是db()在.meas里的兼容性不稳定所以我前面建议用mag()加PARAM两步法来换算dB。另外WHEN条件如果要求检测某个特定电压值但仿真曲线的频率范围内始终没有穿过这个值就会报Measurement failed。解决方法是扩大扫描频率范围或者明确指定RISE、FALL方向。还有一个我经常忘记的点PARAM表达式里引用另一个.meas的结果时变量名可以直接用但要注意变量名不能和节点名冲突否则LTSpice会优先按节点名解析结果变成对电压值取对数报错报得莫名其妙。5.4 第三方模型导入的快速处理不少读者问过LTSpice能不能用其他厂商的芯片模型。答案是肯定的像TI、ADI这些主流模拟器件厂商都有大量器件的SPICE模型可以直接在LTSpice里使用。导入流程再快速过一遍把.lib文件复制到工程目录下用.include指令引用然后放置Auto-Generated Symbol调用子电路。如果模型文件还附带.asy符号文件直接把这个符号文件复制到LTSpice的符号库目录重开软件后就能在元件库里找到。容易出问题的地方在于加密模型。有的厂商会提供加密的SPICE模型文件内容是乱码或者带特殊的加密标记LTSpice识别不了。我的建议是换个渠道下载明文模型或者联系厂商FAE要专门给LTSpice用的版本。另外.lib文件里可能包含多个子电路调用时一定要写对子电路名否则会提示subcircuit not found。5.5 共模电感选型时的三个提醒用这套方法分析过多个滤波器方案后我对共模电感选型有了几点比较深的体会。第一谐振峰位置一定要提前摸底。共模电感和Y电容的谐振频率如果落在EMI测试频段内部很可能导致某个频点噪声超标。选型阶段就用AC扫描把这个谐振峰位置看准比等到EMI实验室超标再返工高效得多。第二电感量不是越大越好。共模电感量增加意味着绕组匝数增加分布电容会变大结果往往是高频阻抗反而下降。而且匝数多了直流电阻和磁芯面积也受限通流能力会下降。这就是为什么有些工程师会感觉电感量大的共模电感通流能力反而变小。第三漏感不可控。共模电感的差模漏感虽然能在一定程度上起差模滤波作用但它取决于绕制工艺和磁芯结构离散性很大不能当作可靠的差模电感来用。真正的差模滤波还是要靠独立的差模电感加X电容来完成漏感只能算是一个附带收益。我个人在实际操作中的体会是AC扫描在LTSpice里虽然只是一个很基础的分析功能但把它用好尤其是结合差模共模分离的测试电路处理电源EMI和运放CMRR问题时非常高效。这就像手里多了一把“频域透视镜”很多玄学问题都能在出图之后变成明确的工程判断。我建议你把这套测试电路保存成一个模板命名成类似Differential_Common_Mode_Analyzer以后遇到新的滤波器拓扑或者新的运放芯片直接复制、替换参数、跑一遍几分钟就能出曲线。仿真值和实验室测量不会完全一致但趋势和问题频段往往看得很准足够让后续整改少走很多弯路。
返回列表