ARTICLE DETAIL

资讯详情

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

Boost小信号建模:右半平面零点与环路补偿实战

Boost小信号建模:右半平面零点与环路补偿实战 做升压电源的人大概都有过这么一段经历Buck电路那套补偿参数用得挺顺手换成Boost之后把同样的思路搬过去结果一上电就在轻载下叫唤或者带载切载时输出电压像荡秋千一样来回晃。问题不在你的焊接也不在芯片选型而是Boost这个拓扑从骨子里就带着几个Buck没有的坏脾气——右半平面零点、随占空比漂移的双重极点、轻载自动跳进DCM。想把环路真正调稳绕不开的一件事就是Boost电路小信号建模分析。这篇东西不打算写成教科书式的推导流水账。我会按自己实际做项目的顺序来先讲清楚Boost小信号建模到底在解决什么问题为什么不能照抄Buck然后把状态空间平均那三步推导拆开揉碎接着给一版可以对着抄的完整设计实例从12V升到24V、48W把电感、电容、极零点、补偿器全部算一遍最后是平均模型仿真、开关模型时域对照、实测Bode图注入的具体做法以及我这些年踩过的坑和排查清单。不管你是刚接触开关电源的新手还是已经做过几版Buck想往Boost上走的工程师这篇应该都能直接用。1. 为什么Boost的小信号模型比Buck难啃1.1 拓扑决定的非最小相位基因先把结论摆在前面Boost的控制到输出传递函数里天然带一个右半平面零点RHP Zero而Buck没有。这不是控制方式带来的是拓扑结构决定的你换芯片、换补偿方案、换控制模式都消灭不了它。物理上怎么理解想象Boost在稳态工作占空比突然增大一点点。直觉上你会觉得多导通一点输送到输出的能量更多输出电压应该升上去。但实际发生的顺序是反的占空比一增大二极管导通的时间比例D 1 - D立刻变小而电感电流是慢慢涨上去的它不会瞬间响应。所以在占空比刚刚增大的那一小段时间里二极管向输出端输送的平均电流D·iL反而先变小了输出电容只能靠放电来维持负载输出电压先往下掉等电感电流慢慢爬到新的平衡值之后输出电压才掉头向上。这个先反向、后同向的响应在频域里就表现为一个位于右半平面的零点。它的危害不是幅度——RHP零点的幅度和普通左半平面零点一模一样都是20dB/dec——而是相位。它带来和普通零点同样大小的相位滞后最大可以拖到90度。更麻烦的是你没法用补偿器的极点去抵消它因为一旦抵消环路增益在那个频段就会变成无穷大直接不稳定。RHP零点的频率大致可以记成ω_z D² · R / L R为等效负载电阻L为电感 f_z D² · R / (2π · L)这里有两个要点必须刻在脑子里。第一f_z和开关频率没关系你把开关频率从200kHz提到2MHzRHP零点一点都不会往右跑。第二f_z和负载电阻成正比也就是说满载时RHP零点最低、最难搞轻载时反而宽松。这和很多人的直觉是反的——不少人以为轻载才是最难调的工况对Boost来说轻载的麻烦主要来自DCM和高Q值满载的麻烦来自RHP零点把带宽卡死。1.2 一个把Buck补偿参数直接搬过来的翻车现场说个我早期的真实案例。当时做一块车载用的12V升24V模块输出2A开关频率200kHz。因为之前在Buck上积累了一套Type III补偿的参数零点放得很漂亮相位裕度轻松做到60度以上我就顺手把那套参数搬到了这块Boost上心想都是电压模式控制能差到哪去。上电之后空载电压正常加载到1A也稳看起来一切正常。但做负载跳变测试的时候就露馅了——从0.5A切到2A的瞬间输出电压直接冲到31V然后又跌到19V来回振荡了差不多六七个周期才稳定下来。当时第一反应是输出电容不够把47µF加到220µF结果更糟振荡周期反而变长了。后来老老实实做了一遍小信号推演才明白我把交越频率定在了20kHz而这个设计在满载下的RHP零点只有14.5kHz。交越频率跑到RHP零点右边去了环路在那个频段被零点带来的额外相位滞后直接吃掉了裕度负载电流一突变就进入大信号振荡。把交越频率压到3kHz以下、补偿器零点重新布置之后同样的电容、同样的电感负载跳变的过冲从12V降到了420mV恢复时间不到1ms。这里插一句实操心得Boost的环路带宽是被RHP零点锁死的不是被开关频率锁死的。通常的经验是交越频率取RHP零点的1/5到1/3。按这个算一个D0.5、满载12Ω、电感33µH的设计RHP零点14.5kHz交越频率最多也就3~4kHz。想再快只能从减小电感入手但纹波会变大或者干脆降低升压比。1.3 建模之前先明确三件事在动手推公式之前有三件事必须先定下来否则后面全是无用功。第一件是导通模式。Boost在轻载下很容易进入DCM判据是电感电流的平均值IL是否大于纹波峰值的一半。对Boost来说输出电流和电感电流的关系是Iout IL · D所以临界输出电流是Iout_crit ΔIL · D / 2。在1.2节那个例子里ΔIL 1.2AD 0.5所以输出电流低于0.3A就进DCM了。DCM下小信号模型完全变了双极点退化成单极点RHP零点被推到很高频率基本可以忽略但代价是直流增益和极点位置随负载剧烈漂移环路设计反而更麻烦。所以做建模之前务必先画出你所有工作点的导通模式边界。第二件是控制模式。电压模式VMC和峰值电流模式CMC的小信号模型天差地别。CMC把电感那个双极点拆成了一个单极点理论上带宽可以做高但引入了采样效应极点在fsw/2附近和占空比大于0.5时的次谐波振荡问题必须加斜坡补偿。而且注意——CMC并不会消灭RHP零点它是拓扑带来的换控制模式没用只是控制到输出的传递函数形式变了。第三件是建模精度需要到哪一级。如果只是为了验证环路稳定性状态空间平均得到的理想模型就够了如果要精确到实测相位误差在10度以内就必须把电感DCR、MOSFET导通电阻、二极管正向压降、输出电容ESR、开关损耗全部塞进去。这些寄生成分对模型的低频增益几乎没影响但对Q值和中高频相位的影响非常实在。2. 平均化建模把开关纹波抹平的三步2.1 第一步写出两个开关区间的分段方程状态空间平均的核心思想特别朴素开关电源在每个周期里其实是在两个CCM下线性电路之间来回切换每个电路本身都是线性的、好分析的难的是开关那个瞬间。既然开关动作的频率远远高于我们要关心的环路带宽通常是几十倍以上那就可以把两个区间按占空比加权平均得到一个连续的等效模型。先把Boost的电路符号和状态变量定清楚。主电路是输入电压Vin接电感L电感另一端记作开关节点节点和地之间是MOSFET节点和输出之间是二极管输出端接电容C和负载R输出电压记作vC也就是Vout。两个状态变量是电感电流iL和电容电压vC。MOSFET导通区间占空比dL · diL/dt Vin C · dvC/dt -vC / R这个区间里电感直接跨在输入电源上电流线性上升输出端和输入完全断开电容独自给负载供电所以电压往下掉。这里能看出Boost的一个特点导通期间输出电容完全没有能量补充这也是为什么Boost的输出纹波比Buck难压。MOSFET关断区间占空比d 1 - dL · diL/dt Vin - vC C · dvC/dt iL - vC / R这个区间里电感通过二极管把能量送给输出端电感两端电压是Vin - vC注意因为Boost的vc Vin这个值是负的所以电流是下降的同时二极管电流一部分给负载一部分给电容充电。把上面两组方程用占空比加权求和就得到平均化之后的方程L · diL/dt d · Vin d · (Vin - vC) Vin - d · vC C · dvC/dt d · (-vC/R) d · (iL - vC/R) d · iL - vC/R整理一下这就是Boost在CCM下的大信号平均模型L · diL/dt Vin - (1 - d) · vC C · dvC/dt (1 - d) · iL - vC / R相比原始的分段方程这两个式子已经是连续的了。它丢掉了什么丢掉了开关纹波本身比如电感电流的三角波、输出电压的锯齿。但对环路来说你关心的本来就是低频包络的行为纹波只是叠加在上面的高频噪声不影响稳定性判断。这个取舍就是平均法的全部代价。2.2 第二步一个周期内做加权平均的隐含假设上面那步加权平均看起来理所当然实际上它偷偷用了三个假设理解这三个假设的边界比记住公式本身有用得多。第一个假设是开关频率远高于模型关心的频率范围。严格的数学处理要用到傅里叶级数展开和小纹波近似结论是只有当关心的频率远低于fsw时平均模型才准确。实践中一般认为模型的可靠上限在fsw/10附近最多到fsw/5。所以如果你设计的是500kHz的Boost模型给你算到50kHz是可信的再往上的相位数据就不用太当真了。这一点在仿真对照的时候特别容易踩坑——很多人拿开关模型跑到100kHz去和平均模型比对发现相位差了几十度就以为模型错了其实是超出了适用范围。第二个假设是纹波足够小。严格来说占空比加权平均时非线性项d·vC的平均值并不等于D·VC中间会多出一个和纹波相关的修正项。当电感电流纹波和平均电流的比值在20%~40%这个常规范围内时忽略这个修正项带来的误差通常在几个百分点以内可以接受。但如果为了减小电感体积把纹波做到平均电流的80%以上平均模型的低频增益就会开始明显偏离实测。第三个假设是开关周期内占空比近似不变。这要求调制信号的频率远低于开关频率也就是环路带宽要远低于fsw。这一点在正常设计里都满足。注意这三个假设是所有基于状态空间平均的模型共享的不管你是自己做推导还是用PLECS、Simulink里的现成平均模型模块边界都一样。很多人抱怨仿真和实测对不上十有八九是拿模型去分析它本来就不该管的频段了。2.3 第三步解出静态工作点推导小信号模型之前必须先找到工作点。所谓工作点就是让所有导数等于零的那个稳态解。把上面两个平均方程左边置零Vin - D · VC 0 → VC Vin / D 也就是 Vout Vin / (1-D) D · IL - VC / R 0 → IL VC / (D · R) Vin / (D² · R)第一个式子就是你熟悉的Boost升压公式。第二个式子稍微变一下形就是输出电流和电感电流的关系Iout VC / R D · IL也就是说输出端拿到的电流只有电感电流的D倍——剩下的那部分电流在MOSFET导通期间从开关管流走了。把设计指标代进去验证一下。前面那个12V升24V的例子Vin 12VVout 24V解得D 0.5也就是占空比D 0.5。负载2A时R 12Ω代入第二个式子IL 24 / (0.5 × 12) 4A。也就是说一个输出2A的Boost电感上平均跑着4A的电流MOSFET和二极管都要承受这个电流。这是Boost的另一个隐性成本电感电流和开关管电流都比输出电流大选器件的时候千万别按输出电流去算。提示实际电路里因为二极管有正向压降、MOSFET有导通电阻、电感有DCR实际占空比会比理想值大一些。举例来说如果MOSFET的Rds(on)是20mΩ、二极管压降0.5V、电感DCR是30mΩ那么在4A电流下额外损失的电压大概在0.7~0.8V量级占空比要从0.5涨到0.53左右。做补偿器设计时用理想值算问题不大但如果要精确预测满载时的实占空比这几个压降都得算进去。3. 扰动与线性化三个传递函数的完整推导3.1 加扰动、分离大信号与小信号有了大信号模型接下来是把它在静态工作点附近线性化。这一步的操作在数学上叫泰勒展开取一次项在手算上就是一套固定套路。先给每个变量加上一个小扰动d D d̂ d̂ 是占空比的小扰动 iL IL î vC VC v̂C Vin Vin v̂in注意大信号平均模型里有两个乘积项(1-d)·vC和(1-d)·iL这两个是产生非线性的根源也是小信号模型的全部信息来源。把扰动展开以电感方程为例L · d(IL î)/dt Vin v̂in - (1 - D - d̂) · (VC v̂C)右边展开(1 - D - d̂)(VC v̂C) D·VC D·v̂C - d̂·VC - d̂·v̂C其中d̂·v̂C是两个小量相乘属于二阶项直接丢掉。剩下的部分里Vin - D·VC 0是直流平衡条件工作点方程自动消掉。只留下交流项除以Ldî/dt (v̂in - D·v̂C VC·d̂) / L同样的方法处理电容方程C · dv̂C/dt D·î - IL·d̂ - v̂C / R到这里你已经拿到了Boost小信号模型的完整方程组。把它画成电路的话等效结构是这样的电感左端接输入电压扰动右端接一个受控电压源这个受控电压源由两部分组成一部分是D·v̂C相当于一个匝比D:1的理想变压器另一部分是VC·d̂控制信号经过一个增益为VC的压控源注入。输出侧同理D·î是变压器副边电流IL·d̂是控制信号产生的电流源。这套东西在教科书里叫PWM开关模型或者平均开关模型和状态空间平均是等价的两条路。3.2 控制-输出传递函数 Gvd 的推导现在来求最关键的Gvd也就是占空比扰动到输出电压的传递函数条件是输入电压扰动为零v̂in 0。把上一步的两个方程整理一下去掉微分符号直接用拉普拉斯算子sL·î -D·v̂C VC·d̂ ... (1) sC·v̂C D·î - IL·d̂ - v̂C/R ... (2)从(1)式解出 îî (VC·d̂ - D·v̂C) / (sL)代入(2)式(sC 1/R)·v̂C D·(VC·d̂ - D·v̂C)/(sL) - IL·d̂把含v̂C的项都挪到左边v̂C · [sC 1/R D²/(sL)] d̂ · [D·VC/(sL) - IL]两边同乘sLv̂C · [s²LC sL/R D²] d̂ · [D·VC - sL·IL]到这里就已经是Gvd了把VC Vin/D、IL VC/(DR)代进去整理成标准二阶形式得到Gvd(s) (Vin / D²) · (1 - s·L/(D²·R)) / (1 s/(Q·ω0) (s/ω0)²)其中三个关键参数是ω0 D / √(L·C) 双极点角频率 Q D · R · √(C/L) 品质因数 ωz D² · R / L 右半平面零点这个式子值得逐项拆开看它把Boost的所有坏脾气都摆在明面上了。先说直流增益Gvd(0) Vin/D² Vout/D。在12V升24V、D0.5的情况下直流增益是48也就是33.6dB。这个值挺大的意味着在低频段环路的开环增益会很高这对稳态精度是好事。再说双极点。注意它的角频率ω0 D/√(LC)比Buck的1/√(LC)整整多了一个D因子。这意味着Boost的双极点会随着占空比变化而移动——输入电压从12V掉到9V时D从0.5降到0.375双极点频率跟着往下掉25%。做环路设计不能只算一个工作点要在输入电压范围的两端和负载范围的两端各算一遍取最坏情况。这是Boost补偿器设计里最容易被忽略的一点。然后是品质因数Q D·R·√(C/L)。这个值直接决定了双极点处的增益峰值有多高峰值大约是Q倍换算成分贝是20·log10(Q)。在12V升24V/2A的例子中Q 0.5 × 12 × √(47µF/33µH) ≈ 7.2对应峰值17.2dB。这个峰有多麻烦它意味着在双极点附近的频段环路增益会被抬升17dB相位会快速地从-90度滑向-180度。如果补偿器不在这里做点什么负载跳变时输出就会振铃。最后是右半平面零点ωz D²·R/L。前面已经讲过它的物理来源和对相位的破坏。这里补充一个数字感受在这个设计里ωz 0.25 × 12 / 33µH 90.9k rad/s也就是14.5kHz。而双极点在f0 ω0/(2π) 0.5/(2π·√(33µH × 47µF)) ≈ 2.02kHz。RHP零点只有双极点的7倍频程左右这就是Boost环路带宽被卡死的直接原因。3.3 三个传递函数对照与RHP零点的物理来历除了Gvd实际设计里还会用到另外两个传递函数。用同样的方法把d̂ 0只保留v̂in就能得到输入到输出的传递函数音频敏感度Gvg把输入和占空比扰动都置零、在输出端注入电流扰动就能得到开环输出阻抗 Zout。三个整理在一起比较清楚传递函数表达式直流增益用途控制-输出 Gvd(Vin/D²)·(1 - sL/(D²R)) / (1 s/(Qω0) (s/ω0)²)Vout/D环路补偿设计的主对象输入-输出 Gvg(1/D) / (1 s/(Qω0) (s/ω0)²)1/D评估输入扰动对输出的抑制能力开环输出阻抗 Zout(sL/D²) / (1 s/(Qω0) (s/ω0)²)0评估负载跳变响应、并联均流有意思的是Gvg里没有右半平面零点。原因很直接输入电压上升时电感电流的上升是顺向的输出电流D·iL也跟着涨没有那个先反向的过程。所以Boost对输入扰动的抑制能力其实还不错直流增益1/D2也就是6dB衰减真正难搞的是控制通道。而Zout在直流下趋近于零这也很符合直觉Boost的输出端通过电感、开关管和输入电源连通低频时电感近乎短路输出阻抗被输入源短路掉了。往高频走电感阻抗升高Zout逐渐由输出电容主导变成典型的容性阻抗1/(sC)。这个特性直接决定了负载跳变时的初始过冲幅度——过冲的尖峰主要取决于输出电容和负载电流的比值跟环路带宽关系不大环路只负责把电压拉回来。再说回RHP零点我想强调一个容易误解的点RHP零点不是延迟环节。很多人第一次看到RHP零点带来相位滞后就把它和传输延迟混为一谈然后试图用减小开关周期、提高开关频率的办法去补偿它。这是徒劳的因为延迟的相位是随频率线性增长的而RHP零点的相位是反正切形式、最大到90度两者在低频段的形状完全不同。正确的做法只有一个承认它的存在把环路带宽压到它左边然后用足够的前馈或者大容量的输出电容去改善负载跳变的动态。顺便说一句有些资料会提到用电流模式控制可以消除RHP零点这个说法是不准确的。峰值电流模式控制改变了控制到输出的传递函数形式电感双极点被拆成单极点但RHP零点依然在原位。它只是让补偿器设计变简单了并没有突破拓扑层面的带宽限制。真正的突破方向是做多相、做前馈、或者干脆换拓扑比如用Buck-Boost的衍生结构但那都是另一个话题了。4. 一版可复现的设计实例12V升24V/2A4.1 主电路参数计算过程光看公式容易飘我们把它落到一组具体数字上。设计指标如下输入电压12V工作范围9V~15V输出电压24V输出电流0.3A~2A满载48W开关频率200kHz导通模式全范围CCM第一步算占空比。理想情况下D 1 - Vin/Vout 1 - 12/24 0.5。考虑实际压降按0.53来选器件余量。第二步算电感电流。IL Iout / D 2 / 0.5 4A。这是设计电感、MOSFET和二极管的核心电流值不是2A。第三步算电感量。按电感电流纹波取平均值的25%来设计这个比例是个权衡比例小则电感体积大、成本高比例大则纹波电流大、开关损耗和EMI都变差同时平均模型的准确度也会下降。那么纹波电流ΔIL 0.25 × 4A 1A电感量为L Vin · D / (ΔIL · fsw) 12 × 0.5 / (1 × 200k) 30µH取标称值33µH。回头验算一下实际纹波ΔIL 12 × 0.5 / (33µH × 200k) 0.91A占平均电流的22.7%合理。峰值电流是4 0.91/2 4.45A所以电感的饱和电流至少要选到6A以上留出1.3倍以上的裕量。第四步算输出电容。Boost的输出电容在一个开关周期里只有在MOSFET关断期间才被充电导通期间完全靠放电维持负载所以纹波主要由导通期间决定ΔVout ≈ Iout · D / (fsw · C)目标是输出纹波小于1%也就是240mVC ≥ Iout · D / (fsw · ΔVout) 2 × 0.5 / (200k × 0.24) 20.8µF看起来20.8µF就够了但这是理想值。实际选型要考虑三点一是陶瓷电容的直流偏压下容量衰减一颗标称47µF的X7R在24V偏置下有效容量可能只剩一半二是负载跳变时电容要提供瞬态能量这部分和环路带宽直接相关三是电解电容的ESR会贡献额外的纹波分量。综合考虑我选了47µF的有效容量用两颗22µF/50V的X7R并联再并一颗100µF的固态电解做低频支撑。核算下来有效容量约47µF纹波约106mV占0.44%。实操心得Boost的输出电容选型我一般按理论计算值的2~3倍来留余量多出来的部分主要不是为了压纹波而是为了在环路带宽被RHP零点限制的情况下改善负载跳变响应。这个设计里交越频率只有不到3kHz负载从0.5A跳到2A时环路根本来不及反应前100µs全靠电容硬扛。4.2 极零点、增益与直流工作点核算参数定下来之后把三个关键频率算清楚。这里用满载2A、输入12V的工况因为这是RHP零点最低的最坏情况D 0.5 R 24V / 2A 12Ω 双极点f0 D / (2π·√(L·C)) 0.5 / (2π·√(33µH × 47µF)) 2.02kHz 品质因数Q D·R·√(C/L) 0.5 × 12 × √(47µF/33µH) 7.16 17.1dB峰值 RHP零点fz D²·R / (2π·L) 0.25 × 12 / (2π × 33µH) 14.5kHz 直流增益Gvd(0) Vin/D² 12/0.25 48 33.6dB这几个数字放一起看问题就很清楚了双极点在2.02kHzRHP零点在14.5kHz两者只差不到三个倍频程。如果按常规的交越频率取开关频率的1/10来设计也就是20kHz那直接踩到RHP零点右边去了必然不稳定。正确做法是fc ≤ fz / 5 14.5kHz / 5 ≈ 2.9kHz同时还要检查另一个约束交越频率不能太靠近双极点。因为双极点处的增益峰值有17.1dB如果交越频率刚好落在这个峰值附近环路增益会在那里形成平台甚至隆起造成增益裕度不足。实践中的经验是交越频率一般取在双极点的1.5倍到3倍之间让环路在双极点峰值之后、以-20dB/dec的斜率穿过0dB线。这个设计里双极点2.02kHz交越2.9kHz比值1.44略偏紧但配合后面要讲的补偿器零点布置可以接受。另外还要检查一下输出电容ESR带来的零点。假设用X7R并联后等效ESR约20mΩ那么f_esr 1 / (2π · ESR · C) 1 / (2π × 0.02 × 47µF) 169kHz这个零点远在14.5kHz的RHP零点之外对环路没帮助也没害处可以直接忽略。但如果用的是普通铝电解ESR可能到200mΩ零点就掉到17kHz了虽然幅度上能抬一点高频增益但相位上挽救不了而且会和电容容差一起让环路特性变得不可预测所以Boost的输出电容我还是推荐陶瓷或者固态电容打底。4.3 补偿器设计与带宽取舍交越频率定在2.9kHz接下来要选补偿器。根据前面算的极零点分布我们需要满足三个条件一是在低频段有足够高的增益保证稳态精度二是在双极点附近提供足够的相位提升把那个17dB的隆峰压下去三是在RHP零点之前让增益以-20dB/dec的斜率穿过0dB。这三条要求指向的补偿器结构是Type III也就是一个积分器 两个零点 两个极点。传递函数写成标准形式Gc(s) (ωi / s) · (1 s/ωz)² / (1 s/ωp)²零点极点怎么放是有讲究的不能随便。零点放哪零点的作用是提供相位提升。理论上把零点放在双极点频率2.02kHz上可以对消掉那个隆峰但实际计算下来相位裕度只能到13度不够。原因是交越频率2.9kHz是双极点2.02kHz的1.44倍在这个位置上双极点已经贡献了约-169度的相位滞后补偿器零点能提升的相位被吃掉了大半。所以要把零点放在双极点下面我最终放在1.0kHz大约是双极点的一半。这样在2.9kHz处两个零点各自贡献约71度的相位提升合计约142度减去积分器的90度和两个高频极点的3度净贡献约49度。极点放哪高频极点的作用是压制开关纹波和高频噪声位置一般取在开关频率的一半附近这里取100kHz。两个极点放在一起在2.9kHz处只贡献约3度的相位滞后可以接受。如果把这俩极点放到20kHz相位就会多损失20度左右得不偿失。积分器增益这个要算。要求环路在2.9kHz处恰好穿过0dB先算被控对象在那里有多大的增益|Plant(j2.9kHz)| 48 × |1 - j(2.9/14.5)| / |1 - (2.9/2.02)² j(2.9/2.02)/7.16| 45.3 33.1dB所以补偿器在2.9kHz处的增益必须是-33.1dB也就是0.0221。把这个条件代进Gc的表达式反解出积分器参数得到ωi 42.8 rad/s对应积分器的单位增益频率约6.8Hz。最终补偿器参数汇总参数数值说明integrals积分器单位增益频率6.8Hz决定低频增益和稳态精度双零点 fz1.0kHz在双极点下方提供相位提升双极点 fp100kHz约等于fsw/2抑制高频噪声中频段增益2.9kHz处-33.1dB由交越频率条件决定按这套参数跑一遍理论计算的交越频率2.9kHz、相位裕度约48度、增益裕度约20dB。实际仿真扫出来是2.87kHz、相位裕度46度、增益裕度19.5dB和手算基本吻合。这里有个取舍要说清楚48度的相位裕度不算宽裕很多Buck设计能轻松做到60度以上。但对这个Boost来说想再往上提就得牺牲带宽。我试过把零点半移到700Hz相位裕度能到54度但低频增益也跟着掉电源调整率会变差最后权衡下来还是选了1kHz。Boost的补偿设计本质上是一个带宽换裕度的连续取舍过程不存在两全的方案。判断标准应该是在你的最坏工况最低输入电压、最大负载下相位裕度不低于45度同时负载跳变的恢复时间能满足系统要求。5. 仿真与实测怎么确认模型算得对5.1 用行为源搭平均模型做AC扫描手算出来的东西一定要用仿真和实测双验证。第一步是搭平均模型做AC扫描这一步的目的是验证推导和手算数字和实测无关——因为平均模型本身就对应着你推导出的那个数学对象。平均模型用行为源搭最方便任何支持行为源的仿真器都能做。核心就是把开关网络替换成两个受控源开关节点对地的电压源受d × Vout控制注入输出节点的电流源受d × iL控制这两个式子正好就是我前面推导里v_X d·vC和i_out d·iL的电路实现。用LTspice写出来大概是这样* Averaged CCM Boost model for AC analysis Vin in 0 12 Vsense in sw1 0 L1 sw1 sw 33u Bvx sw 0 V (1-V(duty)) * V(out) Biout 0 out I (1-V(duty)) * I(Vsense) Cout out 0 47u Rload out 0 12 Vduty duty 0 DC 0.5 AC 1 .ac dec 200 1 500k .backanno .end跑.ac分析时仿真器会自动在直流工作点处对所有行为源做线性化duty上的AC源幅度设为1那么V(out)的AC结果就直接是Gvd。想看Gvg就把AC源从duty挪到Vin上duty的AC分量置零。把仿真结果和手算对一下直流增益应该是33.6dB左右峰值出现在2.02kHz附近、幅度约50.7dB直流33.6dB 峰值17.1dBRHP零点在14.5kHz处相位开始加速下滑。如果对不上先别怀疑推导去检查你的d定义和AC源的位置——最常见的错误是把1-V(duty)写成了V(duty)那样得到的是完全另一个东西。注意这个模型只适用于CCM。如果你把负载电阻改到40Ω以上电流小于0.6A模型就开始失真了因为这个时候电路已经接近DCM边界。要分析轻载得换用DCM的平均模型那个模型的推导方式完全不同直流增益和极点位置都会随负载大幅漂移。5.2 开关模型时域对照与阶跃验证平均模型验证完推导还要用真正的开关模型做一次时域对照确认平均模型没有丢掉关键动态。具体做法是在同一个电路里同时搭一个开关模型加一个小幅度的占空比阶跃比如从0.50跳到0.502观察输出电压的时域响应再和平均模型的阶跃响应比对。开关模型里要注意几个容易出错的地方。一是仿真步长开关频率200kHz周期5µs最大步长至少要设到周期的1/100也就是50ns以内否则波形会被抹平。二是初始条件要让电路先在稳态跑够几百个周期再施加扰动否则看到的全是启动过程。三是扰动幅度必须在1%以内否则就跑到大信号范围去了非线性效应会掩盖小信号特性。我一般会做三个对照实验。第一个是占空比小阶跃验证直流增益和低频响应第二个是输入电压小阶跃验证输入到输出的传递关系第三个是负载小阶跃比如12.0Ω跳到12.12Ω验证输出阻抗的建模。三个都
返回列表