1. 开关电源环路补偿到底在补什么
搞电源的人多半有过这种经历:板子焊好了,上电也能跑,输出电压用万用表量着挺准,可一到负载跳变或者上电瞬间,输出就振铃、过冲,甚至直接啸叫。你换电容、加电感、改反馈电阻,折腾一圈,问题还在。这时候老工程师通常会丢下一句——“环路没调好”。
环路补偿这个词听起来玄,其实它要解决的问题非常具体:开关电源是一个闭环负反馈系统,反馈回路里如果相位裕度不够,系统就会振荡。你可以把它想象成开车时方向盘打过头——你看到车偏了往右打,结果打太多,车又往左偏,你再往左打,来回修正,车身就开始画龙。环路补偿就是给你的“打方向盘”加一个阻尼,让你修正误差的时候不会矫枉过正。
那为什么很多人觉得环路补偿是玄学?因为教科书上给的是伯德图、传递函数、零极点,一堆复频域的东西。实际调试的时候你手里只有示波器和烙铁,没法直接看到相位曲线。所以大部分人的做法是“试”——电容从100pF换到1nF,电阻从10k换到100k,碰运气。运气好就稳了,运气不好就炸管。
我这次拿TI的TPS5430做例子,把整个环路补偿的过程拆成六步。TPS5430是一颗很经典的3A降压芯片,输入5.5V到36V,开关频率500kHz,内部集成了MOSFET,外围元件少,很适合拿来做教学案例。你跟着这六步走一遍,以后再遇到其他Buck芯片,思路是一样的。
注意:环路补偿的前提是功率级参数已经确定——电感、输出电容、输入输出条件都定下来了。如果这些还在变,先别碰补偿网络,否则调好了也会因为功率级变化而失效。
2. 先搞懂TPS5430的功率级长什么样
2.1 从芯片手册里挖出关键参数
调环路的第一步不是动烙铁,是翻手册。TPS5430的datasheet里有一张典型应用电路图,你需要从里面提取几个核心参数:
- 开关频率 fsw:TPS5430固定500kHz,这个决定了你的补偿网络带宽上限。
- 内部参考电压 Vref:1.221V,反馈分压电阻就是围绕这个值算的。
- 误差放大器跨导 gm:TPS5430的误差放大器是跨导型,典型值97μA/V,这个参数直接决定补偿网络的增益。
- 功率级直流增益:跟输入电压、电感、输出电容的ESR都有关系。
很多人调环路失败,第一步就错了——拿一个自己算的开关频率去设计,结果芯片实际跑的不是那个频率。TPS5430虽然标称500kHz,但不同负载条件下会有轻微偏移,设计时留10%余量。
2.2 功率级传递函数的物理意义
Buck电路的功率级传递函数,说白了就是“占空比变化到输出电压变化”的数学描述。它有两个关键特征:
第一个是LC双重极点。电感和输出电容构成一个二阶低通滤波器,在某个频率上会产生-180度的相位跌落。这个频率叫LC谐振频率:
f_LC = 1 / (2π√(L×C_out))
以TPS5430典型应用为例,L=15μH,C_out=220μF,算下来f_LC大约2.77kHz。在这个频率附近,相位急剧下降,如果补偿网络不在这里把相位抬起来,系统必振。
第二个是输出电容ESR带来的零点。电解电容或者钽电容都有等效串联电阻,这个电阻和电容本身形成一个零点:
f_ESR = 1 / (2π×ESR×C_out)
假设ESR=50mΩ,C_out=220μF,f_ESR大约14.5kHz。这个零点会把相位往上抬,对稳定性有利,但同时也让高频增益不再下降,容易引入噪声。
实操心得:如果你用的是陶瓷电容,ESR极小,f_ESR会跑到几百kHz,基本可以忽略。但陶瓷电容的容值随直流偏压衰减严重,标称22μF的电容在12V偏压下可能只剩8μF,算f_LC的时候要用实际容值,不是标称值。
2.3 为什么不能只看幅频特性
新手最容易犯的错是只看增益曲线,觉得“增益降到0dB就行了”。但相位才是决定稳定性的关键。一个系统即使增益在0dB时是-179度相位,理论上还没振荡,但实际上温度一变、负载一跳就振了。工程上要求相位裕度至少45度,最好60度以上。
相位裕度的定义是:在增益穿越0dB的频率点上,相位距离-180度还有多少余量。比如穿越频率处相位是-120度,那相位裕度就是60度。这个60度就是你的“安全垫”。
3. 六步法拆解:从零设计补偿网络
3.1 第一步:确定穿越频率目标
穿越频率(也叫交越频率)是增益曲线穿过0dB的那个点。这个频率选多高,直接决定系统的响应速度。
选太高:响应快,但相位裕度不够,容易振。 选太低:稳定,但负载跳变时恢复慢,输出电压跌落大。
经验法则:穿越频率取开关频率的1/10到1/20。TPS5430开关频率500kHz,穿越频率就定在25kHz到50kHz之间。我一般先取1/10,也就是50kHz,然后根据相位裕度再往下调。
为什么不能超过1/10?因为开关电源在开关频率处有开关纹波,如果穿越频率太接近开关频率,补偿网络会把开关噪声也放大,输出纹波反而变大。而且在高频段,功率级的模型已经不准了,寄生参数开始主导,你算的传递函数和实际对不上。
3.2 第二步:计算功率级在穿越频率处的增益
这一步需要你把功率级的传递函数在目标穿越频率处算出来。对于Buck电路,功率级直流增益近似为:
G_dc = V_in / V_ramp
TPS5430内部斜坡电压V_ramp典型值1.0V左右(具体看手册),如果V_in=12V,那G_dc就是12,换算成dB是21.6dB。
然后考虑LC双重极点在穿越频率处的衰减。在f_LC之后,增益以-40dB/dec滚降。从f_LC到目标穿越频率f_c,衰减量为:
ΔG = -40 × log10(f_c / f_LC)
假设f_LC=2.77kHz,f_c=50kHz,log10(50/2.77)=1.26,衰减就是-50.4dB。
所以功率级在50kHz处的增益大约是21.6 - 50.4 = -28.8dB。
这意味着补偿网络需要在50kHz处提供+28.8dB的增益,才能让总环路增益在50kHz处穿越0dB。
3.3 第三步:选择补偿网络类型
TPS5430的误差放大器是跨导型,输出阻抗高,所以补偿网络是接在COMP引脚到地之间的串联RC网络。常见的有三种:
Type II补偿:一个电阻串联一个电容,再并联一个电容到地。产生一个零点和一个极点。适合大多数电流模式或者带ESR零点的电压模式Buck。
Type III补偿:两个零点、两个极点。适合LC双重极点且ESR零点在高频的情况,比如全陶瓷电容输出。
TPS5430内部是电压模式控制,LC双重极点需要抬相位,如果输出电容是电解电容,ESR零点能帮上忙,用Type II就够了。如果是陶瓷电容,ESR零点跑到几百kHz,帮不上忙,就得用Type III。
我这次用220μF电解电容,ESR零点在14.5kHz,离50kHz不远,Type II够用。
3.4 第四步:计算补偿网络元件值
Type II补偿网络的传递函数是:
G_c(s) = gm × (1 + s×R_c×C_c) / (s×(C_c + C_p) × (1 + s×R_c×C_c×C_p/(C_c+C_p)))
其中gm是误差放大器跨导,R_c和C_c是串联的电阻电容,C_p是并联的电容。
设计步骤:
先放零点:把补偿零点放在LC谐振频率附近,用来抵消LC双重极点带来的相位跌落。f_z = f_LC = 2.77kHz。
再放极点:把补偿极点放在ESR零点附近或者开关频率的一半,用来衰减高频噪声。f_p = f_ESR = 14.5kHz,或者取fsw/2=250kHz。
算增益:在穿越频率处,补偿网络的增益要等于功率级衰减的倒数。前面算出来需要+28.8dB,换算成倍数是27.5倍。
对于跨导型误差放大器,补偿网络在穿越频率处的增益近似为:
G_c(f_c) = gm × R_c
所以R_c = 27.5 / 97μA/V ≈ 283kΩ。取标准值270kΩ。
然后根据零点频率算C_c:
C_c = 1 / (2π×f_z×R_c) = 1 / (2π×2.77kHz×270kΩ) ≈ 213pF。取220pF。
根据极点频率算C_p:
C_p = 1 / (2π×f_p×R_c) = 1 / (2π×14.5kHz×270kΩ) ≈ 40pF。取47pF。
3.5 第五步:实际电路搭接与上电测试
算出来的值只是起点,实际电路里寄生参数、元件容差都会让结果偏离。所以必须上电测。
测试方法:
- 给输出加一个负载跳变,比如从空载跳到2A,看输出电压的过冲和恢复时间。
- 用示波器看COMP引脚的波形,如果COMP电压在跳变时剧烈振荡,说明相位裕度不够。
- 更专业的做法是用环路分析仪测伯德图,但大多数小公司没这个设备。可以用信号注入法,在反馈分压电阻上串一个小电阻,注入扫频信号,用示波器看增益和相位。
我实测下来,用270kΩ+220pF+47pF这组值,负载跳变时输出过冲大约80mV,恢复时间200μs,COMP波形干净,没有振荡。
3.6 第六步:根据实测结果微调
如果测出来相位裕度不够,表现为过冲大、振铃多,可以这样调:
- 降低穿越频率:把R_c减小,整体增益下降,穿越频率往低频移,相位裕度改善。
- 零点往低频移:增大C_c,零点频率降低,更早抬相位。
- 极点往高频移:减小C_p,极点频率升高,高频衰减减弱,但可能引入噪声。
如果测出来响应太慢,负载跳变时电压跌落大,可以反过来:增大R_c提高穿越频率,减小C_c把零点往高频移。
注意:每次只调一个参数,调完测一次。同时改两个参数,你分不清是哪个起了作用。
4. 实测波形分析与问题排查
4.1 负载跳变波形的三种典型形态
形态一:干净利落。输出电压跳变后快速恢复,过冲小,没有振铃。这是相位裕度60度以上的表现。
形态二:有振铃但收敛。过冲后有几个周期的振铃,然后稳定。相位裕度大约30到45度。能用,但温度变化或者负载范围扩大后可能出问题。
形态三:持续振荡。输出电压在跳变后一直振,不收敛。相位裕度接近0度,系统处于临界稳定。必须重新调补偿。
我第一版用220pF+47pF的时候,波形是形态二,振铃大约3个周期。把C_c加到470pF,零点往低频移,振铃消失,变成形态一。
4.2 COMP引脚波形告诉你的事
COMP引脚是误差放大器的输出,它的波形直接反映环路状态。
- COMP电压平稳:环路稳定,补偿到位。
- COMP电压有低频振荡:相位裕度不够,需要降穿越频率或者移零点。
- COMP电压有高频毛刺:可能是开关噪声耦合进来了,检查PCB布局,COMP引脚的走线要远离SW节点。
我遇到过COMP引脚上叠加了开关频率的毛刺,后来发现是COMP引脚的滤波电容地线太长,重新布局后毛刺消失。
4.3 常见问题速查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 输出持续振荡 | 相位裕度不足 | 降低穿越频率,增大C_c |
| 负载跳变过冲大 | 穿越频率太低 | 增大R_c,减小C_c |
| COMP引脚有开关毛刺 | PCB布局差 | COMP走线远离SW节点,缩短地线 |
| 轻载时振荡 | 进入DCM模式 | 降低穿越频率,或加假负载 |
| 高温时振荡 | 电容容值漂移 | 用温度系数好的电容,留更大裕量 |
| 上电瞬间过冲 | 软启动不足 | 增大SS电容,或降低穿越频率 |
4.4 一个容易被忽略的坑:反馈分压电阻的影响
反馈分压电阻不仅决定输出电压,还影响环路增益。分压比越大,反馈到误差放大器的电压越小,等效环路增益越低。
TPS5430的反馈参考电压是1.221V。如果输出5V,分压电阻取10kΩ和3.24kΩ,分压比是0.244。如果换成100kΩ和32.4kΩ,分压比一样,但电阻大了,误差放大器的输入偏置电流会在电阻上产生压降,导致输出电压偏差。
更关键的是,分压电阻和补偿网络一起构成环路的一部分。如果你改了分压电阻,补偿网络也要重新算。我见过有人换了分压电阻后输出电压准了,但环路振了,就是因为没重新调补偿。
5. 从TPS5430延伸到其他Buck芯片
5.1 电流模式与电压模式的区别
TPS5430是电压模式,功率级有LC双重极点,需要Type II或Type III补偿。如果是电流模式芯片,比如TPS54360,电感电流内环把LC双重极点变成了单极点,补偿网络简单很多,Type II甚至Type I就够了。
电流模式的优点是环路好调,缺点是抗噪能力差,需要斜坡补偿。电压模式的优点是抗噪好,缺点是环路复杂。选芯片的时候要根据应用场景权衡。
5.2 同步Buck与异步Buck的环路差异
异步Buck用续流二极管,轻载时进入DCM模式,功率级传递函数会变,环路增益下降。同步Buck用下管MOSFET续流,轻载时可以强制CCM,环路更稳定。
TPS5430是异步Buck,所以轻载时要注意。如果应用要求全负载范围稳定,要么加假负载,要么选同步Buck芯片。
5.3 用LTspice仿真验证补偿网络
在动手焊板子之前,可以用LTspice跑一遍仿真。把功率级和补偿网络的传递函数搭出来,看伯德图。虽然仿真模型和实际有差距,但至少能验证零点极点放的位置对不对。
LTspice里有TI的SPICE模型,可以直接导入TPS5430。仿真的时候注意把ESR和电容的直流偏压特性加进去,否则仿真结果偏乐观。
6. 环路补偿的几条硬核经验
6.1 相位裕度不是越高越好
相位裕度60度是甜点,但如果你调到90度,系统会变得很慢,负载跳变时恢复时间很长。响应速度和稳定性是一对矛盾,要根据应用需求找平衡。
比如给CPU供电的Buck,负载跳变快,要求响应快,相位裕度可以放到45度。给模拟电路供电的Buck,负载稳定,相位裕度可以放到70度以上,牺牲速度换稳定。
6.2 电容的直流偏压效应会骗你
陶瓷电容标称22μF,在12V偏压下可能只剩8μF。如果你按22μF算f_LC,实际f_LC会跑到更高频率,补偿零点就放错了位置。
解决办法:要么用大容值降额使用,要么用电解电容,要么在仿真里加偏压模型。我一般用陶瓷电容的时候,实际容值按标称的50%算,留足裕量。
6.3 PCB布局对环路的影响比你想的大
COMP引脚是高阻抗节点,很容易被干扰。走线要短,地线要干净,远离SW节点和电感。
反馈分压电阻要靠近FB引脚,走线远离SW节点。输出电容要靠近电感,减小高频环路面积。
我遇到过一块板子,补偿网络算得没问题,但输出就是有低频振荡。后来发现是COMP引脚的走线从SW节点下面穿过,耦合了开关噪声。重新布局后问题解决。
6.4 温度变化会让补偿失效
电解电容的ESR随温度变化很大,-40度时ESR可能是25度时的10倍。ESR零点频率会大幅移动,相位裕度跟着变。
如果产品要在宽温范围工作,补偿网络要按最差条件设计。比如ESR零点在低温时跑到低频,可能和LC双重极点靠太近,相位跌落叠加,导致振荡。
我一般会在高低温箱里测一遍,确认全温范围都稳定。
6.5 别忽略输入电压的影响
功率级直流增益和输入电压成正比。输入电压从12V变到24V,增益翻倍,穿越频率也会变。如果应用要求宽输入范围,补偿网络要按最高输入电压设计,保证高输入时相位裕度够。
TPS5430的输入范围5.5V到36V,跨度很大。我实测12V调好的补偿,换到24V输入时穿越频率升高,相位裕度下降。后来把R_c减小,牺牲一点响应速度,换全输入范围稳定。
7. 写在最后
环路补偿这件事,说难也难,说简单也简单。难在理论复杂,简单在只要掌握了几个关键点,剩下的就是按步骤算、按步骤测、按步骤调。
我自己的经验是:先算再测,测完再调,每次只动一个参数。算出来的值给你一个起点,实测告诉你方向,微调让你找到甜点。
TPS5430这颗芯片我用了很多年,它的补偿网络算是比较典型的电压模式Buck。你把这颗芯片的环路调明白了,换其他Buck芯片,无非是参数不同,思路是一样的。
最后分享一个小技巧:如果你手头没有环路分析仪,可以用信号发生器加示波器做简易的环路测试。在反馈分压电阻上串一个50Ω电阻,信号发生器通过这个电阻注入扫频信号,示波器同时看注入点和输出点,手动扫频,记录增益和相位。虽然麻烦,但比盲调靠谱得多。