ARTICLE DETAIL

资讯详情

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

开关电源环路学习:为什么必须掌握传递函数与相位裕度?

开关电源环路学习:为什么必须掌握传递函数与相位裕度? 开关电源环路学习笔记1-为啥要知道传递函数搞电源这行的人早晚都会撞上“环路”这两个字。我刚接触开关电源那会儿搭一个Buck电路输出5V/3A静态带载没啥问题纹波也还能看。结果只要负载从0.5A瞬间切到2.5A输出电压就往下砸一截然后开始来回震荡啪嗒啪嗒像打嗝一样好半天才稳住。更诡异的是有时候板子放桌上好好的用手一碰补偿电阻啸叫声就出来了。那时候我第一个反应是PCB布局不行输出电容太小折腾半天没解决最后被老工程师一句话点醒“你把传递函数拉出来看看补偿网络相位裕度都不够了能不震荡吗”那句话就是我后来无数次被“环路”救回狗命的起点。说实话传递函数这东西上学的时候学过考试也考过但真正在工程里意识到“不搞懂它就没法混电源这碗饭”是踩了大坑之后才有的。这篇笔记就是想把我自己从“只看静态参数”到“开始看波特图看相位裕度”的过程掰开揉碎了讲清楚重点解决一个最基础也最要命的问题开关电源环路学习为啥一定要知道传递函数这篇文章适合刚入行做电源设计、或者做了两三年但一直没真正弄懂环路补偿的硬件工程师也适合学生党在实验室里调试Buck/Boost/LDO死活稳不住的人。看完你会明白环路控制的来龙去脉、传递函数在电源里扮演的角色以及拿到一个电源项目后应该用怎样的思路去分析和设计补偿网络而不是靠瞎调RC碰运气。1. 先从“开关电源在干啥”说起——环路控制的本质1.1 一个简单的例子Buck电路的调节过程开关电源的本质说白了就是通过高速开关器件MOSFET、二极管配合电感电容把输入能量“切碎”再“平均”地送到输出端。Buck、Boost、Buck-Boost都是这个套路区别只在开关管和磁性元件怎么排列。但这里有个工程上躲不开的问题输入电压会变负载会变元件参数会随温度漂移。你今天调好的5V输出明天输入从12V掉到10V输出电压立刻跟着往下掉带载从1A跳到3A输出也会被拉低。那怎么保证输出电压在各种扰动下都能稳定在目标值靠开环直接给固定占空比是不行的。真实电源必须有一个“监测输出→和参考电压比较→调整占空比→拉回输出”的闭环机制这个机制就是反馈环路。拿Buck电路举例子。反馈回路第一步是采样输出端接一个电阻分压网络把输出电压按比例缩小送进误差放大器EA和内部的基准电压比如0.8V或1.25V做比较。第二步是产生误差信号输出端比基准高误差放大器输出就往一个方向跑比基准低就往反方向跑。第三步是关键误差信号不能直接拿去调占空比得先经过补偿网络通常是RC网络它决定了误差信号变化的“节奏”——是快了还是慢了是冲过头还是到位就停。最后一步才是脉宽调制PWM把补偿后的误差电压进比较器跟固定的三角波/斜坡信号比较生成新的占空比去控制开关管。这个逻辑链条每一步都好理解难的是它整体联调起来的时候“状态”怎么变化。你会发现输出不是一步到位飞到5V的而是要经历一个动态过程可能超调可能震荡可能又慢又软。而决定这个动态过程稳定不稳定的就是环路系统函数本身的数学性质——也就是传递函数。1.2 没有选择余地的“反馈控制”有人可能会想我把误差放大器的增益做很大不就行了输出一波动马上大力度修正不是响应更快更稳吗这个想法恰好是很多新手第一版补偿网络做失败的原因。增益大环路对这种波动太“敏感”修正动作容易过头反而是输出还没回到目标值占空比已经被打到很极端的值下一拍又把输出推过头。一来二去系统就是在目标值附近来回穿越而且越穿越远最后就是自激振荡。这就是自动控制原理里说的“负反馈变成正反馈”的工程表现。负反馈调节的前提是“反馈信号改变控制量的方向和效果是收敛的”这个收敛性自然不是拍脑袋能保证的它取决于整个环路里的增益、相位滞后、延迟这几个核心量在频域上怎么分布。所以说开关电源的环路控制不是“选一个方案”的问题而是引入了更深层次的系统工程问题。你设计的每一个元件、选用的每一个MOSFET、布局走线的寄生电容、芯片内部误差放大器的带宽限制、输出电容的ESR全部会进入这个环路参与“博弈”。这就是为什么“看输出波形准不准”之外你必须学会“看频域”——只有频域分析才能同时回答“它为什么稳”“它有多稳”“它最快能多快”这三个问题。2. 传递函数到底是什么——从“黑箱”到“白箱”2.1 用一个生活化类比理解传递函数传递函数这个词听着特别数学其实思路并不复杂。它做的就是一件事把系统的输入和输出之间的关系用一个数学函数描述出来。你给它一个正弦波乘上传递函数的幅值再移一个相位就是输出。我后来跟没有学过自动控制的同事打了个比方传递函数就像一个“消息中转站”。你对着话筒说一句话输入信号这个中转站会把你的声音加工一下增益、延时、滤波然后传到另一边输出信号。传递函数就是这个加工过程的“说明书”描述了它在不同声调频率下有多大程度的放大或衰减以及会不会慢半拍。低频段增益高说明这个系统对缓慢变化的输入信号很敏感能快速跟随过了某个频率增益开始滚降说明系统对高频信号反应迟钝。相位滞后则是描述“慢半拍”的程度。这两个属性合在一起就是频域分析的灵魂——波特图。生活里的空调系统也是这么个道理温度传感器感知室温采样和目标温度做比较误差然后决定压缩机当前该多出力还是少出力控制。如果空调的感应和压缩机的反应规划不好温度就会忽冷忽热像坐过山车。空调的“这一整套反应规划”用工程语言翻译过来就是它的开环传递函数加补偿网络。2.2 开关电源里的“传递函数家族”具体到开关电源我们关心的开环传递函数不是单一一个式子而是多级串联后的总效果。系统里这几块都得算进去功率级传递函数从占空比d到输出电压Vo的传递函数写作Gvd(s)。这一级最复杂因为电感电流、电容电压都是状态量还和负载阻抗耦合。Buck的功率级是一个二阶系统在输出LC处有一个双极点。PWM调制器传递函数从误差放大器输出到占空比的传递函数。通常比较器的增益和三角波幅值有关近似为一个线性增益Fm 1/VppVpp是三角波峰峰值。这个环节相对“无辜”增益通常是固定的。反馈分压网络传递函数输出电压通过电阻分压进入误差放大器的比例系数写作H(s)一般是小于1的常数但它带了输入端的阻抗特性会影响误差放大器的等效输入。补偿网络误差放大器及其外围RC传递函数这部分就是我们自己设计的“调节旋钮”也是整个环路里变量最多的部分写为Gc(s)。你要补偿什么、在哪里加零点加极点全靠这一级表达。最终系统总的环路增益T(s) Gvd(s) × Fm × H(s) × Gc(s)。整个环路的稳定性和动态响应特性全部浓缩在这个T(s)里头。没有传递函数这个工具你就等于面对一台发动机却没有转速表只能靠听声音判断“是不是该换挡了”。3. 为什么必须知道传递函数——三个绕不开的工程问题3.1 问题一稳定不稳定要“算”出来而不是“试”出来“电路稳不稳定”这件事系统计理论有两个衡量指标相位裕度Phase Margin, PM和增益裕度Gain Margin, GM。它们是从奈奎斯特判据发散出来的工程简化指标用起来简单直接在开环传递函数T(s)的增益穿越0dB的时候看相位距离-180°还有多远那就是相位裕度在相位到达-180°的时候看增益距离0dB还有多远那就是增益裕度。工程经验值相位裕度大于45°增益裕度大于10dB系统才是让人放心的。相位裕度小于30°你就能观察到输出在负载突变后出现明显的振铃角度再小就是持续振荡甚至啸叫了。这意味着什么意味着你要评估系统是否稳定就必须画出波特图而波特图的原点就是传递函数。如果你手上只有最终成品靠示波器去测环路能不能稳那就得反复改电路、上电、短路测试、观察振铃每次等电容充放电折腾一晚上也不知道是不是临界值。有了传递函数模型你在搭建实物之前就可以在软件里把相位裕度算得明明白白把风险前置。3.2 问题二动态响应快不快由穿越频率决定电源的“响应速度”不是玄学它有一个非常清晰的频域指标——穿越频率fc也就是开环增益T(s)降到0dB的那个频率点。穿越频率越高环路能处理的信号变化越快电源在负载阶跃时的恢复时间越短。但这个频率不能无限往上提一是受限于功率级LC双极点的相位滞后二是受限于PWM开关频率——一般工程上会把穿越频率设定在开关频率的1/10到1/6之间。比如100kHz的开关频率穿越频率取10~15kHz是比较合理的。这个关系就像你在高速公路上开车轮胎有极限、发动机有红区你不能一脚油门上9000转还指望发动机不炸。有了传递函数的频率特性你可以对补偿网络的零极点进行调整在穿越频率附近提供足够的相位提升把fc推高到合理范围同时保证相位裕度。没有传递函数你完全不知道自己这台“车”的转速底线在哪里只能一直保守地压低动态响应来换取稳定产品性能自然上不去。很多芯片厂商规格书里给的“推荐补偿参数”就是基于典型应用下的传递函数分析计算出来的你直接抄参数没问题但换了电感电容值之后原来的补偿参数就不一定仍然是好的了——这就必须回到传递函数来做适配。3.3 问题三抗干扰行不行环路增益帮你把脉开关电源不只是“负载波动要稳住”输入电压本身也可能剧烈跳动比如汽车电源里的冷启动、工业总线供电时的浪涌还有后级其他负载开关带来的串扰。这些扰动同样会通过功率级进入输出反馈环路能不能把它们抑制住取决于环路增益在相应频段的大小。这里引入了另一个重要概念音频敏感度Audio Susceptibility和输出阻抗。它们本质上是从输入电压到输出、从负载电流到输出的传递函数加上环路增益作为分母形成的闭环表达式。环路增益越高对扰动的抑制能力越强——这就是所谓的“环路下压”作用。换句话说你在设计一个电源时若想知道“我加一个前级滤波是否有用”或者“输出电容我再并联两个是否能把纹波压下去”如果只看时域波形一次一次测你会被各种耦合和噪声搞到头大。用传递函数和环路增益去分析一眼就能看出在哪个频段的抑制能力不足对症下药效率完全不同。4. 用传递函数指导补偿网络设计——从理论到实操4.1 补偿网络的三种经典结构有了传递函数这个“地图”下一步就是用补偿网络去“画路线”。市面上主流的误差放大器外围补偿结构分三类Type I、Type II、Type III补偿它们的思路差异很典型。Type I补偿就是只放一个积分电容从误差放大器输出直接接回反相输入端到地。它提供了一个固定极点低频增益开始以-20dB/dec滚降。结构最简单但相位始终-90°左右无法提供相位提升一般只适合给LC双极点频率很低、不需要太高动态的应用。Type II补偿是在积分电容的基础上并联一条RC串联支路形成“一个零点两个极点”的结构。零点可以用来抵消功率级LC的其中一个极点或者输出电容ESR引起的相位滞后第二个极点用来把高频增益压下去抑制开关噪声。这是最常用的补偿结构适合电流连续模式CCM下的Buck尤其是输出电容用固态电容时ESR比较小的情况。Type III补偿是在Type II的基础上再加一个RC网络形成“两个零点三个极点”的结构。两个零点可以把LC双极点带来的-40dB/dec滚降低频段提升回来同时把相位从-180°左右拉回到安全区适合那些需要高带宽、快动态响应的应用比如CPU供电的DC-DC模块。你去看绝大多数DC-DC芯片的数据手册里面给的典型应用电路图典型值其实就是Type II或者Type III补偿的某一种具体取值。你懂了补偿传递函数再去读手册里那些表格就能看出每一颗电容电阻“是干嘛用的”也就能理解为什么有些阻容值“不是随便取一个就行”。4.2 一个具体的操作流程从建模到补偿计算纸上得来终觉浅我拿一个具体的DC-DC降压设计来走一遍流程让大家感受一下“用传递函数算补偿”的真实路径。假设有一个Buck转换器输入12V输出5V电感10μH输出电容22μF陶瓷电容ESR约5mΩ开关频率100kHzPWM三角波幅值1V反馈电压0.8V分压电阻上臂40kΩ、下臂10kΩ。闭环穿越频率目标定10kHz相位裕度目标45°以上。第一步求功率级传递函数Gvd(s)。对CCM Buck从占空比到输出电压的低频小信号模型是Gvd(s) (Vin / (1 s/(Q×ω0) s²/ω0²)) × (1 s/(2π×fz_esr))其中ω0 1/√(L×C)Q由负载电阻R和特征阻抗决定fz_esr由ESR和输出电容决定。带入数值ω0 1/√(10μH × 22μF) ≈ 2.13×10^4 rad/s等效f0 ≈ 3.4kHzESR零点fz_esr 1/(2π × ESR × Co) ≈ 1.4MHz离得比较远低频段可以先忽略。第二步看在这个频率点的增益和相位。在10kHz处LC双极点已经把增益滚降到大约-40dB/dec所以功率级增益大约比低频段降了20dB以上相位则在双极点附近已经滞后接近-180°这就是补偿网络需要“救”回来的地方——它必须在10kHz附近把相位往回拉否则相位裕度直接变负。第三步选择Type III补偿。两个零点可以放在LC双极点附近比如fz1 fz2 ≈ 2kHz左右这样可以把中频段的相位抬起来第二个极点放到开关频率附近或者稍低一点比如fp2 ≈ 30kHz用来压掉高频开关尖峰。具体阻容值代入Type III补偿的标准公式反解算出R、C数值。第四步在MATLAB/Simulink、Simplis或者LTspice里把整个环路搭出来扫描环路增益T(s)的波特图。目标就是看穿越频率fc是否在10kHz附近相位裕度是否大于45°。如果不够就微调Type III的零点位置比如把零点往LC双极点左边挪一点来增加相位提升。很多初学者第一次算补偿参数时会对着公式一头雾水我建议先从仿真软件里的“AC扫描”入手。LTspice里可以用“Middlebrook法”或者简单地在反溃环路中插入一个交流扰动源跑出开环增益和相位曲线。看到屏幕上那个波特图再回头去对照书上的公式立刻就明了很多。4.3 实际调试中的“纸上谈兵”与“真刀真枪”仿真做到位了不代表实物上去就稳定。实际电源板里有PCB寄生电感、MOSFET的开关延时、芯片内部的斜坡补偿、驱动电路的死区时间、输出电容随偏压下降这些因素都会让实际环路和理想模型有一些偏差。所以我做实板调试的时候一定会准备一台环路分析仪比如Venable、AP300或Keysight的E5061B用注入变压器在小信号环路中注入扫频正弦波实测出环路增益的幅频、相频曲线。如果你暂时没有仪器还可以用“负载阶跃响应观察法”做定性判断用电子负载在输出端做1A到2A的方波切换观察输出电压波形的振铃次数和衰减速度振铃次数越多、衰减越慢说明相位裕度越低这是一个不需要专业设备就能粗略判断稳定性的土办法。但土办法只能帮你看出“稳不稳”看不出“为什么不够稳”。真正确认问题指向哪个环节一定还是要靠测试仪器把波特图拉出来和仿真曲线对比。有一次我做一个Boost仿真和实测的穿越频率差了将近一倍排查到最后发现是输出电容的直流偏压特性导致实际容量比标称值小了40%。这个案例告诉我们模型里的C值一定要用工作点条件下的有效值而不能直接用标称值。5. 常见问题与排查技巧实录——从波形异常到环路诊断5.1 典型问题为什么仿真稳定但实板啸叫这种情况我遇到过至少三次。仿真里相位裕度有60°上电后轻载却听到电感发出吱吱声输出纹波里能看到几十kHz的振荡分量背景。第一反应不要怀疑仿真模型错了先查工作点。啸叫通常发生在轻载或者跳载过程中——轻载时电感电流进入断续模式DCM功率级的小信号传递函数模型从CCM变成了不同的表达式增益和相位特性都变了。很多仿真模型默认只做了CCM没有覆盖DCM状态所以稳是自然的。另外轻载时芯片可能进入突发模式Burst Mode、跳过周期模式PSM等节能工作方式这些模式本身的环路特性和PWM连续工作模式就不一样。排查思路是用示波器观察低负载下开关管的栅极驱动波形看是不是进入了突发开关如果是那啸叫来源很大程度是环路在突发模式和连续模式之间的切换没有做好。解决办法通常是调整补偿网络的零点位置让突发模式下环路增益尽快滚降避免振荡能量积累到可听频段。5.2 典型问题环路带宽调不上去怎么办有的电源指标书上明确写瞬态响应要求比如负载突变时最大偏差不超过2%恢复时间不超过50μs这就倒逼你把穿越频率往上推。但当你把Type III补偿的零点往高频挪去提带宽时发现增益提上去了相位却掉得厉害系统变得容易振。原因在于LC双极点之后相位已经滚到-180°附近了你每往高频推一点零点能提供的相位提升空间就越有限——这是物理限制而不是你不够努力。此时此刻要跳出本末设计局限去思考是不是电感值选大了输出电容是不是可以增大来降低双极点频率有没有可能换更高开关频率的芯片来把LC双极点推高真正的环路设计是整机参数联调的不能只盯着补偿网络那三个RC元件。5.3 实用排查流程与速查表调试一个输出电压振荡或者动态响应差的问题我总结了一套自己的排查顺序分享给大家第一步先测静态稳定性。用电子负载持续加在额定负载的30%、60%、100%三点看输出电压纹波里有没有非开关频率成分的振荡。如果有优先怀疑环路相位裕度不足直接进仿真调相位。第二步如果静态纹波干净再测动态。负载切换边沿设成可调不断减小切换电流步进看输出是否有振铃。振铃频率如果是LC谐振点附近说明补偿零点没把LC双极点抵消好。第三步根据振铃频率粗估当前相位裕度。一个经验曲线是振铃次数超过一个完整的阻尼周期、超过三次振荡就相当危险至少给补偿增加一个零点或者把零点向左半平面移动。第四步有条件就上环路分析仪实测波特图。如果实测的穿越频率和相位裕度与仿真差了30%以上回头复查电感感值在直流偏置下的衰减率、输出电容的偏压容量变化、以及PCB走线引入的额外寄生电容。下面是我常用的一组“症状到根因”的排查速查表也一并列出来供参考现象可能的环路根因排查方向轻载啸叫DCM/突发模式下相位裕度下降检查轻载模式切换、补偿零点调整负载阶跃后大幅振铃相位裕度小于30°实测波特图确认向低频移动零点动态响应很慢但不振荡穿越频率过低提升补偿增益调整零点向高频输出波形低频漂移、间歇振荡环路增益过低导致输出调整不够提升低频增益或增加积分极点用陶瓷电容后环路不稳ESR零点太远缺少相位提升改用Type III补偿添加额外零点这些坑我都踩过排查里面最耗时间的往往不是“怎么改”而是“方向在哪里找”。有了传递函数模型和波特图做支撑每一个症状都可以对应到频域上的某个具体问题工作方式就从“盲调RC”进阶为“对症下药”。我个人在实际操作中最深的体会是开关电源设计里肉眼可见的时域波形只是表象真正的主战场在频域。无论是稳定裕度、抗扰能力、动态响应速度底层都是同一个东西——环路传递函数。与其在板子上焊电阻换来换去不如静下心来把功率级的传递函数和补偿网络的频率特性先算清楚。等你习惯了用穿越频率和相位裕度去沟通问题的时候再回头看那些“改一版打样试一下”的日子真觉得以前绕了太多弯路。下一篇笔记我打算继续沿着这条线往下走把CCM模式下Buck/Boost的功率级传递函数公式完整推导一遍然后把Type III补偿的参数计算过程一步步拆给大家看。环路学习这条路入门难在“为什么要学”一旦跨过去后面的路就是越走越通透。
返回列表