ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

电力电子仿真工具选型与PSIM实战:从Buck电路到环路设计

电力电子仿真工具选型与PSIM实战:从Buck电路到环路设计 做电力电子研发的人手里最好常备两套仿真工具一套做精细器件级验证一套做快速系统级方案评估。电路仿真软件PSIM属于后者里我用得最顺手的一个。它不是万能的但在开关电源、电机驱动、数字电源控制这些方向上它能把整个项目节奏拉快不少。这篇文章不打算给你讲一遍菜单说明而是把我这几年用PSIM做过的方案、踩过的坑、以及真正能提高效率的工作流完整梳理出来。无论你是刚开始接触仿真的在校学生还是正拿SPICE硬磕大电流变换器的工程师应该都能找到可以直接照搬的东西。很多人第一次打开PSIM会觉得界面太简单了甚至有点“简陋”。但简单恰恰是它的武器没有复杂的器件物理模型参数没有令人头疼的收敛设置元件放上去连好线设置一下步长就能跑。它专门为电力电子电路服务所以很多东西是“按需出现”的不需要你做无关的事。不过我还是要先说一句PSIM不能替代一切仿真它更适合快速验证拓扑、设计闭环、评估参数以及做数字控制算法验证你要是想精确计算某颗MOSFET的开关损耗还是得回到SPICE类工具去。1. 为什么电力电子仿真会选PSIM而不是通用SPICE软件1.1 PSIM解决的是哪一类问题我刚入行时仿真全用LTspice当时觉得这东西精度高、模型全电力电子也应该够用。后来做了一台全桥LLC仿真模型跑一次瞬态要半个多小时遇到负载突变还要重新跑效率低到让人怀疑人生。更痛苦的是SPICE对开关过程非常敏感器件模型参数稍微设置不合理仿真就会不收敛报错信息却非常简单排查半天都不知道问题出在哪。PSIM解决的就是这一类系统级快速验证问题。它的核心定位是功率变换电路包括AC-DC、DC-DC、DC-AC、电机驱动等。它不需要你从半导体物理层面去描述一个MOSFET而是把开关管抽象成一个理想受控开关再叠加导通压降、导通电阻、寄生电容这些工程参数。这样仿真速度会提升几十倍甚至上百倍而且收敛性非常好。你在PSIM里连续跑几十毫秒的开关电源瞬态它可以在几秒到几十秒内完成这在SPICE体系里几乎是不可想象的。从应用场景看PSIM更适合以下工作一是验证新型拓扑的可行性比如多电平变换器、准Z源变换器二是设计电压环和电流环做PID参数整定和稳定性判断三是评估数字控制算法包括PWM死区补偿、占空比限幅、状态机逻辑四是做三相逆变器带电机负载的整机仿真。这几个场景里PSIM的表现都相当扎实。1.2 速度快并不是玄学而是仿真策略不同我知道很多人会疑惑PSIM真能比SPICE快那么多它是不是牺牲了精度要回答这个问题得看它背后的仿真引擎怎么工作。SPICE类工具每个开关周期都会把功率器件当作一个连续的非线性器件去解微分方程MOSFET的栅极电容、体二极管反向恢复、动态导通电阻这些物理特性全部参与计算。一旦开关频率上到几十千赫兹仿真步长就压到纳秒量级跑几十毫秒的瞬态迭代次数是个天文数字。PSIM不一样。它在功率器件部分采用分段线性的等效模型开关管在导通时近似为一个小电阻关断时近似为一个大电阻中间的过渡过程用很简单的梯形近似处理。控制部分则直接使用传递函数、PID模块、逻辑门和PWM发生器这些模块天然适合离散化快速计算。所以PSIM可以在维持开关行为特征的前提下用更大的步长去推进计算速度自然就上来了。我实测过同一个Buck电路输入48V输出12V开关频率100kHz仿真时间5毫秒。PSIM固定步长50纳秒几乎瞬间跑完LTspice在同一台电脑上要跑几分钟。这中间当然有空闲等待的时间也有迭代次数差一个量级的原因。你如果只做几微秒的死区时间和开关过程观测确实用不上PSIM但一旦涉及连续多毫秒的动态响应它的优势立刻体现。1.3 PSIM在研发流程里的位置我自己把电源项目的研发流程粗略分成六步需求定义与拓扑选择、主回路参数估算、闭环控制设计、数字控制算法验证、PCB实现与调试、实测波形复盘。PSIM主要在第2到第4步发挥作用但它的可扩展性让它也能向第5和第6步延伸。举个例子做数字电源时你需要在DSP里写PID、写PWM配置、写保护逻辑。这些代码如果直接写到硬件上调试一旦出问题排查成本很高。用PSIM的SimCoder功能可以在原理图里把数字控制部分直接用数字模块画出来仿真验证没问题后一键生成C代码烧进MCU或DSP里。这样一来算法验证和固件编写之间有了一条相对平滑的通道而不是两个独立的环节。此外PSIM支持与MATLAB/Simulink协同仿真。功率主电路放在PSIM里控制策略放在Simulink里两边按固定步长交换数据。如果你团队里有人擅长Simulink搭建控制模型又不愿意在PSIM里重新建模这个结合方式很实用。2. 上手PSIM之前先把这几块核心功能弄明白2.1 元件库和原理图编辑器的组织逻辑PSIM的元件库按功能分为几个大类刚上手时建议花十分钟把每个大类扫一眼这会让你之后省时间。Power库里有电压源、电流源、电阻、电感、电容、二极管、开关管、晶闸管、变压器、理想变压器、各种电机负载模型。Control库里有数学运算模块、传递函数模块、PID控制器、比较器、逻辑门、触发器、三角波发生器、PWM调制模块。Digital库则是给数字控制用的包含D触发器和计数器、数字比较器、事件发生器、DSP接口模块等。原理图编辑器的操作逻辑和大多数电路设计软件不同。它没有大量下拉菜单而是依赖鼠标右键弹出快捷菜单实现翻转、旋转、复制和参数修改。我见过很多新手习惯性地用快捷键CtrlC、CtrlV复制元件结果发现版本兼容性不同复制行为不一致建议直接用右键菜单的Duplicate命令可以带连线属性一起复制效率高很多。另一个需要提醒的是元件参数输入。在PSIM里双击元件会弹出参数面板里面对单位很讲究。电阻填“30u”会默认按微亨感应的上下文不同而不同建议养成写完整单位的习惯比如“30uH”“470uF”“50ns”。虽然软件一般能自动判断但一旦填错单位就容易出现莫名其妙的波形。2.2 仿真控制与波形浏览器PSIM的仿真设置里最核心的是仿真类型、仿真总时间、时间步长。仿真类型常见为瞬态仿真对应我们要看动态波形的场景还有交流小信号扫描用于环路分析外加参数扫描用于批量改变元件值。默认情况下用瞬态仿真即可。时间步长这个参数非常重要。PSIM推荐使用固定步长也就是整个仿真过程中始终采用你设定的时间间隔推进。很多人会下意识把步长设得很小以为越小越准实际上没有必要只会白白增加计算量。经验取值是开关周期的百分之一到五百分之一。比如100kHz的开关频率周期10微秒步长设在20纳秒到100纳秒之间就完全足够。设成5纳秒也不是不行但仿真时间可能拉长几倍结果肉眼几乎看不出差别。仿真完成后结果会进入SIMVIEW波形查看器。它支持多曲线显示、坐标轴缩放、FFT频谱分析、平均值计算、纹波测量等功能。我最常用的操作是“显示某段区间的平均值与峰峰值”选中启动稳定之后的波形段软件直接读出数值很方便不用自己拿标尺一格一格量。2.3 SimCoder从仿真原理图到嵌入式代码SimCoder是PSIM区别于多数电路仿真软件的特色功能。它能把原理图中的数字控制模块直接转换成C代码并针对不同的嵌入式平台生成不同风格的工程文件。比如TI的C2000系列DSP是数字电源领域最常用的控制器PSIM官方支持从原理图生成C2000工程包含PWM初始化、ADC采样、PID运算和故障保护逻辑。这个流程的本质是你用图形化方式把算法逻辑画出来软件再去生成代码。它的好处是保证“仿真验证的算法”和“实际上机的算法”一致。因为很多项目里仿真模型和手写代码之间可能存在差异比如PID的离散化方式、饱和处理、抗积分饱和逻辑没有对上结果仿真稳定上机却振荡。SimCoder这个工具解决的问题正是这类真实世界中的一致性难题。我建议还没用过这个功能的人即使不做代码生成也先在原理图里熟悉一下数字模块的用法因为数字控制模块能模拟DSP内部的时序和采样延迟这比用连续时间模拟环路更接近实际数字控制效果。3. 实操用PSIM完整仿真一个48V转12V的Buck变换器3.1 指标与器件参数计算我们直接进入一个完整的例子。目标需求输入直流48V输出直流12V最大负载电流10A开关频率100kHz输出纹波目标小于50mV。先做理论计算。CCM模式下占空比D一般近似等于Vout/Vin12除以48等于0.25也就是导通时间占整个开关周期的四分之一。电感电流纹波取负载电流的30%即3A。电感量计算公式L (Vin - Vout) × D / (ΔIL × fsw)代入数字(48 - 12) × 0.25 / (3 × 100000) 36 × 0.25 / 300000 0.00003H也就是30μH。输出电容根据纹波要求估算C ≈ ΔIL / (8 × fsw × ΔVout)代入数字3 / (8 × 100000 × 0.05) 3 / 40000 0.000075F也就是75μF。实际工程中还要考虑电容ESR引起的纹波单纯75μF并不一定够。假设ESR为10mΩESR纹波为ΔIL × ESR 3 × 0.01 0.03V即30mV加上充放电纹波总纹波约35mV满足50mV目标。所以我选择470μF电容ESR设置为10mΩ留足裕量。最终参数汇总如下表参数数值说明输入电压48V直流源输出电压12V目标值负载电阻1.2Ω对应10A输出电流开关频率100kHzPWM载波占空比约0.25CCM理论值电感30μH纹波电流约3A电容470μFESR10mΩ输出纹波约35mV参考电压5V用于误差放大反馈分压R17kΩR25kΩVfb5V3.2 主电路与闭环控制搭建步骤打开PSIM后我按下面的顺序搭电路这个顺序是我验证过的“少出错”顺序建议新手照做。第一步放主电路元件。从Power库中依次放置直流电压源Vin48V、功率MOSFET、二极管、电感L30μH、电容C470μF点击进入参数面板设置电容值和ESR值、负载电阻R1.2Ω。第二步确定MOSFET模型。PSIM的开关管模型有很多选择新手先用最简单的理想开关模型只设置导通电阻和关断电阻不需要设置寄生电容参数。等后续需要精确研究开关过程再换用带寄生参数的器件模型。理想开关模型跑得快也容易收敛适合做环路验证。第三步连线。注意从Vin正极出发接到MOSFET漏极源极接电感一端电感另一端接到输出节点同时在此节点接二极管阴极二极管阳极接地电容并联在输出节点与地之间负载也接在输出节点与地之间。整个回路逻辑必须和实际Buck拓扑一致这点画完先自查一遍。第四步搭闭环控制。在Control库中放置PWM调制模块设置载波频率为100kHz载波峰值设置为5V让输出PWM高电平为15V、低电平为0V确保能驱动开关管模型。误差放大器可以采用PSIM控制库中的PID模块我用一个Type II补偿器传递函数可以设成Gc(s) 100 × (1 s / (2π × 20k)) / (s × (1 s / (2π × 100k)))这个补偿器在低频提供高增益消除稳态误差20kHz的中频零点提供相位提升100kHz的高频极点抑制开关噪声。在PID模块里可以直接输入这组零极点参数也可以展开成多项式形式。注意事项PID模块的输出限幅要设置成0到5V和三角波幅值匹配否则占空比可能超过实际PWM允许范围。第五步接入反馈分压。用两个电阻R17kΩ和R25kΩ串联R1上端接输出R2下端接地中点接误差放大器反相输入端。参考电压Vref5V接同相输入端。这样当输出为12V时反馈电压正好5V误差为零。3.3 仿真参数设置与运行搭完原理图双击仿真控制图标设置仿真总时间。先跑5毫秒也就是500个开关周期这样可以看到从零启动到稳定的完整过程。时间步长设为50纳秒这大约是开关周期的二百分之一精度足够。固定步长模式下这个配置对PSIM来说压力不大几秒内就能算完。运行之后SIMVIEW窗口会弹出。如果看不到波形检查是否在原理图上放了电压探针和电流探针。PSIM的探针不是画完图自动存在的必须手动从库中放置点击要测量的节点设置探针名称比如Vout、IL、Iin。然后重新仿真SIMVIEW里才会有对应曲线。我用这套参数跑完后的典型结果大致是这样的输出电压在启动初期有微量过冲大约在不到1毫秒时间内稳定在12V左右电感电流在0到3A纹波之间线性变化平均值约10A输出电压纹波峰峰值大约30到40mV和理论估算接近。如果你看到电感电流已经降到0并保持一段时间说明电路工作在DCM模式参数可能偏离计算值太多需要重新检查。3.4 画完图别急着跑对照这份检查清单仿真软件不会告诉你原理图连线是否正确它只知道按你给的网表去计算要是模型本身搭错了算得再快也是白算。我现在每搭完一个电路习惯对照下面这份清单自查一遍。第一检查功率回路是否有短路。最常见的问题是把二极管方向放反或者把电容正负极接反。PSIM对电容极性不敏感但方向错了会直接影响拓扑。第二检查控制信号是否连接到正确的开关管。MOSFET栅极和PWM输出之间必须直接相连中间不能串进奇怪的模块。第三检查地参考点。PSIM只有一个大地参考如果控制部分的地和功率部分的地不一致波形会全部乱掉。第四检查参考电压是否在PWM比较器工作范围内。如果三角波幅值是0到5V误差放大器输出设成3.3V那占空比最大只能到66%很可能达不到设计值。第五检查步长和总时间是否合理。步长太大纹波完全看不到总时间太短电路还没进入稳态你看到的过冲不代表正常工作特性。4. 结果分析从稳态波形到环路稳定性的完整读法4.1 稳态波形验证纹波、电感电流和占空比仿真跑完拿到波形先不要闷头看要有顺序地验证三个关键量输出电压平均值、电感电流平均值、实际占空比。输出电压平均值应该约等于12V。如果偏差超过1%优先检查占空比是不是和0.25有明显出入。占空比偏大常见原因是开关管导通压降和二极管压降导致实际输出电压低为了提高输出反馈自然会增加占空比。占空比偏小则要怀疑是不是反馈分压设定错了导致实际目标电压低于12V。电感电流平均值应该约等于10A也就是负载电流。因为Buck是串联电感输出电感电流就是负载电流。PSIM里可以直接选中IL波形查看平均值这个操作比读示波器方便得多。纹波验证要分开看低频和高频。高频纹波主要由开关动作引起频率等于开关频率100kHz幅值受电感和电容影响。如果仿真得到的纹波比理论值大很多第一个怀疑对象是电容ESR很多新手用理想电容忘了设置ESR结果纹波近乎为零实际上并不代表真实电路。反过来如果纹波大得离谱要检查是不是步长太大导致波形采样点不够。4.2 动态响应仿真负载突变怎么设置电路设计不能只看稳态还要看动态。PSIM里做负载突变我推荐用可控电流源来实现而不是直接改电阻值。放置一个电流源与负载电阻并联把电流源设定成阶跃形式初始值为0在2毫秒时刻跳变到5A。这样总负载电流会从10A瞬间变到15A完成一次典型的动态负载冲击。跑完仿真后两条曲线最关键输出电压在突变瞬间的跌落量以及恢复时间。理想情况下电压会先出现一个短暂的下冲随后在闭环控制作用下逐渐回升到12V附近。如果下冲过大说明环路带宽偏低如果出现持续振荡说明相位裕量不足补偿器参数需要调整。动态仿真需要在总时间上设置长一点建议10毫秒以上让外界突变后有足够的时间观察恢复过程。另外突变时间和初始时刻的相位有关有时会带有一个开关周期的延迟这是正常现象不必紧张。4.3 环路增益与相位裕量怎么测出来只看时域波形很难判断环路余量到底够不够。工程上更标准的方法是交流小信号分析直接看环路增益的伯德图。PSIM支持这项工作前提是原理图里已经搭好了完整的闭环和PWM调制器。做法是复制一份原理图在反馈路径上插入一个小信号交流源并在该点前后放置测试探针。然后设置仿真类型为AC Sweep扫描频率范围可以设为100Hz到1MHz采用对数间隔幅值设为1。运行后SIMVIEW会给出该点的开环增益-频率曲线和相位-频率曲线。判断标准很简单看增益曲线穿越0dB时的频率这个频率叫穿越频率也叫带宽。对Buck变换器它一般应远低于开关频率我习惯放在开关频率的1/10到1/6之间。本案例开关频率100kHz穿越频率最好不超过15kHz左右。再看同一频率点的相位如果相位裕量大于45度说明环路稳定性良好如果小于30度动态过程中很容易发生振荡。另一个指标是增益裕量最好大于10dB。如果扫描结果不满足这些指标回去调整补偿器的零极点再重新扫描直到满足要求为止。5. 新手最容易踩的坑与排查技巧实录5.1 仿真结果不对劲先排查这几个常见原因这里我把自己和身边同事遇到过的典型问题整理成一个速查表很多问题看起来是软件出了Bug实际上都是设置问题。现象最常见原因排查方法电压波形一开始有后面突然掉到零负载或控制信号异常环路失稳先断开闭环跑开环看占空比是否正常电感电流持续单调上升占空比过大、电感太小、负载开路检查占空比和负载连接纹波波形呈锯齿状但频率不是开关频率步长太大采样丢失把步长缩小五倍再跑输出电压为0完全没有动态电源没连、开关管G极悬空检查探针位置和PWM波形输出电压精确稳定但严重高于目标反馈分压比设置错误Vfb应为Vout乘以分压比波形周期比预想的小一半仿真时间范围或触发设置不对检查PWM载波频率可能设置成了200kHz与Simulink联仿时数据不同步两个软件的步长不匹配统一为同步步长降采样率除了这张表还有一个非常隐蔽的问题就是元件参数用逗号分隔的小数。某些国家的语言环境里PSIM会把小数点解释成千分位分隔符导致参数放大一千倍。我用过一次32,000这个值结果仿真波形完全乱套。遇到这种情况把参数改成纯英文半角数字比如32000问题就消失了。5.2 几个让我少走弯路的使用习惯第一同样一份电路保存成不同版本再修改。我习惯用v1、v2这样的后缀每次改参数前复制一份。PSIM里没有特别强的版本对比功能手动维护版本是最可靠的。第二给探针起有意义的名称。默认的Probe1、Probe2在波形多的时候会很崩溃我一般是Vout_48to12、IL_buck、Vsw_drain这样带拓扑和节点信息的名称。第三先粗后细。新搭的电路先用大步长加短仿真时间确认波形形态正确后再转换为精细步长跑长仿真这样能避免很多无意义的等待。第四保存仿真配置。PSIM的仿真设置是和原理图一起保存的但也有可能被不同版本覆盖建议把仿真参数记录在原理图旁边比如加一个文本注释写上“步长50ns总时间5ms”这样换电脑或者换版本后能很快恢复设置。6. 工具选型参考PSIM、SPICE、Falstad分别在什么场合用6.1 三种工具的定位差异经常有人问我该学哪款电路仿真软件我的回答永远是先看场景再选工具。PSIM适合电力电子系统级仿真特别是开关电源和电机控制SPICE类工具适合模拟电路、精确器件建模和微小信号分析Falstad则是网页端电路模拟器适合原理演示和教学解析。用一张表来对比更清楚维度PSIMSPICE/LTspiceFalstad仿真速度快适合长时瞬态慢器件级精细快但规模小精度等级系统级中等精度器件级高精度教学级理想化目标电路电力电子、电机驱动模拟电路、信号链RL/RC/二极管等基础电路控制建模强稳定一般很弱代码生成有SimCoder无无上手难度低中高最低典型使用对象电源工程师模拟IC/硬件工程师学生、爱好者这三者不是替代关系而是互补关系。真实项目里我经常先用PSIM把拓扑和控制方案定下来再用LTspice对关键功率器件做损耗和应力分析最后在Falstad里给学生或同事快速演示原理三套工具协同工作效率反而最高。6.2 Falstad的价值没有想象中低但它不替代PSIMFalstad是浏览器里就能打开的电路模拟器界面非常直观元件加进去直接显示电压电流大小和流动方向。它的优点是零安装、即时反馈非常适合做电子技术的入门教学和快速验证拓扑逻辑。很多人觉得它只是个玩具倒也不全是。我见过有工程师在讨论一个新拓扑时先在Falstad里花十分钟把电路画出来确认基本器件连接正确再转到PSIM里做定量仿真这其实是很聪明的做法。但Falstad并不适合作为专业的电力电子工具。它的开关模型过于理想没有MOSFET的导通电阻、开关延迟、寄生电容的概念PWM调制器也不是专业控制模块很难模拟真实环路动态更不用说AC扫描和代码生成。如果用它来做定量设计比如算补偿器参数、评估纹波、验证相位裕量结果会与实际差距很大。所以我的建议是把Falstad当“草稿纸”把PSIM当“工作台”二者分工明确。6.3 我的最终建议我个人现在的做法是纸笔解决原理问题PSIM解决系统方案验证问题LTspice解决关键器件细节问题实测波形作为最终裁判。每一层工具解决一个层面的问题不用一个工具包打天下也不要在错误的层级上浪费太多时间。做电源和电机控制的朋友我建议至少把PSIM的基本操作练熟尤其是闭环搭建和AC扫描这两块这是日常研发里使用频率最高的能力。练熟之后你会发现很多以前需要等一整天才能得到答案的问题现在几分钟就能看到结果这种感觉非常划算。这个内容后续还可以扩展的方向不少比如把Buck改成Boost和反激拓扑来练手试着把PID换成数字补偿器并用SimCoder生成代码烧进开发板再比如用参数扫描功能批量分析电感电容变化对环路稳定性的影响。先把一个基础实例跑通再往周边延伸学习效率会高很多。
返回列表