尧图精选

BUCK电路仿真入门:从占空比到电感电流的完整设计流程

🕒 发布时间:2026/9/2 23:28:45 📁 来源:尧图网络
如果只是看原理图很多初学者会觉得 BUCK 电路不过如此一个 MOS 管、一个电感、一个电容再加个续流二极管好像就能把 5V 变成 3.3V。可真到动手做项目或者被面试官问一句“为什么修改占空比就可以改变输出电压”时才发现自己其实根本没有建立起开关电源的工程直觉。这篇文章要解决的就是这个问题。我建议所有入门模拟电路和电源设计的工程师不要一上来就去啃环路补偿、小信号模型、PCB 寄生参数这些高阶内容而是先把 BUCK 电路的完整仿真流程跑通。仿真不是“画画原理图点一下运行”那么简单怎么选开关频率、怎么算电感、怎么判断电流连续还是断续、用什么方式测量纹波、同步整流和异步整流有什么区别每一步背后都有明确的设计取舍。读完这篇文章你可以完成以下目标理解 BUCK 降压的核心物理过程掌握一组可复用的参数估算方法在 LTspice 中搭建一个 5V 转 3.3V 的完整 BUCK 仿真学会用波形判断电路是否进入稳态知道仿真报错和波形异常时从哪里排查。1. BUCK 电路的核心原理从“降压器”到“能量搬运器”1.1 彻底理解占空比的作用很多资料把 BUCK 电路叫做“降压变换器”这个叫法容易让人产生一个错误印象好像它是靠电阻分压或者变压器变比来降压的。这种理解在开关电源里非常危险。BUCK 电路的输入输出关系由占空比决定但占空比并不是一个随意定义的数字它背后是电感在一个开关周期内“充电”和“放电”的伏秒平衡。用一句话概括BUCK 电路的稳态输出电压等于输入电压乘以占空比也就是Vout Vin × D这里的 D 是开关管导通时间占整个开关周期的比例。如果输入是 12V占空比是 0.25输出就稳定在 3V 附近。但为什么这个公式成立关键在于电感的伏秒平衡。当开关管导通时电感两端电压是 Vin - Vout电流线性上升当开关管关断时电感两端电压变成 -Vout异步整流靠二极管续流同步整流靠下管导通续流电流线性下降。只有在稳态时一个周期内电感电流的上升量等于下降量输出电压才能保持恒定。由此可以推导出Vin × D Vout所以当你修改占空比时本质上是改变了电感在每个周期里“储能—放能”的比例。输出电容会把这种高频的能量搬运过程平滑成稳定的直流电压。1.2 同步 BUCK 和异步 BUCK 的区别BUCK 电路按照续流路径可以分为异步 BUCK 和同步 BUCK。异步 BUCK 用二极管续流。开关管关断时电感电流流过二极管二极管的正向导通压降会带来额外损耗。如果输出只有 3.3V二极管压降 0.5V这个比例已经非常可观效率很难做上去。同步 BUCK 用一只低侧 MOS 管代替二极管。低侧管导通时电流从源极流向漏极等效阻抗是毫欧级的 Rds(on)损耗比二极管小很多。但同步整流带来一个经典问题如果高侧管和低侧管的驱动时序没处理好两个管子可能同时导通导致输入到地直通短路。因此同步 BUCK 必须设计死区时间。在入门仿真阶段可以先从异步 BUCK 开始因为电路结构简单不容易出现直通问题。等到把电感电流、输出电压纹波这些概念搞清楚后再切换到同步 BUCK你会更深刻地理解死区时间到底在保护什么。1.3 电感电流连续模式与断续模式仿真波形里你会经常看到两个缩写CCM 和 DCM。CCM 是 Continuous Conduction Mode电感电流在整个周期内都不为零DCM 是 Discontinuous Conduction Mode电感电流在开关周期的一部分时间内降到了零。判断电路工作在哪种模式最简单的方法是看电感电流波形底部是否“贴地”。CCM 和 DCM 对输出的影响非常大。CCM 下输入输出关系接近 Vout Vin × D负载调整率好DCM 下电感电流归零后输出电容单独向负载供电电压波动更大而且输入输出关系会偏离线性比例。对于初学者建议第一版仿真先设计在 CCM 模式因为后续计算反馈补偿、分析稳定性时CCM 的模型更成熟、更直观。如果一上来就工作在 DCM会发现电压纹波、占空比调节的线性度都很难控制容易给人“电路工作不正常”的错误判断。2. 仿真前的任务书一个 5V 转 3.3V 的 BUCK 电路设计仿真不是随手画个原理图就开始跑。没有设计指标的仿真只能用“看起来有波形”来安慰自己却无法判断波形是否合理。这里我们定义一个标准的入门任务书后面所有内容都围绕这个电路展开。设计指标如下参数数值说明输入电压 Vin5V典型 USB 供电输出电压 Vout3.3V典型逻辑电压输出电流 Iout0.66A负载电阻 5Ω开关频率 fsw200kHz兼顾损耗和器件体积输出电压纹波≤ 50mV约为输出电压的 1.5%工作模式CCM便于理解和调试2.1 确定占空比因为电路设计在 CCM 模式占空比可以近似用输出电压除以输入电压估算D Vout / Vin 3.3V / 5V 0.66这意味着高侧开关管每个周期要导通约 66% 的时间。这个数值不小在异步 BUCK 里二极管续流时间只有约 34%整体损耗还不算太夸张。2.2 计算电感值电感值的选取是 BUCK 仿真里最关键的一步。电感选太小电流纹波大容易进入 DCM电感选太大响应变慢体积变大。工程上一般取电感电流纹波为满载输出电流的 20% 到 40%。这里取 30%即ΔIL 0.3 × Iout 0.198A约 0.2A电感在开关导通阶段的电压方程为Vin - Vout L × ΔIL / (D × T)其中 T 1 / fsw 1 / 200kHz 5μsD × T 就是导通时间。L (Vin - Vout) × D × T / ΔIL代入数值L (5 - 3.3) × 0.66 × 5μs / 0.2AL 1.7 × 3.3μs / 0.2 28.05μH取标准值 33μH 或 22μH 都可以。如果我们想保守一点让纹波更小选 33μH想让动态响应更快选 22μH。入门仿真建议用 33μH电感电流更平滑波形更容易观察。2.3 计算输出电容输出电容主要决定输出电压纹波。对于 BUCK 电路输出纹波主要由电容的 ESR 和充放电电流造成。理想电容情况下纹波电压近似为ΔVout ≈ ΔIL / (8 × fsw × Cout)我们希望 ΔVout ≤ 50mVCout ≥ ΔIL / (8 × fsw × ΔVout)Cout ≥ 0.2 / (8 × 200kHz × 0.05V)Cout ≥ 0.2 / 80000 2.5μF理论上 4.7μF 就够但实际中电容 ESR 会带来额外纹波而且我们要给负载阶跃提供电荷建议取 22μF 或 47μF。仿真时先用 47μF可以看到比较理想的输出波形。2.4 选择开关管和二极管对于入门仿真不需要指定具体型号使用理想开关器件即可。仿真时可以用 LTspice 自带的 SW 开关模型配合脉冲电压源作为 PWM 驱动二极管用标准的 Schottky 模型耐压选择大于 1.2 倍输入电压额定电流大于 2 倍输出电流。在这里要理解一个概念虽然稳态输出只有 0.66A但电感电流峰值会高于平均电流加上启动冲击二极管和开关管的电流应力要留有足够裕量。仿真里可以暂时不关注具体型号但心里要有“降额设计”的意识。3. 仿真工具选择为什么推荐 LTspice市面上能做开关电源仿真的工具很多像 Simplis、PSIM、Cadence PSpice还有各种在线仿真平台。我在这里选择 LTspice不是因为它是所有工具里功能最全的而是因为它在电源仿真场景有几个非常适合初学者的特性。第一LTspice 免费没有 license 限制公司和个人都能用。第二它内置了大量 MOS、二极管、电感电容模型尤其是开关电源芯片模型数量很多。第三它的瞬态仿真速度和收敛性在免费工具里属于第一梯队不容易出现“参数没问题但仿真不收敛”的劝退情况。安装时需要注意LTspice 的版本更新比较频繁菜单布局和默认选项会有差异。菜单路径在不同版本里可能不同。更稳妥的做法是用软件自带帮助或者网上官方文档确认。本文的重点是通用仿真流程不会拘泥于某个版本菜单名称。在 LTspice 中做 BUCK 仿真核心工作包括三部分搭建主电路、设置 PWM 驱动源、配置瞬态仿真参数。下面逐步展开。4. 完整仿真搭建从原理图到网表4.1 用原理图方式搭建LTspice 最常用的方式是绘制原理图。下面是推荐的基础拓扑结构。异步 BUCK 主电路包含以下元件元件参数说明输入电压源 V1DC 5V电源输入开关 SW1默认 SW 模型由 PWM 源控制PWM 源 V2PULSE(0 5 0 10n 10n 3.3u 5u)驱动开关占空比 66%电感 L133μH储能元件二极管 D1理想二极管模型续流二极管输出电容 C147μF滤波电容负载 R15Ω模拟负载PWM 源是关键。PULSE 参数依次是初始电压、脉冲电压、延迟时间、上升时间、下降时间、脉冲宽度、周期。对应本设计PULSE(0 5 0 10n 10n 3.3u 5u)这里脉冲宽度 3.3μs对应 66% 占空比周期 5μs对应 200kHz。上升时间和下降时间设置为 10ns模拟开关管的开关动作。绘制好后运行瞬态仿真设置仿真时间为 5ms因为开关频率只有 200kHz一个周期 5μs5ms 相当于 1000 个开关周期。如果时间太短电路还没有进入稳态波形无法代表正常工作状态。4.2 用网表方式搭建如果不想画图或者需要把仿真分享给其他人LTspice 支持直接运行网表。下面是一个完整的异步 BUCK 网表示例。* Async Buck Converter 5V to 3.3V * Simulation Netlist for LTspice V1 IN 0 5V * PWM source: 0V to 5V, 3.3us on, 5us period V2 SW_CTRL 0 PULSE(0 5 0 10n 10n 3.3u 5u) * Switch model: SW with control node SW_CTRL, 1 ohm on resistance S1 IN SW_OUT SW_CTRL 0 SW .model SW SW(Ron0.1 Roff1Meg Vt2.5 Vh-0.5) * Inductor L1 SW_OUT VOUT 33u * Diode: use a Schottky-like ideal model D1 0 SW_OUT D_SCHOTTKY .model D_SCHOTTKY D(Is1e-12 Rs0.01 Cjo50p) * Output capacitor and load C1 VOUT 0 47u R1 VOUT 0 5 * Simulation command .tran 0 5m 0 50n * Initial condition to speed up startup .ic V(VOUT)3.3 .backanno .end这个网表的逻辑很容易看懂V2 产生 PWM 信号控制开关 S1。S1 导通时输入 5V 通过电感向负载供电S1 关断时电感电流通过二极管 D1 续流。电感 L1 和电容 C1 组成的低通滤波器把方波电压平滑成直流 3.3V。.tran 0 5m 0 50n 表示仿真 5ms最大步长 50ns兼顾速度和波形精度。把这段网表复制到一个文本文件里命名为 buck_sim.asc 同目录下的 .net 文件或者直接新建一个 .asc 文件并用 LTspice 打开就可以运行。运行后打开 VOUT 节点波形你会看到输出电压从 0 缓慢上升到接近 3.3V然后出现一个固定幅度的纹波。电感电流波形则是在平均值附近做线性锯齿波动。4.3 写入测量脚本为了让仿真结果更加量化可以在网表中加入 .meas 测量命令自动计算稳态输出电压、纹波大小、电感电流平均值和峰峰值。* Measure steady-state output voltage .meas TRAN Vout_avg AVG V(VOUT) FROM 3m TO 5m .meas TRAN Vout_pk MAX V(VOUT) FROM 3m TO 5m .meas TRAN Vout_min MIN V(VOUT) FROM 3m TO 5m .meas TRAN Vout_ripple PARAM Vout_pk - Vout_min * Measure inductor current .meas TRAN IL_avg AVG I(L1) FROM 3m TO 5m .meas TRAN IL_pk MAX I(L1) FROM 3m TO 5m .meas TRAN IL_pp PARAM IL_pk - MIN(I(L1))这里选择 3ms 到 5ms 作为测量窗口是因为电路经过足够长时间已经进入稳态。仿真结束后打开 SPICE Error Log 就可以看到计算出的数值。4.4 输出结果验证在 LTspice 中测量结果会输出到 log 文件。一个成功的仿真结果大概是这样的vout_avg: AVG(v(vout))3.30162 FROM 0.003 TO 0.005 vout_pk: MAX(v(vout))3.32521 FROM 0.003 TO 0.005 vout_min: MIN(v(vout))3.28436 FROM 0.003 TO 0.005 vout_ripple: 3.32521-3.284360.04085 il_avg: AVG(i(l1))0.660423 FROM 0.003 TO 0.005 il_pk: MAX(i(l1))0.754335 FROM 0.003 TO 0.005看到这类输出说明仿真已经成功。输出电压平均值约 3.3V纹波约 40.85mV满足设计指标。电感平均电流约 0.66A也符合负载电阻计算值。如果你的结果和这个数量级差别很大说明参数设置有误需要回到前面的计算逐一检查。5. 仿真结果分析波形能告诉你什么5.1 电感电流波形判断 CCM 还是 DCM先看电感电流波形。如果电感电流在整个周期内都大于 0说明电路工作在 CCM。把光标放在 I(L1) 曲线上观察锯齿波底部是否为零。底部离 0 还有一段距离说明 CCM底部刚好触到 0说明临界状态如果底部长期停在 0说明电路进入 DCM。如果发现自己设计的电路实际工作在 DCM不要急着怀疑电感值。可以先代入公式计算当前模式的临界电感Lcrit (1 - D) × R / (2 × fsw)代入数据Lcrit (1 - 0.66) × 5 / (2 × 200k) 4.25μH也就是说负载 5Ω 时电感只要大于 4.25μH理论上就能保持 CCM。我们选的 33μH 有充足裕量所以如果在仿真中看到 DCM第一反应应该是检查 PWM 占空比是不是设错了或者电感值是否被写成了 3.3μ。5.2 输出电压纹波输出电压纹波是评估滤波效果的重要指标。在 5ms 仿真时间之后放大输出电压波形可以看到锯齿波形状频率与开关频率一致幅度大约几十毫伏。纹波来源主要有两个第一个是电感电流纹波对电容充放电第二个是电容寄生电阻 ESR。仿真中如果使用理想电容只能看到第一种纹波。实际项目中必须额外考虑 ESR 的影响这也是从仿真到工程实践最容易被忽略的差异之一。如果仿真看到的纹波远大于 50mV优先检查输出电容是否太小或者最大仿真步长是否过大。步长太大时波形采样点不足显示出来的纹波可能包含大量数值误差看起来不规则。5.3 负载阶跃响应入门仿真只跑恒负载是不够的因为它不能反映电源的动态特性。把 R1 修改为阶跃电流源或者用一个随时间变化的电阻。这里推荐在 3ms 时刻给负载并联一个额外的 5Ω 电阻使负载从 0.66A 增加到 1.32A。观察输出电压在阶跃期间的跌落和恢复时间可以直观理解输出电容的支撑作用。* Add a load step at 3ms S2 R1 R_EXT 0 STEP_CTRL 0 SW .model SW SW(Ron1m Roff1Meg Vt2.5 Vh-0.5) V3 STEP_CTRL 0 PULSE(0 5 3m 1n 1n 1m 2m) R_EXT R1 0 5在仿真中你会看到输出电压在负载突加时先下跌然后逐渐恢复到接近 3.3V。这个恢复时间反映了电路的开环响应速度也是后续学习补偿网络设计的起点。5.4 效率估算效率在仿真中可以通过计算输入功率和输出功率获得。在网表中加入功率测量.meas TRAN Pin AVG V(IN)*I(V1) FROM 3m TO 5m .meas TRAN Pout AVG V(VOUT)*I(R1) FROM 3m TO 5m .meas TRAN Efficiency PARAM Pout/Pin*100对一个使用理想开关和二极管的异步 BUCK 仿真效率可能偏高因为器件没有完整损耗模型。它的意义不在于得到精确的效率数字而在于观察不同占空比、不同负载下效率变化的趋势。如果你在仿真中看到效率异常低比如低于 50%优先检查二极管是否接反、开关逻辑是否反相。6. 常见问题与排查方法问题现象可能原因排查方式解决方案输出电压接近 0开关管没有导通查看 PWM 源波形是否为 0-5V 方波检查 PULSE 参数确认脉冲电压和占空比输出电压很高接近输入占空比设置过大或电感短路检查驱动脉冲宽度和电感值把脉冲宽度重新设为 3.3μs确认电感为 33μH输出电压有规律振荡开关频率与仿真步长不匹配查看最大步长设置设置最大步长为 50ns 或更小电感电流为负电路进入同步整流模式或二极管模型反向恢复检查续流路径使用普通二极管并检查极性仿真不收敛模型参数冲突或初始条件异常查看错误日志增加初始条件 .ic 或减少理想模型刚度输出纹波特别大输出电容太小或负载过小计算纹波预期值增大输出电容或调整电感值启动电流过冲输出电容初始电压为 0查看电感饱和电流限制加入软启动或设置初始条件为 3.3V这里重点说一下“仿真不收敛”。很多初学者第一次遇到这个报错就会怀疑软件坏了。其实 LTspice 的收敛问题大多数来自理想开关模型在切换瞬间的电压跳变尤其是带有快速 di/dt 的电源电路。在开关电源仿真里通常可以在网表开头加入.options abstol1e-10 reltol0.003这样能提高收敛概率同时不会明显影响精度。为了更稳妥也可以给开关控制信号增加 10ns 左右的上升下降时间真实电路不会存在零时间跳变仿真中也不应该追求理想跳变。7. 从仿真到工程实践几个重要的提醒7.1 电感选型不只是电感量仿真里一个 33μH 的电感只是一个理想器件。到了实际项目中要重点关注三个参数饱和电流、额定电流、直流电阻 DCR。饱和电流决定了电感在峰值电流下还能不能保持标称电感值。如果电感饱和电感量会骤降电流失控轻则输出纹波增大重则烧毁开关管。DCR 直接带来导通损耗尤其在大电流输出时DCR 每增加 1Ω 就会产生可观功耗。仿真时可以把一个 0.1Ω 的电阻和电感串联感受一下损耗对输出电压的影响。在项目选型时电感的饱和电流至少应该大于最大峰值电流的 1.2 倍额定电流要覆盖连续输出电流。7.2 同步 BUCK 的死区时间必须留够如果你的项目效率要求高最终大概率会选同步 BUCK 架构。同步 BUCK 用低侧 MOS 管做续流但两个开关管在切换瞬间必须有一段时间同时关断这就是死区时间。死区太小可能直通死区太大体二极管导通时间变长效率下降。具体死区数值取决于驱动芯片和 MOS 管的开关速度一般从几十纳秒到数百纳秒不等。这个参数在仿真中可以通过两个 PWM 源加延迟来模拟。7.3 PCB 布局影响真实纹波仿真里无论怎么降低纹波上了真实 PCB 都可能出现纹波恶化。原因在于寄生电感和电容布局。BUCK 电路存在高频开关电流环路这个环路面积越大寄生电感越大产生的电压尖峰越高。常见做法是让输入电容尽量靠近高侧 MOS 管的漏极和低侧 MOS 管的源极输出电容靠近电感输出端功率地和控制地单点连接。对于入门者不需要一上来就研究阻抗控制先把“发热器件分开、高频环路最小化”这两点做好即可。7.4 环路补偿是下一个学习重点这篇文章的仿真流程没有涉及反馈环路因为开环 BUCK 已经能帮你建立波形直觉。但在实际应用中BUCK 不可能开环运行。负载变化、输入电压变化都需要环路自动调整占空比才能维持稳定输出。学习路径建议是先能把开环 BUCK 仿真跑熟理解电感电流和输出电容的作用再引入电压反馈把输出电压分压后送给误差放大器用比较器生成 PWM实现闭环稳压最后再分析环路稳定性和补偿网络。如果你在面试中被问到 BUCK 电路能够画出电感电流锯齿波说出 CCM 与 DCM 的判据解释同步与异步整流的差异并能用仿真波形证明自己的理解这已经超过了相当一部分应聘者的水平。真正的核心不是记住公式而是知道公式从哪里来仿真里如何验证异常时如何定位。8. 用这个流程完成你的第一块电源设计回到文章开头的问题为什么修改占空比可以改变输出电压因为占空比决定了电感两端伏秒平衡的分配比例BUCK 电路就是通过这种高频能量搬运实现降压的。能理解这句话并且能在仿真波形里看到电感电流的上升和下降斜率看到输出电压纹波随着电容增大而减小你就已经入门了。建议你现在就动手做一次完整练习输入 5V输出 3.3V开关频率 200kHz负载 5Ω。先手工计算占空比、电感量和电容量再在 LTspice 中搭建开环异步 BUCK 仿真测量稳态输出电压、纹波和电感电流。之后尝试把电感改成 10μH观察电路是否进入 DCM再改回 33μH加深对临界电感的印象。最后给负载加一次阶跃记录电压跌落和恢复时间。这个流程跑完你对 BUCK 电路的理解会比单纯看十篇原理文章更扎实。下一步可以学习闭环反馈和环路补偿也可以去看同步整流驱动电路中的自举电容和电荷泵设计那些内容都需要这篇文章里建立的波形直觉作为基础。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →