ARTICLE DETAIL

资讯详情

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

开关电源环路补偿:大信号与小信号模型解析

开关电源环路补偿:大信号与小信号模型解析 开关电源的环路补偿调不好十有八九是模型没建对。我见过太多工程师一上来就打开仿真软件扫频结果相位裕度怎么调都不对最后靠试凑电容电阻蒙一个能用的值交差。问题的根子往往不在补偿网络本身而在于对开关变换器这个非线性时变系统的建模理解不到位。大信号模型和小信号模型这两个词听起来像是教科书里的学术概念但实际调试中分不清它们各自的适用边界就会陷入仿真明明稳定、实测一加载就振荡的困境。这篇内容适合正在做电源环路设计、想搞清楚模型来龙去脉的硬件工程师也适合刚接触开关变换器建模、被各种平均法和线性化绕晕的初学者。我会从为什么需要两套模型讲起把状态空间平均法的推导逻辑、小信号线性化的操作细节、以及实际扫频验证时容易踩的坑一条线串下来。1. 为什么一个变换器需要两套模型1.1 开关变换器的本质周期时变非线性系统Buck、Boost、Buck-Boost这些基本拓扑开关管在每个周期内交替导通和关断电路结构在两种甚至三种状态之间跳变。这意味着描述它的微分方程在时间上不连续——导通时是一个方程组关断时是另一个方程组切换瞬间还有状态变量的连续性约束。这种系统在数学上叫分段线性时变系统直接对它做拉普拉斯变换是没有意义的因为拉普拉斯变换要求系统是线性时不变的。那为什么我们平时又能用传递函数来分析环路这就引出了建模的核心思路用某种平均手段把一个周期内的两种状态揉成一个连续的等效模型。但揉的方式不同得到的模型适用场景就完全不同。大信号模型保留的是非线性的大范围行为小信号模型则是在某个稳态工作点附近做线性化只描述小扰动下的响应。两者不是替代关系而是互补关系。我刚开始学的时候有个误区觉得小信号模型更精确所以更重要。后来做多了才发现大信号模型决定了你的系统能不能启动、会不会在负载突变时崩溃小信号模型只决定稳态附近的小扰动稳定性。一个电源如果大信号行为有问题小信号环路调得再漂亮也没用。1.2 大信号模型回答的是能不能活下来大信号模型关注的是变换器在大的瞬态变化下的行为。比如启动瞬间输出电压从零上升到额定值这个过程中电感电流可能远超稳态值占空比可能饱和到极限。再比如负载从满载突然切到空载输出电压会冲高多少、多久能恢复。这些问题都是大信号问题因为工作点发生了大范围移动小信号线性化的前提——工作点附近小扰动——根本不成立。实际工程中大信号模型主要用来分析几个场景启动浪涌电流、负载阶跃响应的大信号包络、输入电压大幅跳变时的稳定性、以及保护电路触发后的恢复过程。这些场景下变换器可能进入非线性区域比如占空比达到最大或最小限幅、电感电流进入断续模式、或者误差放大器输出饱和。小信号模型在这些区域完全失效。1.3 小信号模型回答的是稳不稳、快不快小信号模型是在一个确定的稳态工作点比如额定输入电压、额定负载附近对系统施加一个小扰动观察输出如何响应。这个小是相对的通常要求扰动幅度远小于稳态量使得非线性项可以用泰勒展开的一阶项近似。得到的是一个线性时不变系统可以用传递函数、波特图、极点零点来分析。环路补偿设计几乎完全依赖小信号模型。因为环路稳定性、相位裕度、穿越频率这些指标本质上都是小信号概念。你扫频仪测出来的波特图也是小信号结果——扫频信号的幅度通常只有稳态量的百分之几。所以如果你的小信号模型建得准补偿网络设计就有据可依建不准就只能靠试凑。1.4 两套模型的衔接点稳态工作点大信号模型和小信号模型之间的桥梁是稳态工作点。大信号模型在稳态时退化为一个直流工作点这个工作点就是小信号线性化的展开点。换句话说小信号模型是大信号模型在稳态点的一阶泰勒展开。这个关系很重要因为它意味着如果稳态工作点算错了小信号模型一定错。我见过一个案例工程师用理想占空比公式DVout/Vin去算Buck的稳态点但实际电路有二极管压降和MOS管导通电阻真实占空比偏高。结果小信号模型预测的穿越频率和实测差了将近百分之二十补偿网络怎么调都对不上。后来把导通损耗考虑进去重新算稳态点模型立刻准了。这个坑很典型后面还会展开讲。2. 状态空间平均法从开关纹波中提取连续模型2.1 平均法的核心思想与适用前提状态空间平均法的思路很直接既然开关变换器在每个周期内交替处于不同状态那我就把一个周期内的状态方程按时间加权平均得到一个等效的连续状态方程。具体来说如果开关管导通时间为dTs关断时间为(1-d)Ts那么平均后的状态方程就是两个状态方程的加权和权重分别是d和(1-d)。这个操作成立的前提有三个第一开关频率远高于变换器的自然频率LC谐振频率和环路带宽这样在一个开关周期内状态变量的变化可以忽略平均才有意义第二状态变量在一个周期内的纹波远小于其平均值这样用平均值代替瞬时值才不会引入太大误差第三开关频率远高于扰动信号的频率这样占空比在一个周期内可以视为常数。实际设计中开关频率通常是环路穿越频率的十倍以上LC谐振频率的五到十倍以上所以前两个条件一般满足。第三个条件在负载瞬变时可能不成立因为瞬变信号的频谱很宽高频分量可能接近开关频率这时候平均法就有误差了。这也是为什么大信号瞬态分析有时需要更精确的模型比如考虑采样效应的离散时间模型。2.2 以Buck为例推导平均状态方程拿Buck变换器做例子电感电流iL和电容电压vC作为状态变量。开关管导通时电感两端电压是Vin-Vout电容被电感充电开关管关断时电感通过续流二极管续流两端电压是-Vout。两种状态的状态方程可以写成统一形式导通期间diL/dt (Vin - vC) / L dvC/dt (iL - vC/R) / C关断期间diL/dt -vC / L dvC/dt (iL - vC/R) / C按占空比d加权平均diL/dt [d(Vin - vC) (1-d)(-vC)] / L (dVin - vC) / L dvC/dt (iL - vC/R) / C注意电容方程在两种状态下相同因为电容始终与负载并联。平均后的方程里dVin这一项是非线性的——d和Vin都是变量它们的乘积就是非线性项。这就是为什么平均模型仍然是大信号非线性模型不能直接做拉普拉斯变换。2.3 平均模型的非线性项从哪来非线性项的来源是开关动作本身。开关管可以看作一个乘法器它把输入电压Vin和占空比d相乘得到平均输出电压dVin。这个乘法关系就是非线性的根源。类似地Boost变换器中输入电流和占空比也有乘积关系Buck-Boost同样如此。除了占空比与电压电流的乘积还有其他非线性源二极管的正向压降随电流变化、MOS管的导通电阻随温度变化、电感磁芯的饱和特性、电容的电压系数等。但在基础建模中通常先忽略这些二阶效应只保留占空比乘积这个主要非线性项。等模型基本准了再逐步加入损耗和寄生参数修正。理解非线性项的来源很重要因为小信号线性化就是围绕这些非线性项做文章。线性化的本质就是把乘积项dVin在稳态点附近展开保留一阶项丢掉高阶项。展开的质量直接决定小信号模型的精度。2.4 平均模型的仿真验证方法建完平均模型后怎么验证它是对的最直接的方法是用仿真软件搭两个电路一个是开关级电路含实际开关管和二极管一个是平均模型电路用受控源实现平均方程。给两者相同的输入和负载条件比较输出电压和电感电流的波形。在稳态下两者应该几乎重合。在负载阶跃下平均模型能捕捉到低频包络但会丢失开关纹波和高频振荡。如果平均模型的低频响应和开关级电路对不上说明平均方程推导有误或者稳态点算错了。我习惯先用一个简单的电阻负载做稳态验证确认直流工作点一致再做负载阶跃验证动态响应。注意平均模型仿真时受控源的实现要小心。占空比d应该由控制环路产生而不是直接给一个常数。如果直接给常数d那只是验证了开环稳态没有验证闭环动态。正确的做法是把补偿网络也加进去让平均模型和开关级电路在同一个闭环下比较。3. 小信号线性化在稳态点附近做一阶近似3.1 线性化的数学操作泰勒展开与一阶项保留小信号线性化的标准操作是把平均模型中的每个变量写成稳态值小扰动量的形式比如dDd̂VinVin_barv̂iniLILîLvCVCv̂C。代入平均方程后利用稳态关系消去直流项然后忽略所有小扰动量的乘积项因为它们远小于一阶项剩下的就是线性化的小信号方程。以Buck的电感方程为例平均方程是diL/dt(dVin-vC)/L。代入dDd̂VinVin_barv̂invCVCv̂CdiL/dt [(Dd̂)(Vin_barv̂in) - (VCv̂C)] / L展开后diL/dt [D·Vin_bar D·v̂in d̂·Vin_bar d̂·v̂in - VC - v̂C] / L稳态时D·Vin_barVC所以直流项抵消。d̂·v̂in是二阶小量忽略。剩下dîL/dt (D·v̂in d̂·Vin_bar - v̂C) / L这就是线性化后的小信号方程。对它做拉普拉斯变换就能得到传递函数。3.2 稳态工作点的计算精度决定模型上限线性化的展开点是稳态工作点所以稳态点的精度直接决定小信号模型的精度。前面提到的导通损耗问题就是一个典型例子。理想Buck的稳态占空比是DVout/Vin但实际电路中电感有直流电阻DCRMOS管有导通电阻Rds(on)二极管有正向压降Vf。考虑这些损耗后稳态占空比会偏高。具体修正方法是在稳态时电感两端平均电压为零所以导通期间电感电压和关断期间电感电压的加权和为零。考虑MOS管导通电阻和电感DCR后导通期间电感电压是Vin-IL·(Rds(on)DCR)-Vout关断期间是-Vf-IL·DCR-Vout。令加权和为零解出D。这个计算不复杂但很多工程师图省事直接用理想公式结果模型精度打折扣。我的经验是如果输入输出电压差不大比如12V转5V理想公式和实际占空比差几个百分点影响还可接受但如果输入输出电压接近比如5V转3.3V理想公式的误差可能超过百分之十小信号模型的穿越频率会明显偏移这时候必须考虑损耗修正。3.3 从线性化方程到传递函数的整理技巧线性化后得到一组小信号状态方程接下来要整理成传递函数。标准做法是对每个方程做拉普拉斯变换把微分算子换成s然后消去中间变量得到输出对控制量占空比的传递函数Gvd(s)以及输出对输入电压的传递函数Gvg(s)。以Buck为例线性化后的方程组是s·L·îL D·v̂in d̂·Vin_bar - v̂C s·C·v̂C îL - v̂C/R消去îL令v̂in0求Gvd时输入扰动为零得到Gvd(s) v̂C/d̂ Vin_bar / (1 s·L/R s²·LC)这就是Buck的经典二阶传递函数直流增益是Vin_bar双重极点在1/sqrt(LC)处。这个结果和教科书一致说明推导没问题。整理传递函数时有个技巧先把方程写成矩阵形式然后用克莱姆法则或者符号计算工具求解。手推容易出错尤其是Boost和Buck-Boost的传递函数有右半平面零点符号容易搞混。我一般用Python的sympy库做符号推导验证手推结果。3.4 右半平面零点Boost和Buck-Boost的固有难题Boost和Buck-Boost的小信号传递函数里有一个右半平面零点这是它们和Buck的本质区别。右半平面零点带来的相位滞后随频率增加而增大而且幅度增益也在增加导致闭环带宽受限、相位裕度难调。这个零点的物理来源是占空比增加时Boost的输出电压瞬时反而下降因为电感充电时间变长向输出电容充电的时间变短然后才慢慢上升。这个先降后升的反向响应就是右半平面零点的表现。右半平面零点的频率近似为R(1-D)²/(2L)Boost和负载电阻、占空比、电感量有关。负载越轻R越大零点频率越高相对好处理负载越重零点频率越低越容易侵入环路带宽。设计Boost环路时穿越频率通常要压在右半平面零点频率的五分之一以下否则相位裕度不够。我调过一个Boost电路输入5V输出12V负载电流从0.1A到1A变化。轻载时环路很稳重载时振荡。后来一算重载时右半平面零点频率降到了3kHz左右而穿越频率设在了5kHz正好撞上。把穿越频率降到1kHz以下问题解决。这个教训是Boost的环路带宽不能只看额定负载要看最重负载下的右半平面零点频率。4. 实际扫频验证模型准不准扫一把就知道4.1 扫频仪接入方式与注入点选择模型建完后最终验证靠扫频。扫频仪的基本原理是在环路中注入一个小幅正弦扰动测量扰动前后的幅度比和相位差得到环路增益的波特图。注入点通常选在反馈分压电阻和误差放大器之间或者误差放大器输出和PWM比较器之间。注入点要选在阻抗较低的一侧这样注入信号不会被轻易衰减。注入幅度要控制好太小了信噪比不够测量噪声大太大了变换器进入非线性区测量结果失真。一般注入幅度取输出电压的百分之一到百分之五具体看环路增益。如果穿越频率处增益是0dB注入幅度可以稍大如果增益很高注入幅度要小。我通常从百分之一开始试看测量曲线的相干性如果相干性差就加大幅度如果曲线畸变就减小。4.2 测量结果与模型预测的对比方法扫频得到波特图后和模型预测的波特图叠在一起对比。重点看三个指标穿越频率、相位裕度、低频增益。如果三者都对得上模型基本可信。如果穿越频率对不上可能是稳态点算错或者电感电容值有偏差如果相位裕度对不上可能是寄生参数没考虑或者右半平面零点位置估错如果低频增益对不上可能是反馈分压比或者误差放大器增益设错。对比时要注意模型预测的是开环传递函数扫频测的是闭环下的环路增益两者在数值上应该一致但测量时要注意注入点和测量点的选择是否和模型定义一致。我见过有人把注入点选在输出端测的是输出阻抗而不是环路增益结果怎么都对不上。4.3 常见偏差来源寄生参数与测量误差实测和模型对不上最常见的原因是寄生参数。电感的直流电阻DCR、电容的等效串联电阻ESR、MOS管的导通电阻和输出电容、二极管的结电容这些在基础模型里通常忽略但在实际电路中会影响中高频段的幅频和相频特性。尤其是电容的ESR它会在传递函数里引入一个左半平面零点提升相位如果模型里没考虑实测相位会比预测的高。另一个常见偏差来源是测量误差。扫频仪的注入变压器有带宽限制高频段注入效率下降探头的地线环路会引入电感影响高频测量示波器的采样率和分辨率也会影响相位测量精度。我一般会在扫频前先用示波器看一下开关波形确认电路工作在预期模式CCM还是DCM因为DCM下小信号模型完全不同如果电路实际工作在DCM而模型按CCM建那肯定对不上。4.4 从扫频结果反推模型修正如果实测和模型有偏差不要急着改补偿网络先反推模型哪里不对。比如实测穿越频率比预测低可能是电感实际值比标称大或者电容实际值比标称小。用LCR表测一下实际电感和电容代回模型重新算往往就对上了。如果实测相位裕度比预测低可能是右半平面零点比预测的低检查一下负载是否比预期重或者电感是否偏大。反推修正的过程其实就是模型迭代。我通常做两到三轮第一轮用标称值建模型扫频对比第二轮用实测LCR值修正模型再对比第三轮加入ESR和导通电阻等寄生参数再对比。三轮下来模型和实测的偏差通常能控制在百分之十以内这时候补偿网络的设计就有把握了。5. 建模过程中的几个典型坑与应对5.1 把平均模型当小信号模型直接用最常见的坑是把状态空间平均方程直接拿来做环路分析。平均方程里含有d·Vin这样的乘积项是非线性的直接做拉普拉斯变换得到的传递函数没有物理意义。必须先在稳态点线性化得到小信号方程才能求传递函数。我见过有人在仿真软件里用平均模型跑AC分析结果软件自动做了线性化他以为平均模型本身就是线性的换到另一个工作点就懵了。区分方法很简单平均模型是时域非线性方程小信号模型是频域线性传递函数。平均模型用来做时域仿真启动、负载阶跃小信号模型用来做频域分析波特图、极点零点。两者不能混用。5.2 忽略DCM模式导致模型完全失效电感电流断续模式DCM下变换器在一个开关周期内有三种状态电感充电、电感放电、电感电流为零。平均方程的形式和CCM完全不同小信号传递函数也完全不同。DCM下Buck的传递函数从二阶降为一阶相位裕度特性好很多但直流增益和穿越频率也变了。判断CCM还是DCM的临界条件是电感电流纹波是否大于两倍平均电流。如果负载很轻电感电流可能进入DCM。设计时如果按CCM建模型但实际轻载下进入DCM环路特性会突变可能振荡。应对方法是要么保证最小负载电流大于临界电流要么在模型里同时考虑两种模式或者用强制CCM的同步整流拓扑。5.3 误差放大器饱和与占空比限幅的非线性小信号模型假设系统工作在线性区但实际电路中误差放大器输出有上下限PWM比较器的占空比也有最大最小值限制。当负载突变很大时误差放大器可能饱和占空比达到限幅值这时候小信号模型完全失效必须用大信号模型分析。启动过程中这个问题尤其突出。启动时输出电压为零反馈电压远低于基准误差放大器输出饱和到高限占空比达到最大。这时候变换器以最大功率向输出电容充电电感电流可能远超稳态值。如果电感饱和电流不够就会炸管。大信号模型可以预测启动浪涌电流的峰值帮助选电感。5.4 采样效应与高频段的模型失真状态空间平均法假设开关频率远高于扰动频率但在穿越频率接近开关频率的十分之一时采样效应开始显现。开关变换器本质上是一个采样系统占空比在每个周期开始时被采样一次这引入了一个等效的采样保持效应表现为相位滞后。平均模型没有考虑这个效应所以高频段相位预测偏乐观。修正方法是在传递函数里加一个采样保持环节或者用离散时间模型。工程上常用的近似是在环路里加一个极点频率设在开关频率的一半处模拟采样效应。如果穿越频率低于开关频率的十分之一这个修正可以忽略如果接近五分之一就必须考虑。6. 从模型到补偿网络设计的落地路径6.1 根据小信号模型确定补偿类型拿到小信号传递函数后先看它的极零点分布。Buck的Gvd是二阶的有两个共轭极点低频段增益平坦高频段以负四十分贝每十倍频下降。如果两个极点的Q值很高在谐振频率处会有增益尖峰相位急剧下降。补偿网络通常用Type III三个极点两个零点在谐振频率附近放两个零点提升相位在开关频率一半处放一个极点衰减高频噪声。Boost和Buck-Boost因为有右半平面零点补偿更难。右半平面零点不能像左半平面零点那样用极点去抵消因为它的相位是滞后的。只能把穿越频率压低到右半平面零点频率的五分之一以下然后用Type II或Type III补偿。如果右半平面零点频率太低可能需要降低电感量来提高它或者改用其他拓扑。6.2 穿越频率与相位裕度的工程取值穿越频率的选取是个折中取高了动态响应快但相位裕度难保证且容易受采样效应影响取低了动态响应慢负载阶跃时恢复时间长。工程上一般取开关频率的十分之一到二十分之一同时要低于右半平面零点频率的五分之一如果有的话还要低于LC谐振频率的三到五倍。相位裕度一般要求四十五度以上最好六十度左右。四十五度对应约百分之十六的超调六十度对应约百分之八的超调。如果相位裕度只有三十度阶跃响应会有明显振荡甚至不稳定。我通常把目标定在五十到六十度之间留一些余量给寄生参数和温度变化。6.3 仿真验证与实测迭代的闭环补偿网络设计完后先在仿真里验证。用平均模型跑闭环AC分析看波特图是否满足穿越频率和相位裕度要求。然后用开关级电路跑负载阶跃看时域响应是否和频域预测一致。仿真通过后再上实测扫频。实测扫频时先测开环断开反馈固定占空比验证功率级传递函数Gvd是否和模型一致。然后接上补偿网络测闭环环路增益。如果开环对得上但闭环对不上问题在补偿网络如果开环就对不上问题在功率级模型或稳态点。这个分步排查的思路能快速定位问题。6.4 温度与器件容差对模型的影响最后别忘了温度和器件容差。电感的磁芯材料随温度变化电感量可能漂移百分之十到二十电容的容值随温度和直流偏压变化X5R或X7R电容在额定电压下容值可能下降一半MOS管的导通电阻随温度上升而增大影响稳态占空比。这些变化都会让实际工作点偏离模型预测。工程上的应对是留设计余量穿越频率不要贴着上限设相位裕度不要贴着下限设电感电容选温度系数好的型号MOS管选导通电阻余量大的。如果产品工作温度范围宽最好在高温和低温下各扫一次频确认环路在全温度范围内都稳定。我做过一个工业级电源常温下相位裕度五十五度高温八十五度时降到四十度刚好卡在边缘后来把补偿网络的零点频率调低了一些才解决。建模这件事说到底是为了让补偿设计有据可依而不是靠试凑。大信号模型保底确保系统能启动、能扛住大负载突变小信号模型调优把环路带宽和相位裕度做到位。两者配合再加上扫频验证的闭环迭代基本就能把开关变换器的稳定性问题管住。我在实际项目里的体会是花在建模上的时间最后都会从调试返工里省回来。
返回列表