免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

同步Buck降压电路从原理到Simulink仿真与实测调试全解析

同步Buck降压电路从原理到Simulink仿真与实测调试全解析 1. 从零吃透同步Buck为什么它成了DC-DC降压的主流方案搞电源设计的人绕不开Buck电路。但如果你还停留在二极管续流的异步Buck阶段那在效率、热设计和动态响应上迟早会撞到天花板。同步Buck用MOSFET替代了续流二极管把导通损耗从“固定压降×电流”变成了“电流平方×导通电阻”这个变化在低电压大电流场景下是质变。我见过太多新手拿着异步Buck的方案去跑5V转1.8V、3A的负载芯片烫得能煎蛋效率只有百分之七十几换成同步Buck后效率直接拉到百分之九十以上温度降了二十多度。这就是为什么现在的DC-DC降压芯片从消费电子到工业控制几乎清一色是同步整流架构。这篇文章面向的是刚接触电源设计的新手或者做过异步Buck但想升级到同步方案的工程师。我会从PWM电压型控制的原理讲起把同步Buck的每个关键环节拆开揉碎包括为什么选电压型而不是电流型、死区时间怎么定、电感电容怎么算、仿真波形怎么看。最后还会给出一套完整的Simulink仿真流程和实测中常见的坑。你不需要有深厚的电力电子背景只要能看懂基本的电路图和MOSFET开关原理就能跟着走下来。提示本文涉及的仿真基于MATLAB/Simulink环境版本建议R2020b及以上需要Simscape Electrical工具箱。没有这个工具箱的话后面的仿真部分可以只看分析思路电路计算部分不受影响。2. 同步Buck的核心架构与控制方式选型2.1 异步Buck和同步Buck到底差在哪先把这个最基本的问题说清楚。异步Buck的拓扑很简单一个高侧开关管通常是MOSFET一个续流二极管一个电感一个输出电容。当高侧管关断时电感电流通过二极管续流二极管的正向压降一般在0.3V到0.7V之间。假设输出电流是3A那二极管上消耗的功率就是0.3V×3A0.9W到0.7V×3A2.1W。这个功耗是实打实的热量而且不随输出电压降低而减小。同步Buck把那个二极管换成了一个低侧MOSFET通常叫同步整流管。当高侧管关断时低侧管导通电感电流通过低侧管的沟道续流。低侧管的导通压降是I×Rds(on)假设Rds(on)是10毫欧3A电流下压降只有30毫伏功耗是3A×3A×0.01Ω0.09W。从0.9W降到0.09W这就是效率提升的核心来源。但同步Buck不是没有代价的。最大的风险是直通——如果高侧管和低侧管同时导通输入电源直接通过两个MOSFET短路到地瞬间大电流会把管子烧掉。所以驱动电路必须保证足够的死区时间让一个管子完全关断后另一个才开通。这个死区时间通常在10纳秒到50纳秒之间太小了容易直通太大了低侧管的体二极管会先导通产生额外的损耗。2.2 PWM电压型控制的工作原理PWM电压型控制是同步Buck最基础也最常用的控制方式。它的核心思路是把输出电压反馈回来和基准电压比较误差放大器输出一个控制信号这个信号和固定频率的锯齿波比较产生占空比可变的PWM波驱动高侧和低侧MOSFET交替导通。为什么叫“电压型”因为反馈环路的被控量是输出电压控制量是占空比。整个环路是一个单环系统结构简单抗噪声能力好。相比之下电流型控制会额外采样电感电流形成双环系统响应更快但设计更复杂。对于新手来说电压型是更好的起点。电压型控制有一个经典的LC双极点问题。功率级的传递函数在谐振频率处有一个双极点相位急剧下降如果不做补偿系统会振荡。所以误差放大器需要设计成带零点的补偿网络通常用Type III补偿器在谐振频率附近放置两个零点来提升相位。这部分我会在后面的补偿设计里详细展开。2.3 为什么选电压型而不是电流型这个问题我被问过很多次。电流型控制确实有优势逐周期限流、输入前馈、相位补偿简单。但它也有明显的缺点需要精确的电流采样电路对噪声敏感占空比大于50%时还需要斜坡补偿。对于新手来说电流采样的布局和噪声处理是很容易翻车的地方。电压型控制虽然环路带宽受限于LC谐振频率但对于大多数DC-DC降压应用来说开关频率在几百kHz到几MHzLC谐振频率通常在几kHz到几十kHz环路带宽做到谐振频率的十分之一到五分之一完全够用。而且电压型控制的抗噪声能力更强因为误差放大器的输出是一个缓慢变化的直流信号不容易被开关噪声干扰。我个人的经验是如果你的应用对瞬态响应要求不是极端苛刻比如负载跳变在50%以内电压型控制完全够用而且调试起来省心得多。如果你需要极快的瞬态响应比如CPU供电那种负载跳变在纳秒级的场景那才需要考虑电流型或者更高级的控制方式。3. 关键参数计算与元器件选型实操3.1 电感选型的三个核心参数电感是Buck电路里最关键的储能元件选型主要看三个参数电感值、饱和电流、直流电阻。电感值决定了纹波电流的大小。公式是L (Vin - Vout) × D / (fsw × ΔIL)。其中D是占空比等于Vout/Vinfsw是开关频率ΔIL是电感纹波电流通常取输出电流的20%到40%。举个例子Vin12VVout3.3VIout5Afsw500kHz。占空比D3.3/120.275。取纹波电流为输出电流的30%即ΔIL1.5A。那么L(12-3.3)×0.275/(500000×1.5)8.7×0.275/7500002.39μH。实际选型取标准值2.2μH或2.7μH。饱和电流必须大于峰值电流。峰值电流等于输出电流加上一半的纹波电流Ipeak50.755.75A。考虑到瞬态和余量饱和电流至少选8A以上。直流电阻直接影响效率。电感的铜损是Iout²×DCR。假设DCR20毫欧5A输出时铜损是25×0.020.5W。这个损耗不小所以DCR越小越好但代价是体积和成本。一般选DCR在10毫欧到30毫欧之间的电感。注意电感值不是越大越好。电感大了纹波电流小输出纹波也小但瞬态响应会变慢因为电感电流的变化率di/dtVL/L变小了。而且大电感的体积和DCR通常也更大。所以这是一个折中。3.2 输出电容的计算与选型输出电容的作用是滤除电感纹波电流维持输出电压稳定。电容值决定了输出纹波电压的大小。公式是Cout ΔIL / (8 × fsw × ΔVout)。其中ΔVout是允许的输出纹波电压。继续上面的例子ΔIL1.5Afsw500kHz假设允许纹波ΔVout33mV输出电压的1%。那么Cout1.5/(8×500000×0.033)1.5/13200011.4μF。实际选型要留余量取22μF或47μF。但光看容值不够还要看等效串联电阻ESR。输出纹波里有一部分是ESR引起的ΔVout_esrΔIL×ESR。如果ESR是5毫欧那ESR纹波就是1.5×0.0057.5mV和容值纹波叠加。所以选电容时要选低ESR的比如陶瓷电容或者聚合物电容。陶瓷电容的ESR很低但容值随直流偏压衰减严重。一个标称22μF的X5R陶瓷电容在12V偏压下可能只剩8μF。所以实际选型时要用偏压后的有效容值来计算或者直接选大一号的。3.3 MOSFET选型的四个关键指标同步Buck需要两个MOSFET高侧管和低侧管。它们的选型侧重点不同。高侧管关注的是栅极电荷Qg和导通电阻Rds(on)。高侧管的损耗包括导通损耗和开关损耗。导通损耗是Iout²×Rds(on)×D开关损耗是0.5×Vin×Iout×(trtf)×fsw。开关损耗和Qg直接相关Qg越大开关越慢损耗越大。所以高侧管要选Qg小、Rds(on)适中的。低侧管关注的是Rds(on)因为它的导通时间是(1-D)导通损耗是Iout²×Rds(on)×(1-D)。低侧管的开关损耗很小因为它在高侧管关断后导通两端电压接近零属于零电压开关。所以低侧管可以选Rds(on)更小但Qg稍大的。具体参数假设Vin12VVout3.3VIout5Afsw500kHz。高侧管选Rds(on)10毫欧Qg10nC。导通损耗25×0.01×0.2750.069W。开关损耗0.5×12×5×(10ns10ns)×5000000.5×12×5×20e-9×5000000.3W。总损耗约0.37W。低侧管选Rds(on)5毫欧导通损耗25×0.005×0.7250.091W。总损耗不到0.1W。提示MOSFET的Rds(on)随温度升高而增大通常 datasheet 标的是25°C的值到100°C时可能增大50%甚至更多。所以计算损耗时要用热态下的Rds(on)或者直接留足够的余量。3.4 死区时间的设定与验证死区时间是同步Buck最关键的时序参数。它的作用是防止高侧管和低侧管同时导通。死区时间太短直通风险大太长低侧管的体二极管导通时间增加损耗上升。体二极管的导通压降通常在0.7V到1V假设死区时间导致体二极管导通20ns开关频率500kHz周期2μs那体二极管导通占空比是1%。5A电流下体二极管损耗是5×0.8×0.010.04W。看起来不大但如果死区时间设到100ns损耗就变成0.2W了。死区时间的设定取决于MOSFET的开关速度和驱动能力。一般来说高侧管的关断时间加上低侧管的开通延迟再留一点余量。实际调试时用示波器看高侧管栅极电压和低侧管栅极电压的交叉点确保在死区期间两个管子都关断。同时看开关节点电压波形如果死区期间电压在-0.7V左右说明体二极管在导通死区时间偏大如果电压直接跳变没有平台说明死区时间合适。我一般先用 datasheet 里的典型值比如20ns然后在实测中微调。如果发现开关节点有振铃可能是死区时间不够导致直通需要加大如果效率偏低可能是死区时间太大需要减小。4. Simulink仿真建模与波形分析全流程4.1 仿真模型的搭建步骤打开MATLAB在命令行输入simulink启动Simulink新建一个Blank Model。从Simscape Electrical工具箱里拖入以下模块DC Voltage Source作为输入电源设置12V。Mosfet需要两个一个高侧一个低侧。Simscape Electrical里的Mosfet模块可以设置Rds(on)、体二极管参数等。Inductor设置2.2μH串联电阻20毫欧。Capacitor设置22μF串联电阻5毫欧。Resistor作为负载设置0.66欧姆对应3.3V/5A。Pulse Generator产生PWM波驱动高侧管。设置周期2μs占空比27.5%。Logical Operator用NOT门产生低侧管的驱动信号同时加入死区时间。Solver Configuration必须加否则Simscape模型无法仿真。Voltage Sensor和Current Sensor测量输出电压和电感电流。Scope显示波形。连接时注意高侧管的漏极接输入电源正极源极接开关节点低侧管的漏极接开关节点源极接地。电感一端接开关节点另一端接输出电容和负载。输出电容和负载并联。PWM驱动部分Pulse Generator输出高侧管驱动信号经过一个NOT门得到低侧管的互补信号。死区时间通过在两个信号上分别加延时实现。Simulink里可以用Transport Delay模块设置延时20ns。仿真参数设置Solver选ode23tb这是Simscape推荐的刚性求解器。仿真时间设1ms最大步长设10ns确保能捕捉到开关细节。4.2 关键波形的解读方法跑完仿真后Scope里会显示几个关键波形。我一般看四个开关节点电压、电感电流、输出电压、高侧管驱动电压。开关节点电压波形正常工作时开关节点在0V和12V之间跳变。高侧管导通时是12V低侧管导通时是0V。死区期间如果低侧管体二极管导通电压会在-0.7V左右。如果看到电压在0V和12V之间有中间平台说明死区时间太大或者驱动有问题。电感电流波形应该是一个三角波平均值等于输出电流5A峰峰值等于纹波电流1.5A。如果电感电流出现负值说明电路进入了DCM断续导通模式这通常发生在轻载时。同步Buck在轻载时可以让电感电流反向这是允许的但效率会降低。如果不想让电流反向需要加零电流检测电路。输出电压波形应该稳定在3.3V纹波在33mV以内。如果输出电压有低频振荡说明环路补偿没做好。如果输出电压有高频尖峰说明输出电容的ESR太大或者布局寄生电感太大。高侧管驱动电压应该是干净的方波上升沿和下降沿陡峭。如果驱动波形有振铃说明驱动电阻太小或者走线电感太大。如果驱动电压达不到MOSFET的完全导通电压说明驱动能力不足。4.3 仿真中的收敛问题与解决技巧Simscape仿真最常见的报错是“Solver failed to converge”。这通常是因为模型里有理想开关或者不连续的元件。解决方法有几个第一给MOSFET加缓冲电路。在高侧管和低侧管的漏源之间各并联一个RC缓冲比如100欧姆和1nF串联。这能吸收开关瞬间的尖峰帮助收敛。第二调整求解器参数。把Relative tolerance从1e-3改成1e-4Absolute tolerance从1e-6改成1e-7。这会增加仿真时间但提高收敛性。第三给电感加一个小的串联电阻比如1毫欧。理想电感在Simscape里会导致电流突变加电阻后电流连续容易收敛。第四把仿真步长设小一点。最大步长从10ns改成5ns虽然慢但稳。我踩过的一个坑是忘了加Solver Configuration模块仿真直接报错说没有求解器配置。这个模块在Simscape里是必须的每个独立的电路网络都要加一个。4.4 从仿真波形反推电路问题仿真不只是看个热闹关键是从波形里读出电路的状态。我举几个典型的例子。如果开关节点电压在死区期间出现大幅振铃频率在几十MHz说明寄生电感和MOSFET输出电容形成了谐振。解决方法是在开关节点加RC吸收电路或者减小走线电感。如果电感电流纹波比计算值大很多说明电感值偏小或者开关频率不对。检查电感设置和PWM周期。如果输出电压在负载跳变时恢复很慢说明环路带宽不够。需要重新设计补偿网络提高穿越频率。如果高侧管驱动电压在导通期间有下降说明驱动电路的内阻太大或者MOSFET的栅极漏电流太大。检查驱动电阻和MOSFET的Qg。5. 补偿网络设计与环路稳定性调试5.1 电压型Buck的环路模型电压型Buck的功率级传递函数从控制到输出是Gvd(s) Vin / (1 s/(Q×ω0) (s/ω0)²)。其中ω01/√(LC)是LC谐振角频率Q是品质因数等于1/(R×√(L/C))加上ESR的影响。以L2.2μHC22μFR0.66Ω为例。ω01/√(2.2e-6×22e-6)1/√(4.84e-11)1/6.96e-6143.7k rad/s对应频率22.9kHz。Q1/(0.66×√(2.2e-6/22e-6))1/(0.66×0.316)4.8。这个双极点在22.9kHz处相位下降180度。如果不补偿系统在22.9kHz处相位只有0度左右闭环会振荡。所以需要在22.9kHz附近放两个零点把相位抬起来。5.2 Type III补偿器的参数计算Type III补偿器有三个极点两个零点。两个零点放在LC谐振频率附近两个极点一个在原点一个在高频处用来滤除开关噪声。具体计算假设穿越频率fc设为开关频率的1/10即50kHz。在fc处功率级的增益是|Gvd(j2πfc)| Vin / |1 j(fc/f0)/Q - (fc/f0)²|。fc/f050/22.92.18。代入得|1 j2.18/4.8 - 4.75| |-3.75 j0.454| 3.78。所以功率级增益是12/3.783.17即10dB。补偿器在fc处需要提供-10dB的增益使总增益为0dB。同时补偿器要提供足够的相位裕度一般目标60度。Type III补偿器的传递函数是Gc(s) (1 s/ωz1)(1 s/ωz2) / (s/ωp0 × (1 s/ωp1)(1 s/ωp2))。零点放在f0附近比如fz1fz222.9kHz。极点fp1放在fc的2到3倍处比如100kHz。fp2放在开关频率的一半250kHz。具体电阻电容值需要根据误差放大器的开环增益和基准电压来算。这部分计算比较繁琐我一般用Excel表格或者MATLAB的sisotool工具来辅助设计。实际调试时先按计算值焊上去然后用网络分析仪或者示波器看负载跳变响应再微调。5.3 相位裕度的实测判断方法没有网络分析仪的情况下怎么判断环路稳不稳定最简单的方法是看负载跳变响应。给负载加一个50%的跳变比如从2.5A跳到5A看输出电压的恢复波形。如果输出电压在跳变后经过两三个振荡周期就稳定下来说明相位裕度在45度到60度之间比较健康。如果振荡持续五六个周期以上说明相位裕度不足需要增大补偿器的零点电容或者减小极点电容。如果输出电压恢复很慢但没有振荡说明相位裕度太大带宽不够需要提高穿越频率。我一般用MOSFET开关来制造负载跳变比如用一个MOSFET串联一个电阻栅极加一个方波信号频率1kHz占空比50%。这样负载就在两个值之间跳变。示波器用交流耦合看输出电压的波动。注意负载跳变测试时要确保负载跳变的上升时间足够快最好在1微秒以内。如果上升时间太慢测出来的瞬态响应会偏乐观。6. 实测中的常见问题与排查技巧6.1 上电就炸管的原因分析同步Buck最怕的就是直通。上电瞬间如果高侧管和低侧管的驱动信号时序不对两个管子同时导通输入电源直接短路电流瞬间上升到几十安培MOSFET在几微秒内就会烧毁。我遇到过几次炸管总结下来原因有几个一是驱动芯片的使能时序不对高侧管先开通了低侧管还没关断二是死区时间设置太小MOSFET的关断延迟比预期长三是驱动电阻太小开关速度太快米勒电容耦合导致误开通。排查方法上电前先用示波器看两个驱动信号的时序确保死区时间足够。上电时用可调电源从0V慢慢往上调同时看输入电流。如果输入电流在某个电压点突然跳升说明有直通立刻断电检查。6.2 效率不达标的优化方向效率是同步Buck的核心指标。如果实测效率比预期低可以从几个方向排查。先看开关损耗。用示波器看开关节点电压和电感电流的交叉点计算开关瞬间的功率损耗。如果开关损耗大说明开关速度太慢需要减小驱动电阻或者换Qg更小的MOSFET。再看导通损耗。用万用表测MOSFET的Rds(on)或者用手摸MOSFET的温度。如果某个管子特别烫说明它的导通损耗大需要换Rds(on)更小的。还要看电感的铜损和磁损。电感的DCR可以用万用表测铜损是Iout²×DCR。磁损和电感材料、开关频率有关一般选铁氧体或者合金粉芯材料。最后看死区时间。如果死区时间太大体二极管导通损耗会增加。用示波器看开关节点电压在死区期间的波形如果有一个-0.7V的平台说明体二极管在导通需要减小死区时间。6.3 输出纹波过大的排查思路输出纹波过大是新手最常遇到的问题。排查时先区分是容值纹波还是ESR纹波。用示波器看输出纹波波形。如果纹波是三角波和电感电流同相说明是容值纹波需要增大输出电容。如果纹波是尖峰和开关沿同步说明是ESR纹波或者寄生电感引起的需要换低ESR电容或者优化布局。布局方面输出电容要尽量靠近负载输入电容要尽量靠近高侧管。开关节点走线要短而粗减少寄生电感。反馈走线要远离开关节点避免噪声耦合。还有一个容易被忽略的点示波器探头的接地线太长会引入额外的电感导致测出来的纹波偏大。正确做法是用探头自带的接地弹簧或者用同轴电缆直接焊接测量。6.4 常见问题速查表问题现象可能原因排查方法解决措施上电炸管直通看驱动时序增大死区时间检查驱动芯片效率偏低开关损耗大看开关交叉波形减小驱动电阻换低Qg MOSFET效率偏低导通损耗大摸MOSFET温度换低Rds(on) MOSFET输出纹波大容值不足看纹波形状增大输出电容输出纹波大ESR太大看纹波尖峰换低ESR电容优化布局输出电压振荡相位裕度不足看负载跳变响应调整补偿网络仿真不收敛理想元件看报错信息加缓冲电路调求解器参数电感电流反向轻载DCM看电感电流波形加零电流检测或允许反向7. 从仿真到实物的过渡经验仿真跑通了不代表实物就能工作。我见过太多仿真波形完美、实物一上电就出问题的案例。最大的差异来自寄生参数。仿真里的走线是理想的实物里的走线有电感有电阻。开关节点的那段走线哪怕只有几毫米寄生电感也有几个纳亨在开关瞬间会产生几十伏的尖峰。所以从仿真到实物第一步是把仿真里的理想元件替换成带寄生参数的模型。电感加串联电阻电容加串联电阻和串联电感MOSFET加输出电容和引线电感。这样仿真波形会更接近实物。第二步是布局。同步Buck的布局核心原则是输入电容和高侧管组成的环路面积最小。这个环路里电流变化率最高环路面积越大辐射的噪声越强开关节点振铃越严重。我一般把输入电容放在高侧管的漏极和低侧管的源极之间距离不超过5毫米。第三步是调试。实物调试时先不焊负载用电子负载或者功率电阻做轻载测试。确认输出电压正常后再逐步加大负载。同时用示波器监控开关节点电压和电感电流一旦发现异常立刻断电。我个人在实际操作中的体会是仿真最大的价值不是预测效率有多高而是帮你理解电路的工作原理和关键波形。实物调试时你脑子里有一个“正常波形应该长什么样”的参照就能快速判断问题出在哪里。所以仿真一定要认真看波形不要只跑个结果就完事。最后分享一个小技巧如果你没有昂贵的网络分析仪可以用信号发生器和示波器配合给环路注入一个小幅度的正弦扰动测量输出响应的幅度和相位从而画出伯德图。具体做法是在反馈分压电阻上串联一个注入电阻信号发生器通过这个电阻注入扫频信号示波器同时测注入点和输出点。这个方法精度不如专业仪器但对于判断相位裕度够不够用已经足够了。
返回列表