
1. 为什么非要用AC扫描看差模和共模先聊一个绝大多数人刚接触LTSpice时都会踩的坑拿到一个带共模电感的滤波电路或者一个差分放大前端第一反应是丢一个正弦波进去跑Transient时域仿真然后盯着波形看衰减了多少。这个做法本身没错但当你想搞清楚“这个电路对差模信号和共模信号到底分别做了什么”的时候时域仿真会把你折磨到怀疑人生——你得不断改输入频率、调仿真时长、看稳态波形好不容易测出一个点的增益换个频率又得重来一遍。AC扫描AC Analysis解决的就是这个痛点。它本质上是一个频域小信号分析电路先在某个工作点通常是直流工作点稳定下来然后LTSpice在这个工作点上叠加一个幅度恒为1、频率从起始值扫到终止值的正弦小信号最后输出每个频率点上的复增益幅值和相位。换句话说AC扫描一次跑完你就能拿到整个频率范围内的增益曲线根本不用像时域仿真那样一个频率点一个频率点地试。但这里有一个关键认知AC扫描是基于线性化模型的。它把二极管、三极管、运放等非线性器件在直流工作点附近做泰勒展开只保留一阶项所以AC扫描看到的“增益”本质上是该工作点处的线性化增益。对于差模和共模分析来说这反而是好事——差模增益和共模增益本身就是小信号概念AC扫描的线性化假设和这两个定义天然契合。那么问题来了差模和共模在LTSpice里怎么“造”出来这就涉及信号源设置的一个核心技巧。1.1 差模和共模的本质是“激励的组合”很多教材喜欢画那种带中间抽头的变压器符号来表达差模和共模但在仿真软件里我们不需要那么复杂的模型。差模信号的本质是两条线比如差分对的正端和负端上存在一个大小相等、方向相反的电压变化共模信号的本质是两条线上存在一个大小相等、方向相同的电压变化。用数学表达就是差模电压 Vdm Vp - Vn共模电压 Vcm (Vp Vn) / 2所以要在LTSpice里分别测量差模增益和共模增益最直接的方法就是构造两种不同的激励方式激励方式Vp正端Vn负端差模分量共模分量纯差模激励V/2-V/2V0纯共模激励V/2V/20V具体到AC扫描里因为LTSpice的AC信号源幅度代表的是“小信号复振幅”我们对两个交流电压源这样设置差模激励V1设置AC幅度为0.5相位0°V2设置AC幅度为0.5相位180°共模激励V1设置AC幅度为0.5相位0°V2设置AC幅度为0.5相位0°注意这里用的是相位Phase字段而不是负号。你当然可以直接在幅度上设成0.5和-0.5但用相位180°更符合交流信号分析的表达习惯而且在后续做相频特性观察时不容易搞混。2. 搭建双电源激励测试电路一次跑出两组曲线先别急着仿真我们得把测试电路搭对。这里说的不是被测电路本身而是“激励源 测量点”的组合方式这部分决定了你后续能不能准确提取出差模和共模响应。2.1 最基本的差分电路搭建步骤我以最经典的差分放大器为例说明你可以照搬到任何需要差模/共模分析的电路上。这个例子用的是理想运放避免引入具体型号的寄生参数干扰我们理解AC扫描本身的用法。在LTSpice原理图编辑器里从[Opamps]元件库拖入一个UniversalOpamp2这是LTSpice自带的理想运放模型适合做AC行为验证。搭建标准的差分放大结构R1接在Vp输入端到运放反相输入端R2接在运放反相输入端到输出端R3接在Vn输入端到运放同相输入端R4接在运放同相输入端到地。给Vp和Vn各放一个电压源这里建议用[voltage]元件库里的voltage双击设置直流值DC Value为0因为AC扫描会在0V直流工作点上叠加小信号。两个电压源必须共地否则SPICE求解器会报悬浮节点错误。然后就是关键的AC激励设置Vp正端输入源DC Value填0AC Amplitude填0.5AC Phase填0Vn负端输入源DC Value填0AC Amplitude填0.5AC Phase填180差模或0共模设置界面里Small signal AC analysis那一栏就是你填入AC幅度和相位的地方。注意DC offset那一栏反而不用动AC扫描不会用到。2.2 为什么AC幅值都设成0.5而不是1这是新人最容易犯迷糊的地方。如果你把两个源都设成AC幅度1、相位0那实际上Vp和Vn的差为0纯共模没问题但如果你想要差模激励设Vp1、Vn-1虽然差模分量确实是2V但这时你测出来的增益是“单端输入差模增益”的两倍关系后续换算容易算错。把每个源都设成0.5的目的是让差模分量恰好为1V、共模分量恰好为0V差模激励时或者共模分量为1V、差模分量为0V共模激励时。这样V(out)的AC扫描曲线直接读出来的就是增益值不需要再额外除以2或者乘以2。这个约定在工程上非常常见属于“仿真前统一量纲”的标准化操作。另外补充一个细节当被测电路本身带了直流偏置比如运放供电正负15V输入共模电压不是0你需要在电压源的DC Value里填入实际的直流工作电压AC扫描会在该直流工作点做线性化。差模/共模的AC小信号分析不受直流偏置数值影响但你的电路能不能正常放大、输出有没有饱和会直接影响AC扫描结果的有效性——输出饱和了线性化工作点就是错的扫描结果自然就废了。3. AC扫描参数设置与第一次仿真电路搭好后点击菜单栏的Simulate→Edit Simulation Cmd在弹出的对话框里选择AC Analysis标签页。3.1 Type of Sweep该怎么选LTSpice提供三种扫描方式Linear、Octave、Decade。对于差模/共模增益曲线分析绝大多数情况下选Decade十倍频程扫描理由有三增益曲线在频率轴上通常跨越几个数量级对数频率坐标才看得清低频段和高频段的差异。Decade扫描的点数分配更合理低频段和高频段都有足够的采样密度。后续如果用波特图观察相位裕度对数坐标是行业标准。具体参数Type of SweepDecadeNumber of points per decade100Start Frequency10HzStop Frequency10MHz100点/decade是精度和时间成本的一个折中。如果被测电路有高Q值的谐振峰比如共模电感的自谐振频率附近建议提升到200~500点/decade否则峰值的幅值和频率会偏。如果只是看大概趋势50点/decade也够用。3.2 跑仿真后怎么看结果直接点击运行LTSpice会自动打开波形图窗口。默认情况下它显示的是所有节点电压的幅值你可能会看到一堆曲线这很正常。在波形图上右键 →Add Trace或者直接在原理图上点击你要观察的节点连线就能单独拉出V(out)的曲线。先看差模激励的仿真结果再改Vn的相位改成0重新跑一次共模激励把两次的结果叠加在同一个波形窗口里对比。叠加方式很简单跑完差模后别关波形窗口直接在原理图上改Vn的AC Phase再次运行新曲线会自动叠加到同一个坐标系里。这时候你就能看到非常直观的两个结果差模增益曲线在通带内保持平坦增益接近你所设计的闭环增益比如10或20dB共模增益曲线通常远低于差模增益特别是在低频段把两条曲线做差在波形图上右键V(out)曲线选择Subtraction再用鼠标点另一条曲线得到的就是共模抑制比CMRR的曲线。这个操作非常实用建议养成习惯。4. 实测案例一阶RC差分滤波器的差模/共模响应纯理论的东西讲再多不如跑一个真实案例。我们来看一个非常常见的应用场景差分信号线上的一阶RC滤波器。4.1 用对称RC网络构造差模和共模通路一个典型的差分RC滤波器长这样信号正端通过R1接到负载正端信号负端通过R2接到负载负端负载正负端之间跨接一个电容C1同时负载正端对地有C2、负端对地对有C3。C2和C3通常是相等的目的是滤除共模噪声。在LTSpice里搭建时V1和V2按前面说的方式设置AC激励R1 R2 1kΩC1 100nF差模电容接在正负线之间C2 C3 10nF共模电容分别接到地来看这个电路的物理含义对差模信号来说C2和C3是中点接地的两个串联电容等效电容是C2串C3 5nF和C1并联总差模电容约105nF对共模信号来说C1两端电压相等相当于没有电流流过只有C2和C3分别对地起作用每边10nF。这就意味着同样一个RC结构差模和共模的截止频率天然就不一样。这种差异在普通时域仿真里很难一眼看出来但AC扫描一次就能看得明明白白。4.2 实测波形图能读到什么信息按照前面的设置跑AC扫描差模激励下你会在约1/(2π×1kΩ×105nF) ≈ 1.5kHz附近看到增益开始下降共模激励下下降点大约在1/(2π×1kΩ×10nF) ≈ 15.9kHz附近。两个截止频率差了大概10倍也就是20dB/decade的斜率差异拉开了高低频段的共模抑制能力。这里有一个非常值得注意的细节在低频段远低于两个截止频率差模增益接近0dB共模增益也接近0dB两者几乎相等所以CMRR约为0dB。也就是说这个滤波器在低频段对共模噪声几乎没有抑制能力。这一点很多初学者会忽略他们以为加了共模电容就有抑制效果但实际上共模电容对低频共模不起作用因为它的阻抗在低频时很大根本没有让噪声泄放到地的通路。真正对共模起作用的是电容在较高频率下的低阻抗路径。所以设计差分滤波器时如果你想提高某一频段的共模抑制能力加共模电容才有意义。AC扫描能帮你非常直观地确认这一设计逻辑是否正确。4.3 从曲线反推滤波器参数的技巧拿到AC扫描曲线后除了直接看截止频率还有个更实用的技巧用光标工具测量-3dB点的精确频率。在波形窗口点击Plot Settings→Cursor→1st 2nd然后把光标移动到曲线上LTSpice会显示当前点的频率和幅值。用这个方式你可以反向验证你的电容、电阻取值是否达到了预期截止频率。如果发现实测截止频率和理论值偏差较大优先检查电容是否有ESR寄生参数理想电容模型没有ESR但实际必须考虑电阻是否设置了容差模型LTSpice默认理想值源阻抗是否被算进了RC网络里如果你的信号源有内阻必须显式建模5. 复杂场景共模电感 差模电容的组合分析上面只是开胃菜真正的重头戏是分析共模电感Common Mode Choke的差模/共模响应。这才是大多数人来搜“LTSpice AC扫描 差模 共模”的真实目的。5.1 共模电感的SPICE建模方式共模电感在原理上可以理解为一对绕在同一磁芯上的耦合电感。对差模电流来说两个绕组的磁场相互抵消等效电感很小对共模电流来说磁场相互叠加等效电感很大。所以共模电感对差模呈低阻抗对共模呈高阻抗这就是它能抑制共模噪声而几乎不影响差模信号的根本原因。在LTSpice里建模共模电感最标准的方法是用耦合电感对L1 N001 N002 1m L2 N003 N004 1m K1 L1 L2 0.99这里K1是耦合系数0.99表示两个绕组几乎完全耦合。这个模型的关键在于耦合系数越接近1差模等效电感越小共模等效电感越大。如果你用的磁芯是环形磁芯漏感很小K可以取0.99~0.999如果是贴片共模电感漏感相对大一些K取0.95~0.99更合适。耦合系数 K差模等效电感约共模等效电感约0.900.1m1.9m0.990.01m1.99m0.9990.001m1.999m差模等效电感近似为 L×(1-K)共模等效电感近似为 L×(1K)。这个公式不需要背理解就行差模时两绕组磁通抵消耦合系数越大抵消越彻底剩余电感越小共模时两绕组磁通叠加耦合系数越大叠加越多电感越大。5.2 在LTSpice里搭建共模电感测试电路完整测试电路包括V1和V2按标准方式设置AC激励差模/共模共模电感接在信号路径上L1串入正端L2串入负端电感后面接对地电容C1和C2模拟后级电路的对地寄生电容再往后接一个负载电阻Rload比如100Ω模拟接收端差模阻抗特别提醒LTSpice的电感默认有1mΩ的串联电阻这是SPICE的默认参数在低频AC扫描时这个电阻会影响结果。如果你要精确仿真低频率下的插入损耗建议显式给电感串联一个小电阻比如10mΩ同时把电感的串联电阻设为0避免隐藏的默认值和你的预期冲突。具体操作是选中电感元件按CtrlL打开属性编辑把Rser设为0再在外部串联一个你想要的电阻。这样做的逻辑是让所有寄生参数显式可见避免“隐性参数”导致结果莫名其妙。5.3 差模激励下的结果解读差模激励时两个绕组的磁通相互抵消等效电感极小。所以你会看到差模信号在很宽的频率范围内几乎不受衰减插入损耗接近0dB。只有在频率高到一定程度漏感和后级电容形成谐振之后差模增益才开始出现波动。这个波动值得关注因为漏感和后级电容在某个频率点会产生并联谐振谐振点附近会出现一个增益峰值也就是阻抗峰值这会给差模信号带来额外的谐振峰。如果这个峰恰好落在你的信号带宽内就会造成信号失真。AC扫描能帮你提前发现这个风险。差模谐振频率大约为f_res 1 / (2π × sqrt(L_leak × C_load))其中L_leak是漏感C_load是负载端的总对地电容。前面提到K0.99、L1mH时漏感为0.01mH如果C_load10nF谐振频率约为15.9kHz。这个频率并不高如果后级是高频信号传输很容易掉进谐振区。所以设计时需要对漏感和负载电容做联合考量。5.4 共模激励下的结果解读共模激励时情况完全反转。两个绕组的磁通叠加等效电感约等于2mH对于1mH×2、K0.99的情况这个电感对共模噪声呈现高阻抗。配合对地电容形成一个LC低通滤波器共模噪声在高频段会被大幅衰减。你会在共模增益曲线上看到低频段远低于LC谐振频率共模增益接近0dB几乎没有抑制过谐振点后以-40dB/decade的斜率下降二阶LC滤波特性在谐振点附近会出现一个增益峰峰值高度取决于阻尼也就是寄生电阻这个谐振峰值在工程上很关键。如果谐振点落在噪声频段共模电感不但不能抑制噪声反而会把噪声放大。加阻尼的办法通常是在电感上并联一个电阻损耗电阻或者在输出端并联RC吸收网络。你可以直接在LTSpice里加上并阻再用AC扫描对比有无阻尼的曲线差异非常直观。6. 测量CMRR的三种方法对比既然已经能分别测出差模增益和共模增益那么共模抑制比CMRR的计算就水到渠成了。CMRR定义为差模增益与共模增益之比通常用dB表示CMRR_dB 20 × log10(Adm / Acm) Adm_dB - Acm_dB在LTSpice里有三种方式获取CMRR曲线我逐一对比一下各自的适用场景。6.1 方法一分别仿真两遍再相减这是最基础的方法适合所有版本的LTSpice也最容易理解。先按差模激励跑一遍记录V(out)的AC曲线再把V2的相位改成0重新跑一遍共模激励记录第二条曲线。然后在波形窗口里选中其中一条曲线用Plot Settings里的运算功能做减法得到CMRR曲线。优点逻辑清晰不会出错适合新手验证理解。缺点需要手动改激励源设置、跑两次仿真稍微麻烦一点。6.2 方法二利用AC幅度设置为2V和0V直接测稍微进阶一点把差模激励设置成Vp1V、Vn-1V共模激励设置成Vp1V、Vn1V。这时不需要修改相位只需要改Vn的AC幅度符号。然后仿真两次同样取V(out)曲线做差。这种方法的好处在于可以直接用V(out)的数值读取闭环增益而不用每次都在脑子里换算0.5V的系数。坏处是容易和教材里单端激励的定义混淆——有的教材用单端输入一端接地来测增益这时差模增益实际上是单端增益的2倍需要额外除以2很容易算错。所以我还是推荐0.5V/180°相位这种“标准化差模激励”它让差模分量恒为1V不用做任何换算。6.3 方法三使用AC扫描中的多激励一次性跑完前面两种方法都要跑两次仿真其实LTSpice还有一个骚操作利用交流分析的叠加原理一次仿真直接得到差模和共模两条曲线。具体做法是复制两个被测电路分别接上不同的激励然后在仿真命令里对两路输出分别标记不同的电压节点名称例如V(diff_out)和V(common_out)。不过说实话这个方法对新手不友好电路图会变得很乱而且不能直接用元件库里的耦合电感因为你复制了电路耦合电感的K语句会冲突。我的建议是新手老老实实跑两遍熟悉了之后再考虑一次多激励的方案。仿真本质上是个工具“能跑对”永远比“跑得炫”重要。7. 从原理图到结果五个最常见的坑和避坑方法搞了这么多年LTSpice做了不知道多少组差模/共模AC扫描总结一下最容易翻车的几个点每一个我都踩过。7.1 悬浮节点电感没有直流通路AC扫描是要先求解直流工作点的。如果电感串在信号路径上而电感另一端没有到地的直流回路SPICE就会报错或给出一个异常结果。典型场景共模电感直接串联在信号源和负载之间信号源浮地负载对地也没有直流通路。解决办法在信号源中点共模电感的中心抽头处加一个高阻值电阻到地比如1MΩ。这个电阻在直流分析时提供偏置通路在AC分析时因为阻值远大于电路阻抗几乎不影响扫描结果。这个1MΩ电阻在共模电感实际电路中通常也存在例如通过Y电容到地所以加它并不违背物理模型。7.2 电压源的AC幅度和相位被DC Value覆盖这是新手最常犯的错。在电压源属性编辑框里如果你只填了DC Value没有填AC Amplitude那么AC扫描时该源的小信号幅度为0等效于该输入被短路到交流地。结果就是你的AC扫描曲线完全是0或者只有噪声。记住AC扫描用到的参数是Small signal AC analysis下面那两栏DC Value只决定直流工作点。7.3 耦合电感的同名端接错共模电感等效模型中两个绕组的同名端必须正确处理。LTSpice中用K语句耦合两个电感时电感元件的点标记dot位置决定了耦合的极性。如果同名端接反差模激励时两个绕组的磁通就不是抵消而是叠加结果会完全反过来——差模变成了高阻抗共模变成了低阻抗。检查方法在搭建完共模电感仿真模型后先跑一次差模激励看看低频段增益是否为0dB附近。如果不是大概率是同名端反了。差模低频直通是共模电感的基本特性这条不符合说明模型有问题。7.4 仿真点数不足导致谐振峰被吞掉前面提到过共模电感配合对地电容会有谐振峰。如果每decade只有20个点谐振峰的幅值和频率位置都可能严重失真。我曾经遇到过把-3dB点测错了倍频程的情况后来增加点数才发现原本以为的“平直带宽”其实早就有谐振峰了。经验值凡是被测电路里有电感和电容组合也就是有谐振可能的AC扫描每decade至少100点起步。如果关注的是高Q值谐振峰直接上500点。7.5 忘记设定扫描起始频率AC扫描的起始频率如果设得太高比如默认的1kHz你会完全看不到低频段的共模直通特性误以为电路对共模有全校准抑制能力。电感和电容的频率响应都是从低频开始变化的建议起始频率从10Hz甚至1Hz起步这样你能看到“从直通到抑制”的完整过渡。8. 进阶把AC扫描结果和实际时域仿真对照验证AC扫描说到底是个小信号线性化工具它假设电路在工作点附近是线性的。如果电路里存在大信号非线性效应——比如运放输出摆到电源轨、或者二极管处于开关状态——AC扫描的结果就和真实时域行为不一定吻合。所以做完AC扫描分析后我强烈建议挑两个特征频率点做时域验证选差模通带内的一个频率点比如截止频率的1/10跑Transient确认输出波形幅度与AC扫描增益吻合选共模抑制较强的频率点比如截止频率的20倍以上跑Transient用共模激励观察输出幅度确实很小具体操作把AC扫描的激励方式保留0.5V/180°相位但把仿真命令切换成Transient输入一个频率等于你能测量的正弦信号。注意Transient仿真需要给电压源设置SINE参数格式是SINE(0 amplitude freq)其中amplitude填0.5freq填你要验证的频率。我遇到过一种情况AC扫描显示差模增益平坦共模抑制良好但在时域仿真中输出波形明显失真。排查后发现是运放的压摆率限制——高频大信号下输出跟不上。AC扫描在小信号假设下看不到这个因为它把信号大小当成了无穷小。所以AC扫描结果“好”不等于电路在实际工作条件下一定“好”只能作为一个必要的设计验证手段。9. 关于LTSpice的模型导入和第三方元件聊到LTSpice有个绕不开的话题就是第三方模型导入很多人在仿真真实芯片时卡在这一步。LTSpice自带的元件库里包含大量Linear Technology现在是ADI的芯片模型但如果你想用TI、ADI其他系列的运放、或者某个具体型号的共模电感就需要从厂商官网下载SPICE模型导入。最常用的方法是从芯片厂商官网下载模型文件通常是一个.lib或.sub文件在LTSpice原理图中放置一个[Misc]库里的SPICE Directive文本框在文本框里写入.include 文件名.lib然后放置一个[Opamps]库里的通用符号双击后在Value栏填你下载模型里的子电路名称这里有一个很多初学者容易搞混的点LTSpice能不能用TI的芯片模型当然可以但TI的模型分两种一种是通用的PSpice模型通常是.lib后缀一种是TINA-TI专用模型通常是.tsm或.cir后者不能直接导入LTSpice。所以下载模型时优先选PSpice格式导入成功率最高。共模电感这类无源器件更是如此很多厂商提供的耦合电感模型是带频率特性的复杂子电路直接导入比你自己搭耦合电感对要精确得多。但我个人在实际使用中发现厂商模型往往附带太多寄生参数会导致AC扫描在某些频段出现奇怪的尖峰而这些尖峰在真实测试中不一定存在。所以我的习惯是先用理想的耦合电感对模型做初步设计验证最后再用厂商模型做一次精确确认。两套模型之间的差异能反映你对电路理解的准确度也能帮你识别“哪些频率点是真实行为哪些只是模型假象”。10. 实战中的测量习惯建立自己的仿真模板最后说一个很多人不重视但很能提升效率的习惯把差模/共模AC扫描电路做成模板存成.asc文件每次新设计直接复制修改。我的模板里至少包含标准化的双电压源激励Vp0.5V/0°Vn0.5V/180°一个1MΩ的对地偏置电阻接在输入中点标准的AC扫描指令Decade100点/decade10Hz~10MHz输出端的负载电阻和必要的寄生电容这个模板看起来不起眼但它能保证你每次设计的测量条件一致跑出来的曲线有可比性。特别是当你需要在多个设计之间做对比选型时统一的测量条件是公平对比的前提。另有一个小技巧在原理图上给关键节点命名。比如输入正端命名为VINP输入负端命名为VINN输出节点命名为VOUT。这样AC扫描后添加曲线时可以直接输入节点名快速定位不用在密密麻麻的节点列表里猜哪个是哪个。LTSpice里在导线上右键 →Label Net就能命名。关于差模和共模的AC扫描分析基本上就是这些。从基本原理到实际电路搭建从理想模型到第三方模型导入从单一仿真到时域验证每一步都有值得注意的细节。希望能帮你少走一些我当年绕过的弯路直接拿到正确、可信的仿真结果。