
1. 从标题拆解PWM调节DCDC的核心命题1.1 这个标题到底在讲什么“PWM调节DCDC参数计算原理”这个标题乍一看像是电源工程师的日常笔记实际上它覆盖了电力电子领域最核心的一条技术链路用脉冲宽度调制信号去控制直流变换器的输出电压或电流并且在这个过程中如何通过数学计算把关键参数确定下来。说白了就是搞清楚“开关管什么时候开、什么时候关、开多久、关多久”以及“电感电容选多大、反馈环路怎么配”。我做了十多年电源和嵌入式控制见过太多人在这块翻车。有人把Buck电路的占空比公式背得滚瓜烂熟结果一上电输出电压跟理论值差了30%有人用STM32的PWM去驱动DCDC发现轻载时纹波大得离谱还有人调误差放大器调了三天环路就是不收敛。这些问题的根子往往不在“会不会写代码”而在于对参数计算原理的理解不够透彻。这篇文章适合几类人看一是刚入行的电源工程师想系统搞明白PWM和DCDC之间的关系二是嵌入式开发者需要用MCU的PWM外设去控制电源电路三是参加电子设计竞赛的学生比如做过双向DCDC变换器这类题目的朋友。我会从基本原理讲到参数计算再讲到实操中的坑和排查方法尽量让不同基础的人都能拿走有用的东西。1.2 为什么PWM和DCDC总是绑在一起PWM调节DCDC的本质是用时间换电压。开关管在一个周期内导通的时间越长传递到输出的能量就越多输出电压就越高。这个“导通时间占整个周期的比例”就是占空比D。DCDC变换器的核心任务就是通过调节D来维持输出电压稳定不管输入电压怎么变、负载怎么变。为什么不用线性调节因为线性调节的本质是把多余的能量烧掉效率低、发热大。而PWM调节是让开关管工作在饱和区和截止区要么导通压降极小要么完全关断损耗主要来自开关瞬间和导通电阻效率可以做到90%以上。这就是DCDC用PWM而不是用可变电阻的原因。但PWM调节也带来了新问题开关动作会产生纹波、电磁干扰、开关损耗。参数计算的目的就是在效率、纹波、动态响应、成本之间找到平衡点。电感选大了纹波小但动态响应慢电感选小了响应快但纹波大。电容选大了输出平稳但体积大、成本高。这些取舍都需要通过计算来量化。1.3 常见DCDC拓扑与PWM的关系不同的DCDC拓扑PWM的作用方式不同。Buck电路里PWM控制的是高侧开关管的导通时间电感电流在开关周期内上升和下降。Boost电路里PWM控制的是低侧开关管导通时电感储能关断时电感能量通过二极管释放到输出。Buck-Boost则是两者的结合输出电压可以高于或低于输入电压。还有一种叫COT架构的DCDC也就是恒定导通时间架构。它不像传统PWM那样固定频率、调节占空比而是固定导通时间、调节关断时间。COT架构的优点是轻载效率高、瞬态响应快但开关频率会随负载变化EMI滤波设计更麻烦。理解这些差异才能在做参数计算时选对公式。2. 核心参数计算的底层逻辑2.1 基尔霍夫定律在DCDC分析中的角色很多人觉得基尔霍夫定律是大学课本里的东西实际做电源时用不上。这个想法大错特错。基尔霍夫电压定律和电流定律是分析DCDC稳态工作的基础工具。以Buck电路为例当高侧开关管导通时输入电压通过开关管加到电感上电感两端电压等于输入电压减去输出电压。根据基尔霍夫电压定律电感电流的变化率等于电感两端电压除以电感值。当开关管关断时电感电流通过续流二极管或低侧开关管继续流动此时电感两端电压等于负的输出电压。根据基尔霍夫电压定律电感电流下降。稳态时电感电流在一个周期内的上升量等于下降量这就是伏秒平衡原理。从这个平衡关系出发可以推导出Buck电路的占空比公式D等于输出电压除以输入电压。Boost电路的推导类似但结构不同。开关管导通时电感两端电压等于输入电压电感电流上升开关管关断时电感两端电压等于输入电压减去输出电压电感电流下降。稳态时伏秒平衡得到占空比公式D等于1减去输入电压除以输出电压。这些推导过程看起来简单但每一步都依赖基尔霍夫定律。如果连这个都不清楚后面算电感、算电容就是空中楼阁。2.2 电感参数计算从纹波电流反推电感值的选择核心依据是纹波电流。纹波电流太大输出电容上的纹波电压就大EMI也差纹波电流太小电感体积大、成本高动态响应也慢。工程上一般把纹波电流控制在输出电流的20%到40%之间。以Buck电路为例电感电流的上升量等于输入电压减去输出电压乘以导通时间再除以电感值。导通时间等于占空比除以开关频率。把这些关系整理一下可以得到电感值的计算公式L等于输出电压乘以1减去占空比除以纹波电流乘以开关频率。举个例子输入12V输出5V开关频率500kHz输出电流2A纹波电流取30%即0.6A。占空比D等于5除以12约0.417。代入公式L等于5乘以1减0.417除以0.6乘以500000算出来约9.7微亨。实际选型时取标准值10微亨。这里有个容易忽略的点电感的饱和电流必须大于峰值电流。峰值电流等于输出电流加上纹波电流的一半。上例中峰值电流等于2加0.3等于2.3A。如果选的电感饱和电流只有2A满载时电感会饱和电流急剧上升开关管可能烧掉。这个坑我踩过当时用了一个便宜的小体积电感标称3A实际饱和电流只有1.8A上电带载直接炸管。2.3 输出电容计算纹波电压的约束输出电容的作用是滤除电感纹波电流维持输出电压稳定。电容值的选择取决于允许的输出纹波电压。纹波电压主要由电容的容抗和等效串联电阻共同决定。对于陶瓷电容等效串联电阻很小纹波电压主要由电容充放电决定。计算公式是输出电压纹波等于纹波电流除以8乘以开关频率乘以输出电容。反过来如果要求纹波电压不超过某个值可以算出所需的最小电容值。还是上面的例子纹波电流0.6A开关频率500kHz要求纹波电压不超过50mV。代入公式C等于0.6除以8乘以500000乘以0.05算出来约3微法。实际选型时考虑到降额和老化一般取2到3倍余量选10微法或22微法。但如果用的是电解电容或钽电容等效串联电阻不能忽略。纹波电压等于纹波电流乘以等效串联电阻。这时候光加大电容值没用得选低等效串联电阻的型号。我见过一个案例工程师用了一个100微法的电解电容等效串联电阻有0.5欧姆纹波电流0.6A纹波电压直接到了300mV远超预期。换成等效串联电阻只有10毫欧的陶瓷电容后问题立刻解决。2.4 误差放大器与反馈环路参数误差放大器是DCDC控制环路的核心。它的作用是把输出电压的采样值与基准电压比较放大差值去调节PWM的占空比。误差放大器的补偿网络设计直接决定了系统的稳定性和动态响应。常见的补偿类型有Type II和Type III。Type II补偿适用于电流模式控制Type III补偿适用于电压模式控制。补偿网络通常由电阻和电容组成放在误差放大器的输出和反相输入端之间。设计补偿网络时需要知道几个关键参数穿越频率、相位裕度、增益裕度。穿越频率一般取开关频率的十分之一到五分之一。相位裕度一般要求大于45度最好在60度左右。增益裕度一般要求大于10dB。以电流模式Buck为例功率级的直流增益等于采样电阻乘以跨导再乘以负载电阻。补偿网络的零点放在输出电容等效串联电阻形成的零点附近极点放在穿越频率之后。具体计算涉及拉普拉斯变换和波特图这里不展开但核心思路是让环路在穿越频率处的总相移小于180度减去相位裕度。实际调试时我习惯先用仿真软件跑一遍波特图确认相位裕度够不够再上实际电路微调。有一次偷懒没仿真直接按经验值焊了补偿网络结果满载时输出振荡用示波器看波形频率大概几kHz明显是环路不稳定。后来重新计算把零点位置调整了一下问题解决。3. 实操过程与关键环节实现3.1 用STM32的PWM外设驱动DCDC很多嵌入式项目里DCDC的控制不是用专用电源芯片而是用MCU的PWM外设加外部MOS管驱动。这样做的好处是灵活可以随时改控制算法缺点是MCU的PWM分辨率和响应速度可能不够。以STM32为例配置PWM输出需要设置几个关键参数预分频器、自动重装载值、比较值。预分频器和自动重装载值决定了PWM频率。比较值决定了占空比。假设系统时钟72MHz预分频器设为0自动重装载值设为719那么PWM频率等于72MHz除以719加1等于100kHz。比较值设为360占空比就是50%。但这里有个问题STM32的PWM分辨率是16位在100kHz频率下占空比调节精度是1/720约0.14%。对于一般DCDC应用够用但如果要求输出电压精度很高可能不够。这时候可以提高系统时钟或者降低PWM频率。用CubeMX配置PWM时注意选择正确的定时器和通道。比如TIM1的CH1和CH1N可以输出互补PWM适合驱动半桥或全桥。CH1N的用法在CubeMX里需要使能互补输出并设置死区时间。死区时间是为了防止上下管直通一般取几十到几百纳秒具体取决于MOS管的开关速度。3.2 参数计算实例12V转5V/3A的Buck电路下面用一个完整实例把前面的公式串起来。设计目标输入12V输出5V最大输出电流3A开关频率500kHz纹波电流取30%纹波电压不超过50mV。第一步算占空比。D等于5除以12等于0.417。第二步算纹波电流。纹波电流等于3乘以0.3等于0.9A。第三步算电感值。L等于5乘以1减0.417除以0.9乘以500000等于5乘以0.583除以450000等于2.915除以450000约6.48微亨。取标准值6.8微亨。第四步算峰值电流。峰值电流等于3加0.45等于3.45A。电感饱和电流至少取4A以上。第五步算输出电容。C等于0.9除以8乘以500000乘以0.05等于0.9除以200000等于4.5微法。取10微法陶瓷电容等效串联电阻小于5毫欧。第六步选开关管。高侧开关管的耐压至少12V乘以1.5取20V以上。导通电阻要小减少导通损耗。低侧开关管同理。如果用的是同步整流低侧MOS管的导通电阻要更小因为它在大部分时间里导通。第七步选驱动芯片。如果MCU的PWM输出电流不够驱动MOS管栅极需要加栅极驱动芯片。驱动芯片的峰值电流要大于MOS管栅极电荷除以开关时间。3.3 用555定时器产生PWM的经典方案有些低成本应用不用MCU而是用555定时器产生PWM。555的PWM频率和占空比由外部电阻电容决定。频率等于1.44除以R1加2R2乘以C。占空比等于R1加R2除以R1加2R2。但555的占空比调节范围有限最小占空比一般只能到50%以下一点因为充电和放电时间都经过R2。如果要实现更宽的占空比范围可以在输出端加一个反相器或者用两个555分别控制充电和放电。用555驱动DCDC时注意555的输出电流能力有限一般只有200mA驱动MOS管栅极可能不够需要加三极管或专用驱动芯片。另外555的电源电压要稳定否则PWM频率和占空比会漂移。3.4 死区时间与MOS管发热问题半桥或全桥DCDC中上下管的PWM信号必须加死区时间。死区时间太短上下管直通瞬间大电流烧管死区时间太长体二极管导通时间增加损耗加大输出波形畸变。死区时间的计算取决于MOS管的开关时间和驱动电路的延迟。一般取MOS管关断时间加上驱动延迟再留一点余量。比如MOS管关断时间50纳秒驱动延迟30纳秒死区时间取100纳秒左右。MOS管发热是另一个常见问题。发热来源有三个导通损耗、开关损耗、栅极驱动损耗。导通损耗等于电流平方乘以导通电阻乘以占空比。开关损耗等于输入电压乘以电流乘以开关频率乘以开关时间的一半。栅极驱动损耗等于栅极电荷乘以栅极电压乘以开关频率。如果MOS管发热严重先检查驱动波形是否干净上升沿和下降沿是否陡峭。驱动电阻太大开关时间长开关损耗大。驱动电阻太小EMI差可能振荡。一般取几欧姆到几十欧姆具体看MOS管和驱动芯片的匹配。4. 常见问题与排查技巧实录4.1 输出电压偏离理论值的原因排查理论计算输出电压5V实际只有4.2V这种问题很常见。排查思路如下先检查占空比是否达到预期。用示波器看PWM波形测量高电平时间和周期算出实际占空比。如果占空比不对检查MCU的定时器配置或者555的电阻电容值。如果占空比正确但输出电压偏低检查电感和电容是否选型不当。电感直流电阻太大负载电流大时压降大。电容等效串联电阻太大纹波大平均值可能偏低。还要检查续流二极管或低侧MOS管的压降。二极管正向压降一般0.3到0.7V低侧MOS管导通压降等于电流乘以导通电阻。这些压降都会导致输出电压低于理论值。最后检查反馈采样电路。采样电阻的精度、基准电压的精度、误差放大器的失调电压都会影响输出电压。如果用的是MCU的ADC采样还要考虑ADC的参考电压精度和采样噪声。4.2 轻载时纹波大、重载时振荡的解决轻载纹波大通常是因为DCDC进入了跳周期模式或突发模式。很多专用DCDC芯片在轻载时会降低开关频率以提高效率但这会导致纹波增大。如果应用对纹波要求高可以选择强制PWM模式的芯片或者用MCU控制在轻载时也保持固定频率。重载振荡一般是环路不稳定。用示波器看输出电压波形如果振荡频率接近穿越频率说明相位裕度不够。调整补偿网络的零点或极点位置增加相位裕度。如果振荡频率接近开关频率的一半可能是次谐波振荡常见于电流模式控制且占空比大于50%的情况需要加斜坡补偿。4.3 PWM信号受干扰导致MOS管误动作PWM信号线太长或者走线靠近功率回路容易受干扰。干扰会导致MOS管误开通或误关断轻则效率下降重则烧管。解决方法PWM信号线尽量短远离电感和开关节点。必要时用双绞线或屏蔽线。在MOS管栅极加下拉电阻确保信号丢失时MOS管关断。在驱动芯片输入端加RC滤波滤除高频干扰。还有一个常见问题MCU复位时PWM引脚状态不确定可能导致MOS管瞬间导通。解决方法是在PWM引脚加下拉电阻或者在软件初始化时先把引脚设为低电平再配置为PWM输出。4.4 常见问题速查表问题现象可能原因排查方法解决措施输出电压偏低占空比不足、电感直流电阻大、二极管压降大示波器测PWM占空比、万用表测电感电阻调整占空比、换低直流电阻电感、用同步整流轻载纹波大跳周期模式、电容等效串联电阻大示波器看开关波形是否断续换强制PWM芯片、换低等效串联电阻电容重载振荡环路相位裕度不足、次谐波振荡示波器看振荡频率调整补偿网络、加斜坡补偿MOS管发热开关损耗大、导通损耗大、驱动不足测栅极波形、测导通电阻减小驱动电阻、换低导通电阻MOS管、加散热片PWM受干扰走线太长、靠近功率回路示波器看PWM波形是否有毛刺缩短走线、加滤波、加下拉电阻4.5 几个容易忽略的实操心得第一个心得算电感时别忘了电感的直流电阻。直流电阻大了满载时压降明显效率也低。选电感时直流电阻一般要求小于输出电压的1%除以输出电流。比如5V输出、3A电流直流电阻小于5乘以0.01除以3约16毫欧。第二个心得输出电容的等效串联电阻比容值更重要。很多新手只看容值买了个大容值但高等效串联电阻的电容结果纹波压不下去。选电容时先看等效串联电阻再看容值。第三个心得误差放大器的补偿网络不要照搬数据手册。数据手册的推荐值是基于典型应用实际电路的电感、电容、负载都可能不同。最好用仿真软件验证或者用网络分析仪实测波特图。第四个心得用MCU的PWM驱动DCDC时注意PWM分辨率和死区时间的权衡。分辨率高死区时间可以设得细分辨率低死区时间只能设得粗。如果死区时间不够细可能导致上下管直通或体二极管导通时间过长。第五个心得调试时先用电子负载不要直接带实际负载。电子负载可以精确控制电流方便观察不同负载下的波形。带实际负载时负载的感性或容性可能引入额外问题干扰排查。5. 进阶话题COT架构与数字电源5.1 COT架构DCDC的参数特点COT架构的DCDC导通时间固定关断时间由反馈控制。它的优点是瞬态响应快因为负载突变时关断时间可以立即调整不需要等待误差放大器响应。缺点是开关频率不固定轻载时频率降低重载时频率升高。COT架构的参数计算重点在导通时间的选取。导通时间决定了输出电压和输入电压的关系。对于Buck电路输出电压等于输入电压乘以导通时间乘以开关频率。但开关频率是变化的所以导通时间一般按额定输入电压和额定负载来算。COT架构的另一个特点是输出电容的等效串联电阻要求高。因为COT架构的纹波主要靠等效串联电阻产生等效串联电阻太小纹波太小反馈比较器可能无法正常工作。一般要求等效串联电阻产生的纹波在10mV到30mV之间。5.2 数字电源中的PWM调节数字电源用MCU或DSP代替模拟控制器PWM调节通过软件算法实现。优点是灵活可以随时改控制参数可以实现复杂的控制算法比如模型预测控制、自适应控制。缺点是ADC采样和PWM更新有延迟环路带宽受限。数字电源的参数计算除了模拟电源的那些公式还要考虑采样延迟和计算延迟。采样延迟一般是一个开关周期计算延迟取决于MCU的处理速度。这些延迟会降低相位裕度所以数字电源的穿越频率一般比模拟电源低。用STM32做数字电源时可以利用定时器的触发ADC采样在PWM周期中间采样避开开关噪声。ADC采样完成后触发中断在中断里计算新的占空比更新比较值。整个过程要在下一个PWM周期开始前完成否则占空比更新会延迟一个周期。5.3 双向DCDC的PWM控制双向DCDC可以在两个方向传输能量常用于电池充放电、能量回收等场景。双向DCDC的PWM控制需要根据电流方向切换控制策略。正向工作时控制高侧开关管反向工作时控制低侧开关管。双向DCDC的参数计算电感和电容的选取要兼顾两个方向。电感值按最大纹波电流算电容值按最大纹波电压算。死区时间要特别注意因为两个方向的开关管角色会互换死区时间设置不当可能导致直通。电子设计竞赛里常见的双向DCDC题目一般要求实现恒压充电和恒流放电。控制策略可以用电压外环、电流内环的双环控制。电压外环的输出作为电流内环的给定电流内环的输出控制PWM占空比。双环控制的参数整定先整定电流内环再整定电压外环这样稳定性好。6. 从计算到实测的闭环验证6.1 仿真验证LTspice与Simplis参数算完之后不要直接焊板子先用仿真软件验证。LTspice是免费的适合模拟电路仿真。Simplis是专用的电源仿真软件仿真速度快适合开关电源。LTspice仿真Buck电路需要搭建功率级、驱动级、反馈级。功率级包括开关管、电感、电容、负载。驱动级可以用电压源产生PWM信号。反馈级可以用行为模型实现误差放大器和补偿网络。仿真时重点看几个波形输出电压的启动波形、稳态纹波、负载突变时的瞬态响应、电感电流波形。如果仿真发现输出电压振荡先调补偿网络。如果电感电流饱和换大电感或降低负载。Simplis的仿真速度比LTspice快很多适合跑长时间瞬态。Simplis的模型库里有各种DCDC拓扑的模板可以直接调用。但Simplis是收费的学生可以申请试用版。6.2 实测验证示波器与电子负载实测时示波器是最重要的工具。测输出电压纹波要用交流耦合带宽限制到20MHz探头要短接地。测PWM波形要用直流耦合注意探头衰减比。电子负载可以设置恒流、恒压、恒阻、恒功率模式。测DCDC的负载调整率用恒流模式从空载到满载扫一遍记录输出电压变化。测DCDC的线性调整率用可调直流电源从最低输入电压到最高输入电压扫一遍记录输出电压变化。测效率时用功率计同时测输入功率和输出功率。输入功率等于输入电压乘以输入电流输出功率等于输出电压乘以输出电流。效率等于输出功率除以输入功率。注意功率计的带宽要足够否则开关噪声会影响测量精度。6.3 热测试与长期可靠性DCDC工作时的发热要用热像仪或热电偶测量。重点测开关管、电感、续流二极管的温度。开关管的结温一般要求小于125度电感温度一般要求小于100度电容温度一般要求小于85度。长期可靠性测试包括高温老化、低温启动、温度循环、湿度测试。高温老化一般在85度环境下满载运行1000小时。低温启动一般在零下40度环境下启动看能否正常输出。温度循环在零下40度到85度之间循环看焊点是否开裂。这些测试看起来麻烦但电源产品的可靠性就是这样一点点验证出来的。我见过太多实验室里工作正常的电路一到现场就出问题原因就是没有做充分的环境测试。7. 个人经验与踩坑记录7.1 那些年我烧过的MOS管刚开始做DCDC时我烧过的MOS管能装一盒子。最常见的原因是死区时间不够上下管直通。有一次用STM32的互补PWM输出CubeMX里默认死区时间是0我没改上电瞬间两个MOS管同时导通电流直接冲到几十安培MOS管炸开PCB铜皮都烧断了。还有一次是驱动电阻太小MOS管栅极振荡开关波形有尖峰超过了MOS管的耐压栅极击穿。后来把驱动电阻从2欧姆改成10欧姆问题解决。另一个坑是电感饱和。用了一个标称5A的电感实际饱和电流只有3A满载3A时电感已经接近饱和电流波形畸变峰值电流冲到6AMOS管过流烧毁。后来换了一个饱和电流8A的电感问题解决。7.2 误差放大器调试的玄学与科学误差放大器的调试有人说靠玄学其实靠科学。关键是理解波特图。我习惯先用仿真软件跑波特图看穿越频率和相位裕度。如果相位裕度不够先调零点位置再调极点位置。有一次调一个电流模式Buck相位裕度只有30度满载时输出振荡。我把补偿网络的零点从1kHz调到5kHz相位裕度提高到55度振荡消失。后来分析是因为输出电容的等效串联电阻零点在5kHz附近补偿网络的零点要跟它匹配。还有一次调电压模式Buck穿越频率设得太高接近开关频率的五分之一结果开关噪声干扰了反馈输出不稳定。后来把穿越频率降到开关频率的十分之一问题解决。7.3 给新手的几条实在建议第一条先算后焊。参数计算虽然枯燥但能避免很多低级错误。算完再用仿真验证仿真过了再焊板子。第二条示波器是你的好朋友。调试电源没有示波器寸步难行。测波形时注意探头接地接地线太长会引入噪声。第三条不要迷信数据手册的推荐值。数据手册的推荐值是基于典型应用你的应用可能不典型。自己算一遍仿真一遍实测一遍。第四条留余量。电感饱和电流留30%余量电容耐压留50%余量MOS管耐压留50%余量电阻功率留100%余量。余量是可靠性的保障。第五条多记录。每次调试的参数、波形、问题、解决方法都记下来。下次遇到类似问题翻记录比翻书快。这个内容后续还可以这样扩展如果你对数字电源感兴趣可以研究一下用STM32的HRTIM高分辨率定时器做DCDC控制分辨率可以到184皮秒适合高频高效应用。如果你对电磁兼容感兴趣可以研究一下DCDC的EMI滤波设计包括共模电感和差模电感的选择。如果你对拓扑感兴趣可以研究一下四开关Buck-Boost它结合了Buck和Boost的优点适合宽输入电压范围的应用。