尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

LTspice实战:Buck环路仿真与相位裕度调试全流程

发布时间:2026/9/27 6:18:41

资讯中心
01
ARTICLE

LTspice实战:Buck环路仿真与相位裕度调试全流程

LTspice实战:Buck环路仿真与相位裕度调试全流程
你有没有遇到过这种情况一块Buck板子静态电压纹波都正常一带负载输出就开始低频抖动示波器看着像在“喘气”。上周帮朋友排查一块3.3V/1A的小板子就是这毛病。空载没问题挂载到额定电流就开始振荡换大电容、加磁珠折腾一下午没解决。最后我用LTspice把环路波特图拉出来一眼就看见相位裕度只有二十多度补偿参数改了两行问题直接消失。这大概是我这几年做电源设计最常用的一个流程LTspice做Buck环路仿真从功率级传递函数建起用跨导放大器搭补偿网络最后用波特图验证稳定性。整套方法不花一分钱还能把“为什么我的Buck在振荡”“为什么换颗电感就稳定了”这类问题讲得明明白白。这篇文章我会把整个流程拆开讲从Buck功率级的小信号模型、OTA补偿器原理、LTspice平均模型搭建到断点注入法测环路增益、再根据波特图调补偿参数全部给到可复现的步骤和参数。适合刚开始接触电源环路补偿的工程师也适合想彻底搞清楚“LTspice里波特图到底怎么来”的爱好者。1. 功率级没搞懂后面全是虚的——Buck小信号基础补偿环路之前得先知道你手里这个“被控对象”长什么样。Buck变换器在CCM连续导通模式下占空比d到输出电压vout的小信号传递函数是所有环路设计的基础。1.1 占空比到输出的传递函数长什么样忽略一些二阶因素后CCM Buck的功率级传递函数可以写成Gvd(s) Vin · (1 s/ωesr) / (1 s/(Q·ω0) s²/ω0²)其中ω0 1/√(L·C)这是输出LC滤波器的自然谐振角频率ωesr 1/(ESR·C)这是输出电容ESR带来的零点Q R / √(L/C)R是负载电阻Q决定谐振峰的尖锐程度这个公式看着简单但信息量很大。低频段增益近似等于Vin中频段LC双极点让增益以-40dB/dec下降高频段ESR零点又把斜率掰回-20dB/dec。双极点处的谐振峰由Q决定Q越高尖峰越高环路越难补偿。我常用的示例参数是Vin12VVout3.3VIout1A开关频率300kHzL4.7uHCout47uFESR5mΩ。算一下关键频率f0 1/(2π√(4.7e-6·47e-6)) ≈ 10.7kHzfesr 1/(2π·0.005·47e-6) ≈ 677kHzQ 3.3 / √(4.7e-6/47e-6) ≈ 10.4这个Q值相当高说明在10.7kHz附近增益会有一个明显凸起的峰。补偿网络的重中之重就是处理这个双极点和可能的谐振尖峰。1.2 为什么AC分析必须用平均模型而不是开关模型这是新手最容易踩的大坑。LTspice的AC分析原理是在直流工作点上对电路求导做小信号线性化。对于开关管、二极管这类强非线性器件它们在一个开关周期内反复导通截止工作点上根本没法做线性化。直接对带开关管的Buck电路跑AC分析得到的曲线往往是错的或者完全没意义。我见过有人对LTspice自带的开关模型直接做AC扫描扫出来的“波特图”不管怎么改开关频率都差不多原因就在这里AC分析拿到的只是某个瞬间线性化结果代表不了“一个开关周期内的平均行为”。所以做环路仿真标准的做法是搭一个平均模型。最常用的CCM平均Buck模型其实非常简单开关网络的平均效果就是让开关节点电压等于占空比乘以输入电压即Vsw d·Vin。在LTspice里用一个行为电压源就能实现B1 sw 0 VV(comp)*V(in)其中V(comp)是补偿器输出代表占空比指令范围0~1V。注意我这里把1V对应100%占空比是个标幺化处理仿真时心里要有这个映射关系。这个平均模型既能跑瞬态也能跑AC分析结果和理论公式吻合得非常好。2. 跨导放大器OTA在Buck环路里的真正作用很多从运放时代过来的工程师一看到“跨导放大器”就头疼。其实搞懂了它在环路里的角色你会发现OTA比普通运放更直观尤其在电源控制芯片内部OTA几乎是绝对主流。2.1 运放输出的是电压OTA输出的是电流运算放大器开环时输出的是一个电压而跨导放大器的输出是一个电流大小正比于输入差分电压Iout gm · (Vref - Vfb)gm的单位是西门子S也就是A/V。芯片手册里常见单位是uA/V或mA/V别被单位吓到意思都一样输入差1mV电压输出就多出gm倍那么多电流。OTA的输出级是高阻电流源正是这个“高阻输出外部RC网络”的组合决定了它天生适合做补偿器。你想想输出是电流往电容上充电容电压就是电流的积分天然就是一个积分器。普通运放要用积分器还得专门加个反馈电容来“假装”电流源OTA直接从物理结构上就具备积分特性。2.2 一个OTA加上RC网络就是Type II补偿器经典的结构是这样的OTA输出节点对地接串联的R1和C1再并联一个小电容C2。这个网络在频域上长出一个低频极点、一个零点和一个高频极点Zcomp(s) (1 s·R1·C1) / [s·C1·(1 s·R1·C2)]解析一下每个元件干什么C1是积分电容负责把低频增益推到很高让直流误差趋近于零R1和C1构成零点零点频率fz 1/(2π·R1·C1)用来抵消输出LC滤波器的一个极点R1和C2构成高频极点频率fp 1/(2π·R1·C2)用来压掉开关噪声和ESR零点以上的高频增益我常用的一组参数是gm1mSR133kΩC1470pFC222pF。算一下fz 1/(2π·33k·470p) ≈ 10.3kHzfp 1/(2π·33k·22p) ≈ 219kHz零点落在10.3kHz正好压在LC双极点10.7kHz附近这就是标准的“零点对极点”做法。实际调试时这个零点位置要根据仿真结果微调不是算个大概就完了。2.3 在LTspice里搭一个OTA模型LTspice的元件库里没有现成的“OTA”符号但搭一个理想模型非常简单。直接用行为电流源B1 out 0 Igm*(V(ref)-V(fb))把gm定义成一个参数比如.param gm1m这样后期调增益方便。括号里ref是参考电压节点fb是反馈分压节点哪个接正哪个接负直接影响反馈极性我第一次搭的时候接反了输出直接冲到轨后面细说。如果不想用B源也可以用压控电流源G源区别不大。我的习惯是用B源因为表达式改起来灵活而且可以顺手加上输出钳位模拟真实OTA的摆幅限制B1 out 0 Ilimit(gm*(V(ref)-V(fb)), 0, 1)加limit等于把输出限制在0~1V对应占空比0~100%仿真收敛性会好很多。3. 把整个环路在LTspice里搭起来到了实操环节。打开LTspice XVII新建原理图把下面这些元件放上去。3.1 完整原理图的连接关系整个系统按信号流分成几段输入源平均Buck功率级、LC滤波器负载、反馈分压、OTA补偿器、PWM占空比映射。元器件参数如下表可以直接抄元件参数/表达式说明V1DC 12V输入电源B1VV(comp)*V(in)平均Buck开关节点输出受控电压L14.7µH输出电感C147µF, ESR5mΩ输出电容ESR用串联电阻表示Rload3.3Ω满载1ARtop31.25kΩ上分压电阻Rbot10kΩ下分压电阻VrefDC 0.8V参考电压B2I1m*(V(ref)-V(fb))OTA跨导级gm1mSR133kΩ补偿零点电阻C2470pF补偿积分电容/零点电容C322pF高频极点电容B3VV(comp)占空比映射1V100%反馈分压要算准Vout3.3VVref0.8V那么分压比是0.8/3.3。取Rbot10kΩRtop就应该是10k·(3.3-0.8)/0.831.25kΩ。这个值很关键算错了直流工作点就对不上整个AC分析会在错误的工作点上线性化。3.2 先跑一次直流工作点别急着上AC原理图放好之后第一件事不是AC分析而是跑一次工作点.op看几个关键节点是否正常。我期望看到的是V(out)3.3V左右V(fb)0.8V左右V(comp)在0.275V左右。为什么comp是0.275V因为在平均模型里稳态占空比等于Vout/Vin3.3/120.275而我们让V(comp)直接映射占空比所以comp自然稳定在0.275V。如果V(comp)不在这个范围检查OTA极性把V(ref)和V(fb)对调一下大概率就正常了。这个检查只需要10秒钟但能省下后面一小时的排查时间。3.3 AC仿真设置工作点正常之后添加AC分析指令.ac dec 20 10 1meg .options plotwinsize0频段从10Hz扫到1MHz每十倍频程20个点。plotwinsize0是为了让波形文件不压缩曲线更平滑频谱细节不丢失。到这里你已经有一个能正常工作的、可做AC分析的Buck环路仿真平台。接下来是这个流程里最有技术含量的一步怎么把波特图正确测出来。4. 在LTspice里测环路增益断点注入法实操搞过硬件环路测试的都知道实物上测环路增益需要环路注入变压器操作不当还会破坏电路工作点。LTspice里就省事多了但方法不对照样测出废数据。4.1 为什么不能直接测闭环传递函数有些新人偷懒直接看“输出到补偿器输出”的闭环传输特性那其实是闭环响应不是环路增益。真正的环路增益T(s)必须把反馈环路“打开”测开环条件下信号绕一圈的增益和相移然后再评估闭合后的稳定性。这就像测一个人的“反应速度”不能说“他自己走了一圈挺稳”就完事必须切掉反馈看绕一圈还剩多少余量。4.2 最简单的断点注入结构我这里用的方法是LTspice圈子里很常见的断点注入法。把补偿器输出节点comp和占空比映射源B3的输入节点pwm之间断开插入一个交流测试源同时并联一个超大电感保持直流工作点。具体操作把原来V(comp)直接驱动B3的连接断开在comp和pwm之间串联一个电压源VtestAC幅度设为1DC为0在Vtest两端并联一个大电感Lkeep1MegH这个1MegH电感的作用很鬼直流下电感阻抗为零comp和pwm依然直流连通工作点不受影响交流下电感阻抗极大在10Hz时就有62.8MΩ相当于测试源独立注入交流信号不影响环路的小信号路径。本质就是往环路里“塞”了一个只让交流通过、不让直流通过的缝隙。这也是实物注入变压器的原理只是仿真里用理想元件实现得更干净。4.3 画出环路增益曲线AC扫描跑完后在波形窗口添加表达式画环路增益TT -V(comp)/V(pwm)这里的负号对应负反馈方向。得到的幅度曲线就是环路增益的幅频特性相位曲线就是相频特性。右键Y轴可以改成dB显示更方便读数。我强烈建议把这组探针电压命名成好认的名字比如直接在原理图节点上加网络标号Vcomp和Vpwm免得后面曲线多了分不清哪个是哪个。如果相位曲线看起来“别扭”比如穿越频率附近相位不是从180°往下掉而是反着走先别慌把你的探针方向反过来用-V(pwm)/V(comp)多半就是符号问题。我最初做的时候也在这里绕了弯子。4.4 追求严谨的话可以上Middlebrook法断点注入法胜在简单直观但它严格来说只在“单向传输”假设成立时才完全精确。如果环路在两个方向上都有明显信号传输比如电流模式控制里某些情况断点注入法会有误差。LTspice社区里有个挺有名的方案叫Universal Loop Gain Probe来自Frank Wiedmann的设计用一对受控源在不破坏直流工作点的前提下做双向测量精度高很多。追求严谨的可以去搜一下原理图里加个probe子电路就能用。我的习惯是电压模式Buck用断点注入法足够遇到电流模式或跨导放大器输出阻抗不高的情况再用UTP核对一遍。5. 波特图读数和第一次调试实战波形出来后怎么判断系统稳不稳定两个核心指标穿越频率和相位裕度。5.1 从波特图里读稳定性指标穿越频率fc环路增益幅度降到0dB的频率代表系统闭环带宽决定了动态响应的快慢一般设计在开关频率的1/10~1/5。这里开关频率300kHz理论带宽30~60kHz但受限于右半平面零点实际设计在10~20kHz更稳妥相位裕度PM在穿越频率处相位曲线与-180°的差。PM越大稳定性越好一般要求至少45°最好能到60°左右增益裕度GM相位曲线到达-180°时增益距离0dB还有多少dB一般要求大于10dB相位裕度过低输出在负载突变时就会振铃甚至持续振荡相位裕度过高系统稳定但动态响应迟钝带宽浪费。5.2 第一版仿真相位裕度只有28°我用前面给的初始参数跑了一次R133kΩC2470pFC322pFgm1mS。波特图显示穿越频率在15kHz左右但相位裕度只有大约28°。为什么这么差零点虽然设计在10.3kHz理论上能抵消LC双极点的一个极点但问题出在那个Q10.4的谐振尖峰上。高Q双极点在10.7kHz附近不仅增益凸起相位下降也特别陡单靠一个10.3kHz的零点根本拉不住穿越频率处残留的相位拖累太多。这时候最直接的动作把零点往低频推让零点更早地“拉起来”给穿越频率附近留出更多相位余量。5.3 第一轮调整零点从10.3kHz挪到6kHz把R1从33kΩ改成56kΩC2保持470pF不变fz 1/(2π·56k·470p) ≈ 6.05kHzfp 1/(2π·56k·22p) ≈ 129kHz重新跑AC分析穿越频率移到13kHz左右相位裕度提升到约42°。有改善但还没到45°的目标线动态响应还是偏“脆”。继续调。5.4 第二轮调整再降零点同时微调积分电容这次把R1改成47kΩC2从470pF提高到680pFfz 1/(2π·47k·680p) ≈ 4.98kHzfp 1/(2π·47k·22p) ≈ 154kHz穿越频率约12kHz相位裕度到了51°增益裕度也大于15dB。这个状态就很舒服了带宽合适、相位余量充足、负载突变时的振铃收敛很快。参数调整过程整理成表格方便对比参数组合fzfp穿越频率相位裕度R133k, C2470p10.3kHz219kHz15kHz28°R156k, C2470p6.0kHz129kHz13kHz42°R147k, C2680p5.0kHz154kHz12kHz51°这个调试方向记住一句话零点往LC双极点左边挪相位裕度就往上走穿越频率往左挪稳定性提升但动态变慢。手动挨个试参数并不高级但能很直观地建立“哪个元件影响哪个频段”的感觉。5.5 额外心得gm对环路影响的位置很多人调环路只动RC忘了gm是个独立旋钮。gm增大整个中低频段增益成比例抬高穿越频率会右移可能就撞上更陡的相位区。gm减小则相反。所以如果不希望动零点位置而只想微调穿越频率先动gm比动R1更直接。比如这组参数想从穿越频率12kHz往回调一点把gm从1mS降到0.82mS就能把曲线整体压下去约1.7dB穿越频率左移相位裕度还能再涨一点。6. LTspice环路仿真的五个易翻车细节这部分的坑每一个我都踩过写出来给大家避避雷。有些问题不遇到想不到遇到了排查半天。6.1 直接对开关模型跑AC分析曲线看着正常其实全废前面原理部分说过AC分析基于直流工作点线性化对开关器件不成立。如果你强行对带开关管的Buck跑AC分析LTspice不报错还会给你画一条像模像样的曲线。但这根曲线和实际环路行为根本不是一回事。判断方法很简单把开关频率从300kHz改成200kHz或者400kHz如果波特图几乎不变那基本可以确定你测的是“假的”环路增益。真正的环路特性在低频段和开关频率关系不大但在高频段接近开关频率时会有明显差异。用平均模型就没有这个问题。6.2 OTA极性接反输出冲到轨B源表达式里ref和fb的顺序一旦接反负反馈变正反馈输出直接飙到0V或12V。仿真不报错只是“不工作”迷惑性很强。我的排查习惯是跑.op看V(comp)稳态值。正常应该等于稳态占空比0.275V前提是占空比映射1V对应100%。如果V(comp)顶着上限或下限把B2表达式里V(ref)和V(fb)对调再试。6.3 注入网络数值不够“极端”注入电感Lkeep和电容Cbig的取值很关键。Lkeep如果只用1mH在10Hz时阻抗才62.8mΩ等于是把测试源短路了低频段环路增益会严重偏低。我直接用1MegH让最低频10Hz时阻抗也有62.8MΩ远高于电路其他阻抗这样10Hz~1MHz整个频段都干净。电容同理如果测试源串电容注入Cbig要够大保证最低频时容抗接近短路。用1F这种夸张值在LTspice里完全没问题不会造成收敛困难别被常识里的“1F电容”吓到。6.4 波形窗口默认显示的是线性坐标LTspice跑AC分析后直接点节点看的是线性电压幅度不是dB。正确姿势是在波形窗口添加表达式dB(V(comp)/V(pwm))和phase(V(comp)/V(pwm))或者右键Y轴设置改成Logarithmic dB。不设dB你看到的中低频段一大截几乎都是平的根本判断不了0dB穿越点在哪里。这也是新手上手LTspice做环路最常见的困惑之一。6.5 瞬态波形起不来、报“Time step too small”如果后面做负载瞬态响应仿真遇到时间步长收敛问题先试试这两个手段.options plotwinsize0 .options maxstep100n还不行就给输出电容加初始条件.ic V(out)3.3或者改用uic启动瞬态分析。我的经验是平均Buck模型一般很好收敛真正难收敛的是你从别处copy来的带死区的开关模型。这里也多说一句LTspice的B源、G源表达式里电压乘法没有显式单位问题但如果你从其他仿真工具转过来要检查表达式里的单位缩放否则“1V·1V”会变成1V²在电路里直接导致量级错误。7. 从仿真到样机我用这招省下的最大一笔成本最后聊点实际的。有人觉得“仿真而已哪有上示波器实测靠谱”这话对了一半。实测当然不可替代但实测量环路有个很烦人的问题要在闭环反馈路径上开一个口子插注入变压器一旦开口位置选错、偏置没加对电路可能直接进入不稳定状态输出过压、烧负载都可能发生。仿真就不存在这个风险。我现在的习惯流程是先LTspice把平均模型、OTA补偿、环路增益整套跑一遍确认穿越频率和相位裕度合格再画板、再上电实测。实测环节用网分或注入变压器粗测一遍和仿真对得上就大胆去调负载突变波形。仿真和实测差距一般在20%以内如果差得离谱优先检查是不是ESR模型没对齐开关管死区时间、电流采样延迟这些二阶因素往往才是误差来源。这套流程最让我踏实的一点是它把“电源会不会振荡”这个问题从玄学变成了可计算、可仿真的工程问题。你不需要等板子回来、搭好测试台、冒着炸管风险去验证只要在LTspice里改几个电阻电容看相位裕度抬上来心里基本就有底了。如果哪天你手头那块Buck板子又开始无缘无故低频振荡别急着换电感先去LTspice把环路曲线拉出来看多半是相位裕度不够补一个零点就解决了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。