做电源这些年,被问得最多的拓扑就是BUCK。电感怎么选、MOS怎么算、环路怎么补偿,这些网上资料一大把,但真正让很多工程师卡住的,往往是“峰值电流模式控制BUCK功率级”那一系列不太直白的特性。为什么占空比超过50%会抖动?为什么电压模式里LC双极点那么难补偿,换成峰值电流模式就好像变简单了?为什么斜坡补偿明明是为了稳定,加过头了反而出问题?这篇文章就把这些“特殊特性”拆开,从功率级的底层行为讲到工程实现,适合刚接触电流模式控制的电源工程师,也适合那些已经画过好几版原理图、但遇到次谐波振荡和采样噪声还在挠头的同行。
1. 峰值电流模式控制BUCK功率级的底层逻辑
1.1 为什么说峰值电流模式是“内环电流、外环电压”的双环结构
峰值电流模式控制的核心,是把功率级里那个最“难缠”的电感电流单独拎出来,用内环把它每周期死死看住。典型架构是这样的:电压误差放大器把输出电压Vout和基准电压Vref的误差放大成控制电压Vc,Vc送到电流比较器的一端;另一端接电感电流的检测信号,这个检测信号可以是采样电阻上的电压、电感DCR电压,也可以是低边MOSFET的RDS(on)压降。开关管的开通由时钟脉冲统一触发,开通之后电感电流开始上升,检测电压也跟着上升,直到它超过Vc,电流比较器翻转,关断开关管。这样一来,每个开关周期里,电感电流的“峰值”都由Vc直接决定。
这个双环结构带来的第一层好处,就是把原本工作在电压模式下的BUCK功率级,从“占空比驱动”变成了“电流源驱动”。电压模式下,占空比直接控制电感两端的平均电压,功率级的输出阻抗、LC滤波网络全都暴露在控制环里,二阶段的相频曲线实在是太考验补偿功力。峰值电流模式下,内环在每一个周期都强制电感电流跟随指令,相当于在电感后面塞了一个受控电流源。电压外环面对的,不再是一个带着电感和电容双重储能的二阶网络,而是一个“电流源给电容充电”的一阶系统,补偿设计自然轻松很多。
这里有几个容易被新手忽略的细节。第一,电流比较器采样的是“峰值”,不是“平均值”,这就决定了控制器天然带有逐周期限流功能——只要Vc被误差放大器输出钳位,峰值电流就是硬的,过载时不会出现电感电流失控跑飞的场景。第二,电流内环的带宽理论上可以做到开关频率的一半甚至更高,远高于电压外环的穿越频率,所以电压环在设计时可以相对放心地把电流环当成“透明”环节。第三,这种结构天然带输入电压前馈特性,输入电压一升高,电感电流上升斜率变大,到达Vc的时间就变短,占空比自动减小,响应速度比电压模式快不少。
1.2 峰值电流模式下平均电感电流与指令电流的偏差关系
学习和应用峰值电流模式时,最容易栽跟头的地方,就是把“峰值等于指令”直接等价成“平均电流等于指令”。在CCM(连续导通模式)下,平均电感电流和峰值之间差半个纹波:
IL_avg = IPK - 0.5 × ΔIL
其中ΔIL = (Vin - Vout) × D / (L × fsw)。这个式子看似简单,里面全是变量。输入电压、输出电压、电感量、开关频率甚至占空比,都会影响纹波大小,进而影响“峰值指令和平均电流”之间的比例关系。换句话说,即使Vc纹丝不动,只要Vin变了或者负载让D变了,平均电感电流也会跟着变。
这个现象在工程上会直接反映为电压环增益随工作点飘移。你按额定输入电压12V、输出5V设计好的环路,换成8V输入之后,同样的误差电压对应的平均电流已经不一样了,穿越频率和相位裕度都会发生偏移。这也是为什么电流模式控制虽然“看起来”把电感变成了一阶系统,但实际做出来的电源,在宽输入范围下的环路行为仍然会有差异。很多成熟芯片内部会用斜坡补偿来抵消一部分这种增益变化,同时靠误差放大器的增益余量来吞掉剩余偏差。自己搭分立方案时,大信号满载、低输入电压、低开关频率这三个条件叠加,往往是环路最容易靠近振荡边界的时候。
2. 功率级特殊特性一:二阶系统退化成“一阶+高频双极点”
2.1 从电压模式到电流模式的传递函数变化
先回顾电压模式BUCK的控制到输出传递函数,忽略输出电容ESR时大致是:
Gvd(s) = Vin / (1 + s / (Q × ω0) + s² / ω0²)
其中ω0 = 1 / sqrt(L × C),Q = R × sqrt(C / L)。这就是那个经典的LC双极点,在谐振频率处有高Q尖峰,补偿网络必须想办法抬升相位,否则穿越频率附近相位裕度很容易崩溃。这也是电压模式BUCK让很多新手头疼的根源。
切到峰值电流模式后,理想情况下电感电流被内环整定为一个受控电流源,输出电压就是该电流流出输出电容和负载电阻的乘积。忽略高频采样效应时,控制电压Vc到输出电压Vout的传递函数可以简化成:
Gvc(s) ≈ Rload / ((1 + s × Rload × C) × Rs)
这里Rs是电流检测增益。可以看到,电感和输入电压几乎从传递函数里消失了,剩下的是一个单极点结构。极点位置由负载电阻和输出电容决定,fp = 1 / (2π × Rload × C)。这个位置好处理得多——误差放大器只要给一个零点去对消它,再加一点增益,就能做成稳定的闭环。
这背后物理含义值得说透。峰值电流模式相当于在“开关器件”和“LC滤波器”之间插入了一个快速反馈回路,把电感电流从“状态变量”变成了“被控输出”。电感不再作为二阶系统的储能元件参与电压环,而是躲在电流环内部。负载变化时,电压外环只需要考虑输出电容上的电荷变化,一阶特性让补偿网络可以大胆提高穿越频率。实际产品里,一个性能不错的峰值电流模式BUCK,电压环穿越频率做到开关频率的1/10到1/5是很常见的事,这对电压模式来说是相当困难的。
2.2 高频采样保持效应的物理来源与近似模型
理想的一阶模型在高频段是站不住脚的,这就是峰值电流模式功率级最特殊的“另一面”。电流内环本质上是每个开关周期都做一次“峰值采样”,属于离散采样系统,天然带有采样保持效应。这个效应会在开关频率一半处引入一对双极点,用经典连续域模型来近似,可以写成He(s):
He(s) ≈ 1 + s / (ωn × Qn) + s² / ωn²
其中ωn = π × fsw,也就是开关频率的一半。Qn的表达式在Ridley的经典模型里为:
Qn = 1 / (π × (Mc × (1 - D) - 0.5))
这里Mc = 1 + Se / Sn,Se是斜坡补偿斜率,Sn是电感电流上升沿对应的检测电压斜率。当Qn趋于无穷大时,这个高频双极点会跑到实轴上,系统发生次谐波振荡;当Qn比较大但有限时,它会在fsw/2附近形成一个明显的谐振峰。这个谐振峰如果没压住,会直接放大开关噪声,让输出电压纹波带毛刺,甚至引起误差放大器饱和。
所以设计电压环时,穿越频率不能无限往上提。常规做法是把穿越频率控制在开关频率的1/6到1/4,给高频双极点留出足够衰减空间。同时要保证在fsw/2处的环路增益已经跌到0dB以下足够多,否则即使相位裕度看起来不错,噪声和干扰也会在这个频点被增益抬起来。我见过一些电源,直流特性很好,但EMI测试或者动态负载测试时会突然出现高频抖动,查到最后就是电流环的采样保持双极点没有处理好,环路在fsw/2附近有寄生谐振。这个点极其隐蔽,仿真模型不精确时很容易漏掉。
3. 功率级特殊特性二:占空比超过50%时的次谐波振荡
3.1 扰动放大过程:为什么会在半开关频率振荡
次谐波振荡是峰值电流模式BUCK功率级最著名、也最常踩的坑。它的物理图像其实不复杂:在CCM下,如果占空比大于50%,电感电流上的一个小扰动会在每个周期被逐步放大,最终形成“一大一小”交替出现的电流波形,振荡频率恰好是开关频率的一半。打开示波器看电感电流或开关管漏极波形,能看到明显的双周期占空比交替变化,这现象在行业内常被叫“抖动”或者“跑双周期”。
扰动为什么会被放大?原因是这样的:假设在开关导通初期,电感电流出现一个正的扰动δi。由于电流峰值上限是固定的Vc,电流上升阶段被扰动抬高了,意味着它会更早到达峰值,于是导通时间变短。这个更短的导通时间导致本周期结束时,电感电流的残余量发生变化,相当于把扰动传递到了下一个周期。推导一下就会发现,扰动经过一个完整周期的缩放系数正比于下降斜率m2与上升斜率m1之比:
δi_{n+1} ≈ -δi_n × m2 / m1
其中m1 = (Vin - Vout) / L,m2 = Vout / L。占空比D = Vout / Vin,所以m2 / m1 = D / (1 - D)。当D > 0.5时,扰动幅值逐周期放大,系统进入不稳定区。这也解释了为何峰值电流模式BUCK在输入电压较低(占空比高)时特别容易出问题——比如12V输入出5V,占空比约0.42,还好;但如果输入只有8V还要出5V,占空比到了0.62以上,不处理就等着电流波形跳舞吧。
3.2 斜坡补偿的最小斜率推导与工程取值
解决次谐波振荡的经典手段,是在电流比较器上叠加一个与开关周期同步的负斜坡信号,叫斜坡补偿。补偿斜坡改变了比较器的翻转条件,等效于人为改变电流检测信号在每个周期的“参考线”。加上补偿斜率Se之后,扰动的传递系数变成:
δi_{n+1} ≈ -δi_n × (m2 - Se) / (m1 + Se)
为了让扰动收敛,需要|m2 - Se| < m1 + Se。整理后就得到最小补偿斜率:
Se > (m2 - m1) / 2
这就是业内常说的“最小斜坡补偿斜率”。把m2和m1的表达式代入,在D > 0.5时,右边为正,且占空比越接近1,需要的补偿越大。工程上可不会卡着这个最小值设计,因为频率升高、温度变化、电感饱和都会改变电流斜率,留裕量是必须的。常见做法是取Se为电感电流下降斜率的0.5到1倍,即Se = 0.5 ~ 1 × m2(这是电流域斜率)。折算到采样电压域,就要再乘上电流检测增益Rs。
这里要单独提醒一句:斜坡补偿不是越大越好。补偿斜坡过大会让电流环的增益下降,把峰值电流模式“一阶化”的优势吃掉,系统响应变慢,动态负载恢复时间拉长。同时,过大补偿还会削弱逐周期限流的精度,因为比较器看到的已经不是纯电感电流波形了。我自己在调试分立方案时,习惯先用临界条件算出最小补偿值,然后取1.2到1.5倍作为初始值,再通过负载阶跃响应和示波器波形微调。不要一上来就补得满满当当,给自己留点调整空间。
| 参数 | 典型范围 | 说明 |
|---|---|---|
| 最小补偿斜率 Se_min | (m2 - m1)/2 | D > 0.5时必需 |
| 工程推荐 Se | 0.5 ~ 1 × m2 | 兼顾稳定性与响应速度 |
| 补偿过大的代价 | 电流环增益下降 | 动态响应变慢、限流精度变差 |
| 补偿过小的代价 | 次谐波振荡 | 占空比抖动、半频纹波放大 |
4. 功率级参数选型与环路补偿的一次成型思路
4.1 电感、开关频率与电流检测增益的优先级排序
做峰值电流模式BUCK,功率级参数选型有一个隐含的优先级顺序:先定开关频率,再定电流纹波率,然后定电感量,最后才是电流检测增益与斜坡补偿参数。开关频率决定了电感尺寸、效率拐点和可用环路带宽上限。电流纹波率通常取满载电流的20%到40%,这个区间既能保证CCM范围足够大,又能让电感体积合理。电感量按经典BUCK公式算:
L = (Vin_max - Vout) × D_min / (r × Iload_max × fsw)
r是纹波系数,比如0.3。算出来的L值只是一个起点,实际还要校核饱和电流和DCR损耗。这里要特别留意,峰值电流模式下,电感电流峰值为Iload_max + 0.5 × ΔIL,峰值电流指令Vc/Rs必须给这个值留余量。很多人只按平均电流选采样电阻,结果重载时峰值到达限流点,电压环还没来得及调节,输出已经掉下去了。
电流检测增益Rs的选取,同样要放到整个功率级参数里统一考虑。Rs太大,检测信号的信噪比高,但检测损耗和噪声耦合也大;Rs太小,电流比较器输入偏置和失调电压都会变成明显的控制误差。一个务实的办法是让满载峰值电流下检测电压在50mV到200mV之间,这样既躲开了比较器失调,又不会造成太大损耗。如果用低边RDS(on)检测,还要注意RDS(on)的温度漂移,在高温满载时RDS(on)可能比常温高50%以上,限流点会跟着飘,设计时一定要留温度余量。
4.2 按“1/3”原则选电压环穿越频率并估算相位裕度
功率级变成了“一阶+高频双极点”结构以后,电压外环的补偿设计比电压模式简单很多,但也要有章法。我自己习惯按下面几步来:
- 计算输出级极点频率fp = 1 / (2π × Rload × C)。这个极点由负载和输出电容决定,是电压环需要面对的主极点。
- 把穿越频率fc放在开关频率的1/6到1/4之间。不要贪高,给He(s)的高频双极点留衰减空间。
- 用Type-II或者Type-III补偿网络,把补偿零点放在fp附近,用补偿零点去对消输出极点的滞回效应。如果是陶瓷电容这类低ESR输出,输出阻抗在极点后下降斜率接近-40dB/dec(因为电容极小ESR时,实际会出现ESR零点,但位置很高),用Type-III更稳妥。
- 估算相位裕度时,把采样保持效应的延迟折算进去。经验做法是在期望相位裕度上加10°到15°的裕量,因为He(s)在fc处已经贡献了一部分负相移,公式模型再准也架不住PCB寄生参数。
这个流程谈不上花哨,但胜在稳定可靠。实际产品里,很多芯片确实就是用Type-II加一个零点去对消输出极点,再用一个高频极点压开关噪声。自己搭分立方案时,可以先按这个思路做一个版本,再用网络分析仪或仿真扫一遍环路的增益和相位,看看在最低输入电压、最大负载、最低开关频率三个恶劣点是否仍然满足45°以上相位裕度。
4.3 同步BUCK和异步BUCK在电流模式下的差异
热词里“同步buck和异步buck主要区别在哪”被问得很多,放到峰值电流模式这个语境下,主要区别会落在检测位置、DCM行为和轻载效率上。异步BUCK用续流二极管,续流压降大,电感电流下降斜率m2 = (Vout + Vd) / L,占空比会略大于Vout/Vin。同步BUCK用低边MOSFET续流,续流压降只有I×RDS(on),压降小,效率高,但轻载时电感电流很容易反向,形成负电流,反而拉低效率。
在峰值电流模式下,异步BUCK通常检测高边开关管的电流,因为电感电流在导通期间正好流过它;同步BUCK由于轻载负电流存在,如果用高边检测就看不到负电流部分,必须用低边检测或者DCR检测才能完整呈现电感电流。这个差异直接影响了斜坡补偿和限流点的设计思路。另外,异步BUCK进入DCM(断续导通模式)后,电感电流会到零,电流比较器在低边二极管导通期间无法采样,控制环容易进入“打嗝”或者脉冲群模式,这同样需要在环路设计时考虑。
5. LTspice仿真与实测排查实录
5.1 用开关模型搭建峰值电流BUCK的步骤
LTspice仿真峰值电流模式BUCK,最推荐的方式是用开关级模型,因为平均模型没法直观看到电流比较器翻转过程。搭建时按下面顺序来:
- 把功率级搭好:输入源、高边PMOS或NMOS、低边二极管或NMOS、电感、输出电容、负载电阻。同步BUCK要做好上下管驱动死区,异步BUCK则简单一些。
- 用电流采样元件检测电感电流。最简单的办法是给电感串联一个小采样电阻,然后用行为电压源B1把电流转换成电压:
B1 sense 0 V = I(L1)*0.01,等效10mΩ采样电阻。也可以用可控电压源直接测电流,但串采样电阻的做法更贴近实际。 - 搭RS触发器。LTspice里可以用两个“或非门”数字器件构成RS触发器,时钟脉冲走置位端,电流比较器输出走复位端。设置好初始状态,确保上电时高边开关处于关闭状态。
- 电流比较器用一个行为电压源实现:当V(sense)高于V(comp)时输出高电平,触发复位。注意加上一点点迟滞,避免仿真时在翻转点附近出现高频振荡。
- 误差放大器用运放宏模型或者行为源。输出端加RC限幅,模拟实际运放的饱和特性,这样大信号动态才真实。
仿真命令可以这么写:先做启动过程,tran 0 5m start=0,然后看稳态波形。想看次谐波,把斜坡补偿去掉,输入电压调到占空比大于0.5,比如12V输入5V输出时开关频率跑一两个周期,大概率能看到电感电流一大一小。加上斜坡补偿后再对比,体会会非常深。这样一步步做下来,比直接拿现成模型看结果要牢靠得多。
5.2 示波器上判断次谐波振荡的三种典型波形
实测峰值电流BUCK时,判断是否发生次谐波振荡,有几种非常直接的示波器观察方法。
第一,看电感电流波形。正常CCM下电感电流纹波是等周期等幅度的三角波,次谐波振荡时会出现“高一低”交替的峰值,周期是开关周期的两倍。第二,看开关节点SW波形,次谐波振荡时占空比会交替变化,比如一个周期脉宽较宽、下一个周期脉宽较窄,用示波器的余晖模式看,波形会形成两条清晰的重叠包络。第三,看输出电压纹波,纹波频谱里会出现明显的半开关频率分量,比开关频率纹波还要大,这时基本可以锁定次谐波问题了。
遇到这三种情况,第一步不是去改斜坡补偿,而是先确认测试条件。很多次谐波现象只在轻载、低输入电压或者特定温度下出现,要把输入电压从高到低慢慢扫描,找到最恶劣的占空比点。然后逐步增加斜坡补偿量,观察波形是否收敛。如果补偿加了很大还是抖,那可能不是纯次谐波问题,而是电流采样信号里有严重的耦合噪声,比较器被噪声干扰了,需要先处理采样回路。
5.3 排查电流采样噪声诱发误关断的完整思路
电流检测信号在高频开关节点附近是最容易受污染的。SW节点dv/dt很快,会通过寄生电容耦合到采样走线;如果是高边检测,采样点本身就在高频摆动的开关节点旁边,更容易把尖峰带进比较器。比较器一旦误翻转,占空比就会受限,输出电压掉下来,误差放大器输出Vc上升,结果电流峰值升高,整个过程看上去像环路不稳,其实根子在噪声。
排查顺序我一般是这样:先把示波器探头靠到电流比较器的两个输入管脚,看是否存在明显的高频尖峰。如果有,先检查采样电阻的Kelvin连接是否走线成单点连接,采样线尽量短,避免跨过SW节点下面。然后看比较器前端的RC滤波,RC滤波确实能抑制尖峰,但它在高开关频率下会引入额外延迟,这个延迟等于把有效检测电压提高了,相当于变相改变了电流峰值和斜坡补偿效果,所以RC的时间常数不能拍脑袋选,通常选比较器翻转时间常数的1/3到1倍,再大就必须回头修正电流环参数。
还有一个容易被忽略的问题:采样电阻的寄生电感。电流变化率di/dt很高时,哪怕是nH级别的寄生电感,也会在采样电阻上叠加一个很大的尖峰电压,这个尖峰往往就是误触发元凶。改用低寄生电感的合金电阻,或者用开尔文接法把采样信号引到比较器,都能显著改善。我自己在调试高频BUCK时,甚至会把电流比较器输入端的RC滤波分成两级,先用小电容滤高频,再用大电容稳定直流,前后级之间加一个小电阻隔离,效果比单级RC好很多。
6. 多相BUCK为什么偏爱峰值电流模式
6.1 电流共享机制对器件一致性的依赖
多相BUCK在服务器、显卡、通信电源里越来越常见,热词里“多相buck”被反复搜,原因就是大电流场景下单相BUCK的热应力、电感体积和输出纹波都撑不住。多相BUCK有一个天然的均流需求:每一相分担的电流要尽量接近,否则某一相过热,寿命和可靠性都会出问题。峰值电流模式在这里有天然优势——每一相的电感峰值电流都和同一个电压误差信号Vc比较,本质上强制各相峰值趋同。
但峰值相同不等于平均电流相同,这句话在第1章就提过。多相系统里,如果各相电感量不一致,即使峰值相同,平均电流也会不同(因为纹波不同)。如果各相电流检测增益也不一致,那峰值本身就会有偏差。所以多相BUCK对器件一致性的要求很高。PCB布局时要尽量保证各相采样点到功率级的走线长度一致,电感的容差最好选±10%甚至更小。批量生产时,很多方案会做一次出厂校准,把每相检测增益的偏差存进芯片,后面运行时再动态修正。
6.2 相位交错之后斜坡补偿还要不要改
多相BUCK各相时钟相位交错,比如两相互错180°,四相互错90°。每相的峰值电流模式环路和单相设计方法是相同的,斜坡补偿的稳定性条件不会因为相位交错而改变。但需要注意,相位交错会改变输入电容和输出电容上叠加的纹波频率,等效纹波频率变成相数×开关频率,输出电容上的阻抗特性会相应变化,这反而让电压外环设计更宽容。
斜坡补偿在多相系统中还有一个微妙的作用:各相电流环增益如果不一样,动态均流就会变差。补偿斜坡由内部电路统一产生,通常各相是同一信号,所以补偿本身不会引入相间差异。但要注意补偿斜坡的起始点和延迟必须与各相时钟对齐,如果斜坡发生电路离某相比较远,或者驱动延迟不一致,导致该相的斜坡相位偏移,等效补偿量就变了,轻则均流精度下降,重则单相出现次谐波振荡。这在多相控制芯片上通常由内部匹配保证,但自己用分立方案搭多相的话,每相的斜坡信号必须从各自时钟同步产生,不要想当然地共用一个斜坡然后靠走线延迟“碰运气”。
给多相系统做测试时,我习惯逐相单独测试稳定性,再把所有相同时开启测均流。单独测每一相时,把其他相的时钟关闭,看单相在满载和半载下的电流波形;全部开启后再看各相电流公共端到输出间的均衡度。这样分层测试,任何问题都能快速定位是本相参数问题还是相间交互问题。整体来说,峰值电流模式在单相BUCK里已经够有意思了,放到多相场景下,更是把它“逐周期强制电流一致”这个特性发挥到了极致。
做峰值电流模式BUCK这七八年,最大的感受是:这种控制方式的“特殊特性”并不高深,但非常讲究“分寸”。斜坡补偿多一点少一点,采样滤波快一点慢一点,电流检测放在高边还是低边,每个选择背后都有连锁反应。很多工程师把公式背得滚瓜烂熟,一到示波器上看到波形抖动还是懵。我的经验是,每次调试都先把功率级参数和检测链路的“实际波形”看透,再回头对照理论模型,两边一印证,问题基本就水落石出了。希望这篇文章能把峰值电流模式BUCK功率级那层窗户纸捅破,让你下次做设计时少走点弯路。