
开关电源的LTspice仿真我是从一次翻车的反激调试经历开始的。当时板子都打样回来了结果变压器叫得跟警报一样MOS管尖峰高到吓人最后才发现是RCD吸收参数算错了一倍。那之后我就养成了一个习惯不管多简单的电源先上LTspice把波形和应力摸一遍再画板。LTspice是ADI出的免费SPICE仿真工具对开关电源设计特别友好内置了丰富的功率器件模型仿真收敛性也比很多老牌工具好不少。这篇文章我把这几年用LTspice仿真开关电源的完整经验整理一遍从工具选型、环境配置、Buck实战到反激变压器建模、RCD吸收设计和常见坑位排查尽量做到让你看完就能照着上手。1. 为什么我用LTspice做开关电源仿真1.1 LTspice和别的仿真工具差别在哪做电源仿真市面上的选择其实不少比如PSIM、SIMPLIS、Saber、Multisim还有各家芯片厂商自己的在线仿真工具。但LTspice有个很特别的位置它是免费软件而且背后的模型质量相当高尤其是在ADI原Linear Technology自家电源芯片这一块模型精确度和收敛性都做得很好。很多人对免费工具有偏见总觉得免费的肯定不如付费的。但实际用下来LTspice在开关电源瞬态仿真这个场景里反而是效率最高的选择之一。它的仿真引擎是专门优化过的对含有硬开关动作的电路收敛能力很强很多在Multisim里直接发散跑不动的电路搬到LTspice里稍微处理一下就能收敛。这一点在我最早做Buck仿真的时候体会就特别深。我对比过几个常见工具的使用感受简单整理一下工具费用适合场景上手难度明显短板LTspice免费电源拓扑仿真、芯片应用验证中等波形后处理偏弱PSIM付费控制系统设计、快速算法验证中等器件级仿真精度一般SIMPLIS付费环路稳定性分析较高价格贵学习曲线陡Saber付费复杂系统协同仿真高普通工程师很难用起来Multisim付费低频模拟电路教学低电源大信号瞬态仿真容易崩1.2 仿真之前必须想清楚的一件事我见过不少刚接触LTspice的同事一上来就把整个电源原理图全部画进去期望一次仿真直接看到完整的输出波形和效率曲线。这个做法十有八九会失败一来模型兼容性问题会被无限放大二来仿真时间长得让人怀疑人生三来出了问题根本没法定位。正确做法是分步仿真。先把功率级做开环验证确认电感电流、开关管电压应力、输出纹波都正常再单独搭控制环路用小信号模型验证补偿网络最后才把功率级和控制芯片放到一起做闭环仿真。每一步跑通了再往后走出问题也容易定位是功率级的问题还是控制环路的问题。这个思路说穿了就是模块化验证跟你写代码先写单元测试再集成是一个道理。很多仿真翻车的人本质都是跳过了这个过程直接把一个巨大的系统扔给求解器结果一报错根本不知道从哪里查起。LTspice的报错信息又特别简短经常就一句Time step too small没有经验的人看到这个提示直接头皮发麻。2. 环境搭建和准备工作2.1 下载安装和基本配置LTspice的安装本身没什么难度去ADI官网下载安装包一路Next就装好了。需要注意的一点是LTspice XVII是x86版本新版LTspice有x64版本我在64位系统上实测新版的仿真速度提升明显尤其是在大电感和多绕组变压器这种包含复杂互感结构的电路里所以建议直接装新版本。装完之后第一件事不是画原理图而是做几个基本设置这些设置直接影响后续仿真体验打开Control Panel - Operation把Skip Gmin Stepping勾上有时候能显著加速收敛在Save Default选项卡里勾选Include Open Circuit Voltage和Include Device Currents方便后面直接看器件功耗和电压在Waveform选项卡里把Default Plot Window Style设成White或Black看波形舒服很多安装路径最好不要有中文和空格这个我踩过坑。之前在一台用户名带中文的电脑上装LTspice运行到一半总是报错重装到纯英文目录之后问题才解决。虽然新版已经对中文路径改善了不少但电源仿真文件本身的绝对路径也别带中文因为SPICE命令解析的时候对路径里的特殊字符很敏感。2.2 认识元件库从电阻电容到开关管用过LTspice的人都知道它的元件库结构和传统SPICE不太一样。不是那种点一下元件浏览器翻半天列表的方式而是直接在原理图上放置一个通用符号然后用右键修改属性来指定具体的器件型号或者模型文件。这个设计初看有点简陋但熟悉之后反而觉得很自由。比如放置一个nmos符号右键在Value里填上IRFZ44N再放一个二极管Value里填上SS34LTspice内置的这些模型就会自动关联上。用第三方模型的时候原理图里放一个通用符号Value里写个store文件路径或者.include语句就行。开关电源仿真的核心器件我平时主要用这几类开关管内置的NMOS/PMOS符号配合实际型号或者用硬件描述语言写好的理想开关二极管肖特基二极管模型重点要关注反向恢复特性SR560、SS34这些常用型号LTspice里都有电感磁芯这是开关电源仿真的重点和难点后面专门说电容需要注意ESRLTspice的电容模型本身就带ESR和ESL参数右键点电容可以看到寄生参数设置电容的ESR参数一定要根据实际选型填我之前仿一个Buck的输出纹波按理想电容仿真出来的纹波是5mV实际板子上测出来有30多mV差距主要就来自电容ESR。LTspice里电容的ESR有串联电阻和并联电阻两个参数串阻决定高频纹波并阻主要影响漏电流电源仿真里串阻更重要。2.3 第一个仿真从Buck电路开始新手上手LTspice做电源仿真我强烈建议先搭一个最简单的Buck电路开环跑通全流程不要一上来就搞反激。这个步骤的目的不是学拓扑而是熟悉LTspice的操作节奏和波形分析方法。以一个12V输入、3.3V输出、开关频率200kHz、占空比约27.5%的Buck为例你需要放置这些元件一个电压源设置成12V DC一个NMOS开关型号可以用IRFZ44N一个电感感值33uH到100uH之间一个肖特基二极管低压大电流用B340A或者SS34一个输出电容100uF到470uFESR设成10mΩ左右一个负载电阻根据输出功率计算开环仿真不需要控制器直接用LTspice里的PULSE电压源驱动MOS管的栅极。PULSE参数这样设置Vinitial0VVon10VTdelay0Trise10nTfall10nTon1.375uTperiod5u。这个参数组合对应的就是200kHz频率和27.5%占空比。仿真命令直接放一条.tran 5m startup表示瞬态仿真5ms从零开始建立电源。跑完之后看三个关键波形输出电压V(out)、开关节点SW的电压波形、电感电流。如果一切正常输出应该是从0V爬升到3.3V左右然后稳定开关节点在0V和12V之间方波切换电感电流的纹波则取决于电感量和占空比。电感量的选择有个经验公式在CCM模式下电感纹波电流一般设计在满载电流的20%到40%之间。比如你的负载是1A那纹波电流可以设计在200mA到400mA这样算出来的电感量大概是L Vout * (1-D) * Ts / ΔI其中D是占空比Ts是开关周期。代入12V输入、3.3V输出、200kHz、300mA纹波算出来大约35uH所以33uH到47uH都很合理。开环跑通之后你可以试试改负载电阻、改输入电压观察输出是如何变化的。这个过程中你会发现一个现象占空比固定时输入电压一变输出电压跟着变这就是为什么开关电源必须要有反馈环路。有了这个直观感受再做闭环仿真就理解为什么要引入误差放大器和补偿网络了。3. 反激式开关电源仿真实战3.1 变压器的建模方法反激式开关电源的结构本身不复杂核心就是一个耦合电感也就是我们常说的反激变压器。但仿真反激电源最大的坑就在变压器建模上。我见过太多人直接把变压器等效成两个独立电感结果仿真波形跟实测完全对不上还找不到原因。反激变压器在LTspice里建模有两种常见方式。第一种是用LTspice内置的非线性磁芯模型也就是在原理图里放一个带磁芯的电感符号然后双击打开设置界面填入磁芯截面面积、磁路长度、饱和磁通密度这些参数。这种方式精度高能仿真磁饱和效应但参数设置繁琐而且如果不熟磁路计算填错之后仿真结果反而还不如理想模型。第二种方式是用线性耦合电感模型就是我常用的方式。在LTspice里放置两个电感L1和L2然后用一条SPICE指令把他们耦合起来K1 L1 L2 1。K后面的数字是耦合系数理想情况下取1实际变压器因为存在漏感耦合系数的取值范围通常在0.95到0.995之间。漏感对反激电源的电压尖峰影响非常大所以仿真的时候一定要留出漏感不要偷懒直接设K1。设置好耦合电感之后最关键的是变压器匝比的设定。匝比不是直接填两个电感值的比值就完了而是要根据输入输出参数来设计。以一个典型的反激设计为例输入范围85V到265V交流整流后直流约120V到375V输出12V/2A开关频率65kHz最大占空比0.45。计算变压器的关键参数之前先确定反射电压和最大占空比的关系。反激变换器工作在CCM临界时输入电压和输出电压之间的关系是Vin Vclamp Vout * Np / Ns / Dmax其中Vclamp是钳位电压。实际工程上反射电压Vr Vout * Np / Ns 一般设计在80V到120V之间对650V的MOS管来说还要留出漏感尖峰和余量。假设我们取Vr 100V输出12V二极管压降约0.7V那么匝比Np/Ns 100 / (12 0.7) ≈ 7.9。如果你取初级电感量Lp 1.2mH那么次级电感量Ls Lp / 匝比的平方 ≈ 1.2m / 62 ≈ 19.4uH。在LTspice里就是L1设为1.2mL2设为19.4u再加K1 L1 L2 0.98漏感就隐含在这个0.98的耦合系数里。3.2 RCD吸收电路参数计算反激电源的MOS管关断瞬间漏感中储存的能量无处释放会直接对MOS管的漏源极电容充电产生一个非常高的电压尖峰。为了把尖峰电压钳位在安全范围内工程上最常用的方案就是RCD吸收电路由一个电阻、一个电容和一个快恢复二极管组成跨接在变压器初级绕组两端。RCD的参数计算逻辑是这样的漏感能量公式E 0.5 * Lleak * Ipeak²其中Ipeak是MOS管关断时的峰值电流Lleak是折算到初级的漏感。这部分能量在每一个开关周期内都要被钳位电阻消耗掉所以钳位电阻的功率至少是Pclamp 0.5 * Lleak * Ipeak² * fsw。如果漏感按初级电感的2%估算也就是Lleak约24uH峰值电流按2A算频率65kHz算出来Pclamp大约是3.1W。实际设计电阻功率要留出两倍以上的余量不然电阻长时间工作会过热失效。钳位电容的取值和钳位电压纹波有关。电容太小钳位电压在每个周期内有明显的充放电波动这个波动会进一步加大MOS管的电压应力。一般取电容值为20nF到100nF之间然后根据实际波形微调。我的习惯是先用47nF起步跑一次仿真看开关节点波形如果尖峰还是压不住就加大电容如果钳位电压纹波太大就减小电容。接入RCD之后LTspice仿真波形上最直观的变化就是MOS管漏源电压的尖峰被限制在了一个平台值。这里有个细节很多人容易忽略RCD的钳位电压不是越低越好。钳位电压设低了意味着RCD电阻消耗的能量变大整机效率下降。反射电压Vr是100V时钳位电压设到1.3到1.5倍的Vr是比较合理的平衡点也就是130V到150V左右加上输入高压375VMOS管的电压应力在500V到525V对650V的管子来说还有125V以上的余量这才是合适的设计。3.3 控制芯片模型的导入做反激电源仿真控制芯片是关键。LTspice自带了一些开关电源控制芯片模型比如LT1241/LT1243这类和UC3842/UC3843引脚兼容的电流模式PWM控制器可以直接用。但很多时候你用的是国产芯片或者第三方芯片比如OB2273这时候就要自己导入SPICE模型。导入模型的第一步是找到模型文件。芯片厂商官网、代理商的技术资料区、甚至芯片数据手册的下载页面通常会提供SPICE模型的下载链接文件一般是.lib、.sub或者.cir后缀。下载之后把文件复制到LTspice安装目录下的lib\sub文件夹里。这里的sub就是subcircuit子电路的意思LTspice会把里面所有的模型文件自动加载。这是最快的导入方式不需要在原理图里写复杂的.include语句。第二步是在原理图里使用这个模型。在LTspice里放置你需要的芯片引脚布局的符号或者更常见的做法是直接用第三方提供的符号文件.asy后缀。如果没有现成符号最简单的办法是画一个方框符号引脚顺序和模型文件里的SUBCKT定义一致然后右键设置Value为模型名再加上.include语句指向模型文件路径。我实际测试过OB2273这类电荷泵供电的芯片它们的模型通常只包含控制器核心部分外围的启动电阻、VCC电容这些还是需要自己搭。还有一个坑是有些芯片的模型为了保密会对部分参数加密这种模型在LTspice里是不兼容的仿真会直接报错。遇到这种情况我的替代方案是用行为级模型自己搭一个等效的控制器虽然精度差一些但做系统级验证足够了。3.4 环路补偿和整体仿真开环仿真通过之后下一步就是加入反馈环路做闭环仿真。反激电源常用的反馈方式有两种原边反馈和副边反馈副边反馈又分光耦隔离和直接反馈。LTspice里做闭环仿真重点是搭对反馈环路里的误差放大器和补偿网络。我最常用的方案是用LTspice自带的OPamp符号搭一个Type II补偿网络。输出电压通过电阻分压网络采样和参考电压2.5V比较误差信号经过光耦传递到原边。光耦在LTspice里可以用一个电流控制的电流源来等效如果手头有光耦厂商提供的SPICE模型也可以直接用不过很多光耦模型是给信号通信设计的频率特性跟电源环路里用的时候会有差异我更倾向于用简化的等效模型。补偿网络的参数设计可以用经典的交叉频率法。一般把环路交叉频率设置在开关频率的1/10到1/5也就是6.5kHz到13kHz之间。相位裕量至少45度最好能到60度以上。LTspice做这种验证有两种手段一是用.AC小信号分析直接看开环增益和相位曲线但这个方法要求先把功率级等效成线性小信号模型二是直接跑闭环瞬态仿真看负载阶跃时的瞬态响应这更直观也更能暴露问题。跑负载阶跃响应有一个技巧就是用LTspice的PULSE电流源并联在输出端当负载设置成从1A阶跃到2A再跳回来观察输出电压的过冲量和恢复时间。如果过冲太大说明环路带宽不够或者相位裕量偏低如果输出在跳变后出现持续振荡那几乎可以肯定是补偿参数选得太激进。这个过程在LTspice里反复调整补偿电阻和电容的值几分钟就能找到一组不错的参数放到实际板子上调试的时候会省非常多的时间。4. 仿真中常见问题与排查技巧4.1 仿真发散LTspice是免费软件里收敛性做得很不错的但遇到复杂电路依然会报错最常见的就是Time step too small和Numeric error这两种。第一次见到这个报错很多人会以为是软件坏了或者模型不对其实绝大多数情况都是电路自身有问题。我总结的几个高频原因和对应的处理办法电感、电容和理想电压源直接并联没有任何寄生电阻这种理想元件组成的无限Q值谐振回路数学上是不可解的。解决办法是给感性支路串一个小电阻几毫欧级或者给容性支路并一个大电阻。节点悬空没有任何到地的直流通路。反激变压器次级绕组如果没有接负载或者负载电阻忘放了仿真一开始就会报错。解决办法是检查所有节点确保每个节点至少有一条到地的直流路径。初始条件设置不当。很多电源电路上电瞬间电流冲击本来就大如果.IC初始条件给得离谱求解器会无法收敛。建议先用startup选项从零开始跑或者给输出电容设置一个接近最终值的初始电压比如12V输出的电源可以设V(out)12。模型本身有问题。第三方模型如果是从别的SPICE工具移植过来的可能在LTspice里出现兼容性问题。解决办法是检查模型里有没有SIN、PULSE这类波形源语句跟LTspice的语法不兼容的地方通常改一下语法就能解决。如果上述方法都试过还是发散还有一个大招是调整求解器参数。在SPICE指令里加.options Reltol1e-3或者.options Abstol1e-6把相对误差和绝对误差放宽。放宽误差会让波形精度略降但在收敛不了的死局里能跑出一个近似正确的波形比什么都跑不出来要好得多。4.2 开关节点尖峰和振铃很多初次仿真反激电源的朋友都会问一个问题为什么我的MOS管关断波形上有很尖的毛刺而且还有振荡这其实反映了两个问题一是漏感没有加进仿真模型二是缓冲电路参数没调好。如果仿真里用的是纯理想磁芯、耦合系数K1那开关节点是不会有尖峰的。一旦在变压器模型里引入漏感哪怕只是98%耦合系数留下的2%漏感关断瞬间这个漏感就会和MOS管的寄生电容形成LC谐振波形上出现一个明显的电压振铃。所以仿真中看到适当幅度的尖峰其实是好事说明模型建得比较真实这时候调RCD才有意义。但要注意仿真中的尖峰并不完全等同于实际板子上的尖峰。仿真中PCB走线寄生电感、MOS管的封装电感通常没有被建模所以实际板子上的尖峰往往会比仿真结果更高。这里我的经验是仿真中把尖峰压到理论值的1.1倍实际板子上至少会到1.2到1.3倍。做设计的时候要留足余量别卡着器件的极限值设计。关于减少尖峰实际操作上除了调RCD的电阻电容还推荐尝试以下几个方向在栅极驱动回路串一个10Ω左右的小电阻放慢开关管的关断速度这个操作牺牲一点开关损耗但能明显减小dv/dt带来的电压过冲检查RCD二极管的选型反向恢复时间太慢的二极管在关断瞬间相当于短路会把钳位电压拉低导致RCD形同虚设一般要用快恢复管或超快恢复管如果尖峰主要来自PCB布局而不是变压器漏感那仿真里是永远调不好的需要在PCB Layout阶段优化功率回路的环路面积4.3 启动冲击电流每次给开关电源上电的瞬间母线电容和输出电容的充电电流都是很大的这个电流会在输入侧表现为一个极高的浪涌。LTspice仿真里最直观能看到的是变压器初级电流在第一个周期内比稳态周期大出好几倍有些情况下还会触发芯片的内部过流保护导致输出根本起不来。仿真启动冲击电流时有一点必须注意瞬态仿真的起始时间一定要从0开始并且用.tran 10m startup这条命令。startup关键字会让LTspice把所有的电压源从0V开始斜坡上升模拟真实的上电过程。如果你从某个稳态时刻开始仿真电容初始电压是满的启动冲击是看不到的。冲击电流的抑制手段仿真里能验证的主要是两个方向。一是软启动电路控制芯片的SS引脚上有个电容电容越大、启动时间越长、冲击电流越小。二是输入侧的NTC热敏电阻或者启动限流电阻这个在仿真里可以用一个电阻串在输入母线上来等效。把启动过程的初级电流波形拉出来看对比加和不加这两种处理方式的峰值电流你就能非常直观地理解为什么电源设计规范里强调启动冲击电流不能只看稳态设计值。4.4 仿真速度太慢怎么办开关电源仿真跑得慢是常态尤其是反激电源这种工作在65kHz到150kHz的电路要看到稳态波形至少得跑几个毫秒等于几百个开关周期。再加上如果用了自带许多管的控制芯片模型每跑一次仿真等上十几分钟都正常。我的经验是这样的仿真速度慢分两种电路本身规模大、非线性强导致的慢和参数设置不合理导致的慢。前者可以通过降低仿真精度要求来缓解比如把求解器的容差调大一点CLmax关掉最大步长限制让求解器自己决定时间步长。后者就完全是使用习惯问题了我见过有人仿真时把输出电容的ESR设成0结果电路里形成高频谐振求解器被迫用一个极小的时间步长反复迭代仿真速度直接慢了十倍。还有一个提速技巧是分阶段仿真正态先跑开环瞬态验证功率级确定PWM参数没问题后再加入控制芯片模型做闭环仿真。用逐步验证代替一次成型每一步的仿真规模都控制得很小整体时间反而比一个大仿真块快得多。5. 我个人的一些实操习惯和心得做了这么多仿真之后我自己沉淀了一套固定的操作流程这里分享给想要系统学习LTspice开关电源仿真的读者参考第一建一个属于自己的标准元件库。把常用的MOS管、二极管、变压器参数、控制芯片模型整理成标准的符号和库文件放到固定目录用的时候直接调用不要每次仿真都现找模型。仿真这件事模型库的积累就是你的效率资产。第二仿真之前先手算一遍关键参数。很多人直接画电路然后仿真波形跑出来了也不知道对不对。我自己的习惯是先把占空比、感量、峰值电流、反射电压、RCD钳位电压这些关键值用手算或者Excel算出来再拿仿真结果和手算结果对比。两者误差在合理范围内说明模型建得没问题后续优化才有意义。第三仿真噪声不是bug是信息。很多初学者一看到开关波形上的振铃就慌了觉得自己的电路有问题。实际上振铃的频率、幅值、衰减速度都是非常有价值的诊断信息你可以从中反推漏感大小、PCB寄生参数、谐振点位置。仿真里看到的现象先别急着消除想想它告诉你什么。第四仿真结果最终要以实测为准。LTspice仿真再精确也不可能完全复现实际电路的所有寄生参数。仿真结果和实测结果一致性好说明你的模型和设计思路是对的这时候仿真才有真正的预判价值。不要让仿真变成一个自我安慰的工具要把它当成一个和物理世界对话的窗口。关于LTspice入门和开关电源设计我再推荐两个资源方向一是LTspice自带的示例电路安装目录下的examples文件夹里就有不少电源电路实例这个是免费的、最直接的学习资料二是《开关电源设计》第三版这类经典书籍虽然书里不会教你LTspice的操作但里面的公式推导和设计方法恰恰是你在LTspice里建模时需要的底层逻辑。仿真工具解决的是怎么算的问题书本解决的是算得对不对的问题两者缺一不可。还有一个小技巧可以分享每次仿真结束之后把关键的波形截图和参数调整记录整理到一份文档里。这个习惯坚持半年以上你会发现自己在电源调试上的判断力增长得非常快因为很多规律是在对比上一次是什么表现、这一次是什么表现的过程中浮现出来的。这也是我从一个只会照着参考设计抄板子的工程师到能独立完成反激电源从参数设计到环路补偿全过程的原因之一。