
说起 LC 型滤波电源很多硬件工程师第一反应是“压纹波、压噪声”。我调试一台 5V/2A 的 Buck 电源时也是这个思路输出级加了一级 10µH 100µF 的 LC 滤波想着把开关纹波再往死里压一压。装上去以后静态纹波确实漂亮可一拉动态负载输出直接开始十几 kHz 的振铃轻载时甚至能听到啸叫。后来才想明白LC 滤波电源的价值不只是“多一级滤波器”它把一个二阶环节扔进了闭环系统稳定性里处理不好整个环路都会跟着翻车。这篇文章想把这套东西讲透LC 谐振峰从哪里来它怎么吃掉闭环的相位裕度补偿网络怎么整定以及实测中怎么一步步把振荡问题定位并解决。适合正在做 DCDC 电源、板级电源滤波或者被“输出加个 LC 就振荡”这个问题困扰的朋友参考。下面这些内容大多来自我自己项目里的真实调试记录参数和思路都可以直接套用。1. LC滤波器进闭环从纹波改善到振荡只差一个谐振峰1.1 LC滤波在电源输出侧的典型任务输出级加 LC 滤波器最常见的目的就是进一步衰减开关纹波和差模噪声。以 100kHz 开关频率的 Buck 为例如果希望纹波明显下降通常把 LC 的谐振频率放到开关频率的 1/10 以下。我用的 10µH 100µF 组合谐振频率约 5.03kHz在 100kHz 处大约能提供 52dB 的衰减静态效果非常好。这里有个容易忽视的关键点LC 滤波器一旦接在反馈采样点之后它就不是“输出端一个独立的去耦网络”而是变成了被控对象的一部分。很多电源在开环测试时滤波效果出奇地好一切换到闭环动态测试就振荡根源就在这里。滤波器的传递函数是二阶的谐振峰和相位滞后都会直接影响环路的稳定裕度。1.2 闭环到底“闭”在哪里电源的闭环回路是输出电压经过反馈分压电阻 → 误差放大器 → PWM 比较器 → 功率级 → LC 滤波 → 再回到反馈分压电阻。反馈采样点如果在 LC 之后那么 LC 滤波器就完整地落在环路内。此时从 PWM 输出到反馈点的传递函数里包含了 LC 的双极点响应。如果反馈点放在 LC 之前情况就完全不同LC 在环路外不参与相位计算稳定性风险小很多但问题在于负载端电压不受闭环控制LC 的直流压降和负载瞬态压降都需要额外考虑。我见过不少项目就是“为了让负载端电压更准”把反馈采样往输出端挪结果无意识地把 LC 装进了环路从此开始振荡。这个决定必须是有意识的取舍而不是随布线走。1.3 从“自校正”到“自激”的因果链闭环的核心是“检测偏差 → 调整输出 → 消除偏差”。正常情况下调整量和偏差是反相位的形成负反馈。LC 滤波器在谐振点附近会产生接近 180° 的相位滞后如果环路在这个频率附近增益还大于 1负反馈就变成了正反馈输出电压偏高了环路反而往高了调偏低了反而往低了调。这就是自激振荡的机制。体现在时域上就是负载突加或突卸时输出不是平滑过渡而是出现持续振铃。振铃频率通常就在 LC 谐振频率附近因为谐振峰是环路增益最高、相位最危险的频段。2. 谐振峰值与品质因数为什么LC的Q值决定生死2.1 从等效电路看LC的二阶本质分析 LC 滤波器稳定性先把等效电路画出来电感 L 串联在通路里输出电容 C 和负载电阻 R 并联。忽略电容 ESR 时的传递函数可以写成Vout/Vin 1 / (1 s·L/R s²·L·C)这是典型的二阶低通形式其中 ω0 1/√(LC)Q R·√(C/L)。Q 值决定了谐振点附近的增益峰值峰值高度约为 20·log10(Q)。Q 越大谐振峰越高相位从 0° 下降到 -180° 的速度也越陡。2.2 算例10µH/100µF 的 Q 值高得吓人继续用我的项目参数L 10µHC 100µF5V/2A 输出折算负载电阻约 2.5Ω。谐振频率和 Q 值计算如下f0 1 / (2π·√(10µH × 100µF)) ≈ 5.03kHzQ 2.5 × √(100µF / 10µH) ≈ 7.9谐振峰高度约 20·log10(7.9) ≈ 18dB。这意味着在 5.03kHz 附近被控对象增益比低频段高出 18dB相位正处在向 -180° 急剧坠落的区间。如果环路穿越频率恰好落在这个位置相位裕度几乎必挂。用 Python 随手算一下也方便import numpy as np L 10e-6 C 100e-6 Rl 2.5 f0 1 / (2 * np.pi * np.sqrt(L * C)) Q Rl * np.sqrt(C / L) print(ff0 {f0:,.0f} Hz, Q {Q:.2f})不同电容类型的 ESR 对 Q 的影响也很大表里给个直观感受电容类型典型ESR对Q的影响MLCC陶瓷电容5mΩ左右几乎不影响Q由负载决定极高钽电容100~500mΩ明显降低谐振峰但高频阻抗偏大铝电解电容100mΩ以上可提供一定阻尼ESR零点多在穿越频率附近聚合物电容10~50mΩ阻尼有限仍可能出现高Q峰2.3 谐振峰为什么是闭环的“雷区”谐振峰对闭环最致命的不是增益高而是相位突变。在 f0 以下LC 滤波器的相位还接近 0°一过 f0相位迅速向 -180° 靠拢。加上 PWM 调制器、误差放大器、反馈分压网络本身还会贡献一些滞后环路总相位一旦超过 -180°系统就进入不稳定区。用实际环路来看如果穿越频率 fc 落在 f0 附近或更高LC 双极点已经把相位拖到接近 -180°补偿网络若不能提供足够的相位抬升相位裕度就是负值。这解释了为什么电源原本稳定加一级 LC 后立刻振荡——谐振峰不是一个“噪声尖峰”它是一块增益凸起鼓励环路在这个频率上自激。3. Bode图上的稳定性博弈相位裕度怎么被吃掉3.1 判断稳定盯住三个指标工程上判断闭环稳定性主要看相位裕度、增益裕度和穿越频率三个值。相位裕度是环路增益降到 0dB 时相位距离 -180° 还有多少余量增益裕度是环路相位到达 -180° 时增益低于 0dB 多少。常规设计目标整理如下指标建议目标说明相位裕度 PM45°~70°低于30°时动态振铃明显增益裕度 GM大于10dB小于6dB时温度/批次变化容易翻车穿越频率 fc通常取开关频率的1/10~1/5过高会引入开关噪声过低动态响应差相位裕度低了负载瞬态会振铃相位裕度接近 0° 或负值输出就会持续振荡。增益裕度不足的表现更隐蔽常见的是温度升高或输入电压变化后突然开始振荡因为某些环节的增益随工况漂移原来的余量不够。3.2 环路拆解每个模块都在Bode图上留下什么一个典型的电压模 Buck 闭环环路传递函数大致是T(s) H(s) × G_EA(s) × G_PWM(s) × G_plant(s)H(s)反馈分压网络通常是平直的增益系数G_EA(s)补偿网络是我们调整相位最后的手段G_PWM(s)PWM 调制器增益电压模下约等于 VIN/VrampG_plant(s)功率级加 LC 滤波器包含双极点、ESR零点、高频寄生极点。LC 滤波器的双极点贡献了 -40dB/dec 的增益斜率和最多 -180° 的相位。补偿网络的作用就是在这个形状上“修正”。如果反馈采样点在 LC 之后这些贡献全部计入环路这也是我在第 1 节反复强调采样点位置的原因。3.3 穿越频率怎么选如果你用简单 Type II 补偿没有足够的相位抬升穿越频率最好压在 LC 谐振频率以下比如 fc 取 1/3~1/2 f0。这样穿越时 LC 还没开始剧烈拉相位安全但带宽有限。如果使用 Type III 补偿零点能抵消 LC 双极点就有条件把穿越频率放到 f0 之上。我这个项目最终把 fc 放在 10kHz 左右约为 2 倍 f0也就是开关频率的 1/10。带宽大了动态响应明显更好但对补偿网络的要求也更高。要记住穿越频率附近环路必须是 -20dB/dec 的斜率如果是 -40dB/dec相位裕度几乎没有。3.4 反馈采样位置的“一票否决”再强调一次采样点问题。很多“加 LC 后电源振荡”的案例本质就是反馈从 LC 前挪到了 LC 后。如果确实需要采样滤波后的电压那么 LC 双极点必须在补偿设计里明确处理不能假装它不存在。另一个常见的坑是有些人保留了转换器本体的反馈同时又从 LC 后接了一个二级反馈去微调结果形成两个环路叠加等效于把 LC 的一部分装进了主环路这种拓扑不仔细分析很难发现。4. Type III补偿网络整定一个可复算的算例4.1 为什么 Type III 刚好匹配 LC 滤波Type III 补偿网络提供两个零点、两个高频极点加一个原点极点。两个零点正好可以抵消 LC 滤波器的双极点让环路的穿越斜率达到 -20dB/dec高频极点负责压低开关频率附近的增益抑制噪声耦合。相位抬升能力上Type III 理论最大可以做到接近 180°足够应付 LC 带来的相位灾难。很多工程师习惯了给普通 Buck 配 Type II遇到 LC 滤波电源还是 Type II 一路到底结果相位裕度死活调不出来。看到被控对象里有两个靠得很近的极点就应该想到 Type III这是设计思路的分水岭。4.2 算例系统参数与零极点摆放继续用 12V 输入、5V/2A 输出、100kHz 开关频率的 BuckL10µHC100µFf0≈5.03kHz。反馈分压 H0.16PWM 调制器增益约 12。设计步骤如下选取穿越频率 fc 10kHz约为 2 倍 f0、1/10 开关频率两个补偿零点放在 5kHz 附近略低于 f0抵消 LC 双极点第一个高频极点放在 25kHz 附近把穿越后的斜率压下来第二个高频极点放在开关频率附近衰减开关噪声。零极点摆好之后要算一下 10kHz 处被控对象的增益。LC 在 fc10kHz 滚降到 -40dB/dec功率级加反馈网络的增益约为G_plant(fc) ≈ 12 × 0.16 × (5.03k / 10k)² ≈ 0.49也就是 -6.3dB要让环路在 fc 处增益为 0dB补偿网络在 fc 处需要提供约 6.3dB 的增益线性值约 2.06。4.3 元件取值换算用常见的 Type III 电路输入端 R1 与 C3 并联反馈端 R2 串联 C1、再整体并联 C2。先取 R110kΩ第二个零点 fz2 1/(2π·R1·C3)取 5kHzC3 ≈ 3.3nF中频增益由 R2/R1 决定取 R2 ≈ 20.6kΩ实际用 20kΩ 标准值第一个零点 fz1 1/(2π·R2·C1)取 5kHzC1 ≈ 1.5nF高频极点用 C2 近似设定fp ≈ 1/(2π·R2·C2)若取 25kHzC2 ≈ 330pF。这些值先作为初稿上机测试后根据相位裕度再微调。特别说明这里用的是简化计算公式真实电路里 C1 和 C2 会有交互高频极点实际位置会略有偏移这是正常的最终要以频响实测为准。4.4 预留相位余量别把性能吃满补偿网络零极点按计算结果摆放后还要给实际寄生效应留余量。运放带宽、比较器延迟、PCB 走线寄生电容、数字控制器的采样延迟都会额外拉低相位。我一般把目标相位裕度定在 60° 左右这样留出 10°~15° 的余量给这些看不见的“隐形滞后”。如果是数字电源补偿网络换成 DSP 里的 PID 或零极点对思路完全一致只是参数用离散化系数表达。数字控制的额外麻烦是采样延迟和 PWM 更新延迟相位损失比模拟方案更明显这在整定时要提前扣掉。5. 实测排查链路从示波器振铃到相位裕度的完整复盘5.1 振铃频率是最快的定位线索遇到电源振荡第一步不是盲目改补偿而是看波形。用示波器抓输出端测量振铃频率。我那次实测振铃频率约 5.1kHz和计算得到的 LC 谐振频率 5.03kHz 高度吻合基本可以直接锁定问题出在 LC 滤波器和环路的交互上而不是 PWM 比较器噪音或地弹。振铃频率与 LC 谐振频率对上排查方向就清晰了。常见的不稳定现象和对应原因可以归纳成这张表现象常见原因振铃频率≈LC谐振频率LC在环路内相位裕度不足负载瞬态过冲大、衰减慢相位裕度偏低30°以下轻载啸叫谐振峰被开关谐波激励开关频率附近高频振铃输出电容ESL或采样走线问题5.2 频响仪实测与相位裕度读数示波器只能定性判断“不稳定”要定量就得上频响仪。我习惯用 Bode 100 配合注入变压器在反馈分压电阻处断开串入一个 10Ω 左右的注入电阻扫频范围设 100Hz 到 100kHz。这样测出来的是完整环路增益和相位直接读出 0dB 穿越点和对应相位。改造前的典型测试结果是这样的参数实测值结论穿越频率约12kHz偏高接近谐振峰区域相位裕度-8°负值不稳定增益裕度-3.5dB负值无余量这个结果印证了时域振荡。加上 Type III 补偿后重新扫频穿越频率回落到 10kHz相位裕度提升到约 58°增益裕度到 14dB负载瞬态波形也不再持续振铃。补偿网络的效果在频域图上看非常直接。5.3 补偿调完还振别忘了阻尼有件容易沮丧的事Type III 补偿加上去相位裕度看起来到了 60°但负载瞬态还是有轻微振铃频率仍是 5kHz 左右。原因是 LC 谐振峰太高即使穿越频率处的相位裕度合格谐振点附近的高 Q 峰仍会放大扰动增益裕度并不安全。这种情况下需要引入阻尼从硬件上压低谐振峰而不是继续加补偿。我当时在输出电容上并联了一组 RC 阻尼支路R0.33Ω、C330µF。加上之后再次扫频谐振峰被压下去约 10dB增益裕度从 14dB 上升到 18dB瞬态振铃基本消失。这一步也验证了一个观点补偿和阻尼是两条腿缺一条都走不稳。5.4 排查顺序建议根据这些经验遇到“输出加 LC 后振荡”可以按这个顺序排查示波器测振铃频率和 LC 谐振频率对比确认反馈采样点在 LC 前还是 LC 后计算 f0 和 Q判断谐振峰的威胁程度检查或重设补偿网络确认穿越频率和相位裕度若谐振峰仍明显加 RC 阻尼支路重测环路增益并做负载瞬态验证。6. 阻尼方案对比与我的最终选型6.1 三种常用被动阻尼方案对比针对 LC 谐振峰硬件上常用三种被动阻尼方案各有取舍。我整理了一个对比表方案阻尼效果额外损耗成本/复杂度备注输出电容并RC阻尼支路好可精确设计小低最常用不影响直流电感并联电阻一般中低直流压降影响偏大选用高ESR电容一般中低ESR控制在0.3Ω以上较难RC 阻尼支路在 DC 状态下几乎不消耗能量因为电容隔直只在谐振频段起作用所以效率损失最小这是它成为首选的根本原因。6.2 RC阻尼支路的参数到底怎么取RC 阻尼支路的取值有一个实用性很强的经验公式R_d ≈ √(L/C)C_d 取主滤波电容的 3~4 倍。对应到我这个项目R_d ≈ √(10µH / 100µF) 0.316ΩC_d ≈ 3×100µF 300µF加入后谐振点的 Q 被有效拉低增益峰下压明显。如果追求更保守的阻尼可以把 C_d 加大到 400µF代价是动态响应略微变慢。还要注意 R_d 的功率等级正常工作时通过阻尼支路的电流主要是高频纹波有效值很小0.5W~1W 的电阻足够但瞬态大电流时要有余量我习惯用两个 0.68Ω 并联凑到约 0.34Ω顺便分散热应力。6.3 主动阻尼与数字控制的进阶选项如果是数字电源还有一条路是主动阻尼在控制器里加一个谐振频率处的陷波滤波器或者引入“虚拟阻抗”补偿算法等效在软件里重建一个阻尼电阻。好处是不增加硬件损耗坏处是算法需要建模准确且受采样频率限制。采样率不够高时主动阻尼在高频段表现不佳我还是倾向用硬件 RC 阻尼打底算法只做精度修正。6.4 我的最终选型和不建议踩的坑这个项目最终方案是反馈采样保持在 LC 之后Type III 补偿按 10kHz 穿越频率整定输出端并联 0.33Ω 330µF 的 RC 阻尼支路。整套组合实测相位裕度 62°增益裕度 18dB负载瞬态没有振铃。之后我又在另一块 12V/3A 的板子上复用了同样的设计思路只把阻尼电阻稍微调大一样稳定收敛。有几个坑值得提醒。第一不要以为阻尼支路加上就一劳永逸它其实给被控对象引入了新的零极点有可能移动穿越频率加完后务必重新扫频。第二别把阻尼电阻选得过小“调得越猛越好”的思路在这里只会增加损耗甚至让高频纹波电流把电阻烧掉。第三RC 阻尼支路的高频阻抗很低PCB 布局上要尽量靠近输出电容引脚否则走线电感会把阻尼效果削弱一大半。我自己经历过从“看纹波很好”到“一拉负载就啸叫”的全过程最深的一点体会是LC 滤波电源从来不是一个单纯的滤波电路只要反馈采样在它后面它就是控制环路的一部分。设计时把滤波、补偿、阻尼放在一起整体考虑比出了问题再救火要省事得多。下次再有人问“为什么加了 LC 电源反而振荡”可以先让他看看采样点、算算谐振峰再决定是动补偿还是加阻尼。