1. 从一个反直觉的现象说起:为什么电感电压平均值为零
很多人第一次接触开关电源,看到BUCK电路输入12V、输出5V,第一反应是"那剩下的7V去哪了"。这个问题如果去问做过电源的工程师,他大概率会先反问你一句:你知道电感两端的电压在一个周期内平均值是多少吗?
答案是零。
这个结论听起来有点反常识。电感明明在充电和放电,两端电压怎么会平均为零?但如果你接受这个前提,BUCK电路最核心的降压公式推导就变得非常自然。这也是我当年从"背公式"转向"真正理解开关电源"的分水岭。
这篇内容我打算把BUCK和BOOST两种最基础的DC-DC拓扑从伏秒平衡这个底层原理讲透,包括占空比怎么来的、电感怎么选、实际调试中哪些地方容易翻车。适合刚入行的硬件工程师、正在准备电源相关面试的朋友,以及做了几年但一直靠"抄参考设计"过日子的同行。我会尽量用生活化的类比把抽象概念落地,同时给出可以直接用的计算方法和选型思路。
先明确一个基础认知:BUCK是降压,输出电压低于输入;BOOST是升压,输出电压高于输入。两者都属于开关电源,核心都是通过控制开关管的导通和关断时间比例——也就是占空比——来调节输出电压。而占空比的推导,绕不开伏秒平衡。
2. 伏秒平衡到底在说什么:用电感电流的"水位"来理解
2.1 电感的两条基本定律
要理解伏秒平衡,得先回到电感最原始的两个公式。
第一个是电感电压与电流的关系:V = L × di/dt。翻译成人话就是,电感两端的电压决定了电流变化的快慢。电压越大,电流变化越快;电感越大,电流变化越慢。
第二个是电感电流不能突变。这是电感的物理特性决定的,因为电流突变意味着di/dt无穷大,需要无穷大的电压,现实中不可能实现。
把这两个特性放在开关电源的一个完整周期里看:开关管导通时,电感两端加上某个电压,电流线性上升;开关管关断时,电感两端电压反向,电流线性下降。如果电路工作在稳态,那么每个周期开始时和结束时的电感电流必须相等——否则电流就会一个周期比一个周期高或低,那就不是稳态了。
既然电流的起始值和结束值相等,那么上升的幅度必然等于下降的幅度。而电流上升的斜率由V/L决定,下降的斜率也由V/L决定。把上升阶段的电压乘以时间(伏秒积)和下降阶段的电压乘以时间做对比,两者必然相等。这就是伏秒平衡。
2.2 一个水池的类比
如果你觉得上面的推导还是太抽象,可以想象一个水池。水池有一个进水口和一个出水口,进水口的流速可以调节。如果你想让水池的水位保持稳定,那么每个周期内流进来的水量必须等于流出去的水量。进水流量乘以进水时间,等于出水流量乘以出水时间。
电感电流就像水池的水位,电压就像水流的驱动力。伏秒平衡本质上就是"进多少出多少"的守恒关系。这个类比虽然不严谨,但能帮你快速建立直觉。
2.3 为什么这个原理如此重要
伏秒平衡是推导所有开关电源拓扑占空比公式的万能钥匙。不管是BUCK、BOOST、BUCK-BOOST还是更复杂的拓扑,只要电路工作在CCM(连续导通模式),你都可以用伏秒平衡列出方程,解出占空比和输入输出电压的关系。
我见过不少工程师,做了好几年电源,每次遇到新拓扑还是去翻书查公式。其实只要掌握了伏秒平衡,大部分公式你都能自己推出来,不用死记硬背。下面我就用这把钥匙,分别打开BUCK和BOOST两扇门。
3. BUCK降压电路:从伏秒平衡推出占空比D=Vo/Vin
3.1 BUCK拓扑的开关过程拆解
先看BUCK电路的基本结构。输入端有一个开关管(通常是MOSFET),后面接一个电感,电感后面是输出电容和负载。开关管和电感之间有一个续流二极管(同步BUCK中用下管MOSFET替代)。
当开关管导通时,输入电压Vin加在电感左端,电感右端是输出电压Vo。所以电感两端电压是Vin - Vo,电流线性上升。这个阶段续流二极管截止。
当开关管关断时,电感左端的电压会因为电感电流的连续性而被拉到负值,续流二极管导通,电感左端电压变为约0V(忽略二极管压降)。此时电感两端电压是0 - Vo = -Vo,电流线性下降。
设开关周期为T,导通时间为Ton,占空比D = Ton/T,关断时间为Toff = (1-D)T。
3.2 伏秒平衡列方程
导通阶段:电感电压为Vin - Vo,持续时间为D×T。 关断阶段:电感电压为-Vo,持续时间为(1-D)×T。
根据伏秒平衡:
(Vin - Vo) × D × T = Vo × (1-D) × T
两边约掉T:
(Vin - Vo) × D = Vo × (1-D)
展开:
Vin × D - Vo × D = Vo - Vo × D
化简:
Vin × D = Vo
所以:
D = Vo / Vin
这就是BUCK电路最核心的公式。占空比等于输出电压除以输入电压。12V转5V,占空比就是5/12≈41.7%。
3.3 这个公式告诉我们的几件事
第一,BUCK的输出电压永远小于输入电压,因为占空比D永远小于1。这是BUCK只能降压的根本原因。
第二,占空比和负载电流无关。只要电路工作在CCM模式,不管负载是1A还是10A,占空比都由输入输出电压决定。这一点在实际调试中很有用——如果你发现占空比随负载变化很大,说明电路可能进入了DCM模式。
第三,当输入电压变化时,控制系统需要通过调节占空比来维持输出电压稳定。这就是为什么BUCK需要反馈环路——输入电压升高了,占空比就得降低,否则输出会跟着升高。
3.4 同步BUCK和异步BUCK的区别
上面推导中,关断阶段电感左端电压假设为0V,这是理想情况。实际电路中,如果用二极管续流(异步BUCK),二极管有正向压降Vf,那么关断阶段电感电压是-Vo-Vf。重新列伏秒平衡:
(Vin - Vo) × D = (Vo + Vf) × (1-D)
解出来D会略大于Vo/Vin。二极管压降越大,偏差越明显。所以在低压大电流输出场景下,二极管上的损耗不可忽略,这时候就要用同步BUCK——用MOSFET替代二极管,导通电阻Rds(on)很小,压降远低于二极管。
同步BUCK的代价是需要额外的驱动电路和死区时间控制。死区时间是为了防止上下管同时导通造成直通短路。死区时间太短会直通,太长会降低效率(体二极管导通损耗大)。一般死区时间在几十纳秒量级,具体值需要根据MOSFET的开关特性来调。
4. BOOST升压电路:同样的钥匙,不同的锁
4.1 BOOST拓扑的开关过程拆解
BOOST电路的结构和BUCK不同。输入端先接电感,电感后面是开关管(对地),开关管后面是二极管,二极管后面是输出电容和负载。
当开关管导通时,电感左端接Vin,右端接地,电感两端电压为Vin,电流线性上升。此时二极管截止,输出电容单独给负载供电。
当开关管关断时,电感电流不能突变,会通过二极管流向输出端。此时电感左端电压为Vin,右端电压为Vo+Vf(二极管压降),电感两端电压为Vin - Vo - Vf,电流线性下降。
4.2 伏秒平衡列方程
导通阶段:电感电压为Vin,持续时间为D×T。 关断阶段:电感电压为Vin - Vo(忽略二极管压降),持续时间为(1-D)×T。
伏秒平衡:
Vin × D × T = (Vo - Vin) × (1-D) × T
约掉T:
Vin × D = (Vo - Vin) × (1-D)
展开:
Vin × D = Vo - Vo × D - Vin + Vin × D
化简:
0 = Vo - Vo × D - Vin
Vo × (1-D) = Vin
所以:
Vo = Vin / (1-D)
或者写成:
D = 1 - Vin / Vo
这就是BOOST电路的升压公式。输入5V,想输出12V,占空比就是1 - 5/12 ≈ 58.3%。
4.3 BOOST电路的特殊性
BOOST公式里有个值得注意的地方:当D趋近于1时,Vo趋近于无穷大。理论上BOOST可以升到任意高的电压,但实际中受限于器件耐压、寄生参数和效率,升压比一般不会超过5到6倍。再高的话,占空比太接近1,关断时间极短,电感电流下降斜率极大,寄生电容和二极管反向恢复都会导致严重问题。
另一个容易忽略的点是BOOST电路的输入电流是连续的,输出电流是断续的。因为电感在输入端,电感电流连续,所以输入电流纹波小;但二极管只在关断阶段导通,输出端电流是脉冲式的,需要输出电容来平滑。这和BUCK正好相反——BUCK的输入电流是脉冲式的,输出电流是连续的。
这个差异在实际布局时很关键。BUCK的输入电容要承受大纹波电流,BOOST的输出电容要承受大纹波电流。选电容的时候不能只看容值,还要看纹波电流额定值。
4.4 BOOST的右半平面零点问题
做过BOOST反馈环路的人都知道,BOOST的传递函数里有一个右半平面零点(RHPZ)。这个零点会导致相位滞后,让环路补偿变得困难。BUCK电路在CCM模式下没有这个问题(或者说RHPZ频率很高,可以忽略)。
RHPZ的频率大致在f_RHPZ = (1-D)² × Vo / (2π × L × Io) 附近。占空比越大、负载电流越小,RHPZ频率越低,越容易影响环路稳定性。这就是为什么BOOST电路的带宽通常要比BUCK低——你得把穿越频率压在RHPZ频率的五分之一到十分之一以下,才能保证足够的相位裕度。
实际调试BOOST时,如果发现负载跳变时输出振荡严重,或者启动时输出电压冲得很高,大概率是环路带宽太高,被RHPZ坑了。解决办法要么降低带宽,要么加大输出电容,要么用前馈补偿。
5. 电感选型:伏秒平衡给你划出的红线
5.1 电感纹波电流的计算
伏秒平衡不仅能推占空比,还能直接算出电感纹波电流。以BUCK为例:
导通阶段电感电流上升量 ΔIL = (Vin - Vo) × D × T / L
把D = Vo/Vin代入:
ΔIL = (Vin - Vo) × Vo × T / (Vin × L)
或者写成:
ΔIL = Vo × (1 - D) × T / L
这个公式告诉你,电感越大,纹波电流越小。但电感大了,体积和成本也上去了,而且动态响应会变慢。所以选电感是在纹波、体积、成本和响应速度之间找平衡。
一般经验是让纹波电流为额定输出电流的20%到40%。比如输出5A,纹波电流取1A到2A。太小的纹波意味着大电感,动态响应差;太大的纹波意味着峰值电流高,MOSFET和电感的损耗都增加。
5.2 电感饱和电流的确定
知道纹波电流后,峰值电流就确定了:
IL_peak = Io + ΔIL/2(BUCK)
电感的饱和电流必须大于这个峰值,而且要留一定裕量。我一般留20%到30%的裕量,因为实际电路中还有瞬态情况——比如负载突然加重,电感电流会短暂冲高。
这里有个坑:很多电感的饱和电流标称值是在25°C下测的,温度升高后饱和电流会下降。铁粉芯电感高温下饱和电流可能下降30%以上。如果你的电源工作在高温环境,选电感时一定要看高温下的饱和曲线,不能只看规格书首页的标称值。
5.3 电感直流电阻的影响
电感的直流电阻(DCR)直接决定铜损。铜损P = Io² × DCR。输出电流5A,DCR为20mΩ,铜损就是0.5W。这个损耗在低压大电流输出时占比很大,直接影响效率。
选电感时DCR越小越好,但DCR小的电感通常体积大、价格高。我的经验是,对于5A以下的输出,DCR在30mΩ以内可以接受;10A以上,最好控制在10mΩ以内。当然还要看你的效率目标——如果要求效率95%以上,DCR的损耗就得仔细算了。
6. 占空比之外:那些公式没告诉你的事
6.1 最大和最小占空比的限制
理论公式里占空比可以从0到1任意取值,但实际控制器有最大和最小占空比限制。常见的PWM控制器最大占空比在85%到95%之间,最小占空比在0%到5%之间。
这个限制在极端工况下会出问题。比如BUCK电路输入电压降到接近输出电压时,需要的占空比接近100%,但控制器最多只能给90%,输出就会掉。这时候要么选支持更高最大占空比的控制器,要么用BUCK-BOOST拓扑。
BOOST电路启动时也有类似问题。启动瞬间输出电压为0,如果占空比直接给到计算值,电感电流会失控。所以BOOST控制器通常有软启动功能,让占空比从0慢慢增加到目标值,同时限制电感电流。
6.2 开关频率的选择
开关频率决定了周期T,进而影响电感和电容的取值。频率越高,电感和电容可以越小,但开关损耗越大。
我一般这样选频率:输出电流小于1A的,用500kHz到1MHz,可以用小电感小电容;输出电流1A到5A的,用200kHz到500kHz,平衡效率和体积;输出电流大于5A的,用100kHz到300kHz,优先保证效率。
当然还要看MOSFET的开关特性。栅极电荷Qg小的MOSFET适合高频,Qg大的适合低频。如果频率选高了但MOSFET驱动跟不上,开关损耗会急剧增加,效率反而下降。
6.3 输入输出电容的选型
输入电容的作用是滤除开关管切换时产生的脉冲电流。BUCK的输入电流是脉冲式的,所以输入电容要选低ESR的陶瓷电容或聚合物电容,容值根据输入纹波要求来定。
输出电容的作用是平滑输出电压纹波。输出电压纹波由两部分组成:电容充放电引起的容性纹波,和ESR引起的阻性纹波。在低频时容性纹波主导,高频时ESR纹波主导。所以选输出电容时,ESR往往比容值更重要。
我见过不少设计,输出电容容值加得很大,但ESR很高,结果输出纹波还是降不下来。后来换成多个陶瓷电容并联,ESR降下来了,纹波立刻改善。所以选电容时一定要看ESR参数,不能只看容值。
7. 实测中容易翻车的几个点
7.1 电感啸叫
电感啸叫是开关电源最常见的现象之一。原因是电感在开关频率或其谐波频率上产生了机械振动。轻载时如果电路进入DCM模式,开关频率会降低到音频范围,啸叫更明显。
解决办法有几个:一是让电路始终工作在CCM模式,可以加假负载或者用强制PWM模式;二是选择一体成型电感,结构更紧实,不容易振动;三是调整开关频率,避开机械共振点。
我遇到过一批电感,在特定负载下啸叫特别严重,换了另一家供应商的同规格电感就好了。所以电感啸叫有时候是电感本身的工艺问题,不一定是电路设计的问题。
7.2 上电瞬间输出电压过冲
BUCK电路上电时,如果反馈环路响应太慢,输出电压可能会冲过目标值再回落。过冲幅度太大可能损坏后级电路。
原因通常是软启动时间太短,或者输出电容太小。软启动让占空比慢慢增加,给输出电容充电的时间更长,过冲就小。输出电容大一些也能吸收更多电荷,减小过冲。
BOOST电路的过冲问题更严重,因为启动时电感电流需要建立,如果控制不好,电感电流会冲得很高,输出电压也跟着冲。所以BOOST的软启动设计比BUCK更关键。
7.3 轻载效率低
开关电源在轻载时效率会明显下降,因为开关损耗和驱动损耗是固定的,不随负载减小而减小。轻载时这些固定损耗占比就大了。
改善轻载效率的方法有:降低开关频率(频率折返)、进入Burst模式(间歇工作)、或者用PFM(脉冲频率调制)替代PWM。这些模式在轻载时能显著降低开关次数,提高效率。
但Burst模式会带来输出纹波增大和音频噪声的问题。如果应用对纹波敏感,就不能用Burst模式,得接受轻载效率低一些。
7.4 PCB布局的坑
开关电源的PCB布局对性能影响极大。几个关键原则:
第一,输入电容要尽量靠近开关管和续流二极管,减小高频环路面积。这个环路里的电流变化率很高,环路面积大了会辐射EMI。
第二,反馈分压电阻要靠近控制器,反馈走线要远离电感和开关节点,避免噪声耦合。
第三,电感的布局要避免磁场耦合到反馈走线。如果空间允许,电感下方不要走敏感信号线。
第四,接地要单点接地或者用接地平面,避免地环路噪声。
我调试过一块板子,输出纹波怎么都降不下来,后来发现是反馈走线从电感旁边经过了,耦合了开关噪声。把走线改到另一层,远离电感,纹波立刻正常了。这种问题用仿真很难发现,只能靠布局经验和实测。
8. 从公式到实战:一个BUCK设计实例
8.1 设计目标
输入12V,输出5V/3A,开关频率500kHz,纹波电流取输出电流的30%即0.9A,输出电压纹波要求50mV以内。
8.2 占空比计算
D = Vo / Vin = 5 / 12 = 0.417
8.3 电感选型
ΔIL = Vo × (1 - D) × T / L
T = 1 / 500kHz = 2μs
0.9 = 5 × (1 - 0.417) × 2μs / L
L = 5 × 0.583 × 2μs / 0.9 = 6.48μH
取标准值6.8μH。
峰值电流 = 3 + 0.9/2 = 3.45A
电感饱和电流至少取3.45 × 1.3 = 4.5A,选5A以上。
8.4 输出电容选型
输出纹波主要由ESR决定。假设纹波电流0.9A,要求纹波电压50mV,则ESR最大为:
ESR = 50mV / 0.9A = 55mΩ
选两个22μF陶瓷电容并联,每个ESR约5mΩ,并联后2.5mΩ,远小于55mΩ,满足要求。容值方面,22μF×2=44μF,对于3A负载来说偏小,可以再加一个22μF,总共66μF。
8.5 输入电容选型
输入电容承受的纹波电流约为输出电流的一半,即1.5A左右。选两个10μF陶瓷电容并联,每个纹波电流额定1A以上,满足要求。
8.6 实测验证
按照上述参数搭好电路后,实测输出纹波约30mV,效率在满载时约92%。轻载1A时效率降到85%左右,属于正常范围。电感温度在满载运行半小时后约45°C,在可接受范围内。
这个设计实例说明,伏秒平衡推导出的公式不是纸上谈兵,直接可以用来指导实际选型。当然实际调试中还需要根据实测结果微调,比如纹波偏大就加电容,效率偏低就换低DCR电感或低Qg的MOSFET。
9. 一些个人体会
做了这么多年电源,我最大的感受是:公式是死的,电路是活的。伏秒平衡能帮你快速算出占空比和电感值,但实际电路里还有寄生参数、温度漂移、器件离散性这些因素。同一个电路,换一批电感可能表现就不一样。
我的习惯是,理论计算给出初始值,然后实测调整。电感和电容都留出焊盘,方便更换不同值。PCB上关键测试点要留出来,方便用示波器抓波形。调试时先看开关波形是否干净,再看电感电流是否线性,最后看输出纹波和动态响应。
还有一点,不要迷信仿真。仿真模型里的寄生参数往往不准确,仿真结果和实测可能差很远。仿真可以用来验证拓扑和大致趋势,但最终还是要靠实测。
最后说一个容易被忽略的点:电感的温度特性。很多电感在常温下电感量正常,温度升高后电感量会下降。如果电感量下降太多,纹波电流会增大,可能触发过流保护。所以选电感时一定要看电感量随温度的变化曲线,不能只看25°C的标称值。