恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Boost小信号建模与环路补偿:右半平面零点到相位裕度
首页
资讯中心
/
Boost小信号建模与环路补偿:右半平面零点到相位裕度
Boost小信号建模与环路补偿:右半平面零点到相位裕度
发布时间:2026/10/7 8:59:36
1. 一块Boost板子上的振荡波形把我拉回了小信号建模前阵子帮朋友看一块升压板输入12V、输出24V、负载2A芯片用的是固定频率电压模式控制器。上电带载没问题效率也能看但是一加负载阶跃输出电压就开始以大约4kHz的频率来回荡衰减很慢像被人拽着弹簧不肯松手。换上更大容量的输出电容振荡频率降下来一点但相位裕度该不够还是不够把补偿网络的电容调大低频增益上去了高频又开始顶。折腾了两天最后逼着我老老实实回到纸面上把Boost的小信号建模从头推了一遍把控制到输出的传递函数画出来才知道问题出在右半平面零点那个反着来的家伙身上。这篇东西想聊的就是这件事。它不是什么理论炫技而是每个做开关电源的人迟早会撞上的一堵墙Buck的环路你能凭经验调Boost的环路你要是不建模几乎必然靠试凑。所谓小信号建模分析说白了就是给输入电压、占空比、负载这些量在稳态工作点附近加一点点微小扰动把开关变换器这个本质上非线性的、周期时变的东西用一个线性的传递函数来近似描述。有了这个传函你才能算相位裕度、才能选补偿网络、才能预测负载阶跃会怎么响。适合谁来读如果你正在画Boost、做LED驱动、做电池升压或者PFC后级并且发现环路补偿怎么调都不对劲那这篇基本就是为你写的。我会尽量把每一步为什么这么干说清楚为什么可以平均、为什么可以扔掉二次项、那个让人头疼的右半平面零点到底从哪冒出来、以及模型算出来和实测对不上时该往哪儿找。中间会穿插我踩过的坑和几个能直接抄的参数处理方式。前提是你得接受一点点数学——但放心都是加减乘除和初等微积分没有玄学。2. 开关周期平均把跳变的开关过程抹平的前提和边界2.1 为什么要先做平均而不是直接算开关变换器最让人难受的地方在于一个周期内电感一会儿接输入、一会儿接输出拓扑在两个子电路之间来回切。你要是老老实实列微分方程得到的是一个周期时变的系统系数每开关周期变一次直接求传函几乎没法下手。工程上绕开这个困难的办法就是状态空间平均法不去关心每个瞬间的拓扑而是看一个开关周期内的平均效果。这个思路的核心假设很朴素——如果开关频率远远高于我们要关心的信号频率那么电感和电容上的电流、电压在一个周期内的纹波相对其平均值是小量可以用周期平均值代替瞬时值来建立方程。用生活里的话讲你在看一个快速眨眼的人肉眼看不清每一次眨动只能看到一张相对稳定的脸只要信号的变化慢到相对于开关频率平均模型就能描述这张脸的行为而单个周期里的细节被平均掉了。2.2 三个成立条件缺一个就会失真平均法不是万能药它有明确的适用边界这几点在建模之前必须心里有数开关频率远高于信号带宽。一般来说环路穿越频率取开关频率的1/10到1/5这既是为了控制精度也是为了让平均模型成立。如果你把一个50kHz的Boost环路穿越频率做到20kHz那模型从一开始就不该被信任。变换器工作在CCM连续导通模式。本文讨论的是CCM下的小信号模型。一旦进入DCM电感电流在周期内会归零状态方程结构都变了传函形式完全不同环路特性也会突变这是后面会专门讲的一个坑。周期内纹波是小量。也就是说电感的纹波电流相对其直流分量不能太大。如果电感选得过小、纹波占比很大平均模型给出的结果会偏离实测。2.3 CCM Boost的直流工作点先把地基坐实小信号建模是在某个稳定工作点上做的线性化所以第一件事是把直流工作点算清楚。以CCM Boost为例稳态下电感电压一个周期内的平均值为零电容电流平均值也为零由此得到两个基本关系电压增益$M \dfrac{V_{out}}{V_{in}} \dfrac{1}{1-D}$电感平均电流$I_L \dfrac{I_{out}}{1-D} \dfrac{V_{out}}{(1-D)R}$这里的 $D$ 是稳态占空比$R$ 是等效负载电阻。举个数输入12V、输出24V那么 $1-D 0.5$$D0.5$负载2A时输出电流2A电感平均电流就是4A。这两个数后面推导传函时要反复用到宁可多算一遍也别记错。注意很多人建模时把 $I_L$ 直接写成输出电流这是最常见的低级错误。Boost的电感电流是输出电流除以 $(1-D)$占空比越大这个倍数越夸张。输入输出压差大的升压场合电感电流可能是输出电流的好几倍选电感饱和电流时这也是个关键依据。顺便说一下这一步顺带帮你验证硬件如果按公式算出来的电感电流和示波器实测的直流分量对不上先别急着往下推模型多半是负载、效率或采样点出了问题。3. 小信号扰动线性化为什么可以放心扔掉二次项3.1 在方程里掺一个微小扰动拿到平均方程之后就在工作点上加扰动。设稳态量为大写字母扰动量带小写$v_{in} V_{in} \hat{v}{in}$视为常数输入时 $\hat{v}{in}0$$d D \hat{d}$$i_L I_L \hat{i}_L$$v_{out} V_{out} \hat{v}_{out}$把它们代进电感电压方程和电容电流方程会得到一堆项有纯直流项、有一阶的扰动量乘积、还有扰动量相乘的二阶项。关键在于——我们把二阶项全部扔掉。3.2 扔掉二次项的数学依据与工程含义为什么敢扔因为小信号的定义就是扰动足够小。当 $\hat{d}$ 和 $\hat{i}_L$ 都是小量时它们的乘积 $\hat{d}\cdot\hat{i}_L$ 是二阶小量相对于一阶项可以忽略。这背后的数学是泰勒展开/线性化工程上它等价于在稳态工作点附近用一条切线代替曲线。但这里有个隐藏前提值得说道这个近似只在工作点附近成立。如果负载剧烈变化、或者输入电压大范围波动系统离工作点很远线性化模型就会失真。这也是为什么我们会发现轻载时环路明明算得挺好一重载就振——不是模型错了是你离开它成立的邻域了。真正严谨的做法是对不同工作点分别建模取最恶劣的那个点来设计补偿Boost的补偿通常要在最高输入电压、最轻负载这个组合下校验因为这个点增益最高、最容易不稳。3.3 线性化后的Boost小信号方程组忽略二次项、整理之后Boost的小信号模型可以写成一个清晰的线性系统。先看电感方程扰动后为$$L\frac{d\hat{i}L}{dt} \hat{v}{in} - (1-D)\hat{v}{out} V{out}\hat{d}$$电容方程为$$C\frac{d\hat{v}_{out}}{dt} (1-D)\hat{i}L - I_L\hat{d} - \frac{\hat{v}{out}}{R}$$这两个式子是整个分析的骨架建议亲手推一遍。注意几个细节电感方程里 $V_{out}\hat{d}$ 这一项说明占空比扰动会通过关断期间电感承受的电压直接注入能量这是Boost控制通路的重要来源。电容方程里 $-I_L\hat{d}$ 这一项是Boost特有的负号来源。占空比一增大二极管导通时间变短输出电容得到的充电电流反而减少这就是那个反着来的根源。$(1-D)$ 在方程里反复出现说明它不只是个常数而是把各种增益按比例缩放。占空比越大有效电感和有效电容在传递函数里的表现越重。这一步推导出来你就已经比大多数人深入了——网上大量教程止步于Buck提到Boost就一句注意有右半平面零点却不告诉你它是怎么从这两个方程里长出来的。4. 控制到输出传函的推导以及那个绕不开的右半平面零点4.1 用拉普拉斯变换把方程翻译成传函有了线性化方程对 $\hat{d}$ 求 $\hat{v}{out}$ 的传递函数就顺理成章了。对上面两个方程做拉普拉斯变换令 $\hat{v}{in}0$把 $\hat{i}_L$ 消去得到控制到输出的传递函数$$G_{vd}(s) \frac{\hat{v}{out}(s)}{\hat{d}(s)}\bigg|{\hat{v}{in}0} \frac{V{in}}{(1-D)^2}\cdot\frac{1 - \dfrac{s}{\omega_z}}{1 \dfrac{s}{Q\omega_0} \left(\dfrac{s}{\omega_0}\right)^2}$$其中三个关键参数是参数表达式物理含义转折频率 $\omega_0$$\dfrac{1-D}{\sqrt{LC}}$由有效LC谐振决定决定主极点位置品质因数 $Q$$(1-D)R\sqrt{\dfrac{C}{L}}$谐振峰的尖锐程度右半平面零点 $\omega_z$$\dfrac{(1-D)^2 R}{L}$相位滞后、且随负载移动先把量级算出来感受一下。还是那组数L22µH、C220µF、R12Ω24V/2A、D0.5$(1-D)0.5$$\omega_0 0.5/\sqrt{22\mu\times220\mu} \approx 0.5/6.96\times10^{-5} \approx 7.2\times10^3$ rad/s即 $f_0\approx1.1$ kHz。$Q 0.5\times12\times\sqrt{220\mu/22\mu} 6\times\sqrt{10}\approx19$这是个很高的Q意味着谐振峰又高又尖。$\omega_z 0.25\times12/22\mu \approx 1.36\times10^5$ rad/s即 $f_z\approx21.7$ kHz。看出来了没有$Q$ 高达19说明这个系统在1.1kHz附近有个巨大的谐振尖峰而右半平面零点在21.7kHz位置比主极点高了将近20倍。这个组合就是Boost环路的地狱组合。4.2 右半平面零点到底从哪来那个分子的 $(1 - s/\omega_z)$零点在正实轴 s ω_z 上也就是所谓的右半平面零点RHPZ。它的来历其实就藏在电容方程那个负号里占空比一增大电感电流的上升斜率确实变大了但二极管导通时间变短于是向输出电容输送电流的路被切得更短短期看输出反而先掉一下等电感电流慢慢攒起来了才逆转。用一句话总结它的行为特征指令一给出输出先往反方向走过一会儿才跟上。这在频域上就表现为幅度上开始抬高20dB/dec相位上却往下掉90度。4.3 相位被吃掉的后果和为什么不能靠加电容解决一个右半平面零点对相位的贡献和左半平面极点是一样的——都是滞后90度但增益变化方向相反。麻烦就在这你为了压谐振峰、提相位裕度常规做法是加一个低通补偿把增益提前降下来可Boost的右半平面零点还远在二十几kHz等你把穿越频率压到它以下你的带宽也被压得很低、动态响应慢得像蜗牛。更坑的是$\omega_z (1-D)^2 R/L$ 里带着负载 R。负载越重R越小右半平面零点越往低频跑相位裕度越差。这就解释了为什么很多Boost方案轻载稳、重载振——模型里那个零点实实在在地往下挪了。想改善要么加大电感 L把零点推高要么降低占空比需求提高输入电压、减小升压比要么接受更低的带宽。这不是补偿网络的锅是Boost这个拓扑的固有属性。我自己的经验设计Boost补偿时穿越频率一般取右半平面零点的1/3甚至1/5以下且要在最重负载下算这个零点。宁可带宽低一点也不要为了响应快硬冲否则负载阶跃时那个先反后正的过冲会非常难看。5. 用峰值电流模式简化建模实际工程里更常见的选择5.1 峰值电流模式为什么能化简传函电压模式要处理那个高Q的谐振峰补偿器很难做所以工程上大量Boost用的是峰值电流模式控制。它的思路是让内环直接控制电感电流的峰值把电感这个储能元件隐进电流环里。直观理解电压外环不再直接指挥占空比而是给电流环下命令给我多少电感电流电流环快速执行。这么一改控制到输出的传函结构就变了近似可以写成一阶形式$$G_{vc}(s) \approx G_{vc0}\cdot\frac{1 - \dfrac{s}{\omega_z}}{1 \dfrac{s}{\omega_p}}$$其中输出主极点近似移到 $\omega_p \approx 1/(RC)$ 附近右半平面零点 $\omega_z$ 依然存在于 $(1-D)^2R/L$ 处——注意电流模式并没有消灭右半平面零点它只是把双极点变成单极点让补偿变简单。这是很多人的误解以为用了电流模式就万事大吉结果重载时照样被零点坑。5.2 峰值电流模式建模里绕不过的采样效应与斜率补偿电流模式有个天然的麻烦它是采样式控制电流的峰值在每个开关周期被比较一次。这带来两个建模上的修正采样导致的额外极点电流环在开关频率一半附近会引入一对高频极点建模时通常用一个 $\omega_s/2$ 附近的高频极点近似或者干脆保证穿越频率远低于 $\omega_s/2$ 来规避。斜率补偿对增益的影响当占空比大于0.5时不加斜坡补偿会发生次谐波振荡。加了斜坡补偿 $S_e$ 之后电流环的有效增益会被压低传函里会多出一个与 $S_e$ 相关的修正因子。近似地电流环增益正比于 $1/(1 S_e/S_n)$其中 $S_n$ 是电感电流上升斜率。这就意味着同一个电路斜坡补偿量变了整体环路增益和带宽都会变。调试时如果你改了斜坡补偿电阻请重新核对相位裕度别想当然。5.3 电压模式还是电流模式选之前先想清楚简单对比一下两种控制下建模和调试的关注点维度电压模式峰值电流模式主传函结构双极点 RHPZ单极点 RHPZ补偿难度高需处理高Q谐振较低易做单极点补偿右半平面零点存在依然存在建模额外注意点Q值随负载变化采样极点、斜率补偿抗输入扰动一般好电流环快速响应对我个人而言做升压比不大的场合倾向电流模式补偿省心做升压比大、又必须快的场合两种模式都得老老实实建模谁也别想蒙混过关。6. 环路补偿设计把传递函数变成能焊上去的元件值6.1 先定目标再算补偿建模的终点不是那条曲线而是补偿网络里那几个电阻电容的具体数值。开始之前先把目标钉死穿越频率 $f_c$取右半平面零点的1/5到1/3且不超过开关频率的1/10。以前面那组数为例$f_z\approx21.7$kHz那 $f_c$ 定在 5kHz 左右比较稳妥。相位裕度目标 45°到60°。低于45°阶跃响应会明显振铃高于60°又偏慢。低频增益越高越好但和带宽、抗噪能力要折中。6.2 一个电压模式补偿的实际算法以最常见的Type III补偿为例思路是用两个零点去对消LC双极点用两个极点去压高频。步骤大致是在目标穿越频率处读出未补偿系统 $G_{vd}(j2\pi f_c)$ 的幅值和相位。前面那组数里由于Q很高、且RHPZ离得还不算太近这个点的相位往往已经掉到-120°甚至更低。计算需要的相位提升量据此决定补偿零点放在LC谐振频率附近通常取 $f_0$ 的0.5到1倍把双极点造成的-180°相位拉回来。在RHPZ附近或开关频率一半处放高频极点压制高频噪声增益防止把开关噪声放大进来。用低频极点或积分项给足低频增益保证稳态误差。算完之后一定要把补偿后的开环波特图重新画出来核验穿越频率和相位裕度纸上算完再动手改板。6.3 参数落地与实测校准的差距处理算出来的元件值通常是漂亮的数比如 12.7kΩ实际要选 12kΩ 或 13kΩ。这种四舍五入一般不影响大局但要注意补偿零点电容不要选得太小否则PCB寄生电容、运放输入电容会明显影响实际零点位置。反馈分压电阻的取值会影响分压点阻抗进而影响补偿网络别一个劲地加大阻值省功耗。实测相位裕度建议用负载阶跃响应间接估算看第一个过冲后是否能在两三个周期内收敛振铃周期反推的阻尼比就能对应到相位裕度。7. 模型对不上实测的三个高频原因第一工作点选错了。Boost的传函里 $D$、$R$ 全在工作点里你在一个工作点建模实测却在另一个点跑对不上太正常。尤其要记得用最高输入电压 最轻负载和最低输入电压 最重负载这两个极端分别校验取最差的来补偿。第二忽略了大信号下的DCM。轻载时电感电流可能断续传函结构整个变了原本的双极点变成单极点增益也不同。轻载振荡很多时候是进了DCM而不是右半平面零点。判断方法很简单看电感电流波形有没有平台归零段。有那就是DCM这套CCM小信号模型直接失效。第三寄生参数没进模型。电感的直流电阻会在低频引入额外压降和相位电容的等效串联电阻会在输出端制造一个零点把高频相位往回抬。实测和仿真对不上时建议把这些参数补进模型把电容ESR当成与C串联的电阻、把电感DCR串进电感支路重新推一遍或者直接用仿真软件把寄生填进去往往能解释大部分偏差。8. 我自己在建模这条路上踩过的几个坑先说个最实在的别在没有工作点的情况下空谈传函。我早年做第一版Boost兴冲冲画了波特图、选好补偿结果上电就振。回头一查稳态占空比根本不是我以为的0.5而是因为效率损耗实际到了0.55$1-D$ 变了有效电感和有效电容全变传函整个挪了位置。从那以后我一定先量稳态占空比再开始建模。第二个坑是把右半平面零点当成普通零点去对消。有次我试图用一个左半平面零点去抵消它仿真里看着相位挺好一上电负载阶跃直接反向顶到过压。原因很朴素右半平面零点相位是滞后的你拿一个相位超前的零点去抵消数学上消掉了但物理上那个先反后正的瞬态行为还在电流环再快也快不过能量守恒。记住RHPZ只能远离、不能对消正确做法是把带宽降到它以下。第三个坑关于斜坡补偿改变环路。做电流模式Boost时我调了一次补偿电阻负载阶跃变好看了等同一批板子在另一个负载点测试时又开始振。后来才意识到改了补偿量相当于改了电流环增益整个外环的传函都变了必须重新画波特图不能只看一个点调。最后分享一个我自己常用的小技巧建模算完别急着相信先用一个小信号仿真把开关模型用平均模型或受控源搭出来跑一遍扫频再用实测阶跃响应反向验证。三者的结果互相印证你对这套模型的信心才真正建立起来。模型的价值不在于它有多精确而在于它让你在改补偿之前就知道会发生什么而不是焊上去之后对着示波器猜。