1. 电源设计中的公式推导从直觉到严谨的完整路径搞电源设计这些年最深的体会就是公式不是拿来背的是拿来推的。你背下来的公式换个拓扑就废了你自己推出来的公式哪怕换个芯片、换个功率等级照样能快速上手。我见过太多新手抱着“Buck电路公式大全”死记硬背结果遇到一个非理想情况——比如电感DCR比较大、或者开关频率被芯片内部抖频了——立马就懵了。所以这篇东西我想把电源设计里最常用的那几个公式从最底层的物理意义开始一步一步推给你看。不是教科书那种“显然可得”而是把每一步的“为什么”都讲清楚。这篇文章适合谁看如果你是刚入行的电源工程师正在被各种占空比、电感值、电容纹波搞得头大或者你是做嵌入式硬件的偶尔要自己搭个DCDC电路却总是心里没底再或者你是学生正在做电力电子的课程设计——那这篇内容应该能帮你把“公式”和“电路”之间的那层窗户纸捅破。我会以Buck和Boost这两个最基础的拓扑为主线把占空比、电感电流纹波、输出电压纹波、电感选型、电容选型这些核心公式全部推导一遍。推导过程中我会刻意放慢节奏把伏秒平衡、安秒平衡这些底层原理讲透让你以后遇到任何拓扑都能自己推。先说一下我的推导习惯我从来不用“根据基尔霍夫定律可得”这种话糊弄自己。每写一个方程我都要问自己——这个方程描述的是哪段时间哪个元件在承受这个电压电流的路径是什么把这三个问题回答清楚了方程自然就列对了。下面我们就从Buck电路开始一步一步来。2. Buck电路核心公式推导伏秒平衡到底在平衡什么2.1 先搞清楚Buck电路的工作状态Buck电路的本质是一个降压变换器输入电压高于输出电压。它的核心元件就四个开关管通常是MOSFET、续流二极管或者同步整流管、电感、输出电容。很多人一上来就背公式但我建议你先在脑子里把两个状态刻进去开关管导通阶段输入电源通过开关管加到电感左端电感右端连着输出电容和负载。此时电感两端电压是 ( V_{in} - V_{out} )忽略开关管压降和电感DCR电感电流线性上升。开关管关断阶段电感左端被断开但由于电感电流不能突变续流二极管导通电感左端电压被钳位到约0V忽略二极管压降。此时电感两端电压是 ( -V_{out} )电感电流线性下降。这两个阶段交替进行电感电流在一个开关周期内先升后降。如果电路工作在稳态那么每个周期开始时和结束时的电感电流必须相等——否则电流就会逐周期累积最终饱和。这就是伏秒平衡的物理意义电感电压在一个周期内的积分必须为零。2.2 伏秒平衡推导占空比公式设开关周期为 ( T )导通时间为 ( T_{on} )关断时间为 ( T_{off} )占空比 ( D T_{on} / T )。导通阶段电感电压 ( V_L V_{in} - V_{out} )持续时间为 ( D \cdot T )。关断阶段电感电压 ( V_L -V_{out} )持续时间为 ( (1-D) \cdot T )。伏秒平衡要求[ (V_{in} - V_{out}) \cdot D \cdot T (-V_{out}) \cdot (1-D) \cdot T 0 ]两边消去 ( T )[ (V_{in} - V_{out}) \cdot D - V_{out} \cdot (1-D) 0 ]展开[ V_{in} \cdot D - V_{out} \cdot D - V_{out} V_{out} \cdot D 0 ]注意 ( -V_{out} \cdot D ) 和 ( V_{out} \cdot D ) 抵消得到[ V_{in} \cdot D - V_{out} 0 ]所以[ V_{out} V_{in} \cdot D ]或者写成占空比形式[ D \frac{V_{out}}{V_{in}} ]这就是Buck电路最核心的公式。你看推导过程只用了一个伏秒平衡没有任何“显然”的跳跃。这个公式告诉我们输出电压完全由占空比决定与负载电流无关在连续导通模式下。这也是为什么Buck电路是开环也能大致工作的原因——当然实际中为了精度还是要闭环。注意这个推导假设了开关管和二极管是理想器件电感DCR为零。实际电路中开关管有导通电阻 ( R_{ds(on)} )二极管有正向压降 ( V_F )电感有直流电阻 ( DCR )。这些寄生参数会导致实际占空比略大于理想值。在低压大电流场合这个偏差可能达到10%以上必须考虑。2.3 电感电流纹波公式的推导知道了占空比接下来要算电感电流的纹波。电感电流纹波决定了电感选型、输出电容选型以及电流模式控制器的斜坡补偿。电感电压和电流的关系是[ V_L L \cdot \frac{di_L}{dt} ]在导通阶段电感电压为 ( V_{in} - V_{out} )持续时间为 ( D \cdot T )。电感电流从最小值 ( I_{L,min} ) 上升到最大值 ( I_{L,max} )所以[ V_{in} - V_{out} L \cdot \frac{\Delta I_L}{D \cdot T} ]其中 ( \Delta I_L I_{L,max} - I_{L,min} ) 是电感电流纹波峰峰值。整理得[ \Delta I_L \frac{(V_{in} - V_{out}) \cdot D \cdot T}{L} ]把 ( V_{out} V_{in} \cdot D ) 代入[ \Delta I_L \frac{(V_{in} - V_{in} \cdot D) \cdot D \cdot T}{L} \frac{V_{in} \cdot (1-D) \cdot D \cdot T}{L} ]又因为 ( T 1 / f_{sw} )所以[ \Delta I_L \frac{V_{in} \cdot D \cdot (1-D)}{L \cdot f_{sw}} ]这个公式非常有用。它告诉你电感电流纹波与电感值成反比与开关频率成反比与 ( D(1-D) ) 成正比。当 ( D 0.5 ) 时( D(1-D) ) 最大纹波最大。所以在设计时如果占空比接近50%电感要选得大一些。实操心得很多新手会忽略电感电流纹波和电感饱和电流的关系。电感电流的峰值 ( I_{L,peak} I_{out} \Delta I_L / 2 )。如果这个峰值超过了电感的饱和电流电感量会急剧下降导致电流失控。所以选电感时饱和电流至少要留20%到30%的裕量。我一般会要求饱和电流大于 ( 1.3 \times I_{L,peak} )。2.4 输出电容纹波公式的推导输出电容的作用是吸收电感电流的交流分量保持输出电压稳定。输出电容上的电压纹波主要由两部分组成电容充放电引起的容性纹波以及电容等效串联电阻ESR引起的阻性纹波。先看容性纹波。在稳态下电容电流 ( i_C i_L - I_{out} )。当电感电流大于输出电流时电容充电当电感电流小于输出电流时电容放电。电容电压的变化量就是纹波。可以证明这里不展开积分过程直接给结论容性纹波峰峰值为[ \Delta V_{C} \frac{\Delta I_L}{8 \cdot C \cdot f_{sw}} ]这个公式的推导思路是电容电流在一个周期内是三角波其峰峰值为 ( \Delta I_L )。三角波电流流入电容产生的电压变化是电流的积分除以电容。积分后得到的是一个抛物线形状的电压其峰峰值就是上式。再看ESR引起的纹波。ESR上的电压就是 ( i_C \cdot ESR )所以ESR纹波峰峰值为[ \Delta V_{ESR} \Delta I_L \cdot ESR ]总输出纹波近似为两者之和实际上相位不同但工程上直接相加是保守的[ \Delta V_{out} \approx \frac{\Delta I_L}{8 \cdot C \cdot f_{sw}} \Delta I_L \cdot ESR ]这个公式告诉你一个很重要的设计取舍如果用电解电容ESR比较大纹波主要由ESR决定加大电容容量效果不明显如果用陶瓷电容ESR很小纹波主要由容量决定。所以高频开关电源通常用陶瓷电容而老式低频电源用电解电容。注意这个公式假设电容电流是理想三角波。实际中电容的等效串联电感ESL也会在高频时产生额外纹波尤其是在开关频率超过1MHz时。这时候需要在电容旁边并联一个小容值、低ESL的陶瓷电容。3. Boost电路公式推导升压背后的能量转移逻辑3.1 Boost电路的工作状态与伏秒平衡Boost电路和Buck电路是对偶的。Buck是降压Boost是升压。它的核心元件也是四个电感、开关管、二极管、输出电容。但连接方式不同电感在输入端开关管将电感右端拉到地二极管将电感右端连接到输出电容。工作状态开关管导通阶段电感左端接输入 ( V_{in} )右端通过开关管接地。电感两端电压为 ( V_{in} )电感电流线性上升。此时二极管截止输出电容单独给负载供电。开关管关断阶段电感电流不能突变二极管导通电感左端电压为 ( V_{in} )右端电压被钳位到 ( V_{out} )忽略二极管压降。电感两端电压为 ( V_{in} - V_{out} )由于 ( V_{out} V_{in} )这个电压是负的电感电流线性下降。伏秒平衡导通阶段( V_{in} \cdot D \cdot T )关断阶段( (V_{in} - V_{out}) \cdot (1-D) \cdot T )令总积分为零[ V_{in} \cdot D \cdot T (V_{in} - V_{out}) \cdot (1-D) \cdot T 0 ]消去 ( T )[ V_{in} \cdot D V_{in} \cdot (1-D) - V_{out} \cdot (1-D) 0 ][ V_{in} - V_{out} \cdot (1-D) 0 ]所以[ V_{out} \frac{V_{in}}{1-D} ]或者[ D 1 - \frac{V_{in}}{V_{out}} ]这就是Boost电路的占空比公式。注意当 ( D ) 趋近于1时输出电压趋近于无穷大——当然实际中受限于寄生参数不可能无限升压。通常Boost电路的占空比不会超过0.9否则效率急剧下降。3.2 Boost电感电流纹波与选型Boost电路的电感电流就是输入电流。在导通阶段电感电压为 ( V_{in} )所以[ \Delta I_L \frac{V_{in} \cdot D \cdot T}{L} \frac{V_{in} \cdot D}{L \cdot f_{sw}} ]把 ( D 1 - V_{in}/V_{out} ) 代入[ \Delta I_L \frac{V_{in} \cdot (1 - V_{in}/V_{out})}{L \cdot f_{sw}} \frac{V_{in} \cdot (V_{out} - V_{in})}{L \cdot f_{sw} \cdot V_{out}} ]这个公式和Buck的纹波公式形式不同但本质一样。Boost电感的平均电流等于输入电流 ( I_{in} I_{out} / (1-D) )。所以电感峰值电流为[ I_{L,peak} I_{in} \frac{\Delta I_L}{2} \frac{I_{out}}{1-D} \frac{\Delta I_L}{2} ]实操心得Boost电路有一个容易忽略的问题——启动时的浪涌电流。因为输出电容初始电压为零启动瞬间电感电流会很大可能触发输入电源的过流保护。我通常会在输入端加一个NTC热敏电阻或者带软启动功能的控制器。另外Boost电路的二极管必须选快恢复二极管普通整流二极管的反向恢复时间太长会导致效率下降和EMI问题。3.3 Boost输出电容纹波Boost电路的输出电容纹波计算比Buck复杂一些因为电容电流波形不是简单的三角波。在开关管导通阶段输出电容单独给负载供电电容电流为 ( -I_{out} )在开关管关断阶段电感电流一部分给负载一部分给电容充电电容电流为 ( i_L - I_{out} )。经过积分推导这里省略中间步骤容性纹波近似为[ \Delta V_{C} \approx \frac{I_{out} \cdot D}{C \cdot f_{sw}} ]ESR纹波为[ \Delta V_{ESR} I_{L,peak} \cdot ESR ]总纹波为两者之和。注意Boost电路的输出电容纹波通常比Buck大因为电容放电时间更长导通阶段整个周期都在放电。所以Boost电路需要更大的输出电容。4. 从公式到选型电感、电容、开关管的实操计算4.1 电感选型的完整计算流程假设我们要设计一个Buck电路输入12V输出5V最大负载电流3A开关频率500kHz期望电感电流纹波为输出电流的30%。第一步计算占空比。[ D \frac{V_{out}}{V_{in}} \frac{5}{12} \approx 0.417 ]第二步计算电感电流纹波。[ \Delta I_L 0.3 \times I_{out} 0.3 \times 3 0.9A ]第三步计算所需电感值。[ L \frac{V_{in} \cdot D \cdot (1-D)}{\Delta I_L \cdot f_{sw}} \frac{12 \times 0.417 \times (1-0.417)}{0.9 \times 500 \times 10^3} ]计算分子( 12 \times 0.417 \times 0.583 \approx 2.917 )分母( 0.9 \times 500000 450000 )[ L \frac{2.917}{450000} \approx 6.48 \times 10^{-6} H 6.48 \mu H ]取标准值6.8μH。第四步计算电感峰值电流。[ I_{L,peak} I_{out} \frac{\Delta I_L}{2} 3 0.45 3.45A ]所以电感饱和电流至少选 ( 3.45 \times 1.3 \approx 4.5A )。我一般会选5A以上的电感。第五步计算电感均方根电流用于估算铜损。[ I_{L,rms} \approx I_{out} 3A ]纹波较小时RMS约等于平均值。注意电感选型不仅要看电感量和饱和电流还要看直流电阻DCR。DCR太大会导致效率下降和发热。一般DCR在几十毫欧以内比较理想。另外电感的封装尺寸也要考虑6.8μH/5A的电感通常用一体成型电感尺寸大概7mm×7mm×4mm左右。4.2 输出电容选型的完整计算流程继续上面的例子假设要求输出纹波小于50mV使用陶瓷电容ESR约为2mΩ。先算容性纹波和ESR纹波。ESR纹波[ \Delta V_{ESR} \Delta I_L \cdot ESR 0.9 \times 0.002 1.8mV ]这个很小可以忽略。容性纹波要求小于50mV所以[ \frac{\Delta I_L}{8 \cdot C \cdot f_{sw}} \leq 0.05 ][ C \geq \frac{0.9}{8 \times 0.05 \times 500000} \frac{0.9}{200000} 4.5 \times 10^{-6} F 4.5 \mu F ]所以至少需要4.5μF。但实际中要考虑电容的直流偏压效应——陶瓷电容在直流偏压下容量会大幅下降。比如一个标称22μF的X5R电容在5V偏压下可能只剩10μF。所以我会选两个22μF并联实际有效容量约20μF远远满足要求。实操心得陶瓷电容的直流偏压特性是新手最容易踩的坑。你按标称值算出来需要10μF实际选一个10μF的电容结果在5V下只有4μF纹波直接超标。我的做法是先选一个标称值大3到5倍的电容然后查厂商的偏压曲线确认有效容量。如果空间允许用多个小容值电容并联比用一个大容值电容更好因为并联可以降低ESR和ESL而且偏压特性也更好。4.3 开关管和二极管的选择开关管的电压应力Buck电路中开关管关断时承受的电压为 ( V_{in} )。所以耐压至少选 ( 1.5 \times V_{in} 18V )一般选30V的MOSFET。开关管的电流应力流过开关管的电流就是电感电流。峰值电流3.45A有效值约3A。所以选导通电阻 ( R_{ds(on)} ) 小、电流能力5A以上的MOSFET。二极管的电压应力同样承受 ( V_{in} )选30V以上的肖特基二极管。肖特基二极管的正向压降小反向恢复时间短适合高频开关电源。注意同步整流Buck电路用MOSFET代替二极管效率更高。但要注意死区时间控制避免上下管直通。死区时间一般设20ns到50ns太大会增加体二极管导通损耗太小有直通风险。5. 常见问题与排查技巧实录5.1 公式算出来的电感和实际差很多怎么办这是最常见的问题。你按公式算出6.8μH结果实际电路用6.8μH纹波却大得离谱。原因通常有三个第一电感实际值偏差。很多电感标称值有±20%的容差而且直流偏压下电感量会下降。比如一个6.8μH的电感在3A直流下可能只剩5μH。所以实际纹波会比计算值大30%以上。第二开关频率偏差。有些芯片内部振荡器精度只有±20%实际频率可能不是500kHz而是400kHz。频率低了纹波自然大。第三测量方法问题。用示波器测电感电流纹波时探头的地线太长会引入噪声看起来纹波很大。正确做法是用弹簧地线或者用电流探头。我的建议是公式算完后电感值往上取一档比如算出来6.8μH就选10μH。然后实测纹波如果偏大再调整。不要指望一次算准。5.2 占空比突然跳变是什么原因有时候你测占空比发现它在一个值附近来回跳或者突然从0.4跳到0.6。这通常是环路不稳定或者进入了非连续导通模式DCM。在DCM下电感电流在每个周期结束前就降到零了此时占空比公式不再适用。DCM的占空比与负载电流有关负载越轻占空比越小。如果你在轻载下测占空比发现它比理论值小很多那很可能就是DCM。另一个原因是斜坡补偿不足。电流模式控制器在占空比大于50%时如果没有足够的斜坡补偿会发生次谐波振荡表现为占空比隔周期跳变。解决办法是增加斜坡补偿或者改用电压模式控制器。5.3 输出纹波里有很多高频尖峰输出纹波应该是平滑的三角波但实际测量中经常看到很多高频尖峰。这些尖峰通常来自开关管开通和关断时的 ( di/dt ) 和 ( dv/dt ) 通过寄生电容耦合到输出。二极管反向恢复产生的电流尖峰。电感的匝间电容耦合。解决办法在输出端加一个小容值100nF到1μF的陶瓷电容尽量靠近负载。在开关管和二极管两端加RC吸收电路。优化PCB布局减小功率环路面积。实操心得PCB布局对电源性能的影响不亚于电路设计。功率环路输入电容、开关管、二极管、电感的面积要尽可能小最好在1平方厘米以内。反馈走线要远离功率节点最好用地线屏蔽。输出电容要尽量靠近负载否则走线电感会恶化纹波。5.4 常见问题速查表问题现象可能原因排查方法解决措施输出电压偏低占空比受限、电感DCR过大、负载过重测占空比、测电感两端电压换低DCR电感、检查限流设置电感发热严重饱和电流不足、DCR过大、磁芯损耗大测电感电流波形、测DCR换大饱和电流电感、换低损耗磁芯输出纹波大电容容量不足、ESR大、布局差测电容两端纹波、查偏压曲线加大电容、换低ESR电容、优化布局效率低开关损耗大、导通损耗大、死区时间不当测开关管波形、测温度换低 ( R_{ds(on)} ) 管、调整死区环路振荡补偿不足、斜坡补偿不够测占空比抖动、测负载瞬态响应调整补偿网络、增加斜坡补偿6. 公式推导的延伸从Buck-Boost到更复杂的拓扑6.1 Buck-Boost电路的占空比推导Buck-Boost电路是Buck和Boost的组合输出电压可以高于或低于输入电压但极性相反。它的伏秒平衡推导和前面类似导通阶段电感电压为 ( V_{in} )持续时间 ( D \cdot T )。关断阶段电感电压为 ( V_{out} )注意极性持续时间 ( (1-D) \cdot T )。伏秒平衡[ V_{in} \cdot D \cdot T V_{out} \cdot (1-D) \cdot T 0 ]所以[ V_{out} -\frac{V_{in} \cdot D}{1-D} ]负号表示极性相反。占空比[ D \frac{|V_{out}|}{V_{in} |V_{out}|} ]这个公式在LED驱动和电池供电场合很常用。6.2 为什么伏秒平衡是万能钥匙你可能会发现不管是Buck、Boost还是Buck-Boost推导占空比都只用了一个伏秒平衡。这不是巧合。伏秒平衡是电感在稳态下的必然结果——如果电感电压在一个周期内的积分不为零电感电流就会一直上升或下降最终饱和或归零电路不可能稳定。所以遇到任何新拓扑你只需要做三件事画出开关管导通和关断两个状态的等效电路。找出每个状态下电感两端的电压和持续时间。令伏秒积分为零解出占空比或输出电压。这个方法我试过在Flyback、Forward、SEPIC、Cuk等各种拓扑上全部适用。区别只在于电感电压的表达式不同但思路完全一样。6.3 从公式到仿真验证推完公式后我强烈建议用仿真软件验证一下。LTspice或者Simplis都可以。把电路搭出来跑一个瞬态仿真看占空比和输出电压是否和公式一致。如果偏差很大先检查仿真模型是否理想——比如电感的DCR设为零了吗开关管的导通电阻设为零了吗二极管的正向压降设为零了吗仿真验证通过后再搭实际电路。实际电路和仿真的差异主要来自寄生参数。这时候你可以用公式估算寄生参数的影响比如[ D_{actual} \approx \frac{V_{out} I_{out} \cdot (DCR R_{ds(on)} \cdot D V_F \cdot (1-D))}{V_{in}} ]这个公式是在理想占空比基础上加了修正项。虽然看起来复杂但每一项都有明确的物理意义。你可以逐项分析哪个寄生参数影响最大然后针对性优化。实操心得我习惯在Excel里建一个电源设计计算表把输入电压、输出电压、电流、频率、电感、电容、寄生参数全部列进去公式自动计算。改一个参数所有结果实时更新。这样在选型和调参时非常方便。推荐你也建一个比每次手算快得多而且不容易出错。7. 个人经验公式推导之外的那些事公式推得再熟实际调试时还是会遇到各种意外。我印象最深的一次是做一个12V转1.2V/20A的Buck电路公式算出来电感是0.68μH占空比0.1。结果实际电路一上电输出电压只有0.8V占空比已经跑到0.15了还是不够。后来发现是PCB走线电阻太大——20A电流在2mΩ的走线上就产生40mV压降加上电感DCR和MOSFET导通电阻总压降超过100mV。在1.2V输出下这100mV就是8%的误差。最后把走线加粗、电感换成DCR更小的型号才解决。这件事告诉我公式是理想情况下的指南针但实际电路里寄生参数、布局、器件容差都会让结果偏离。所以我的习惯是公式算完后留20%到30%的裕量然后实测调整。不要追求一次算准那是不可能的。另外我建议你养成一个习惯每次设计完一个电源把实际用的电感值、电容值、占空比、效率、纹波都记下来。下次做类似规格时这些数据就是最好的参考。我做了这么多年现在看到一个规格大概就能估出电感和电容的范围靠的就是这些积累。最后分享一个小技巧如果你不确定某个拓扑的公式怎么推先别翻书自己画波形。把电感电压波形画出来正面积和负面积相等方程自然就出来了。这个方法比背公式可靠得多而且永远不会忘。