尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SIMPLIS从零搭建理想BUCK电路:POP分析实战与参数计算

SIMPLIS从零搭建理想BUCK电路:POP分析实战与参数计算 1. 为什么要在SIMPLIS里从零搭一个理想BUCK搞开关电源仿真的人绕不开两个东西一个是平均模型一个是开关模型。很多新手一上来就画完整电路加寄生参数、加驱动、加死区结果跑出来的波形乱七八糟连自己错在哪都找不到。我的习惯是任何拓扑上手之前先在SIMPLIS里搭一个理想版本把稳态工作点、占空比、电感电流纹波这些基础量算清楚、仿明白再往上叠加非理想因素。BUCK电路是所有降压拓扑的祖宗把它吃透了后面同步整流BUCK、多相BUCK、甚至Buck-Boost都是从它身上长出来的。SIMPLIS这个工具跟LTspice、Multisim、Tina-TI最大的区别在于它的分段线性建模思路和POPPeriod Operating Point周期工作点分析能力。LTspice跑开关电源你得等输出电容慢慢充电仿真时间设得短了看不到稳态设得长了跑半天。SIMPLIS的POP分析直接跳过启动瞬态一步到位找到周期性稳态解几秒钟就能给你稳态波形。这个特性对于做环路设计、做参数扫描的人来说效率提升不是一点半点。这篇文章面向的是刚接触SIMPLIS、或者从其他仿真软件转过来的电源工程师和学生。我会从零开始把理想BUCK的搭建、参数计算、POP分析设置、波形验证、常见报错排查全部走一遍。你不需要有SIMPLIS使用经验但最好对BUCK电路的基本工作原理有个概念——知道开关管导通时电感充能、关断时电感释能知道伏秒平衡是什么意思。如果这些还不清楚建议先翻翻《开关电源设计》的前几章再回来看这篇。我用的版本是SIMetrix/SIMPLIS 8.4不同版本界面略有差异但核心操作逻辑一致。下面所有参数和步骤都是我实际跑过的你可以直接抄作业。2. 理想BUCK的电路架构与参数计算2.1 理想BUCK到底理想在哪里所谓理想BUCK就是在搭建时做以下简化开关管用理想开关模型导通电阻为零、无寄生电容二极管用理想二极管零正向压降、零反向恢复电感用理想电感无直流电阻、无寄生电容电容用理想电容无ESR、无ESL驱动信号用理想脉冲源。这样做的目的是把电路的行为完全归结为拓扑本身和占空比、频率、LC参数的关系排除一切干扰因素。有人会问这样仿出来的东西跟实际差那么远有什么意义意义在于你需要先知道正确答案是什么才能判断实际电路里那些偏差是谁造成的。如果理想模型下输出就是5V实际电路输出4.8V你就知道那0.2V是导通损耗和寄生参数吃掉的而不是你的控制逻辑有问题。这是排查问题的基准线。2.2 设计指标先定下来我给自己定的指标是这样的输入电压12V输出电压5V开关频率100kHz满载电流2A电感电流纹波系数取0.3即纹波峰峰值是满载电流的30%输出电压纹波控制在50mV以内。这些数字不是随便拍的12V转5V是经典的Buck应用场景100kHz是中小功率电源的常用频率2A对应10W级别的负载纹波系数0.3是工程上比较稳妥的取值——太小了电感体积大太大了电容应力高。2.3 占空比和电感值的计算过程占空比的计算用伏秒平衡导通期间电感两端电压为Vin - Vout关断期间为-Vout理想二极管无压降。伏秒平衡要求(Vin - Vout) × D × T Vout × (1-D) × T化简得D Vout / Vin 5 / 12 ≈ 0.4167这个0.4167就是理想占空比。实际电路中由于开关管和二极管有压降占空比会略大一些但理想模型下就是这个值。电感值的计算从纹波系数出发。电感电流纹波峰峰值ΔIL (Vin - Vout) × D / (L × fsw)我要求ΔIL 0.3 × 2A 0.6A代入0.6 (12 - 5) × 0.4167 / (L × 100000)解得L 7 × 0.4167 / (0.6 × 100000) 2.9167 / 60000 ≈ 48.6μH取标准值47μH。这里有个经验算出来的电感值不要死板地取最接近的标准值要看看你手头有什么。47μH和48.6μH差3%纹波会从0.6A变成0.62A完全在可接受范围内。2.4 输出电容的选取逻辑输出电容决定了输出电压纹波。理想情况下输出电压纹波主要由电容的充放电造成近似为ΔVout ΔIL / (8 × C × fsw)要求ΔVout ≤ 50mV代入0.05 0.6 / (8 × C × 100000)解得C 0.6 / (8 × 0.05 × 100000) 0.6 / 40000 15μF取22μF留点余量。实际电路中ESR会贡献额外的纹波但理想模型下没有ESR所以22μF绰绰有余。把这些参数整理成表参数符号计算值选取值输入电压Vin12V12V输出电压Vout5V5V开关频率fsw100kHz100kHz占空比D0.41670.4167电感L48.6μH47μH输出电容Cout15μF22μF负载电阻Rload2.5Ω2.5Ω电感纹波ΔIL0.6A0.62A负载电阻按5V/2A 2.5Ω设定。3. 在SIMPLIS中搭建电路与POP分析设置3.1 新建工程与器件选取打开SIMetrix/SIMPLIS 8.4新建一个SIMPLIS工程。注意SIMPLIS和SIMetrix是两种不同的仿真模式新建时要选SIMPLIS否则你找不到POP分析选项。菜单路径是File New SIMPLIS Schematic。器件从库里面调。SIMPLIS的器件库分类比较清晰理想BUCK需要的器件有理想开关在Switches分类下找Switch或者Voltage-Controlled Switch。我用的是电压控制开关因为后面要接脉冲源控制。理想二极管在Diodes分类下找Diode选理想模型。电感在Passive分类下找Inductor。电容在Passive分类下找Capacitor。电阻在Passive分类下找Resistor。脉冲电压源在Sources分类下找Pulse Voltage Source。放置器件的时候有个小技巧用快捷键F3可以旋转器件F4可以镜像。连线用W键走线会自动吸附到引脚上。SIMPLIS的连线不像有些软件那么智能有时候需要手动调整节点位置别嫌麻烦把电路画整齐了后面看波形才不闹心。3.2 电路连接与参数设置电路连接很简单输入电压源正极接开关管漏极开关管源极接电感和二极管阴极的公共节点二极管阳极接地电感另一端接输出电容正极和负载电阻一端输出电容负极和负载电阻另一端接地。脉冲源接开关管栅极参考地接源极。每个器件的参数双击进去设置输入电压源DC值12V。脉冲源初始值0V脉冲值5V延迟0上升时间1ns下降时间1ns脉冲宽度4.167μs周期10μs。脉冲宽度就是D × T 0.4167 × 10μs 4.167μs。电感47μH。电容22μF。负载电阻2.5Ω。开关管阈值电压设2.5V导通电阻设1mΩ不要设0SIMPLIS对0电阻有时会报错关断电阻设1MΩ。二极管正向压降设0V导通电阻设1mΩ。注意SIMPLIS里所有器件的参数都不能设成绝对的0或者无穷大否则求解器会报奇异矩阵错误。用1mΩ代替0用1MΩ代替无穷大这是基本操作。3.3 POP分析的核心设置POP分析是SIMPLIS的杀手锏。设置路径是Simulator POP Analysis。关键参数有这几个分析类型选Periodic Operating Point。开关频率填100kHz或者填周期10μs。迭代次数上限默认50一般够用。如果电路复杂可以加到100。收敛精度默认1e-6我一般保持默认。初始条件选Zero或者User Defined。理想BUCK从零初始条件开始就能收敛不需要特别设置。POP分析的本质是求解一个周期性边界条件问题找到一个状态使得经过一个开关周期后电路状态回到自身。数学上是一个不动点迭代问题。SIMPLIS用的是一种改进的牛顿法配合分段线性模型的解析雅可比矩阵收敛速度很快。设置完POP分析后还要设置瞬态分析来观察波形。瞬态分析设置路径是Simulator Transient Analysis。这里有个关键点瞬态分析的起始时间要设在POP分析完成之后。SIMPLIS会自动把POP分析得到的稳态作为瞬态分析的初始条件所以你看到的波形从一开始就是稳态没有启动过程。瞬态分析参数起始时间0终止时间设5个开关周期即50μs最大步长设10ns。最大步长太大会导致波形失真太小会拖慢仿真速度。10ns对应100kHz的1/1000足够捕捉开关边沿了。3.4 仿真运行与波形查看点运行按钮SIMPLIS会先跑POP分析再跑瞬态分析。状态栏会显示POP分析的迭代过程正常情况下几秒钟就收敛了。如果迭代次数超过20次还没收敛说明电路参数或者连接有问题后面我会讲怎么排查。仿真完成后波形窗口会自动弹出。默认显示的是所有节点电压和支路电流但这样太乱。我习惯手动添加需要的波形电感电流、输出电压、开关节点电压。在波形窗口里点Add Trace选对应的节点。看波形的时候重点看三个东西电感电流是不是三角波、输出电压是不是稳定在5V、开关节点电压是不是方波。如果这三个都对说明电路基本没问题。4. 稳态波形验证与关键参数核对4.1 电感电流波形的解读POP分析跑完后电感电流应该是一个围绕2A上下波动的三角波。我实测的波形是这样的峰值2.31A谷值1.69A峰峰值0.62A平均值2.0A。跟理论计算完全吻合。这里有个细节值得说电感电流的平均值等于负载电流这是由输出电容的安秒平衡决定的。稳态下电容一个周期内充放电电荷相等所以流过电容的平均电流为零负载电流全部由电感提供。如果你仿出来的电感电流平均值不是2A那要么是负载电阻设错了要么是电路连接有问题。电感电流的斜率也值得核对。导通期间斜率是(Vin - Vout)/L (12-5)/47μH 148.9kA/s对应每微秒上升0.149A。导通时间4.167μs上升量0.62A。关断期间斜率是-Vout/L -5/47μH -106.4kA/s每微秒下降0.106A。关断时间5.833μs下降量0.62A。上升和下降量相等这就是伏秒平衡的体现。4.2 输出电压纹波的测量输出电压波形应该是一条近似直线的5V上面叠加着很小的纹波。我实测的纹波峰峰值是42mV比理论计算的50mV还小一点。为什么因为理论公式ΔVout ΔIL/(8fC)是一个近似它假设电容充放电是理想的三角波积分实际上电感电流不是完美的三角波因为开关瞬间有细微的过渡而且POP分析找到的稳态点可能跟理论略有偏差。42mV这个数字在工程上完全可接受。如果你要求更小的纹波把电容加大到47μF纹波会降到20mV左右。但电容越大启动时的冲击电流越大环路响应也越慢这是个权衡。4.3 开关节点电压的检查开关节点电压就是开关管和二极管连接的那个节点。理想情况下开关管导通时该节点电压等于Vin即12V开关管关断时该节点电压等于-Vd即0V理想二极管压降为零。所以波形应该是一个0V到12V的方波占空比41.67%。实测波形跟理论一致。但如果你看到开关节点电压有尖峰或者振铃那说明电路里有寄生参数或者连接电感。理想模型下不应该有这些东西。如果有检查一下是不是连线太长、节点太多或者某个器件参数设得不对。4.4 用POP分析做参数扫描POP分析真正强大的地方在于参数扫描。比如你想看看电感值从33μH到68μH变化时纹波和效率怎么变。在SIMPLIS里可以设置参数扫描让POP分析对每个参数值都求一次稳态解然后自动提取纹波峰峰值、平均值等指标。设置路径是Simulator Parameter Sweep。选电感值作为扫描变量设置起始值33μH终止值68μH步长5μH。扫描指标选Inductor Current的峰峰值和Output Voltage的峰峰值。跑完之后会生成一张曲线图横轴是电感值纵轴是纹波。我跑出来的结果是33μH时电感电流纹波0.88A输出电压纹波60mV47μH时分别是0.62A和42mV68μH时分别是0.43A和29mV。纹波随电感增大而减小但减小的速度越来越慢。从33μH到47μH纹波降了30%从47μH到68μH只降了30%但电感量增加了45%。这就是边际效益递减选电感的时候要算这笔账。5. 常见报错与排查技巧实录5.1 POP分析不收敛怎么办这是新手最常遇到的问题。POP分析报Failed to converge或者迭代次数超限原因通常有这几类第一类是电路连接错误。比如开关管源极没接地、二极管方向接反、电感电容位置放错。这种错误最隐蔽因为电路图看起来是对的但仿真就是跑不通。排查方法是逐个节点检查电压看有没有悬浮节点或者短路节点。第二类是参数设置不合理。比如电感值太小导致电流变化太剧烈或者电容值太小导致电压波动太大POP分析的迭代算法找不到不动点。解决办法是把参数往合理方向调一调先让电路能跑起来再逐步逼近目标值。第三类是脉冲源设置错误。脉冲宽度大于周期、上升时间大于脉冲宽度、周期设成0这些都会导致POP分析失败。检查脉冲源的参数确保脉冲宽度小于周期上升下降时间远小于脉冲宽度。第四类是求解器设置问题。SIMPLIS的POP分析有几个高级选项比如Convergence Mode可以选Robust或者Fast。默认是Fast如果收敛困难可以改成Robust代价是速度慢一些。还有一个Initial Condition选项可以手动指定初始状态有时候能帮助收敛。实操心得遇到不收敛先把开关频率降到10kHz试试。低频下电路行为更平缓POP分析更容易收敛。如果10kHz能收敛说明电路本身没问题是高频下的数值问题可以逐步提高频率找到收敛边界。5.2 波形异常的原因分析仿真跑通了但波形不对这种情况比不收敛更让人头疼因为你需要判断是电路问题还是仿真设置问题。我整理了一个常见波形异常速查表波形现象可能原因排查方法电感电流不是三角波电感值太小或开关频率太低检查L×fsw是否远大于负载电阻输出电压远低于5V占空比设置错误或负载太重核对脉冲宽度和负载电阻输出电压有大幅振荡电容太小或POP未收敛加大电容检查POP收敛状态开关节点电压有尖峰电路中有寄生电感理想模型下不应出现检查连线电感电流有直流偏置初始条件不对重新跑POP分析波形显示不完整瞬态分析时间太短延长瞬态分析时间这个表里的每一条我都实际遇到过。最典型的是电感电流不是三角波新手看到电感电流是一条直线或者乱七八糟的波形就慌了。其实原因很简单如果L×fsw远小于负载电阻电感电流就会进入连续导通模式甚至饱和如果L×fsw远大于负载电阻电感电流就会进入断续导通模式。理想BUCK设计时要保证L×fsw在合适范围内。5.3 仿真速度优化技巧SIMPLIS虽然比SPICE类仿真快很多但设置不当也会跑得很慢。几个提速技巧第一瞬态分析的最大步长不要设得太小。10ns对于100kHz的开关频率已经足够了设成1ns只会让仿真时间增加10倍波形精度提升微乎其微。第二POP分析的迭代次数上限不要设得太大。默认50次如果50次还不收敛加到100次大概率也不收敛问题不在迭代次数上。第三参数扫描时不要扫太多点。33μH到68μH步长5μH是8个点跑一次大概十几秒。如果步长设成1μH就是36个点时间翻四倍多但曲线形状基本一样。第四关掉不需要的波形输出。SIMPLIS默认保存所有节点电压和支路电流数据量很大。在Simulator Save Options里可以只保存你关心的几个信号能显著减小文件体积和加快后处理速度。5.4 从理想模型到实际电路的过渡理想BUCK跑通之后下一步就是逐步加入非理想因素。我的建议是按这个顺序加先加开关管的导通电阻和二极管的正向压降。这两个因素会直接影响占空比和效率。导通电阻设50mΩ二极管压降设0.5V重新跑POP分析你会看到占空比从41.67%增加到44%左右效率从100%降到90%左右。再加电感的直流电阻。设50mΩ效率会再降几个百分点。同时电感电流纹波会略微减小因为串联电阻增加了阻尼。然后加电容的ESR。设10mΩ输出电压纹波会明显增大因为ESR上的压降直接叠加到输出上。ESR造成的纹波是ΔIL × ESR 0.62A × 10mΩ 6.2mV跟电容充放电造成的42mV叠加总纹波约48mV。最后加开关管的寄生电容和电感的寄生电容。这些主要影响开关瞬间的波形会产生尖峰和振铃。理想模型下看不到这些东西但实际电路中它们是EMI的主要来源。每加一个非理想因素都重新跑一次POP分析对比波形变化。这样你就能清楚地知道每个寄生参数对电路性能的贡献是多少设计时就知道该在哪些器件上花成本哪些可以放宽要求。6. 从理想BUCK延伸到闭环控制与拓扑变体6.1 开环到闭环的过渡前面搭的都是开环BUCK占空比固定输出电压随负载变化。实际电源都是闭环的需要反馈控制。在SIMPLIS里做闭环BUCK有两种方式一种是平均模型用压控源和RC网络模拟PWM调制器和误差放大器另一种是开关模型直接用比较器和锯齿波生成PWM信号。我建议先用平均模型验证环路稳定性再用开关模型验证瞬态响应。平均模型跑得快可以快速迭代补偿器参数开关模型跑得慢但能捕捉到平均模型忽略的高频行为。补偿器设计是另一个大话题这里不展开。但有一个经验值得分享SIMPLIS的AC分析可以直接在开关模型上跑不需要像SPICE那样先做平均化处理。这是SIMPLIS的另一个优势——它的小信号分析是基于POP分析得到的稳态点线性化精度比手工平均模型高。6.2 同步整流BUCK的改法把理想BUCK里的二极管换成开关管就是同步整流BUCK。SIMPLIS里操作很简单删掉二极管放一个开关管栅极接互补的脉冲源。注意要设置死区时间防止上下管直通。死区时间设多少一般设50ns到100ns。太短了直通风险大太长了体二极管导通损耗大。理想模型下体二极管压降设0V所以死区时间不影响效率但实际电路中死区时间直接影响效率。同步整流BUCK的POP分析跟理想BUCK一样但收敛可能稍慢一些因为多了一个开关管电路的分段线性模型更复杂。如果收敛困难先把死区时间设大一点比如200ns等收敛了再逐步减小。6.3 多相BUCK的POP分析多相BUCK就是多个BUCK单元并联相位错开。比如两相BUCK两个单元相差180度。SIMPLIS里搭多相BUCKPOP分析的周期要设成开关周期的一半两相或者更短多相。因为多相BUCK的稳态周期是单相开关周期除以相数。多相BUCK的POP分析收敛通常比单相难因为状态变量更多。我的经验是先把各相独立跑通再并联起来跑。并联时如果收敛困难可以把各相的初始条件设成一致或者用User Defined初始条件手动指定。多相BUCK的好处是输出纹波小、动态响应快。两相BUCK的输出纹波理论上只有单相的一半因为两相电流纹波在输出电容上叠加时部分抵消。这个效果在POP分析里能直接看到——两相BUCK的输出电压纹波确实比单相小很多。6.4 从BUCK到其他拓扑的迁移BUCK电路跑通之后Boost、Buck-Boost、Flyback这些拓扑的仿真思路是一样的先搭理想模型算参数跑POP分析验证稳态再加非理想因素。区别在于拓扑结构和参数计算公式不同但SIMPLIS的操作流程完全一致。比如Boost电路理想模型下占空比是1 - Vin/Vout电感电流平均值是输出电流除以(1-D)。POP分析的设置跟BUCK一样只是电路连接不同。如果你能把理想BUCK跑通Boost就是换个连接方式的事。Flyback稍微复杂一些因为涉及变压器。SIMPLIS里有理想变压器模型设置匝比就行。但Flyback的POP分析要注意漏感的影响——理想模型下漏感设0实际电路中漏感会造成电压尖峰需要加RCD吸收电路。这些都是在理想模型跑通之后逐步添加的。我个人在实际操作中的体会是SIMPLIS的POP分析对于开关电源设计来说是一个效率工具但它不能替代你对电路原理的理解。你得知道每个参数为什么这么算每个波形为什么长这样才能判断仿真结果对不对。工具再强也只是工具。我见过太多人仿真跑通了但说不出所以然换个拓扑就抓瞎。把理想BUCK这一套流程走一遍把每个数字的来龙去脉搞清楚比跑一百个仿真都有用。最后分享一个小技巧SIMPLIS的POP分析结果可以导出成CSV文件用Excel或者Python做后处理。比如你可以把不同电感值下的纹波数据导出来拟合一条曲线找到纹波和电感值的定量关系。这个关系在实际设计中很有用——下次遇到类似的指标要求直接套公式就能算出电感值不用每次都跑仿真。
返回列表