
电源工程师大概都有过这种经历板子叠完之后静态电压、纹波、效率全部正常正觉得“这版应该稳了”结果一带满载或者加个动态负载输出波形直接变成低频振荡或者空载时候传来滋滋的啸叫声拿示波器一抓波形上全是十几kHz的包络。这种问题十有八九不是功率级选型错了而是控制环路有问题。环路测试、波特图、相位裕度这些东西刚做电源的人多半是听过但没实际碰过觉得要买昂贵的环路分析仪、要懂一堆自动控制理论门槛很高。其实把BUCK电路拆开来看等效电路就那几块测试也有一套固定的流程套路真正动手做过一遍之后你会发现这就是个“搭好测试环境—扫频—读曲线—调补偿”的重复过程。这篇文章我准备从BUCK电路的等效模型讲起把补偿网络设计、波特图测量步骤、常见问题排查整条链路串一遍给那些想搞懂环路测试但一直没找到合适入口的朋友一条清晰的路。说句实在话环路测试这个事难的不是仪器怎么用而是你不理解被测对象的时候扫出来一条奇怪的曲线你根本不知道它是对的还是错的。所以我尽量把等效电路分析和实操步骤结合起来写后面还会附一个12V转3.3V同步BUCK的完整参数计算和测试案例你完全可以照着自己板子复现一遍。1. 为什么要测环路稳定性的本质不是“不振荡”这么简单1.1 环路不稳定的真实表现开关电源本身是一个闭环反馈系统输出端的电压经过分压电阻采样之后进入误差放大器和内部基准电压比较产生误差信号再去调节占空比。正常工作时这个环路是“负反馈”输出电压偏高误差信号就减小占空比把输出拉回来。但问题是反馈链路里每一个环节都有延迟和相位滞后——采样有滤波、放大器有带宽限制、PWM调制器有开关周期延迟、LC滤波器本身还会带来接近180度的相移。当这些滞后叠加在一起在某些频率下负反馈就可能变成正反馈表现出来就是自激振荡。很多人以为只有输出波形明显振起来才叫环路不稳定实际上更多见的是“边界稳定”的情况输出看起来没问题但动态响应很差负载跳变时过冲可以达到几百毫伏恢复时间几十上百微秒或者轻载重载切换时波形出现一段一段的振铃甚至有的板子在特定输入电压下稳定、换个电压就啸叫。这些都是相位裕度不足的典型症状。1.2 从波特图读懂稳定判据波特图是分析环路稳定性的核心工具横轴是频率纵轴分别画环路增益dB和相位度。我在实际项目里判断一个电源能不能量产就看三个数穿越频率、相位裕度、增益裕度。穿越频率是环路增益降到0dB时对应的频率它决定了电源的响应速度。相位裕度最简单直观的理解在穿越频率处看相位距离-180度还差多少度。如果只剩十几度那系统就是“拄着拐杖走路”随时可能摔。行业里的经验值是45度到60度好一点的设计能做到70度以上但也不宜过高否则通常意味着带宽被压得太低动态响应不够快。增益裕度看的是相位到达-180度时增益还低于0dB多少一般要求至少10dB以上。这些判据看着简单实际测的时候有一堆坑。最常见的误区是只看穿越频率附近那一段曲线低频段和高频段随便扫扫就完事。低频段决定了直流精度和负载调整率高频段决定了它对开关噪声和EMI的抑制能力全频段都要有正确形态才算真正测明白了。2. 把BUCK拆成“三大块”等效电路与传递函数分析2.1 小信号模型到底在建模什么东西要分析环路不能直接拿开关波形看因为开关动作是非线性的。工程师想出的办法叫“小信号平均建模”假设电路工作在某个稳定的直流工作点上然后在这个基础上叠加一个极小的正弦扰动看扰动怎么在环路里传递。这跟手机信号放大器的AC分析是一个思路——不考虑直流偏置怎么来只管小信号怎么走。BUCK的等效环路可以拆成三大块。第一块是功率级从占空比d到输出电压Vout这是整个环路里最重要的部分包含电感、输出电容这些储能元件。第二块是控制级误差电压经过PWM比较器转化成占空比这一级的增益是固定的理想情况下等于锯齿波斜坡电压峰峰值的倒数。第三块是反馈级输出电压经过分压电阻和补偿网络组成的阻抗变成误差放大器的输入这一块就是我们设计补偿电路时重点处理的部分。这三块级联起来总环路增益T(s)等于三个传递函数的乘积再乘上反馈分压系数。我们在波特图上测到的就是T(s)的幅频和相频特性。2.2 LC双极点的杀伤力连续导通模式CCM下BUCK功率级的传递函数形式非常典型可以写成Gvd(s) VIN × (1 s × ESR × C) / (1 s/(Q×ω0) s²/ω0²)其中ω0 1/√(L×C)是LC谐振角频率。这个二阶系统最要命的地方在于它引入了双极点——增益在穿越LC谐振频率之后以-40dB/dec的速度滚降相位则急剧掉向-180度。如果你不在补偿网络里做手脚整个环路的相位裕度基本为负根本稳不住。举个例子输出电感4.7µH、输出电容44µF的BUCK算一下LC谐振频率大概是11kHz左右。这个频率之后功率级已经像一头直直往悬崖冲的牛如果补偿网络不能及时提供零点和极点把相位“捞回来”那你在这个频率附近把环路闭合等于在悬崖边开车。输出电容的ESR会在高频处产生一个零点这个零点能抵消一部分相位延迟是有利的。但要注意陶瓷电容的ESR非常低ESR零点通常跑到MHz级别远在穿越频率之外对中频段的相位几乎没有帮助。而电解电容或者钽电容ESR较大ESR零点可能落在几十kHz对相位裕度有实打实的贡献。这就是为什么同一块板子把陶瓷输出电容换成电解电容之后环路形态会发生明显变化。2.3 同步BUCK和异步BUCK在环路上的差异同步BUCK和异步BUCK在功率级传递函数上CCM模式下几乎一样区别主要体现在轻载行为。异步BUCK轻载时电流会断续DCM功率级从二阶系统退化成近似一阶系统LC双极点消失环路特性随负载剧烈变化。同步BUCK如果工作在FCCM强制连续模式下轻载时电感电流仍保持连续环路特性相对稳定这也是不少大电流同步BUCK方案在轻载容易处理的原因。不过要注意很多同步BUCK为了效率轻载时会切到二极管模拟模式即类似DCM的异步逻辑这时候环路行为和CCM完全不同。如果你只在满载下测过环路、调过补偿轻载切换瞬间出现振荡往往就是吃了这个亏。后面我会专门聊这个问题。3. 补偿网络设计从TYPE II到TYPE III的计算方法3.1 先别急着算元件先看输出电容类型补偿网络设计的第一步甚至不是列传递函数而是确认你的输出电容是什么类型。陶瓷电容ESR极低ESR零点在很高频率帮不上中频段的忙所以需要用TYPE III补偿网络用两个零点去对冲LC双极点的-180度相移。如果你用的是电解电容它的ESR零点往往就落在穿越频率附近相当于补偿网络里白送了一个零点那用TYPE II补偿网络就行——一个零点、一个极点再配合一个积分器极点已经能把相位挽回到足够安全的范围。我见过一些工程师拿到套片方案直接照抄典型电路把输出电容从电解换成MLCC阵列补偿参数纹丝不动结果动态响应变得很差甚至振荡。先在纸上花两分钟确认电容类型会帮你节省整整半天的调试时间。3.2 12V转3.3V同步BUCK的完整补偿参数计算直接拿我最近做的一个12V输入、3.3V输出、3A的同步BUCK来举例。开关频率500kHz输出电感L4.7µH输出电容用两颗22µF陶瓷电容并联等效Cout44µFESR大约1.5mΩ。LC谐振频率f_LC 1 / (2π×√(L×C)) 1 / (2π×√(4.7µH × 44µF)) ≈ 11kHzESR零点频率f_ESR 1 / (2π × ESR × C) 1 / (2π × 1.5mΩ × 44µF) ≈ 2.4MHz这确认了陶瓷电容的ESR零点远在带宽之外必须使用TYPE III补偿。穿越频率f_c取开关频率的十分之一左右即50kHz。同时要保证f_c落在f_LC的2倍到5倍范围附近这里11kHz×4.5≈50kHz符合要求。反馈电阻的选择基准电压Vref0.8VR1取10kΩ上分压电阻下分压电阻R2 R1 × (Vout/Vref - 1) 10kΩ × (3.3V/0.8V - 1) ≈ 31.25kΩ取标准值31.6kΩ。TYPE III补偿的零极点配置思路是第一个零点放在LC双极点约一半位置第二个零点放在LC双极点附近两个零点协同对冲双极点的相位跌落高频极点放在穿越频率的1.5倍到3倍之间用来压制高频噪声。实际我取的参数R34.7kΩC13.3nFC21nFC3100pF。校验一下这些元件对应的零极点位置零点1f_z1 1 / (2π × R3 × C1) 1 / (2π × 4.7kΩ × 3.3nF) ≈ 10.3kHz正好在LC双极点附近 零点2f_z2 1 / (2π × R1 × C2) 1 / (2π × 10kΩ × 1nF) ≈ 15.9kHz和LC双极点属于同一频段两个零点合力把穿越频率附近的相位往回拉 极点1f_p1 1 / (2π × R2 × C3) 1 / (2π × 31.6kΩ × 100pF) ≈ 50kHz正好落在穿越频率附近负责压低高频增益。这里要提醒一句不同的补偿网络结构和布局公式的对应关系会有差异上面这个是基于运放反相端TYPE III补偿的标准结构算出来的。实际焊接时元件的寄生参数、PCB走线的寄生电容都会让真实零极点位置偏离理论值。所以计算只是起点最终还是要靠实测波特图来确认发现穿越频率不对或者相位裕度不足按算出来的趋势微调就行。3.3 最坑的“虚零点”零极点位置错配为什么让人抓狂“虚零点”这个词是很多实践中摸爬滚打的工程师总结出来的叫法。它不是说零点不存在而是设计者对零点的实际位置判断错位导致补偿效果完全不在预期频段。举一个我栽过的例子我曾经算好了一个补偿网络仿真的时候相位裕度有65度板子回来后实测只有15度。查了整整半天最后发现是输出电容实际的ESR比规格书标称值高了一倍ESR零点从2MHz掉到了800kHz左右。虽然在穿越频率50kHz附近仍然“看不见”这个零点但它已经改变了中频增益的滚降斜率让功率级在中频段还没有完全进入-40dB/dec就提前出现转折相位曲线的形态和我的预期完全对不上。这种“理论上有零点但它不在你以为的位置”的情况就是典型虚零点陷阱。换个角度说虚零点也可以指另一个相反的情况你为了补偿LC双极点放了一个零点在10kHz但实际穿越频率在50kHz。从这个10kHz的零点开始相位已经慢慢抬升到50kHz时该零点的相位贡献几乎封顶接近90度看起来相位曲线很平缓让你以为环路裕量很足。这时候如果ESR零点再“虚高”一下两个因素叠加实测才发现穿越频率附近的相位已经被推到了悬崖边缘。所以我在测完波特图之后一定还会看一下增益曲线在穿越频率附近的实际斜率如果明显比-20dB/dec更陡那不管相位读数多少我都会重新审视补偿参数。4. 手把手实测从仪器连接到参数设置4.1 必须的设备清单不是只有环路分析仪才能测环路分析仪是专业工具像Bode 100、Venable、AP300这种价格不低很多小公司或者个人开发者不一定有。替代方案是用带网络分析功能的设备配合注入变压器来测实际上即便有环路分析仪注入变压器也是标配。注入变压器的作用是在反馈环路里串联注入一个小信号同时实现测量设备和被测电路的隔离。被测电路工作在高电压、开关噪声很大的环境中注入变压器一隔环路分析仪的输入通道就安全很多。如果你手上只有带FFT功能的示波器也能做粗略判断——注入一个扰动看输出波形收敛与否。但这种方法只能定性判断稳定与否得不出相位裕度这种定量指标对参数微调的指导意义有限。所以我的建议是要么公司配置一台专业环路分析仪要么去同行那里借要么外发测试一次测试的成本并不高。4.2 断环与注入这个步骤错了测出来的全是“鬼图”环路测试的第一个关键操作是“断环”。所谓断环不是真的把反馈回路切断让电源失控而是在反馈链路中找一个合适的点把注入变压器的次级绕组串进去。注入信号经过变压器耦合到环路上相当于在反馈信号上叠加了一个微小扰动而直流工作点基本不受影响。测试点怎么选很讲究。原则是在低阻抗点注入并且注入点两侧的信号都容易探测。最常用的位置是输出端Vout和反馈分压电阻R1之间。把R1原本接到Vout的那个焊点挑起来注入变压器次级的一端接Vout另一端接R1这样就完成断环。需要注意从R1到注入变压器这段线要尽量短而且要用绞线或者屏蔽线否则开关噪声会从这段线耦合进测量回路导致高频部分曲线抖动。通道接法通道A参考输出侧接靠近R1的一端通道B输入侧接靠近Vout的一端环路增益就是两者的比值。我见过不少新手把两个通道接反然后从1kHz开始扫出来的曲线相位直接反了180度折腾半天以为是电源有问题。先记住哪个通道对应环路的输出哪个对应输入测量之前画个小草图能省掉很多低级错误。4.3 参数设置注入电平、扫频范围、中频带宽注入电平的调节很考验经验。电平太低噪声会淹没信号特别在高频段开关边沿噪声的频谱密度很大电平太高会扰动工作点导致电源进入非线性区测出来的增益曲线和相位曲线都会变形失真。我一般从-20dBm开始试观察功率级输出端有没有明显叠加纹波如果输出纹波看起来平静如水适当加大注入如果波形包络明显被扰动果断减小。一个可以接受的经验值是注入后输出上出现的扰动在10mV到30mV之间既能让测量设备分辨又不至于影响环路状态。扫频范围一般从100Hz或者1kHz开始扫到开关频率的一半到两倍。500kHz的开关频率扫到1MHz足够。小于100Hz的频率不是不能测而是多数注入变压器低频响应不行而且50Hz工频干扰耦合进来会很要命低频段的测量结果可信度差。低频增益我们需要知道但用不着精确到每一个赫兹。中频带宽IFBW设置得越窄噪声越低但每个频点测量时间越长。常见的环路分析仪上这个参数对应内部滤波器的带宽我习惯先在宽带宽下快速扫一遍看整体形态然后在穿越频率周围一段重新用窄带宽细扫拿到干净的相位数据。这是实测效率最高的一种组合。4.4 从实测曲线读出关键数据扫完之后先看增益曲线和0dB线交点对应的频率那就是穿越频率f_c目标应该在计算的50kHz附近。然后在这个频率点查看相位读数相位裕度等于相位读数加上180度。比如实测相位-118度相位裕度就是62度。再看相位曲线到达-180度时对应的频率查看这个频率的增益衰减量用0减去这个增益dB得到增益裕度一般要求-10dB以下即衰减量至少10dB。有些门禁标准会放宽到-6dB但为了量产的一致性余量我内心里没有10dB是不会放行的。整条曲线的形态也要看一眼低频段增益高说明直流和负载调整率好中频段增益以-20dB/dec穿过0dB是理想状态高频段增益要持续滚降如果高频段出现上翘多半是PCB布局的寄生耦合在工作这已经不是补偿能解决的问题要先回头查地线。我截一条我实测的数据来说明扫完之后f_c48kHz相位-121度PM59度基本符合设计预期。增益曲线在穿越频率附近斜率约-21dB/dec算是很标准的形态。整体来看这个补偿网络可以直接用。5. 常见问题排查与实战日志5.1 为什么我扫出来的波特图这么“毛糙”高频段曲线毛糙甚至出现锯齿状抖动是最常见的现象。原因主要有三个一是注入电平太低高频段信噪比差二是中频带宽设置太宽噪声没有被充分滤除三是探头地线太长开关节点的高dv/dt通过地线耦合进来。对应的处理办法也很直接把注入电平往上加两三个dB把中频带宽调窄到原来的十分之一给探头换短发地线或者用接地弹簧让探头头部和地线弹簧尖同时接触同一个测试点。做完这三步95%的毛糙问题都能改善。如果低频段几百Hz附近出现波动先怀疑是不是探头的共模抑制比不够。这时候可以给两个通道都接上等长度的探头在断环点两侧对称测量用相位差抵消共模噪声效果很明显。5.2 空载测出来和满载测出来完全是两个结果这是BUCK电路最容易踩的坑。CCM模式下功率级是标准的LC双极点DCM模式下电感电流断续功率级退化成单极点结构增益特性和相位特性和CCM完全不同。很多设计只在满载时调好环路到客户那里轻载马上就出问题。我们内部有一个不成文的规矩任何电源板环路测试至少测三个工况——空载、半载、满载如果条件允许还要测CCM和DCM切换边界的工况。对于同步BUCK如果芯片支持FCCM模式轻载时强制工作在CCM能大大减轻环路设计的负担代价是轻载效率会差一些。做快充和适配器这类需要在轻载省电的产品往往选择牺牲一点轻载效率换取环路好调。设计取舍无对错但一定要在初期就考虑进去。5.3 GaN FET高开关速度带来的测量难题最近不少电源用上了GaN FET做同步整流开关速度比传统MOSFET快好几倍开关节点电压变化率动辄每纳秒几十伏。环路测试的难点在于这样的高dv/dt会在测量回路里感应出很大的共模噪声相位曲线哪怕用了窄带宽滤波还是会有毛刺。我的经验是第一确保注入变压器和探头之间用的是屏蔽线而不是普通杜邦线第二可以给环路分析仪加一个前置带通滤波器把扫描频率之外的噪声滤掉第三在GaN方案的PCB布局上尽量把反馈走线和开关节点拉开距离这不仅是为了环路测试方便更直接影响电源的稳定性。实际上GaN FET的高开关速度对环路设计是双刃剑一方面开关频率可以做到MHz级别穿越频率也能相应提高动态响应极快另一方面寄生参数对补偿网络的影响变得更大虚零点的风险增加实测的权重比仿真更高。5.4 快速排查表现象可能原因排查方法相位曲线在穿越频率附近乱跳探地线过长、共模噪声换短发地线、窄IFBW、加平均空载有啸叫、满载正常DCM模式下环路裕度不足测空载波特图、调整补偿零点或改用FCCM实测穿越频率远低于设计值增益偏低、检测电阻偏大检查反馈分压比、注入变压器损耗、补偿电容容差相位裕度合格但动态响应过冲大穿越频率偏低提高f_c拉高带宽低频段增益不够积分电容太小、带宽受限增大低频极点路径上的电容重新验证相位曲线形态正常但整体右移可能元件容差偏高用LCR表实测L/C实际值、复算零极点这张表覆盖了我这几年环路调试遇到的绝大多数问题。每次排查完我都会在测试记录里写清楚“改了什么参数、实测曲线变化了哪些点、最终结果如何”。这看起来麻烦但下次遇到类似问题翻一翻大部分坑不用重新踩一遍。最后分享一个我个人的体会环路调试这个活儿很多人一开始觉得靠仿真软件算一遍就能一步到位实际做下来就会发现寄生参数、元件容差、测试环境这些变量让每一次实测都像重新认识一遍自己的设计。别怕曲线难看多扫几次、多记录、多对比你对L、C、ESR、零点、极点这些东西的直觉会慢慢建立起来到后面看一眼波特图基本就能判断出问题出在功率级还是补偿网络。现在你手边如果有正在调的BUCK板子不妨按文中的步骤搭一下测试环境自己亲手扫出一条波特图来比看十篇文章都管用。