简介这是一份面向开关电源研发工程师的环路设计专题资料聚焦BUCK电路从环路计算、补偿参数设计到仿真验证的完整流程。资料从自动控制理论中的乃奎斯特稳定性判据切入讲解穿越频率、相位裕量、增益裕量、静态增益与动态响应等关键概念并结合以负一倍斜率穿越零分贝线的设计思路说明如何兼顾环路稳定性与动态速度避免盲目依赖实验室调试参数。整包为单个PDF文档大小982KB图文结合包含BUCK主电路小信号传递函数推导结论及Saber仿真验证思路适合想要系统掌握电源环路补偿方法的中高级电源工程师阅读。目前已有580人学习对后续开展高低温、负载跳变等工况下的电源稳定性设计有直接参考价值。1. 环路补偿不是玄学BUCK 电路稳定性的科学设计方法很多做开关电源的工程师提起环路补偿第一反应就是“玄学”。产品出了问题先在实验室里调电阻电容调到一个看似稳定的组合就收工。但这种靠调试凑出来的参数往往经不起推敲——高低温一变、负载一跳环路就可能进入振荡甚至发散。BUCK 电路的环路计算、补偿和仿真恰恰是把这个黑匣子打开的过程通过传递函数算出穿越频率和相位裕量再通过 Saber 的 tdsa 环路扫描仪做开环仿真验证。这套方法不需要你精通自动控制理论但需要你按步骤把主电路传递函数、补偿网络参数、仿真参数逐一算清、测准。本文从最简单的 CCM Buck 入手完整走一遍“计算主电路 → 设计补偿 → Saber 仿真验证 → 负载动态测试”的流程适合正在做 DC-DC 电源设计、想摆脱盲调补偿参数现状的工程师。2. 先把判据立住穿越频率、相位裕量与增益斜率的关系2.1 为什么相移 180° 环路就一定不稳定负反馈系统的闭环传递函数可以写成 G(S)/(1G(S)*H(S))其中 G(S) 是主电路传递函数H(S) 是反馈和补偿网络的传递函数。如果 1G(S)*H(S)0闭环输出就会趋于无穷大系统自然不收敛。把 Sjω 代入当 G(jω)*H(jω)-1 时增益为 1相位为 180°。这里有个容易绕晕的点负反馈本身已经带了 180° 相移所以扰动信号经过 G(S) 和 H(S) 之后如果相位“再”改变 180°叠加起来就是 360°相当于相位没变增益还等于 1这就会形成正反馈自激振荡。奈奎斯特判据说的就是这个事穿越频率点上只要相位裕量足够系统就稳定。2.2 相位裕量取 45°斜率穿越 0dB 是关键理论上只要穿越频率点相移不是 180° 系统就稳定但模拟器件存在离散性——电阻电容的容差、温度漂移都会让参数漂移。如果相位裕量只有十几度环路处于条件稳定状态随时可能翻车。工程上通常把相位裕量取在 45° 左右对应的开环传递函数相移要小于 135°。相位裕量不是拍脑袋定的太大动态响应变慢出现过阻尼太小环路容易振荡。45° 是稳定性和动态响应之间的折中值。要保证相位裕量充足开环传递函数的增益曲线最好以 -1 斜率穿越 0dB 线。如果以 -2 斜率穿越说明在穿越频率附近有两个极点主导相位相移接近 180°相位裕量必然不足。2.3 斜率背后是极点和零点在起作用每产生一个极点增益曲线斜率在该极点转折频率处增加 -1每产生一个零点斜率增加 1。这就是为什么 LC 滤波器会形成 -2 斜率下降——电感电容各贡献一个极点双极点处斜率从 0 变成 -2。电解电容的 ESR 会引入一个零点把斜率从 -2 拉回 -1相位也从 -180° 往回收。另外还有个容易被忽略的点静态增益决定了输出与给定值之间的静态误差。穿越频率相同的情况下以 -2 斜率下降的开环增益在低频段明显更高。举例来说给定 10V 希望输出 10V静态增益 20dB 时误差是 1V40dB 时误差只有 0.1V。所以设计时要在低频段保持高增益压低静态误差但穿越频率附近的斜率又要回到 -1 保证相位裕量这就是补偿网络设计的核心矛盾。3. 算主电路传递函数从双极点到 ESR 零点的 Mathcad 建模3.1 Buck 主电路小信号模型的参数设定与计算以 CCM 模式电压控制 Buck 为例先设定基本参数输入 Vg20V占空比 0.5输出 Vo10V负载电阻 1Ω。主电路是典型的 LC 低通滤波器结构电感、电容、电容 ESR 都会直接影响传递函数的形状。主电路的传递函数不需要自己推导张兴柱博士团队已经把常用拓扑的小信号传递函数整理好了直接拿来用即可。关键是要把元件参数代入算出极点和零点的位置。这个电路里 LC 双极点频率约 1.16kHz电解电容 ESR 产生的零点频率约 4.5kHz。双极点让增益以 -2 斜率衰减ESR 零点又把斜率拉回 -1。在 Mathcad 里把传递函数表达式写出来后直接扫频就能得到 Bode 图。这里给一个计算主电路传递函数的参考写法Mathcad 是符号化计算实际输入类似下面的逻辑// Mathcad 风格计算式非可直接运行代码示意逻辑 Vg : 20 // 输入电压 D : 0.5 // 占空比 R : 1 // 负载电阻 L : 470uH // 电感量按双极点1.16kHz反推 C : 470uF // 电容量 ESR : 0.075 // 电解电容等效串联电阻 // LC双极点频率 f_LC : 1 / (2*pi*sqrt(L*C)) // 约1.16kHz // ESR零点频率 f_ESR : 1 / (2*pi*ESR*C) // 约4.5kHz // 主电路传递函数CCM电压控制标准形式 G(S) : (1 S/ (2*pi*f_ESR)) / (1 S/(2*pi*f_LC) S^2/(2*pi*f_LC)^2) * (Vg/D 的量级)这里的核心是确认双极点和 ESR 零点的相对位置。算完之后看 Bode 图主电路 G(S) 的穿越频率约 7.2kHz相位裕量约 62.4°——看起来不需要补偿就能稳定但静态增益只有 26dB输出误差偏大必须通过补偿提升低频增益。3.2 增益斜率对动态响应的影响路径开环传递函数的斜率不仅影响相位裕量还直接影响负载跳变时的动态响应。以 -2 斜率穿越 0dB 的环路负载突变时输出电压会呈现明显的欠阻尼振荡——快速冲到下一个稳态值后过冲再阻尼振荡多次。以 -1 斜率穿越的环路则表现为过阻尼从一个稳态缓慢爬向另一个稳态。好的设计思路是把两种情况结合在 1/2 穿越频率处让斜率从 -2 变成 -1。这样低频段保持高增益静态误差小穿越频率附近以 -1 斜率穿越相位裕量充足动态响应速度也够快。具体到 Bode 图上就是在低频段让补偿网络提供一个极点抬高低频增益在中频段安排一个零点抵消部分 LC 极点的相移。3.3 主电路穿越频率与静态增益的取舍主电路 G(S) 的穿越频率 7.2kHz、相位裕量 62.4°看起来参数不错但静态增益太低。补偿网络 H(S) 的作用就是压低低频段增益的衰减趋势把开环传递函数的低频增益提上去。设计目标是把开环穿越频率推到 10kHz——这个值远小于开关频率的 1/6同时保证穿越频率点以 -1 斜率穿越相位裕量大于 45°。要注意的是考核相位裕量只需看穿越频率点附近的相位穿越频率之前的相位裕量不必严格满足要求。很多新手盯着整个频段看相位其实没必要关键就两个位置穿越频率点的相位裕量以及低频段的静态增益。4. 单零单极补偿设计R2、C1 取值与开环 Bode 图验证4.1 为什么选单零单极补偿拓扑补偿拓扑有很多种单极点、单零点、单零单极、双零单极、单零双极、双零双极。选择的原则是满足两个需求低频段要有高增益压低静态误差中频段要能把相位拉回来保证裕量。单极点补偿只能在原点加一个极点抬高低频增益但会进一步恶化相位单零点补偿能改善相位但低频增益不足。单零单极是性价比最高的方案——一个极点在原点抬高低频增益一个零点在中频段抵消部分 LC 双极点的相移。补偿网络 H(S) 实际由两部分组成运放补偿电路 K(S) 和 PWM 调制比 Fm。Fm1/VPVP 是锯齿波幅值。在小信号分析时运放正极接地由于虚短特性负极等效接地反馈分压电阻 Rf2 被短接Rf1 就是补偿网络的输入电阻 R1。4.2 R2、C1 的计算流程与参数逻辑目标是让开环传递函数 G(S)*K(S)*Fm 的穿越频率到 10kHz。已知主电路 G(S) 在 10kHz 处的增益为 -3.573dB所以 K(S)Fm 在这个频点需要提供 3.573dB 的增益。公式是 20log(R2Fm/R1)3.573。设定 VP5V则 Fm1/50.2。反馈分压电阻取 Rf13kΩ、Rf21kΩ所以 R13kΩ。代入公式求 R2// 计算逻辑 VP : 5 // 锯齿波幅值 Fm : 1/VP // PWM调制比 1/5 R1 : 3k // 补偿网络输入电阻 Gain_10k : 3.573 // 需要的补偿增益 dB // 20log(R2*Fm/R1) 3.573 // R2 R1 * 10^(3.573/20) / Fm R2 : R1 * 10^(3.573/20) / Fm // 约22.6kΩ零点频率取 1/2 穿越频率即 5kHz。C1 由零点公式 fz1/(2πR2C1) 求出计算值是 4.425nF取标准值 4.7nF对应零点频率略低于 5kHz影响不大。fz : 5kHz // 零点频率 1/2 fc C1 : 1 / (2*pi*R2*fz) // 约4.425nF取标称4.7nF补偿后重新计算开环传递函数 G(S)*K(S)*Fm穿越频率 10.08kHz相位裕量 60.6°完全满足设计要求。4.3 补偿前后的 Bode 图对比与设计目标核对补偿前主电路 G(S) 穿越频率 7.2kHz相位裕量 62.4°静态增益只有 26dB。补偿后穿越频率推到 10.08kHz相位裕量降到 60.6°仍在安全范围低频增益显著提升。关键看三个指标穿越频率是否达到目标相位裕量是否大于 45°低频段增益曲线是否以 -1 或 -2 斜率下降。这三个指标都达标补偿设计就算完成。这里有个常见疑问为什么不把穿越频率推得更高穿越频率越高动态响应越快但必须远低于开关频率否则开关纹波会干扰控制环路。一般要求 fc 小于开关频率的 1/6工程上通常取 1/10。本案例的开关频率没明确给出但从穿越频率 10kHz 的量级看开关频率至少 100kHz 才合理。如果开关频率低穿越频率目标也要相应下调。5. 环路仿真避坑指南tdsa 参数设置与开环测量实操5.1 tdsa 环路扫描仪的连接方式与原理Saber 里做频域仿真要用到 tdsa 环路扫描仪它本质是个注入扰动的信号源加一个测量回馈信号的接收机。tdsa 有 5 个引脚ON/OFF 使能端、Input 正负端、Output 正负端。使能端接一个 logic clock延时 10ms 再启动目的是避开仿真开始时的暂态振荡。Input 端接需要测量的回馈信号输出电压Output 端接注入点给定电压处。tdsa 扫描的原理是在注入点叠加幅值固定、频率按预设方式变化的正弦波同时测量回馈点的幅值和相位与注入信号对比得到 Bode 图。因为实际注入的是离散频点信号频点数量越多扫出来的曲线越平滑但仿真时间也越长。5.2 先拆开环路再仿真的关键操作要仿真开环传递函数但 Saber 做不了真正的闭环开环仿真所以要把环路在某点断开。本案例的做法是把补偿网络 K(S) 的输出和 Fm 断开PWM 比较器正端不再接补偿网络的输出而是直接给定 2.5V 电压获得 50% 占空比。tdsa 的输出通过 voltage summer 叠加在这个 2.5V 给定电压上tdsa 的输入接输出电容电压。断开位置的选择很讲究。理论上开环传递函数是 G(S)*K(S)Fm但一次仿真全部验证比较困难所以拆成两步先仿真 FmG(S)再仿真 K(S)。两步的结果分别和 Mathcad 计算值对比如果都能对上级联起来的开环传递函数就必然正确。仿真 Fm*G(S) 时注入点选在 PWM 比较器正端测量点选输出电容电压扫出来就是从注入点到输出的频域响应。仿真 K(S) 时则简单得多去掉主电路在反馈分压电阻输入端给 10V 电压上叠加注入信号输出接补偿网络输出端即可。5.3 参数设置的血泪经验误设置导致仿真白跑tdsa 参数必须逐个理解否则很容易跑出无效数据甚至仿真直接发散。以下是我踩过的几个坑现象 1仿真跑了几个小时还在低频段打转。原因是起始频率设置太低。tdsa 扫一个频点要多个周期才能稳定100Hz 信号一个周期 10ms扫 10 个周期就是 100ms仿真计算这个时间段的内部步进可能要几分钟。所以起始频率别低于 500Hz但要确保低于预估的穿越频率否则扫不到穿越点测出来相位裕量没意义。现象 2高频段扫描结果抖动明显。原因是 min_tspp 设置太小每个扫描周期的分段数不够正弦波不够光滑。设 100 以上能明显改善相位测量精度。另外 max_err 控制稳定判定默认值太严格会导致同一频点反复扫描跳不过去我一般会结合 max_nper 一起调。现象 3tdsa 一直扫不完end time 到了还没结束。原因是 end time 设置太短。tdsa 扫完所有频点自动结束仿真但如果 end time 不够仿真会截断在 end time 时刻。我一般先预估比如一次完整扫描需要 1 秒就输入 1.2 留余量。设置完观察进度条如果 90% 左右自动结束说明所有频点都扫完了。现象 4补偿网络仿真时运放输出饱和。原因是注入信号幅值太大。补偿电路是信号放大环节注入 0.1V 信号经过放大可能超过运放供电轨。仿真 K(S) 时 ampl 要降到 0.01避免运放输出越界。tdsa 参数本案例取值作用说明fbegin500Hz起始频率需低于穿越频率fend20kHz截止频率覆盖穿越频率附近ampl0.1补偿网络 0.01注入正弦波幅值npoints400扫描频点总数越多越平滑modelogswp对数间隔扫描低频点密高频点疏max_err默认稳定判定误差阈值min_nper大于 3每频点最少扫描周期数max_nper默认每频点最大扫描周期数超时跳过min_tspp100 量级每周期最小步进数影响波形光滑度5.4 仿真结果与计算结果的对账方法仿真跑完打开 cosmoscope选中 _tdsa 后缀的结果文件双击 AC_result 就能看到增益和相位曲线。用光标测量穿越频率和相位本案例实测 Fm*G(S) 穿越频率约 2.68kHz相移约 133.4°。Mathcad 计算值是穿越频率 2.733kHz相移 135.1°。误差在 2% 以内说明仿真模型和参数设置是对的。K(S) 的仿真结果10kHz 频点增益 17.5dB相移 170.9°与 Mathcad 计算结果一致。两组数据都对上了级联后的开环传递函数就没有悬念。这种“分段验证”的思路值得借鉴——不要试图一次仿真验证整个环路拆开后逐个环节对账出问题也好定位。6. 负载动态仿真PWL 电阻模拟跳变与最终验收开环仿真验证通过后最后一步是闭环负载动态仿真。这里要用到 PWL 电阻模拟负载突变0~5ms 内阻值 1Ω输出电流 10A5ms~5.01ms 内阻值从 1Ω 变到 10Ω输出电流降到 1A对应 10us 内负载从 100% 跳变到 10%变化率约 0.9A/us。运行 transient 仿真end time 设置为 10ms。tdsa 已经删除运放输出直接作为 PWM 比较器正向输入系统处于闭环状态。看输出电压波形负载突变后输出电压从稳态值跳变过冲幅度约 0.3V大约 0.6ms 后回到下一个稳态工作点期间有轻微振荡但很快收敛。这个动态响应说明补偿参数是合理的过冲控制在 3% 以内恢复时间在亚毫秒级没有反复振荡。如果补偿参数不当通常会看到两种情况一种是欠阻尼输出电压过冲大、围绕稳态值振荡多个周期才收敛另一种是过阻尼输出电压慢吞吞爬向稳态值恢复时间拉长。0.6ms 的恢复时间和 0.3V 的过冲在 10V 输出的 Buck 里是比较理想的平衡点。这里其实还可以再验证一步把负载跳变方向反过来从 10% 跳到 100%看电压跌落的情况。跌落幅值通常比过冲更值得关注因为负载重载跳变时电感储能释放需要时间。我一般会同时记录上升沿和下降沿的动态响应或者用不同变化率的 PWL 电阻多测几组确认环路在最恶劣的负载变化速率下依然收敛。从那以后我每次做电源环路设计都强制走一遍这个流程先算主电路传递函数确认极点和零点位置再按目标穿越频率和相位裕量计算补偿参数然后拆开环路分别仿真验证 G(S)*Fm 和 K(S)最后做闭环负载动态仿真确认过冲和恢复时间。整个过程看起来复杂但每一步都是确定性的计算不需要靠运气调参数。希望这套方法对你也有帮助。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
3个坑避开440449改版,高频面试题不再丢分 3个坑避开440449改版,高频面试题不再丢分 版本升级后 API 全变了,代码跑不通,心里发慌。这是很多开发者在接触 440449 相关技术栈时的真实写照。尤其是准备面试时,面试官抛出的 高频面试题… · 2026/9/23 18:41:21
告别配置地狱:11110实战最佳实践 告别配置地狱:11110实战最佳实践 配置环境就卡半天?这是无数开发者在接手新项目时的真实写照。依赖版本冲突、环境变量缺失、本地与生产环境差异巨大,这些琐碎问题往往比写业务逻辑更耗时。想要彻底解决这个痛点,不能只靠玄学,必须建立一套可复现、… · 2026/9/23 18:41:20
基于Python的人脸识别门禁系统:从环境搭建到答辩演示 简介:基于Python的人脸识别智能门禁系统是一套面向计算机相关专业学生的完整毕业设计项目,适合用作毕业设计、期末大作业或课程设计。代码注释较全,前后端架构清晰,关键模块包含人脸识别与门禁管理流程,且已经过调试&a… · 2026/9/23 18:41:20
力高答题下载避坑指南:5道高频面试题助你拿下大厂Offer 力高答题下载避坑指南:5道高频面试题助你拿下大厂Offer 是不是觉得看了一堆教程,理论背得滚瓜烂熟,真到写项目或者面试时还是脑子一片空白?这种“眼高手低”的困境,在编程圈太常见了。很多人沉迷于收藏各种资料,比如到处找所谓的 力高答题下载… · 2026/9/23 19:18:05
Atlas 300V 24G推理卡部署YOLO实战:环境、转换与调优 1. 看懂Atlas 300V 24G这块卡,以及它和GPU的本质区别1.1 先回答那个反复被问的问题开工后我经常在群里看到一句话:“atlas 300v 24g 是运算加速卡吗?”说实话,第一次看到这个问法我也愣了一下。这个问题的背后,其实是很… · 2026/9/23 19:17:58
linux库 从静态库、动态库到 ELF 加载与 GOT 机制
一、为什么需要库?
现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始。库本质上是一种可执行代码的二进制形式,可以被操作系统载入内存执行。
Linux 下主要有两种库:… · 2026/9/23 19:17:46
3个西沃客车项目避坑:版本升级API全变,性能优化实战指南 3个西沃客车项目避坑:版本升级API全变,性能优化实战指南 版本升级后 API 全变了,代码直接崩?西沃客车调度系统一跑就卡,性能优化无从下手? 别慌,这坑我踩了十年,今天把血泪经验全抖出来。 坑的现象:升级即崩溃,API 面目全非… · 2026/9/23 19:17:46
谷歌浏览器设置入门到精通:3个技巧解决卡顿 谷歌浏览器设置入门到精通:3个技巧解决卡顿 版本升级后 API 全变了,你的脚本还在报错吗?很多老手发现,以前好用的自动化工具在 Chrome 120+… · 2026/9/23 19:17:33
Apache Arrow Flight SQL 协议详解:RPC 命令、执行模型与会话管理 Apache Arrow Flight SQL 协议详解:RPC 命令、执行模型与会话管理 【免费下载链接】arrow Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing 项目地址: https://gitcode.com/gh_mirrors/arrow12/arrow
… · 2026/9/23 19:17:32
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29