ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

平均电流控制BUCK变换器环路补偿设计:从建模到实测

2026/10/5 11:14:33 拓冰建站 浏览量
平均电流控制BUCK变换器环路补偿设计:从建模到实测 做开关电源设计这几年环路补偿一直是我觉得最“玄学”的部分尤其是平均电流控制模式的BUCK变换器。很多人画好了功率级原理图PCB也回来了结果一上电输出电压震荡或者动态响应稀烂最后全卡在环路调试上。我自己也在这个坑里爬过不少次从最初靠“试凑法”反复换RC到后来老老实实推导小信号模型、按步骤设计补偿网络走了不少弯路。这篇就把我实际做平均电流控制模式BUCK环路设计的完整思路写出来包括原理、计算过程、仿真验证和实测中踩过的坑给同样在做这个的朋友一个参考。1. 平均电流控制模式BUCK变换器它到底是什么凭什么选它1.1 三种常见控制模式的基本对比BUCK变换器的控制方式工程上用得最多的就是电压模式、峰值电流模式和平均电流模式这三种。电压模式只有一条电压外环结构最简单但响应慢而且输入电压变化时相位滞后明显峰值电流模式加了电流内环动态响应好但有个天生的毛病——占空比超过50%时容易出现次谐波振荡需要额外加斜坡补偿而且峰值电流对噪声比较敏感抗干扰能力弱一些。平均电流控制模式则是在电流内环里对电感电流做“平均值”控制而不是峰值。它的电流环增益带宽可以做得很高输出电流纹波抑制能力强抗噪声性能也远好于峰值电流模式。最关键的是平均电流模式天然没有次谐波振荡问题占空比可以平滑越过50%非常适合宽输入电压范围、大动态响应的应用场景。我在做服务器电源、通信电源这类对动态响应要求高的模块时更倾向于选平均电流控制模式。1.2 平均电流控制的环路结构拆解整体来看平均电流控制BUCK变换器包含两个环路内环是电流环外环是电压环。电压外环采样输出电压经过误差放大器后产生电流基准信号电流内环采样电感电流与电压环给出的电流基准作比较经过电流误差放大器后生成PWM调制信号再由PWM比较器控制功率管的开关。从控制理论角度看电流内环实际上把功率级的电感“变”成了一个受控电流源这样电压外环面对的就不再是带有LC双极点特性的功率级而是一个近似单极点的对象。这个特性非常重要它直接降低了电压环补偿的难度让带宽和相位裕量更容易兼顾。这是平均电流控制模式在环路设计上最大的优势——把二阶系统退化成一阶近似系统补偿网络用简单的PI或Type II就能获得很好的稳定性。2. 平均电流控制BUCK的小信号建模与传递函数推导2.1 为什么必须花时间做小信号建模很多人会问做环路设计一定要建模吗我直接扫环路不行吗我的经验是可以扫但你必须先建模。因为网络分析仪只能告诉你“哪里不稳定”没办法直接告诉你“该往哪个方向补偿”。只有建立小信号模型你才能算出主功率级的零极点位置才能有的放矢地设计补偿网络的零极点去对消它们。平均电流控制BUCK的小信号建模主流方法是开关平均法State-Space Averaging。它的核心思想是在一个开关周期内用状态变量的平均值去替代瞬时值从而把非线性、时变的开关电路等效成一个连续、线性的时不变电路再在直流工作点附近做小信号线性化得到传递函数。2.2 CCM模式下BUCK功率级的控制到输出传递函数先明确前提以下推导均针对电感电流连续模式CCM。如果负载极轻进入DCM传递函数会变化环路特性也会变这个后面在问题排查部分再讨论。BUCK变换器在CCM下的控制到输出传递函数即占空比到输出电压的传递函数表达式为Gvd(s) VIN × (1 s/(2π·fZ_ESR)) / (1 s/(2π·fP_LC·Q) s²/(2π·fP_LC)²)其中fP_LC 1 / (2π·√(L·C))是LC滤波器的双极点频率fZ_ESR 1 / (2π·C·ESR)是输出电容ESR引入的零点频率Q R·√(C/L)是LC双极点的品质因数从这个表达式可以看出功率级的低频增益由VIN决定中频段以-40dB/dec斜率下降直到ESR零点之后恢复为-20dB/dec。如果直接在这个对象上做电压环补偿你就必须在LC双极点附近想方设法提高相位用Type III补偿器配置两个零点一个极点去对消难度和工作量都比较大。2.3 平均电流控制下的电流环等效模型平均电流控制的关键在于电流内环的建模。电流环的功率级对象是从占空比到电感电流的传递函数即Gid(s) iL(s) / d(s)推导过程略去中间步骤直接给出CCM下的简化结论Gid(s) ≈ VIN / (R·(1 s/(2π·fP_LC·Q) s²/(2π·fP_LC)²)) × (1 s·R·C·(1 ESR/R))这个传递函数里有一个位于右半平面的零点频率为fRHPZ R·(1-D)² / (2π·L)RHP零点会带来相位滞后是升压和升降压拓扑的主要设计难点。但BUCK拓扑的优势在于它没有RHP零点这就让BUCK的平均电流控制环路设计比升压要简单得多电流环可以设计得很宽。电流环的开环传递函数还包括PWM调制器和电流采样网络的增益。PWM调制器增益通常为FPWM(s) 1 / Vramp其中Vramp是PWM比较器锯齿波的峰峰值。电流采样网络的增益由采样电阻Rsense和电流放大器增益共同决定记为Rs。综合下来电流环开环传递函数可以写成Ti(s) GMOD × Rs × GEA_i(s) × Gid(s) × Hc(s)其中GMOD 1/VrampGEA_i(s)是电流误差放大器的补偿网络Hc(s)是电流采样滤波引入的高频衰减。设计时我们先确定功率级和采样增益再选择合适的电流补偿网络GEA_i(s)使Ti(s)的穿越频率落在合适位置同时保证足够的相位裕量。2.4 电流环补偿的目标电流内环的设计目标是让电感电流快速、准确地跟踪电流基准。为实现这个目标需要电流环的穿越频率足够高一般取开关频率的1/10到1/5左右。对于开关频率为200kHz的BUCK电流环穿越频率可以设计在20kHz到40kHz。同时电流环的直流增益要足够大这样才能保证平均电流跟踪的精度——即稳态时电感电流平均值与基准之间的误差足够小。电流环的相位裕量一般也要求大于45°避免动态过程中电流环自身发生振荡。3. 平均电流控制BUCK环路设计的实操步骤与计算过程3.1 明确设计规格和边界条件环路设计不能拍脑袋第一步是明确所有边界条件。我以一个实际做过的项目为例规格如下输入电压范围VIN 36V~72V典型48V输出电压VOUT 12V最大输出电流IOUT 10A开关频率fSW 200kHz电感L 22µH饱和电流大于15A输出电容C 100µFESR 5mΩ采样电阻Rsense 10mΩPWM锯齿波峰峰值Vramp 2V在设计补偿网络前先计算一些基准参数。最大占空比Dmax VOUT/VIN_min 12/36 0.333最小占空比Dmin VOUT/VIN_max 12/72 0.167。LC双极点频率fP_LC 1/(2π√(22µH × 100µF)) ≈ 3.4kHz。ESR零点频率fZ_ESR 1/(2π × 100µF × 5mΩ) ≈ 318kHz这个零点远远高于LC双极点频率所以它对穿越频率附近的相位提升作用有限在电流环设计时需要特别留意。3.2 电流内环设计补偿网络计算电流环的开环传递函数已经给出现在需要设计电流误差放大器的补偿网络。平均电流控制中电流误差放大器通常采用高增益宽带放大器配合一个PI或Type II补偿网络。我先设计电流环穿越频率。取fci fSW/10 20kHz。在20kHz处功率级Gid(s)的增益可以从波特图读取或计算。在LC双极点之后Gid(s)以约-40dB/dec斜率下降在20kHz处的增益大约为-6dB左右继续推。此时需要电流补偿网络在20kHz处提供约6dB增益使环路增益为0dB同时补偿LC双极点引入的相位滞后。电流环采用Type II补偿其传递函数为GEA_i(s) GA_i × (1 s/(2π·fZ_i)) / (s/(2π·fP_i))其中GA_i是低频增益fZ_i是补偿零点fP_i是补偿极点。补偿零点放在LC双极点附近用于对消其相位滞后即fZ_i ≈ fP_LC ≈ 3.4kHz。补偿极点放在开关频率附近或稍低用于抑制高频噪声取fP_i 60kHz。代入计算后电流环穿越频率约20kHz相位裕量约55°满足稳定性要求。电感电流波形实测能很好地跟踪电流基准动态过程无振荡。3.3 电压外环设计从受控电流源到电压环电流内环设计完成后电压外环面对的对象就简单了。从电流内环的输入端电流基准到输出电压的传递函数近似为Gvi(s) VOUT / ILOAD × 1 / (1 s/(2π·fP_out))其中fP_out 1/(2π·RLOAD·C)是一个由负载电阻和输出电容决定的极点。在满载10A、12V输出时RLOAD 1.2ΩfP_out ≈ 1.3kHz。在轻载时这个极点会向低频移动例如1A负载时RLOAD 12ΩfP_out ≈ 130Hz。所以电压环的对象特性随负载变化很大补偿网络必须保证在整个负载范围内都稳定。电压环的穿越频率fvc一般取电流环穿越频率的1/10到1/5这里取fvc 4kHz。电压误差放大器同样采用Type II补偿补偿零点放在输出极点附近用于对消它带来的相位滞后。考虑到轻载时输出极点会降低我习惯把补偿零点放在最低输出极点附近保证轻载下充足的相位裕量。3.4 电压环补偿网络的元件参数计算电压环补偿网络采用运放加RC的形式传递函数为GEA_v(s) (1 s·R2·C1) / (s·R1·(C1 C2)·(1 s·R2·C2))其中R1是上拉电阻R2和C1构成零点C2构成高频极点。取R1 10kΩ设计穿越频率4kHz相位裕量60°经过计算得到R2 ≈ 45kΩC1 ≈ 1.1nFC2 ≈ 47pF。这里我特别强调一点理论计算给出的R2、C1、C2值只是起点最终必须通过实际环路扫频测试微调。因为PCB寄生参数、运放带宽限制、采样电阻误差都会影响实际环路增益实测值和计算值通常会有10%~30%的偏差。我的习惯是先按计算值焊接实测后根据增益裕量和相位裕量微调一般调一两轮就能收敛。3.5 电流采样滤波和斜坡补偿的必要性平均电流控制模式下电感电流采样信号需要有足够的幅值和信噪比否则电流环在轻载或小电流纹波时会出现抖动。解决方法是适当调整采样电阻位置或者在电流放大器和PWM比较器之间加入一个高频滤波RC截止频率放在开关频率附近典型值取100kHz~500kHz。我在200kHz开关频率的BUCK上通常取150kHz的采样滤波截止频率实测对PWM调制噪声的抑制效果很明显。另外平均电流控制虽然不像峰值电流模式那样必须斜坡补偿才能稳定但是如果电流环增益过高PWM比较器附近的高频噪声被放大后也可能在开关切换沿产生误触发。这种情况下可以稍微增加一点斜坡补偿或减小电流环带宽优先减小带宽副作用更小。4. 仿真是怎么帮我省掉三轮打板的4.1 环路仿真工具与建模要点环路设计过程中仿真验证是必不可少的一环。我用过的工具有PSIM、SIMPLIS和LTspice各有侧重。PSIM和SIMPLIS对开关电源环路仿真支持非常好能够直接用平均模型或周期平均模型跑环路波特图速度快精度也够工程使用。LTspice胜在免费且模型库丰富但需要自己搭平均模型或进行复杂的AC扫描配置门槛高一些。做环路仿真时最容易犯的错误是直接跑瞬态仿真看输出波形是否稳定然后凭感觉判断好坏。正确做法是用AC分析跑环路增益Bode图直接看穿越频率和相位裕量。PSIM里可以用“环路增益测量”功能在环路中某一点注入小信号扰动软件直接计算出开环传递函数。SIMPLIS也可以做类似操作而且SIMPLIS的周期平均模型能模拟实际开关过程精度更接近实测。4.2 从仿真曲线读出的关键信息我在仿真中看到的一条典型电流环开环增益曲线是这样的低频段增益很高大约60dB以上保证电流跟踪精度然后以-20dB/dec斜率下降在20kHz处穿越0dB穿越频率附近相位裕量约55°整个曲线在穿越频率之后继续下降高频没有尖峰。这样的电流环设计就是健康的。电压环仿真中我最关心的是不同负载条件下的相位裕量变化。满载时相位裕量约65°半载约58°轻载约50°整体都在45°以上说明环路在全负载范围内都能稳定。如果发现轻载裕量低于40°我就会把电压环补偿零点往低频方向移动一些牺牲一点满载带宽换取全范围的稳定性。4.3 瞬态仿真验证动态响应除了AC分析我还会跑负载阶跃瞬态仿真评估动态响应性能。具体做法是让负载在1A和10A之间以1A/µs的速率跳变观察输出电压的过冲和下冲幅度以及恢复时间。实测下来带宽4kHz的电压环对的负载阶跃响应恢复时间大约在50µs左右过冲约200mV符合设计要求。如果过冲偏大可以适当提高电压环带宽或增加输出电容如果恢复时间偏长说明补偿零点位置可能需要调整。但注意盲目提高带宽会减少相位裕量增加不稳定风险要权衡着改。5. 实测验证用网络分析仪给真实环路“拍CT”5.1 实测工具与接线方式仿真做得再漂亮也替代不了实测。环路实测的主流工具是频率响应分析仪FRA比如Venable、AP300、OMICRON等国内也有不少性价比高的国产FRA。如果没有专用FRA也可以用信号发生器和示波器做简易扫频但精度和动态范围差一些只作为定性参考。实测时需要断开反馈环路在环路中注入一个小幅度的正弦扰动信号。常见的注入点有两个一个是在输出电压反馈电阻分压器的上端另一个是在误差放大器的输出端。我在BUCK变换器上习惯从反馈分压网络处注入即断开反馈电阻与输出电压的连接串入一个5Ω~50Ω的注入电阻FRA的CH1接注入前CH2接注入后通过两个通道的比值得到环路增益。这里有一个关键细节注入信号幅度不能太大否则会使电路进入非线性区测出来的增益曲线会失真但也不能太小否则信噪比不足。一般从10mV起步根据实际情况调整我通常用20mV~50mV的注入幅度。5.2 实测中看到的现象与调试方向实测得到的环路增益曲线通常和仿真曲线有出入主要差别在于高频段。仿真里理想的运放模型在高频段是平的而实际运放带宽有限高频增益会滚降导致实测的高频相位比仿真更低。这就要求在设计时留够相位余量不能卡着45°设计我一般按60°左右做目标。另外PCB布局对实测影响非常大。功率地和信号地如果没分开开关噪声会耦合进反馈环路使扫频结果在高频段出现毛刺严重时甚至使相位曲线出现异常凸起。遇到这种情况不要急着改补偿先把布局优化好再测一遍环路。5.3 一个实测实例的调试全过程我之前调试一个48V输入、12V输出的BUCK第一版按计算值焊接完补偿网络后实测发现电压环穿越频率只有2kHz比设计的4kHz低不少相位裕量也只剩38°明显不够。排查下来发现是反馈分压电阻的取值偏大导致引入的极点使环路相位提前衰减。我把R1从20kΩ改成10kΩ重新计算补偿参数后实测穿越频率回升到3.8kHz相位裕量提升到58°问题解决。类似这种“理论计算偏差”在实际调试中非常常见不必恐慌关键掌握调试方向增益不够就加大补偿网络增益相位不够就移动补偿零点或降低穿越频率高频噪声大就加强采样滤波或改善布局。6. 常见问题排查与设计避坑技巧6.1 问题速查表现象、原因、对策做环路设计最怕的不是犯错而是犯错之后不知道往哪个方向排查。我把这些年遇到的高频问题整理成一个速查表按“现象→可能原因→解决对策”的格式列出来方便大家参照。现象可能原因解决对策输出电压低频振荡示波器可见明显正弦波动电压环相位裕量不足降低电压环穿越频率或把补偿零点往低频移动轻载振荡、重载稳定轻载时输出极点向低频移动补偿零点不匹配补偿零点按最低负载条件设置或用Type III补偿器增加零点负载阶跃时恢复时间过长电压环带宽太低提高穿越频率但需保证相位裕量开关频率附近出现高频抖振电流环带宽过高或采样滤波不足降低电流环带宽增加采样滤波电容输出纹波大但环路扫频正常输出电容ESR过大或采样回路受开关噪声干扰改用低ESR电容优化采样走线启动时输出电压过冲软启动时间过短或电压误差放大器饱和增加软启动电容检查运放供电和输出范围6.2 平均电流控制DCM模式下的特殊处理当BUCK变换器进入DCM模式时控制到输出的传递函数会发生变化。DCM下功率级不再有LC双极点而是变成一个单极点系统且增益随负载变化。如果设计时只考虑了CCMDCM下可能出现环路不稳定或动态响应变差。应对策略有两种一种是让变换器在最低负载时仍然保持CCM即保证电感电流纹波小于两倍最小负载电流通过增大电感来实现另一种是在轻载时切换控制策略比如进入突发模式或跳周期模式。对于平均电流控制我倾向于选择增大电感值来保证全负载范围CCM因为这样环路设计只需要考虑CCM下的模型大幅简化设计复杂度。6.3 运放选型与补偿网络的实现细节电流误差放大器和电压误差放大器的选型直接影响环路性能。电流误差放大器要求带宽高、压摆率大、失调电压小推荐选用单位增益带宽在10MHz以上的运放。电压误差放大器因为工作带宽较低选择低偏置电流、低噪声的精密运放即可。补偿网络中电容的选取也需要注意。C1通常采用C0G或NPO材质电容温漂小容值稳定C2一般很小几十皮法量级用C0G材质即可。电阻选择1%精度金属膜电阻即可满足要求但不建议使用绕线电阻其寄生电感在高频段会影响补偿网络特性。PCB布局上补偿网络应紧靠运放引脚走线尽量短采样电阻应采用开尔文接法直接连到电流放大器输入反馈分压电阻的接地点应在负载输出电容的接地点避免功率地和信号地混淆引入干扰。6.4 关于“理想运放”与“实际运放”差距的两个提醒第一运放的输出摆幅有限。误差放大器的输出在极端负载下可能接近电源轨这时候环路增益会下降甚至进入非线性区。设计时要注意运放输出电压范围与PWM比较器输入范围匹配一般会让误差放大器输出工作范围的中间区域留有余量。第二运放的带宽会影响高频相位。我在设计中使用的是理想运放模型但实际运放高频段相移明显尤其当穿越频率超过运放单位增益带宽的1/10时相位衰减就很可观了。所以做平均电流控制BUCK时开关频率在200kHz级别运放带宽最好选10MHz以上。7. 写在后面的几条个人心得做平均电流控制BUCK环路设计这么久我最大的体会是环路设计不是一个“算完就完”的静态过程而是一个“建模→计算→仿真→实测→修正”的迭代过程。理论计算给出的是起点和方向仿真帮你排除明显错误实测才是最终裁判。三者缺一不可很多新人以为会算传递函数就会做环路了结果一上实测全崩就是因为缺少仿真和实测的迭代打磨。另外一点环路的稳定性和动态性能是一对天然矛盾。想要响应快带宽就得高但带宽高了相位裕量就降抗噪声能力也变弱。工程上不是追求某一项指标极致而是要在稳定性、动态、噪声之间找到平衡点。这些年我习惯的做法是先按理论值设计再在实测中留出充足的裕量最后根据系统实际需求去微调带宽这样最稳。如果在做的过程中遇到具体问题比如补偿参数计算拿不准、实测曲线看不懂欢迎下来交流。我也打算后续把峰值电流模式BUCK和升压变换器的环路设计一并梳理出来那两种拓扑各有各的坑尤其升压的RHP零点问题值得单独写一篇细聊。