1. 电源仿真软件选型:从需求倒推工具链
电源仿真这件事,说简单也简单,说复杂也复杂。简单在于,如果你只是验证一个Buck电路的基本波形,随便找个工具都能跑出个像样的结果;复杂在于,当你面对的是LLC谐振变换器、PFC+DC-DC级联系统、或者带数字控制环路的完整电源方案时,工具选错了,后面每一步都是坑。我这些年做电源设计,从最开始的Pspice一路摸到Simplis、Saber、Simulink,踩过的坑比调通的环路还多。这篇文章不打算写成软件说明书,而是想从实际项目出发,聊聊这几个主流工具各自适合什么场景、有哪些让人又爱又恨的细节,以及怎么根据你的需求快速锁定最趁手的那一把。
先给刚入行的朋友一个快速定位:Pspice适合器件级和基础电路验证,Simplis专攻开关电源的闭环小信号和瞬态,Matlab/Simulink强在控制算法和系统级建模,Saber则是多物理场和汽车级应用的常客。这四个工具覆盖了从芯片内部到整车系统的绝大部分电源仿真需求,但每个都有自己的脾气。下面我会逐个拆解,把选型逻辑、实操要点和那些文档里不会写的经验都摊开来讲。
1.1 先搞清楚你要仿什么,再决定用什么
很多人一上来就问“哪个软件最好”,这个问题本身就不对。电源仿真至少可以分成四个层次:器件级(MOSFET开关损耗、二极管反向恢复)、电路级(拓扑验证、稳态波形)、系统级(多模块级联、负载瞬态)、控制级(环路补偿、数字控制算法)。不同层次对工具的要求完全不同。
举个例子,你要看一个GaN HEMT在硬开关下的电压尖峰和振荡频率,那Pspice加上厂商提供的SPICE模型是最直接的路子,因为它的器件模型精度足够,而且模型库最全。但如果你要设计一个LLC的闭环控制,需要扫频得到Bode图,那Simplis的POP分析和AC分析就是杀手锏,Pspice跑这个会慢到让你怀疑人生。再往上,如果你要做整个服务器的电源分配网络仿真,涉及多路输出、均流控制和PMBus通信,那Simulink配合Simscape Electrical才是正解。
所以选型的第一步不是打开软件,而是拿张纸写下三个问题:第一,我的仿真目标是什么?第二,我需要多高的精度?第三,我有多少时间预算?这三个问题的答案基本就能锁定工具范围。下面这张表是我根据实际项目经验整理的快速对照,可以先有个全局印象。
| 工具 | 最擅长场景 | 典型仿真时间 | 学习曲线 | 模型库丰富度 |
|---|---|---|---|---|
| Pspice | 器件级、基础拓扑 | 分钟级 | 中等 | 极丰富 |
| Simplis | 开关电源闭环、小信号 | 秒级到分钟级 | 较陡 | 中等 |
| Simulink | 控制算法、系统级 | 分钟级到小时级 | 较陡 | 丰富(需搭配) |
| Saber | 多物理场、汽车级 | 小时级 | 陡峭 | 丰富(汽车强) |
这张表里的“仿真时间”是指典型项目跑一次瞬态或AC分析的实际耗时,不是软件启动时间。Simplis之所以快,是因为它用了分段线性建模和专有的仿真引擎,对开关电源这种强非线性系统做了大量优化。而Simulink慢是因为它本质上是求解微分方程组,步长小、状态多,跑一个完整的LLC闭环瞬态可能要几十分钟甚至更久。
注意:不要用仿真速度来评判工具优劣。Simplis快是因为它牺牲了部分器件细节,Simulink慢是因为它算得全。选型时永远把“仿真目标”放在第一位。
1.2 四个工具的核心定位与不可替代性
Pspice的不可替代性在于它的器件模型生态。几乎每一家功率器件厂商——Infineon、ON Semi、Vishay、Wolfspeed——都会提供Pspice模型,而且很多是加密的、经过验证的。你要做SiC MOSFET的损耗分析,没有厂商模型基本就是瞎猜。Pspice的另一个优势是与Cadence Allegro的集成,原理图直接导入PCB,做寄生参数提取后的后仿真非常顺滑。但它的缺点也很明显:收敛性问题多,跑开关电源的闭环仿真慢,而且界面老旧,新手容易被各种报错劝退。
Simplis的不可替代性在于开关电源专用仿真引擎。它的POP(Periodic Operating Point)分析能在几秒内找到开关电源的稳态工作点,然后基于这个稳态点做AC扫频,得到精确的环路Bode图。这个能力在Pspice里几乎无法实现,因为Pspice需要你先跑很长时间的瞬态才能进入稳态,然后再叠加小信号扰动,效率极低。Simplis还支持多级拓扑的层次化建模,比如PFC+LLC+同步整流的三级架构,可以逐级验证再联调。缺点是模型库相对少,很多器件需要自己建行为级模型,而且对非开关电源类的电路支持一般。
Matlab/Simulink的不可替代性在于控制算法开发和系统级集成。如果你要做数字电源的环路设计,比如用DSP实现3P3Z补偿器,Simulink可以直接把控制算法模型生成C代码,下载到目标板验证。Simulink还支持硬件在环(HIL)仿真,配合TI的C2000系列或Microchip的dsPIC,可以在真实控制器上跑虚拟被控对象。另外,Simulink的Simscape Electrical库提供了丰富的电气元件模型,从理想开关到带寄生参数的变压器都有。缺点是纯电路仿真效率低,而且模型精度高度依赖参数设置,新手容易把理想模型当成真实结果。
Saber的不可替代性在于多物理场耦合和汽车级应用。Saber最早是Analogy公司开发的,后来被Synopsys收购,在汽车电子领域有深厚积累。它支持电-热-机械耦合仿真,比如IGBT的结温变化对开关特性的影响,或者电机驱动器的电磁-热联合仿真。Saber的MAST语言建模能力很强,可以自定义复杂的行为模型。但它的学习曲线最陡,价格也最贵,一般只有大型车企和Tier 1供应商在用。如果你不做汽车级或航空航天级的多物理场仿真,Saber可能不是最优选择。
2. Pspice实操:从安装到收敛性调优
Pspice的安装本身没什么好说的,但版本选择有讲究。目前主流的是Cadence OrCAD Pspice和Cadence Allegro Pspice Designer,前者是OrCAD套件的一部分,后者是独立版本。如果你只是做电路仿真,OrCAD Pspice就够了;如果你要和PCB设计联动,那就选Allegro版本。网上流传的“pspice安装教程”大多针对OrCAD 17.4或17.2,这两个版本比较稳定,17.4对Win11的支持更好。安装时注意不要勾选License Server,除非你在公司网络环境下有浮动许可证,否则单机安装选“Standalone”模式最省事。
2.1 新建工程与器件模型导入
新建Pspice工程后,第一件事是配置模型库路径。Pspice自带了一些基础库,比如analog.olb、source.olb、breakout.olb,但功率器件模型需要自己导入。以Infineon的IPP60R099P7为例,去官网下载.lib文件和.olb符号文件,然后在Pspice的Model Libraries设置里添加.lib路径,在Place Part里添加.olb路径。这里有个坑:有些厂商只提供.lib不提供.olb,这时候你需要用Pspice的Model Editor工具把.lib转成.olb,或者手动创建一个符号。
手动创建符号的步骤不复杂但容易出错。打开Model Editor,新建一个.olb,然后Model > Import选择.lib文件,软件会自动解析出模型名称和引脚。但自动生成的符号引脚顺序经常和实际器件不一致,需要手动调整。我一般会对照数据手册的引脚定义,在符号编辑器里重新排列引脚,并标注清楚G、D、S。这一步偷懒的话,后面仿真波形不对都找不到原因。
提示:导入模型后,一定要用
Model Editor的Test功能跑一下模型的直流特性,确认阈值电压和导通电阻和手册一致。我遇到过厂商模型里Rdson写错一个数量级的情况,直接导致损耗计算全错。
2.2 瞬态仿真设置与收敛性调优
Pspice的瞬态仿真设置里,最大步长和相对误差是两个关键参数。默认情况下,Pspice会自动选择步长,但对于开关电源这种有快速跳变的电路,自动步长经常太大,导致波形失真或者不收敛。我的经验是:最大步长设为开关周期的1/100到1/200。比如你的开关频率是100kHz,周期10us,那最大步长设50ns到100ns比较合适。相对误差RELTOL默认是0.001,可以放宽到0.01来加速仿真,但会牺牲精度。如果做损耗分析,建议保持0.001。
收敛性问题几乎是每个Pspice用户都会遇到的。常见的报错有“Timestep too small”、“Convergence problem in DC analysis”、“Singular matrix”等。解决思路分几步:第一,检查电路有没有悬空节点,特别是MOSFET的驱动引脚,如果驱动信号没接,节点浮空会导致矩阵奇异。第二,给关键节点加初始条件,比如在输出电容上设.IC V(out)=0,帮助求解器找到起点。第三,调整仿真选项,在Simulation Settings > Options里把ITL1(直流迭代次数)从100调到500,ITL4(瞬态迭代次数)从10调到100。第四,给非线性器件加并联电阻,比如在二极管两端并一个1Meg的电阻,避免完全断路。
我整理了一个收敛性问题的速查表,基本都是实际项目中反复验证过的:
| 报错信息 | 可能原因 | 解决方法 |
|---|---|---|
| Timestep too small | 开关跳变太陡 | 减小最大步长,加RC缓冲 |
| Convergence problem in DC | 初始工作点找不到 | 加.IC初始条件,调ITL1 |
| Singular matrix | 节点悬空或环路 | 检查悬空节点,加大电阻 |
| Internal timestep too small | 模型不连续 | 换模型或加平滑处理 |
还有一个容易被忽略的点:Pspice的.options语句可以写在原理图里,比如.options RELTOL=0.01 ITL1=500,这样不用每次在GUI里改。对于经常跑的仿真,我习惯把常用选项写在一个.inc文件里,用.include调用,省事又不容易忘。
2.3 用Pspice做器件损耗分析的实操细节
器件损耗分析是Pspice的强项,但要做准需要几个步骤。以MOSFET的开关损耗为例,你需要同时测量漏极电流和漏源电压,然后用ID(Vds)或Vds*Id的积分来算能量。Pspice的Probe窗口里可以直接写表达式,比如W(M1)会自动计算MOSFET的瞬时功率,然后AVG(W(M1))得到平均功率。但这里有个陷阱:Probe的积分默认从仿真开始算起,如果前几个周期还没进入稳态,算出来的平均损耗会偏大。解决办法是在Probe里设置积分区间,比如AVG(W(M1), 1m, 2m)表示从1ms到2ms的平均值,确保只算稳态段。
另一个细节是驱动电阻对损耗的影响。Pspice可以很方便地做参数扫描,比如把Rg设为变量,用.step param Rg list 1 5 10 20跑多个值,然后对比开关损耗。我实测下来,Rg从10欧降到5欧,开关损耗能降20%左右,但电压尖峰会明显增大。这个权衡在Pspice里一目了然,比在示波器上反复换电阻高效得多。
注意:Pspice的器件模型温度默认是27°C,如果要做高温下的损耗分析,需要在模型里设置
TEMP参数,或者用.temp语句扫描温度。很多厂商模型只提供了25°C的参数,高温特性需要自己根据数据手册调整。
3. Simplis:开关电源闭环仿真的利器
Simplis在开关电源圈子里的地位,有点像摄影圈里的徕卡——贵、小众、但用过就回不去。它的核心优势是POP分析和AC分析的组合拳。POP分析能在几秒内找到开关电源的周期性稳态工作点,不管你的电路有多复杂,只要拓扑是周期性的,POP都能收敛。找到稳态点后,AC分析会在稳态点附近做小信号线性化,直接给出环路的幅频和相频特性。这个流程在Pspice里需要跑几十毫秒的瞬态才能进入稳态,然后还要用平均模型或者注入扰动来扫频,效率差了一个数量级。
3.1 Simplis的安装与版本选择
Simplis目前主流版本是8.4和8.5,网上搜“simetrix simplis 8.4安装包”的人很多,但要注意Simplis和SIMetrix是同一个软件的两个模式。SIMetrix是通用电路仿真模式,Simplis是开关电源专用模式。安装时先装SIMetrix,再装Simplis,因为Simplis是作为SIMetrix的一个模块运行的。8.4版本对Win10兼容性最好,8.5在Win11上更稳定。安装过程中会提示选择License类型,个人学习用选“Free”模式即可,但Free模式有节点数限制(好像是30个节点),做复杂电路需要申请评估License。
安装完成后,第一次打开Simplis建议先跑一下自带的例子,比如LLC Resonant Converter或者Buck Converter with Peak Current Mode Control。这些例子在Examples > Simplis目录下,能帮你快速熟悉POP和AC分析的设置流程。我见过不少人装完软件就自己画电路,结果POP不收敛,折腾半天其实是设置问题。
3.2 POP分析与AC扫频的实操步骤
POP分析的设置界面在Simulator > POP里,关键参数是周期数和收敛容差。周期数一般设3到5个开关周期就够了,容差默认1e-3可以放宽到1e-2来加速。POP分析成功后,Simplis会显示一个“POP converged”的提示,然后你就可以跑AC分析了。AC分析的设置里,扫描范围一般从10Hz到1MHz,点数设100到200个对数点。Simplis会自动在稳态点附近注入小信号扰动,然后计算传递函数。
这里有个关键细节:AC分析的结果是开环还是闭环,取决于你的注入点。如果你想看环路增益,需要在反馈回路里插入一个“AC Break”元件,Simplis会自动在这个点注入扰动并计算Vout/Vin的比值。这个操作在Simplis里叫“AC Analysis with Break”,比Pspice里手动加扰动源方便得多。我一般会在误差放大器的输出和PWM比较器的输入之间插入Break,这样得到的Bode图直接就是环路增益。
提示:POP分析不收敛时,先检查电路有没有直流路径。比如变压器的副边如果只接了电容,没有直流回路,POP会找不到工作点。解决办法是在副边加一个很小的负载电阻(比如1k),给直流电流一个通路。
3.3 Simplis中Multi-Level MOSFET Driver的使用
“simplis中multi-level mosfet driver如何使用”是很多人搜的问题,这个元件在Simplis的Simplis > Power > Gate Driver库里。Multi-Level Driver的作用是驱动高侧和低侧MOSFET,并自动处理死区时间。它的引脚定义是:IN是输入信号,OUT_H和OUT_L分别驱动高侧和低侧,DT是死区时间设置引脚。使用时需要注意死区时间的单位是秒,比如设100ns就填100e-9。另外,这个Driver的输出是理想电压源,没有驱动电阻,如果需要模拟真实驱动器的输出阻抗,要在输出端串联一个电阻。
我实际用下来的经验是:Multi-Level Driver适合做拓扑验证,不适合做驱动损耗分析。因为它的输出是理想的,没有考虑驱动器的供电电流和开关损耗。如果你要分析驱动器的功耗,还是得用分立元件搭一个真实的驱动电路,或者用厂商提供的驱动器模型。
3.4 Simplis仿真实例:LLC半桥闭环控制
LLC半桥是Simplis最典型的应用场景。一个完整的LLC闭环仿真需要包含:半桥功率级、谐振网络、变压器、同步整流、输出电容、采样网络、误差放大器、压控振荡器(VCO)。Simplis里可以用VCO元件来实现频率调制,把误差放大器的输出映射到开关频率。POP分析会自动找到稳态频率,然后AC分析给出环路Bode图。
我跑过一个400W的LLC例子,参数是:输入400V,输出12V/33A,谐振频率100kHz,变压器匝比10:1。POP分析在3个周期内收敛,AC分析显示穿越频率8kHz,相位裕度65度。这个结果和实际测试的偏差在5%以内,说明Simplis的模型精度足够。但要注意:Simplis的变压器模型是理想的,没有漏感和励磁电感,实际电路中漏感会影响谐振频率,需要在模型里额外添加。
4. Matlab/Simulink:从控制算法到系统级集成
Matlab和Simulink在电源仿真里的角色,更像是一个系统集成平台而不是单纯的电路仿真工具。它的强项在于控制算法开发、系统级建模和代码生成。如果你做的是数字电源,比如用C2000 DSP实现PFC+LLC的控制,Simulink可以让你在图形化环境里搭好控制逻辑,然后自动生成C代码,直接下载到DSP里跑。这个流程比手写C代码快得多,而且不容易出错。
4.1 Matlab安装与工具箱选择
“matlab安装步骤”是热搜词,但很多人装完才发现工具箱不够用。做电源仿真至少需要这几个工具箱:Simulink、Simscape、Simscape Electrical、Control System Toolbox、Signal Processing Toolbox。如果要做代码生成,还需要Embedded Coder和TI C2000 Support Package。安装时建议选“Custom”模式,只勾选需要的工具箱,否则完整安装会占用50GB以上的硬盘空间。
Matlab的版本选择也有讲究。R2021b到R2023a这几个版本对Simscape Electrical的支持最好,R2023b之后有些元件模型改了接口,老模型可能不兼容。如果你要用C2000的HIL仿真,建议用R2022b,这个版本的TI支持包最稳定。安装完成后,先跑一下simulink命令,确认Simulink能正常启动,然后跑ver命令查看已安装的工具箱列表。
注意:Matlab的License是按工具箱授权的,如果你用的是学校或公司的网络License,可能没有某些工具箱的权限。安装前先确认License里包含哪些工具箱,避免装完发现用不了。
4.2 Simulink模型整理与S-Function自建库
“怎么整理simulink模型”是很多人头疼的问题。Simulink模型一旦复杂起来,信号线满天飞,找个模块要半天。我的经验是分层建模+信号命名规范。顶层模型只放主要的功率级和控制级,每个子模块用Subsystem封装,信号线用Signal Name标注清楚。比如Vout_sense、PWM_H、PWM_L,这样一看就知道是什么信号。另外,用Library功能把常用模块封装成库,比如把PFC的控制逻辑做成一个库,下次直接拖出来用,不用重新搭。
“simulink s-function自建库”是进阶操作。S-Function允许你用C或C++写自定义模块,然后编译成MEX文件在Simulink里调用。做电源仿真时,S-Function常用于实现数字控制器的定点算法或者复杂的非线性模型。写S-Function的步骤是:先写mdlInitializeSizes定义输入输出端口,再写mdlOutputs实现输出逻辑,最后用mex命令编译。编译成功后,在Simulink里用S-Function模块调用即可。我一般会把S-Function的源码和编译脚本放在一个文件夹里,用addpath添加到Matlab路径,方便管理。
4.3 Simulink模型引用与代码生成
“simulink模型引用”是指在一个模型里引用另一个模型,类似于编程里的函数调用。做电源仿真时,模型引用可以让你把功率级和控制级分开开发,最后集成在一起。比如你有一个LLC的功率级模型,另一个同事在做控制算法,你们可以各自开发,然后用Model Reference模块把两个模型连起来。模型引用的好处是支持增量编译,修改一个模型不需要重新编译整个系统,仿真速度更快。
“simulink模型 c代码生成”是数字电源开发的核心流程。以C2000为例,你需要安装Embedded Coder Support Package for TI C2000,然后在Simulink里配置Hardware Implementation为TI C2000,选择具体的芯片型号(比如F280049)。配置完成后,用Build Model命令生成C代码,代码会自动包含main.c、ISR和PWM配置。生成的代码可以直接导入CCS(Code Composer Studio)编译下载。我实测下来,一个3P3Z补偿器的Simulink模型生成的代码,和手写C代码的执行效率差不多,但开发时间从几天缩短到几小时。
提示:代码生成前一定要做定点化仿真。Simulink默认是浮点运算,但C2000的DSP是定点芯片,直接生成代码会导致精度问题。用
Fixed-Point Designer工具箱把控制算法转成定点,然后跑仿真对比浮点和定点的结果,确认误差在可接受范围内再生成代码。
4.4 Simulink在LLC和四旋翼仿真中的应用
“llc半桥 simulink实例”和“四旋翼仿真 滑模控制 simulink”是两个典型的Simulink应用场景。LLC的Simulink模型一般用Simscape Electrical搭建功率级,用Stateflow实现频率调制和死区逻辑。Simscape Electrical的MOSFET模块可以设置导通电阻和开关损耗,比理想开关更接近真实。但Simscape的仿真速度比Simplis慢很多,一个完整的LLC瞬态仿真可能要跑几分钟到十几分钟。
四旋翼的滑模控制是另一个方向。Simulink里可以用Aerospace Blockset搭建四旋翼的动力学模型,然后用Sliding Mode Control模块实现滑模控制器。滑模控制的核心是切换函数和趋近律,Simulink可以很方便地调整这两个参数,观察对系统响应的影响。我做过一个四旋翼的滑模控制仿真,和PID对比,滑模的鲁棒性明显更好,但抖振问题需要额外处理,比如用边界层法或者高阶滑模。
5. Saber:多物理场与汽车级仿真的重器
Saber在电源仿真圈子里属于“高冷”型工具,用的人不多,但在汽车和航空航天领域是标配。它的核心优势是多物理场耦合和MAST语言建模。比如你要做IGBT模块的电-热联合仿真,Saber可以同时求解电路方程和热网络方程,得到结温随开关损耗变化的动态曲线。这个能力在Pspice和Simplis里很难实现,因为它们只做电路仿真,热模型需要额外耦合。
5.1 Saber的建模思路与MAST语言入门
Saber的建模思路和SPICE完全不同。SPICE用网表描述电路,Saber用MAST语言描述元件的行为。MAST是一种硬件描述语言,类似于Verilog-AMS,可以描述模拟和数字混合系统。比如一个MOSFET的MAST模型,你需要定义electrical端口、parameter参数和equation方程。MAST的优点是灵活,你可以把热效应、老化效应甚至电磁干扰都写进模型里。缺点是学习曲线陡,写一个完整的MAST模型需要几天时间。
我建议新手先从Saber自带的模型库开始,比如Saber > Models > Power里有大量的功率器件模型。这些模型都是MAST写的,你可以打开看看源码,学习MAST的语法。然后尝试修改参数,比如把MOSFET的Rdson改成变量,观察对仿真结果的影响。熟悉之后,再尝试自己写一个简单的MAST模型,比如一个带温度系数的电阻。
5.2 Saber在汽车电源系统中的应用
汽车电源系统的仿真需求很特殊:宽温度范围、高可靠性、多电压域。比如一个48V轻混系统的DC-DC,输入电压可能在36V到52V之间波动,温度从-40°C到125°C,还要考虑负载突降和冷启动。Saber的电-热耦合能力在这里非常关键,因为温度变化会显著影响MOSFET的导通电阻和开关损耗,进而影响效率。
我参与过一个48V到12V的Buck-Boost项目,用Saber做了全温度范围的效率扫描。仿真结果显示,在-40°C时效率比25°C低3%,主要原因是MOSFET的导通电阻在低温下反而增大(因为载流子迁移率降低)。这个结果在Pspice里也能做,但需要手动设置温度扫描,而且热网络要自己搭。Saber的优势是热网络和电路网络自动耦合,你只需要在模型里设置热阻和热容,Saber会自动求解结温。
注意:Saber的仿真速度比Pspice慢很多,一个完整的汽车级仿真可能要跑几个小时。建议先用Simplis或Pspice做快速验证,确认拓扑和控制没问题后,再用Saber做精细的多物理场分析。
6. 工具链协同与常见问题排查
实际项目中,很少只用一种工具。我的习惯是Simplis做拓扑和环路验证,Pspice做器件损耗和应力分析,Simulink做控制算法开发和代码生成,Saber做最终的多物理场验证。这个流程看起来繁琐,但每一步都有明确的目的,避免在错误的工具上浪费时间。
6.1 工具之间的模型迁移与数据交换
工具之间的模型迁移是个麻烦事。Simplis的模型不能直接导入Pspice,因为两者的网表格式不同。我的做法是在Simplis里验证拓扑和控制,然后把关键参数(电感、电容、开关频率)手动输入到Pspice里重建电路。虽然费时,但能确保每个工具都用自己最擅长的模型。Simulink和Pspice之间可以用SLPS接口做联合仿真,Simulink负责控制算法,Pspice负责功率级,两者通过共享内存交换数据。这个接口配置起来比较麻烦,但做数字电源的HIL仿真时非常有用。
6.2 常见仿真问题速查表
| 问题现象 | 可能工具 | 排查思路 | 解决方法 |
|---|---|---|---|
| 波形振荡异常 | Pspice | 步长太大或模型不连续 | 减小步长,加缓冲电路 |
| POP不收敛 | Simplis | 直流路径缺失 | 加负载电阻,检查初始条件 |
| AC分析结果异常 | Simplis | 注入点不对 | 检查Break元件位置 |
| 代码生成报错 | Simulink | 定点化未完成 | 用Fixed-Point Designer转换 |
| 仿真速度极慢 | Saber | 热网络太复杂 | 简化热模型,减少节点 |
6.3 我的实操心得与避坑建议
最后分享几个踩坑换来的经验。第一,不要迷信仿真结果。仿真再准也是模型,实际电路中的寄生参数、器件离散性和PCB布局影响很大。我一般会用仿真做趋势判断,比如“增大Rg会降低开关损耗但增大电压尖峰”,然后实际测试验证具体数值。第二,模型版本要统一。Pspice的模型库更新频繁,不同版本的模型参数可能不同。我习惯在项目文件夹里备份一份模型库,避免换电脑后模型对不上。第三,仿真日志要保存。每次仿真的设置、参数和结果都截图保存,后面写报告或者排查问题时能省很多时间。
Simplis的POP分析有个隐藏技巧:如果电路有多个稳态点,POP可能会收敛到非期望的点。比如LLC在轻载时可能进入打嗝模式,POP会找到这个稳态点而不是连续模式。解决办法是先用瞬态仿真跑到期望的工作模式,然后用POP的“Initial Condition”功能从瞬态结果启动。这个技巧在Simplis的文档里没写,是我在实际项目中试出来的。
Matlab的代码生成也有个坑:Simulink的PWM模块生成的代码默认是中心对齐模式,但有些DSP的PWM模块只支持边沿对齐。如果直接生成代码,PWM波形会不对。解决办法是在Simulink里把PWM模块的Counter Mode改成Up-Down,或者在生成的代码里手动修改PWM配置寄存器。这个细节在TI的支持包里没有明确说明,我调试了一天才找到原因。
电源仿真这件事,工具只是手段,核心还是对电路的理解。你把拓扑原理、控制理论和器件特性搞清楚了,用什么工具都能得到合理的结果。反过来,如果对电路本身一知半解,再好的工具也只能给你一堆好看的波形,实际调试时照样抓瞎。我见过太多人花大量时间折腾软件设置,却不愿意花半小时推导一下传递函数。工具是帮你验证想法的,不是替你思考的。选一个顺手的,深入用下去,比每个都浅尝辄止强得多。