ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Buck环路补偿实战:从相位裕度到Type II/III补偿器设计

Buck环路补偿实战:从相位裕度到Type II/III补偿器设计 第一次调Buck的环路我就栽了个跟头。板子能出3.3V空载纹波看着也还行结果电子负载一加上去输出像打摆子一样一抽一抽还带着高频啸叫。老工程师过来扫了一眼说“环路补偿相位裕度不够”然后甩给我一本应用手册。问题是我连“相位裕度”在示波器上长什么样都不知道更别说Type II/III补偿器该怎么选、电阻电容怎么算了。这篇文章就是写给当时的我从Buck电路为什么需要环路补偿讲起把Type II和Type III补偿器的原理、零极点作用、参数计算、仿真验证完整过一遍最后附上一次完整的12V转3.3V算例。你不用会推导传递函数只要按步骤代入就能得到一组能用的参数。1.1 负反馈系统到底在“反馈”什么Buck电路本身是一个功率级它的核心动作是把输入方波通过LC滤波变成直流。但只有功率级是不够的因为输入电压、负载一变输出电压就会飘。所以需要加上“采样输出电压→与基准比较→调整占空比→回到输出”的闭环这就是反馈环路。环路里最关键的三个环节是功率级PWM调制器、开关管、电感电容、反馈分压网络、补偿网络。功率级决定“控制量到输出”的关系补偿网络负责对误差信号进行整形。环路补偿说白了就是给这个整形网络选电阻电容让整个环路的增益和相位特性在目标频率范围内满足稳定性要求。1.2 穿越频率、相位裕度、增益裕度三个必须记住的指标判断环路是否稳定不需要看时域波形只需要看开环增益波特图上的三个点。穿越频率fc是指开环增益降到0dB时的频率。它直接决定系统带宽也就是负载突变时输出电压恢复的速度。一般来说Buck的穿越频率取开关频率的1/10到1/5。开关频率500kHzfc通常选50kHz左右开关频率100kHzfc就取10~20kHz。相位裕度是fc处相位距离-180°还差多少度。工程上要求至少45°追求稳妥就做到60°以上。相位裕度不够阶跃负载时输出就会振铃严重的直接振荡。增益裕度是相位第一次到达-180°时增益低于0dB的量。一般要求-10dB以上。这个指标新手容易忽略但对于抑制高频噪声很重要。这三个指标互相牵制fc越高动态响应越快但相位裕度越难保证高频噪声也越容易串进来。fc太低环路太“钝”负载一扯电压就塌。所以环路设计的本质是在响应速度和稳定性之间找平衡点。1.3 为什么Buck天生就是“双极点体质”功率级里最影响环路的是LC滤波器。L和C构成二阶低通在频率等于谐振频率f_LC时会有一个增益突变之后以-40dB/dec的斜率急剧下降。这就是两个极点。f_LC的公式很简单f_LC 1 / (2π × √(L × C))比如L10μHC100μF算出来f_LC≈5kHz。在5kHz以上功率级增益每10倍频掉40dB相位则快速向-180°靠近。这意味着什么如果补偿网络不加任何整定系统很可能在穿越频率处已经积累了过多相位延迟实际工作起来就是振荡。再打个比方你对着麦克风说话音响音量开大扬声器声音又被麦克风拾取只要相位转够一圈、增益大于1就是啸叫。Buck环路里“啸叫”的频段可能在人耳听不见的范围但模态是完全一样的。理解了这个你就明白补偿器存在的原因了它的职责就是在穿越频率附近拉高或拉低增益同时用零点贡献相位超前抵消功率级双极点带来的相位滞后。2.1 控制到输出的传递函数拿到开环波特图的“地基”在设计补偿网络之前必须先知道功率级自身在频域的表现。Buck电路在CCM模式下的控制到输出传递函数标准形式是这样Gvd(s) Vin × (1 s/ω_ESR) / (1 s/(Q×ω_LC) (s/ω_LC)²)这个公式不用背但要知道三个要素低频增益近似等于输入电压Vin分母里的LC双极点决定了增益跌落和相位滞后分子里由输出电容ESR引入的零点f_ESR则会在高频段抵消一部分-40dB/dec跌落让相位往回拉。2.2 LC双极点、ESR零点和那些“看不见”的寄生ESR零点的频率f_ESR 1 / (2π × ESR × C_out)这里有个非常关键的实践感知输出电容类型不同ESR零点位置天差地别。电解电容ESR可能有50~200mΩ100μF电容的f_ESR大约在10~30kHz往往落在穿越频率附近甚至以内。陶瓷电容ESR通常只有几毫欧甚至更低100μF电容的f_ESR可能在500kHz以上远高于穿越频率。这个差异直接决定了你用Type II还是Type III补偿器。很多新手把电解电容换成陶瓷电容后环路突然不稳定就是因为ESR零点位置变了原来的补偿方案失效了。另外要提醒一句Boost电路在CCM下还有右半平面零点的问题它的相位特性比Buck更恶劣。但是Buck电路本身没有这个头疼的问题这也是新手入门从Buck开始学的原因。本文所有计算以Buck为对象但零极点配置的思想对Boost同样适用只是Boost还要额外处理RHP零点带来的带宽限制。2.3 快速估算功率级在穿越频率处的增益计算补偿器参数时最需要知道的是“功率级在fc处的增益”。如果fc远大于f_LC且fc远小于f_ESR可以用这个近似公式|Gvd(fc)| ≈ Vin × (f_LC / fc)²举个数字Vin12Vf_LC5kHzfc50kHz代入后|Gvd(50k)| ≈ 12 × (5/50)² 12 × 0.01 0.12也就是说功率级在50kHz处只有约-18.4dB的增益。补偿网络必须在这个频率点提供足够的增益让整个环路在fc处正好回到0dB。3.1 Type II补偿器一个积分器加一对零极点Type II补偿器是最常用的结构由一个原点极点积分器、一个零点、一个高频极点组成。很多集成Buck芯片的COMP引脚外接电阻电容用的就是Type II。它的传递函数可以写成Gc(s) (1 s×R2×C1) / (s×R1×(C1C2)×(1 s×R2×C1×C2/(C1C2)))零点fz 1 / (2π × R2 × C1)高频极点当C2远小于C1时fp 1 / (2π × R2 × C2)原点极点提供直流高增益消除稳态误差零点用来抵消功率级LC双极点带来的相位滞后高频极点用来压低高频增益抑制开关噪声。Type II能提供的最大相位提升约90°。3.2 Type III补偿器前馈网络带来的第二对零极点Type III是在Type II基础上再增加一个零点和一个极点。常用实现方式是在反馈上分压电阻R1两端并联一串R3和C3构成前馈网络。它的传递函数Gc(s) [(1 s×R2×C1) / (s×R1×C1)] × [(1 s×(R1R3)×C3) / ((1 s×R3×C3) × (1 s×R2×C1×C2/(C1C2)))]四个关键频率fz1 1 / (2π × R2 × C1)fz2 1 / (2π × (R1R3) × C3)fp2 1 / (2π × R3 × C3)fp3 1 / (2π × R2 × C2)C2远小于C1时成立Type III可以提供接近180°的相位提升对付陶瓷电容这种“没有ESR零点可依靠”的情况非常合适。3.3 选型决策表别再对着公式发呆了输出电容类型ESR零点位置推荐补偿器原因电解电容、钽电容f_ESR fcType IIESR零点本身就能提供相位提升不需要额外零点电解电容、钽电容f_ESR ≈ fcType II或Type IIIType II够用Type III更稳陶瓷电容f_ESR fcType III高频缺少ESR零点需要补偿器自己补两个零点要求极快速瞬态响应任意Type III带宽和相位裕度都能做高一句话总结ESR零点在穿越频率附近甚至以内的Type II多半够用ESR零点高到天边、又是陶瓷电容的老老实实上Type III。4.1 设计指标与前提假设拿一个典型的同步Buck来做靶子输入Vin12V输出Vout3.3V最大负载2A开关频率fsw500kHz电感L10μH输出电容Cout100μF陶瓷电容ESR3mΩ反馈分压系数H0.242对应基准0.8V、输出3.3V先算出功率级的两个关键频率f_LC 1 / (2π × √(10μH × 100μF)) ≈ 5.03kHz f_ESR 1 / (2π × 0.003Ω × 100μF) ≈ 530kHzf_ESR高达530kHz远大于我们即将选择的穿越频率所以陶瓷电容这条路必须用Type III。4.2 零极点位置怎么定穿越频率取开关频率的1/10即fc 50kHz接下来分配Type III的零极点。这里我直接给出经过验证的放置逻辑两个零点fz1、fz2放在LC双极点频率的一半左右也就是2kHz附近。零点放得比LC极点低一些可以保证在50kHz穿越频率处仍留有足够的相位提升。两个高频极点fp2、fp3放在200kHz左右大约是穿越频率的4倍这样它们的相位拖累在fc处只有十几度不会吃掉太多裕度。这里有一个新手很容易踩的坑如果把高频极点放在开关频率一半即250kHz以上确实更接近“教科书”但这会带来前馈网络在fc处的增益提升过大导致穿越频率偏移。实战中我习惯先把零点放低、极点放中频再通过仿真微调。4.3 代入公式求解R、C值取R110kΩ这是反馈网络的上分压电阻也作为Type III补偿网络的输入电阻。第一步由fz2和fp2求R3、C3。联立两个方程R3 R1 × fz2 / (fp2 - fz2) C3 1 / (2π × fp2 × R3)代入fz22kHzfp2200kHzR3 10k × 2 / (200 - 2) ≈ 101Ω取标准值100Ω C3 1 / (2π × 200k × 101) ≈ 7.9nF取标准值8.2nF第二步确定R2。这里要注意不能直接套用R2/R1等于功率级增益倒数的简化公式因为前馈网络R3、C3在fc处会带来额外的增益提升。先计算功率级增益|Gvd(fc)| ≈ Vin × (f_LC / fc)² 12 × (5/50)² 0.12所需的总补偿增益1 / (H × |Gvd(fc)|) 1 / (0.242 × 0.12) ≈ 34.4前馈网络在fc处的增益Kff由fz2、fp2的实际位置决定Kff sqrt(1 (fc/fz2)²) / sqrt(1 (fc/fp2)²)用R3100Ω、C38.2nF反推实际fz2≈1.92kHz、fp2≈194kHz所以Kff ≈ 26然后R2 R1 / (H × |Gvd(fc)| × Kff)取值R2 10k / (0.242 × 0.12 × 26) ≈ 13.7kΩ第三步由fz1和fp3求C1、C2C1 1 / (2π × fz1 × R2) 1 / (2π × 2kHz × 13.7k) ≈ 5.8nF取5.6nF C2 1 / (2π × fp3 × R2) 1 / (2π × 200kHz × 13.7k) ≈ 58pF取56pF最终参数汇总元件计算值实际取值R110kΩ10kΩR213.7kΩ13.7kΩ或13kΩR3101Ω100ΩC15.8nF5.6nFC258pF56pFC37.9nF8.2nF4.4 算完别急着打样先做相位裕度估算把最终参数代回去看看50kHz处各个零极点贡献了多少相位功率级LC双极点贡献约-170°计入ESR零点轻微的抬升补偿器原点极点-90°零点1实际约2.07kHz约87.6°零点2实际约1.92kHz约87.8°极点2实际约194kHz约-14.5°极点3实际约207kHz约-13.6°补偿器净相位贡献约为-90 87.6 87.8 - 14.5 - 13.6 ≈ 57.3°环路总相位-170 57.3 ≈ -112.7°相位裕度约67°。这个结果在45°~60°的工程目标范围内甚至偏稳了一点点。如果实测中发现动态响应偏软可以适当把零点往LC极点方向挪一挪略微减少相位裕度换取更高带宽。5.1 用平均模型快速看Bode图参数算完先用LTspice验证一遍。初次仿真不需要搭完整的开关管模型而是用平均模型。把功率级Gvd(s)写成一个带拉普拉斯表达式的受控电压源再接上实际的R、C补偿网络做AC分析。以本文算例为例在LTspice里可以用Behavioral Voltage Source这样写B1 vout 0 V V(comp) * Laplace 12*(1s/(2*pi*530k)) / (1s/(1*(2*pi*5k))(s/(2*pi*5k))**2)把补偿网络用真实电阻电容搭好从补偿输出回送到B1的输入。AC扫描设置从100Hz扫到1MHz就能看到开环增益和相位曲线。观察增益曲线穿过0dB的频率是不是50kHz附近相位在穿越点的读数是不是60°左右。这一步能揪出大多数计算错误尤其是R2选错导致的穿越频率偏移。有一次我把R2按简化公式算结果穿越频率跑到80kHz去了相位裕度只剩28°而平均模型AC扫描一眼就看出来了。5.2 用完整开关模型做瞬态验证平均模型验证通过后再用完整开关模型做瞬态仿真。把同步Buck的MOSFET、电感、电容、PWM比较器、补偿网络全部搭进去负载从0.5A阶跃跳到2A观察输出电压波形。相位裕度充足时输出电压只会出现一次明显的下冲然后快速回到稳态。相位裕度不足时输出会反复过冲、回摆像衰减振荡一样严重的连续振好几拍才稳住。如果输出完全发散或者出现频率极低的“打嗝”现象大概率是低频增益或零点位置出了问题。LTspice做加速收敛的技巧给电感串联一个小阻值DCR比如10mΩ给输出电容并联一个合适的ESR哪怕陶瓷电容也按3~5mΩ给否则容易在理想元件下出现不收敛或毛刺。5.3 PSIM、Simplorer和实测仪器的定位如果你手头有PSIM也可以用它搭同步Buck的环路。PSIM的开关管模型收敛性好平均模型和Cycle-by-Cycle模型切换方便很多电源公司用它做大信号仿真。Simplorer适合多物理域联仿但搭建Buck环路属于杀鸡用牛刀新手不建议从Simplorer入门。实测阶段最专业的工具是频率响应分析仪比如Bode 100或者Omicron Lab这类设备配合隔离变压器在反馈环路中注入扰动。测出来的波特图才是最终判决。没有仪器的情况下用电子负载做阶跃测试观察振铃情况也能粗略判断相位裕度。6.1 你以为的100μF不是真的100μF陶瓷电容在高直流偏压下实际容量会大幅缩水。一颗MLCC写着100μF在8V偏压下可能只剩40~50μF。如果没意识到这一点设计时按100μF算出f_LC5kHz实际板子上f_LC可能已经漂到7kHz整个环路的零极点全错位了。所以我都会在算例旁边标注L和C请使用实际工作点的有效值而不是标称值。尤其是C最好查阅容量-直流偏压曲线或者直接用压电驰豫较小的C0G/CK系列。这个细节能让你的仿真相差十万八千里。6.2 带宽不是越高越好很多新手调环路恨不得把穿越频率拉到开关频率的1/4觉得越快越好。实际做下来高频段一旦带宽过高开关噪声、体二极管反向恢复的振铃、甚至PCB布局串扰都会被环路拾取轻则增加输出噪声重则引起异常振荡。另一个实际限制是误差放大器的增益带宽积。通用运放或芯片内部跨导放大器的带宽没那么高你设计目标200kHz穿越放大器自身可能已经衰减了实际穿越点根本没到。这也是为什么我习惯把fc控制在开关频率1/10以内给放大器留足余量。6.3 反馈走线、探头和地线带来的“幽灵相位”仿真里一切完美上板子却不对先检查三件事。第一反馈走线是否远离电感。电感是Buck电路最大的干扰源反馈线和FB节点附近的走线如果贴着电感高频磁场会直接耦合出虚假误差信号。第二补偿网络的R3、C3、R1、C1这些元件必须靠近控制器FB脚走线尽可能短前馈网络R3/C3尤其敏感走线一拉长零点频率完全不是计算值。第三用示波器量环路时探头地线夹子会引入寄生电感几十mV的振铃很可能不是电路本身的而是探头地线太长产生的伪振铃。用弹簧地线别再拖一根十几厘米的黑色夹子线。踩过这些坑之后我养成了一个习惯每次调试结束把实测穿越频率、相位裕度和设计目标抄在一起对比。环路补偿不是玄学也不是纯数学它是“算一个初值、仿真验证、实测修正”的三步过程。新手最忌讳的是拿一堆电阻电容在板子上瞎试那样永远不知道自己把哪个极点挪到了哪里。
返回列表