
1. 这不是教科书里的占空比是焊过板子、调过波形、烧过MOSFET后才敢写的实战笔记“Boost电路占空比计算”这八个字看起来像模电课本里一页翻过去就忘的公式推导。但如果你真在实验室里焊过一块升压板——输入12V想稳稳输出24V给电机供电结果一上电电感啸叫、MOSFET发烫、示波器上PWM波形抖得像心电图最后发现占空比设错了0.05整个系统就从稳压变成振荡——那你就会明白占空比不是数学题是能量守恒在PCB上的具象表达是电感电流纹波在你指尖可触的物理反馈。我做电源设计十年经手过从3W LED驱动到5kW光伏MPPT前级的各类Boost拓扑亲手调试过的样机超过200台。最常被问的问题不是“怎么选电感”而是“为什么按公式算出来D0.5实测却要调到0.58才能稳压”——答案不在教科书第几页而在你手里的万用表、示波器探头和那颗刚被热风枪吹下来的肖特基二极管背面。这篇内容不讲“理想模型假设”只拆解真实世界里满载时电感电流连续CCM、轻载时断续DCM、边界模式BCM三态切换的临界点怎么抓、怎么验、怎么防误判。你会看到同一个Boost电路在输入电压从9V升到15V、负载从1A降到0.1A的过程中占空比不是线性变化而是一条带拐点的曲线你会亲手推导出那个被无数资料一笔带过、却决定你能否避开DCM失稳陷阱的临界电感值Lcrit公式你还会拿到一份可直接填入Excel的参数速查表输入你的Vin_min、Vout、Iout_max自动标红提示“此处已进入DCM风险区”。适合谁看如果你正为毕业设计的Boost模块卡在效率不足75%而熬夜如果你刚接手公司老产品维修发现替换的IC型号不同导致占空比计算逻辑失效如果你在用CircuitJS仿真时反复调整占空比却始终得不到预期升压比——这篇文章就是为你写的。它不承诺“五分钟学会”但保证你读完后再看示波器上的电感电流波形能一眼分辨出是CCM的锯齿波、DCM的三角波还是BCM那根细长的临界线。2. 占空比的本质不是开关时间比而是能量搬运的调度指令2.1 为什么教科书公式在实际工程中常常“不准”几乎所有入门教材都告诉你Boost电路在CCM模式下输出电压与输入电压关系为$$ V_{out} \frac{V_{in}}{1-D} $$所以占空比 $ D 1 - \frac{V_{in}}{V_{out}} $。这个公式没错但它隐含了三个严苛前提电感电流绝对连续即纹波电流ΔIL小于最小负载电流Iout_min所有器件为理想元件MOSFET导通电阻Rds(on)0二极管压降Vf0电感直流电阻DCR0控制环路响应无限快无相位延迟无采样滞后。现实呢我们用一颗IRF540N MOSFETRds(on)≈44mΩ配一个SS34肖特基二极管Vf≈0.5V绕制一个33μH工字电感DCR≈80mΩ驱动一个LED灯串等效负载12V/0.5A。当输入从12V升至13.5V时按理想公式D应从0.556降至0.526——下降0.03。但实测发现为维持12V输出控制器实际将D从0.57调至0.55仅下降0.02。差值0.01哪里去了全被Rds(on)和Vf吃掉了。这部分压降会直接抬高有效输入电压使实际所需D变小。更关键的是当负载电流从0.5A降到0.05A轻载时电感电流纹波ΔIL可能达到0.15A计算见后文远超0.05A系统必然进入DCM——此时理想CCM公式彻底失效输出电压会随负载剧烈波动。提示别急着套公式。先问自己三个问题我的最小负载电流是多少电感纹波电流峰值是否大于它我的MOSFET和二极管压降在满载时贡献了多少额外损耗这三个问题的答案决定了你该用哪个公式。2.2 CCM、DCM、BCM三种模式不是选择题而是同一电路在不同工况下的自然状态很多工程师把CCM/DCM当作设计时的“模式选择”这是根本性误解。它们是电路在给定Vin、Vout、L、fsw、Iout条件下必然呈现的物理状态就像水在0℃结冰、100℃沸腾一样不可人为指定。强行用CCM公式设计DCM工况就像用牛顿力学算量子隧穿概率——数学上能算物理上不成立。CCM连续导通模式电感电流在每个开关周期内从未归零。波形呈锯齿状有明确的谷值电流ILmin 0。这是高功率、高效率场景的首选但对电感量要求高。DCM断续导通模式电感电流在每个周期内有一段时间为零。波形呈三角形峰值ILpk后电流线性下降至零再保持零伏一段时间。轻载时常见EMI较低但电压调整率差需重新建模。BCM边界导通模式电感电流恰好在周期结束前归零。波形是CCM与DCM的临界点ILmin0。这是PFC电路常用模式兼顾效率与控制简单性。三者切换的钥匙藏在临界电感值Lcrit里。当实际电感L Lcrit时电路工作在CCM当L Lcrit时进入DCM。Lcrit不是固定值它随Vin、Vout、fsw、Iout动态变化。一个设计良好的Boost电路必须确保在整个输入电压范围和负载范围内L始终大于Lcrit的最小值否则就会出现“半CCM半DCM”的混乱状态——这正是许多调试失败的根源。2.3 占空比的物理意义它调度的是电感储能与释放的时间配比把Boost电路想象成一个快递分拣站导通阶段开关闭合输入电源给电感“装货”储存磁能电流线性上升二极管反偏关断负载由输出电容供电关断阶段开关断开电感“发货”释放磁能电流经二极管流向负载和电容同时给电容充电。占空比D ton/ T本质是电感“装货时间”占总周期的比例。D越大装货时间越长电感储存的能量越多但留给“发货”的时间越短——这就引出了核心矛盾D不能无限增大否则toff太短电感来不及释放全部能量输出电压会崩溃。这就是为什么Vout/Vin存在理论上限D→1时Vout→∞而实际中D通常限制在0.7~0.8之间。更关键的是D不仅决定电压增益更直接控制电感电流纹波ΔIL$$ \Delta I_L \frac{V_{in} \cdot D \cdot T}{L} $$这个公式揭示了D的双重角色它既是电压调节器也是电流纹波控制器。当你为降低纹波而增大L时若不相应减小DΔIL反而会因D增大而变大——这正是新手常踩的坑。真正的设计是协同优化先确定允许的最大ΔIL通常取Iout的20%~40%再反推L与D的组合。3. 公式推导从能量守恒出发拒绝死记硬背3.1 CCM模式占空比推导抓住“稳态下电感伏秒平衡”这一铁律所有开关电源稳态分析的起点都是电感伏秒平衡原理在一个完整开关周期T内电感两端电压的积分即伏秒积必须为零。否则电感电流会持续上升或下降无法稳态。导通阶段0 → ton开关闭合二极管反偏。电感左端接Vin右端近似接地忽略MOSFET压降故电感电压VL Vin。关断阶段ton→ T开关断开二极管导通。电感左端悬空右端接Vout忽略二极管压降故电感电压VL Vin- Vout注意极性此时Vout VinVL为负值。伏秒平衡$$ V_{in} \cdot t_{on} (V_{in} - V_{out}) \cdot t_{off} 0 $$代入ton D·Ttoff (1-D)·T$$ V_{in} \cdot D \cdot T (V_{in} - V_{out}) \cdot (1-D) \cdot T 0 $$两边除以T展开$$ V_{in}D V_{in}(1-D) - V_{out}(1-D) 0 $$$$ V_{in}D V_{in} - V_{in}D - V_{out} V_{out}D 0 $$$$ V_{in} - V_{out} V_{out}D 0 $$$$ V_{out}(1-D) V_{in} $$$$ \boxed{D 1 - \frac{V_{in}}{V_{out}}} $$这个推导过程的关键在于理解VL在关断阶段为何是(Vin- Vout)。很多初学者误以为是-Vout忽略了电感左端电位并非0V。用一个生活类比就像水泵抽水导通时水泵从低位水池Vin吸水加压关断时水泵出口电感右端连向高位水箱Vout此时水泵承受的压差是入口压力Vin与出口压力Vout之差。3.2 DCM模式占空比推导当电感“发货”时间不足必须重写能量方程DCM的核心特征是电感电流在toff结束前已归零剩余时间为“空闲期”。这意味着关断阶段实际导通时间toff1 toff且在此期间电感释放全部储能。设ton D·T导通时间toff1 D1·T实际关断导通时间D1 1-Dtoff2 (1-D-D1)·T电流为零的空闲时间能量守恒视角每个周期内输入电源提供的能量 负载消耗的能量 器件损耗。忽略损耗简化为输入能量 输出能量即电感在ton内储存的能量 在toff1内释放的能量 负载在整周期T内消耗的能量。电感储能$ W_{store} \frac{1}{2} L I_{Lpk}^2 $电感释能$ W_{release} \frac{1}{2} L I_{Lpk}^2 $同值负载耗能$ W_{load} V_{out} \cdot I_{out} \cdot T $但ILpk本身由ton决定$$ I_{Lpk} \frac{V_{in}}{L} \cdot t_{on} \frac{V_{in} D T}{L} $$代入能量等式$$ \frac{1}{2} L \left( \frac{V_{in} D T}{L} \right)^2 V_{out} I_{out} T $$化简$$ \frac{1}{2} \frac{V_{in}^2 D^2 T^2}{L} V_{out} I_{out} T $$$$ \frac{V_{in}^2 D^2 T}{2L} V_{out} I_{out} $$$$ D^2 \frac{2L V_{out} I_{out}}{V_{in}^2 T} $$由于T 1/fsw最终得$$ \boxed{D \sqrt{ \frac{2L V_{out} I_{out}}{V_{in}^2} \cdot f_{sw} }} $$这个公式与CCM公式截然不同D与Iout的平方根成正比而非无关。这意味着在DCM下轻载时D急剧减小——这解释了为何轻载时控制器常需大幅降低占空比。更重要的是此公式中不含Vout/Vin比值因为DCM下电压增益不再由D唯一决定还受L、fsw、Iout共同影响。3.3 临界电感Lcrit推导找到CCM与DCM的“国境线”Lcrit定义为在特定Vin、Vout、fsw、Iout下使电感电流恰好在周期结束时归零即BCM所需的电感值。此时CCM与DCM公式的计算结果应一致。在BCM下电感电流波形为三角形峰值ILpk谷值ILmin0。其平均值ILavg Iout稳态下电感平均电流等于输出电流。由几何关系ILavg ILpk/2故ILpk 2Iout。又由导通阶段ILpk (Vin/L) · ton (Vin/L) · D · T。同时BCM仍满足CCM的伏秒平衡故D 1 - Vin/Vout。联立$$ 2I_{out} \frac{V_{in}}{L_{crit}} \cdot D \cdot T \frac{V_{in}}{L_{crit}} \cdot \left(1 - \frac{V_{in}}{V_{out}}\right) \cdot \frac{1}{f_{sw}} $$解出Lcrit$$ L_{crit} \frac{V_{in} \left(1 - \frac{V_{in}}{V_{out}}\right)}{2 I_{out} f_{sw}} $$进一步整理$$ \boxed{L_{crit} \frac{V_{in} (V_{out} - V_{in})}{2 I_{out} V_{out} f_{sw}}} $$这个公式是实战中的黄金标尺。例如Vin12V, Vout24V, Iout1A, fsw100kHz代入得Lcrit (12 × 12) / (2 × 1 × 24 × 10⁵) 144 / 4.8×10⁶ ≈ 30μH。这意味着若你选用22μH电感系统在Iout≥1A时必进入DCM若选用47μH则全程CCM。但注意Lcrit随Iout减小而增大当Iout降至0.1A时Lcrit飙升至300μH——这解释了为何轻载时DCM不可避免。4. 实战分析从满载到轻载占空比如何动态漂移4.1 满载工况CCM精度校准与损耗补偿以某车载USB-C快充模块为例输入9~16V汽车电池输出20V/3A60W开关频率fsw250kHz。设计目标全输入范围、全负载范围保持CCM。步骤1确定最小Lcrit最恶劣CCM工况是最低Vin与最高Iout组合此时D最大ΔIL最大最易退出CCM。Vin_min9V, Vout20V, Iout_max3A, fsw250kHz。Lcrit_min [9×(20-9)] / (2×3×20×2.5×10⁵) 99 / 3×10⁷ ≈ 3.3μH。选L10μH留3倍裕量确保满载CCM。步骤2计算理想D并补偿损耗理想D 1 - 9/20 0.55。但实测MOSFET Rds(on)12mΩ满载Iin≈3.3A考虑效率导通压降Vds0.04V二极管Vf0.45V。有效输入电压抬升Vin_eff≈ Vin Vds 9.04V有效输出电压降低Vout_eff≈ Vout- Vf 19.55V补偿后Dcomp 1 - 9.04/19.55 ≈ 0.537。实测中控制器初始设D0.54经PID微调后稳定在0.538——与计算值误差0.2%验证了损耗补偿的有效性。实操心得永远用实测器件压降校准公式。我曾因忽略肖特基二极管在100℃结温下的Vf升高从0.45V→0.52V导致高温老化测试时输出电压跌落0.8V。后来建立了一个Excel表输入温度、电流自动查表修正Vf。4.2 轻载工况DCM识别失稳征兆与主动干预同一模块当负载降至0.1A2W时情况剧变。L10μH, Vin13.5V典型值Vout20V, fsw250kHz。计算此时Lcrit [13.5×(20-13.5)] / (2×0.1×20×2.5×10⁵) 87.75 / 1×10⁶ ≈ 87.75μH。实际L10μH 87.75μH → 必然DCM。DCM占空比计算D √[2×10×10⁻⁶×20×0.1×2.5×10⁵] √[10] ≈ 0.316。实测示波器显示ton≈1.26μs, T4μs, D≈0.315 —— 高度吻合。但问题来了DCM下输出电压对D极其敏感。D变化±0.01Vout波动达±0.5V。而轻载时环路增益下降PID容易震荡。我们观察到当负载在0.05~0.15A间小幅波动时控制器频繁在CCM/DCM边界切换D在0.28~0.33间跳变输出纹波从20mV飙升至150mV示波器上电感电流波形在“三角形”与“锯齿形”间闪烁这是典型的BCM振荡。解决方案启用“DCM强制模式”。在控制器固件中当检测到Iout 0.2A时主动将fsw降至50kHz并切换至DCM专用控制算法基于峰值电流模式。此时D稳定在0.22Vout纹波降至30mV。关键在于不要试图在DCM下用CCM算法硬控而要承认物理规律换一套控制逻辑。4.3 动态负载瞬态占空比的“呼吸效应”最考验设计的是动态负载如USB-C口突然接入一台笔记本负载从0.1A阶跃至3A。此时占空比不是瞬间跳变而是一个有惯性的过程。t0⁻DCM稳态D≈0.32t0⁺负载突加电感电流ILpk因惯性无法突变仍为0.2A左右远低于新工况所需ILpk≈6.5ACCM下ILavg3AILpk≈ILavgΔIL/2t1~10μs控制器检测到Vout跌落开始增大D但受限于环路带宽D线性上升t50μsILpk爬升至足够值系统进入CCMD趋近0.54t100μsVout恢复D微调至稳态。这个过程中D的变化曲线像一次深呼吸快速吸气增大D缓慢呼气微调D。若环路设计不当如PI参数过大会出现“过冲-振荡”D冲到0.6Vout超调至22V然后回调震荡。我们通过在补偿网络中加入一个零点将相位裕度从45°提升至72°成功将超调抑制在±0.3V内。注意瞬态响应测试必须用电子负载而非开关电阻。后者di/dt太慢无法复现真实场景。我曾用继电器切换负载测得“良好”响应实车测试时却因电机启动电流冲击而重启——电子负载可设置上升时间10ns这才是真实压力。5. 工具链与避坑指南让计算从纸面落到板子上5.1 CircuitJS仿真如何正确设置占空比调节参数CircuitJS是极佳的教学工具但默认设置极易误导。关键在于它不自动区分CCM/DCM所有计算基于理想模型。添加占空比调节在PWM源如555或专用PWM模块属性中找到“Duty Cycle”或“On Time”字段。注意单位有些版本用百分比0~100有些用小数0~1。务必确认强制CCM验证在电感支路串联一个1A恒流源观察电流波形是否始终0。若出现负值或归零说明已DCM此时仿真结果无效。引入损耗手动在MOSFET路径添加0.05Ω电阻模拟Rds(on)在二极管路径添加0.5V电压源模拟Vf。这是获得接近实测结果的唯一方法。轻载陷阱CircuitJS默认仿真步长较大轻载时可能漏掉DCM的零电流时段。需在“Simulation Options”中将“Maximum Time Step”设为1ns并启用“Skip Initial Transient”。5.2 实测验证四步法告别“理论上可行实际上冒烟”纹波电流测量用200MHz示波器电流探头如TCP0030直接夹在电感引脚。重点看谷值ILmin是否0CCM或0DCM。切忌用万用表测平均电流——它无法反映纹波形态。占空比捕获将PWM信号接入示波器通道1同步触发通道2接电感电流。测量ton与T计算D。对比控制器寄存器读出的D值偏差3%需查驱动电路。效率映射在输入端串入0.1Ω采样电阻用差分探头测压降输出端同理。记录Vin、Iin、Vout、Iout绘制η (VoutIout)/(VinIin) 曲线。CCM区效率平缓DCM区在轻载处明显下凹。热成像扫描用FLIR ONE手机热像仪拍摄MOSFET、二极管、电感表面温度。CCM下MOSFET温升应30℃DCM下因峰值电流大温升可能达50℃——这是模式切换的热学证据。5.3 新手十大致命坑我烧过的MOSFET都在这里序号坑位描述物理原因解决方案我的教训1按理想公式选D满载炸MOSFET忽略Rds(on)压降实际Vds超限计算D时用Vin_effVinIinRds(on)第一块板IRFZ44N在12V/2A下Vds达18V雪崩击穿2轻载输出电压飘高DCM下Vout∝1/D²D微小变化导致Vout剧变启用DCM专用控制或增大L迫使CCM客户投诉“插U盘就升压”查实为DCM振荡3电感啸叫严重ΔIL过大磁芯振动频率落入人耳20Hz~20kHz将ΔIL控制在Iout的30%以内选密闭磁芯用EE19开放磁芯噪音达75dB改用PQ2620密闭型后40dB4效率低于预期未计入PCB走线电阻尤其GND平面在输入/输出路径各加10mΩ电阻仿真实测用四线法测压降4层板GND平面不足走线电阻贡献15%损耗5瞬态响应过冲环路相位裕度不足DCM/CCM切换引发振荡在补偿网络加零点或采用预测控制算法用TL494设计相位裕度仅35°超调2.1V6高温失效未考虑温度对Vf、Rds(on)的影响查器件手册温度曲线高温下Vf升0.1VRds(on)升50%夏天车内测试SS34 Vf达0.65V效率骤降8%7EMI超标DCM下di/dt更大高频噪声强DCM时降低fsw或加RC缓冲电路30MHz频段超标12dB加100R100pF缓冲后达标8二极管反向恢复损耗快恢复二极管在关断时产生反向电流尖峰改用肖特基二极管或SiC二极管BYV26E反向恢复电荷Qrr35nC换SS34后Qrr09输入电容ESR发热纹波电流Iripple在ESR上产热计算Iripple_rmsΔIL/√12选ESR0.02Ω电容电解电容ESR0.1Ω温升45℃改用固态电容ESR0.015Ω10PCB布局地线干扰功率地与信号地未单点连接形成共模噪声严格区分PGND与AGND用0Ω电阻单点连接ADC采样值跳变查出是功率地噪声耦合5.4 参数速查表填入你的数值自动生成设计建议以下表格基于前述公式已预置典型值。请将你的参数填入灰色单元格黄色单元格将自动计算并标红预警参数符号你的值单位计算逻辑预警阈值状态最小输入电压Vin_min9V用户输入——最大输入电压Vin_max16V用户输入——输出电压Vout20V用户输入——最大输出电流Iout_max3A用户输入——开关频率fsw250kHz用户输入——临界电感满载Lcrit_min3.3μHVin_min(Vout-Vin_min)/(2·Iout_max·Vout·fsw)L