ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

半桥LLC谐振变换器LTspice仿真全流程:参数计算、建模与ZVS验证

2026/10/7 18:41:59 拓冰建站 浏览量
半桥LLC谐振变换器LTspice仿真全流程:参数计算、建模与ZVS验证 1. 为什么我坚持先在LTspice里把LLC仿真跑通再考虑画板子很多做电源的朋友对LLC谐振变换器的态度是原理知道个大概参数直接照抄参考设计。等到板子打样回来上电发现效率不对、波形畸形、管子发热才回头翻公式这个过程非常折磨人。我自己也走过这条路所以现在无论做什么拓扑我都会先在LTspice里搭一套可运行的仿真把所有关键参数在软件层面验证一遍。这篇文章就是以半桥LLC谐振变换器为主线完整演示从理论计算到LTspice仿真验证的整个过程。LTspice在电源仿真里的地位不用多吹它是免费的求解速度快收敛性在同类SPICE工具里算得上优秀而且社区资源极其丰富几乎所有功率器件的SPICE模型都能找到。对LLC这类谐振变换器来说仿真还有一个额外的好处谐振参数、死区时间、工作频率这些变量高度耦合靠手算只能得到静态工作点想看清楚开关瞬间的电流电压行为必须借助瞬态仿真。这篇文章的目标读者分三类。第一类是刚接触谐振变换器的学生或者转行做电源的初级工程师你需要把课本上的增益曲线和示波器上的实际波形对起来。第二类是已经在做LLC、但主要依赖芯片厂家的设计工具、没真正搞明白底层模型的工程师这篇文章会带你看到参考设计参数背后的计算逻辑。第三类是已经在用LTspice、但卡在变压器建模、驱动信号生成这些细节上的朋友。如果你只想要一个能跑的仿真文件文章末尾有模型文件包的使用说明。我选择了400V输入、12V/20A输出、额定功率240W这个规格基本覆盖了当下主流适配器和服务器辅助电源的需求谐振频率设为100kHz这是功率密度和磁性元件体积都比较均衡的一个频率点。下面直接进入正题。2. 半桥LLC的工作原理三种工作模态和那条增益曲线必须看明白2.1 谐振槽由什么组成两种谐振频率是怎么来的半桥LLC的功率级可以拆成四块由上下两个开关管组成的半桥、由谐振电感Lr、谐振电容Cr和变压器励磁电感Lm构成的谐振槽、变压器及副边整流电路、输出滤波电容。谐振槽的名字LLC就来自Lr、Lm和Cr三个元件。关键在于这个谐振槽存在两个谐振频率。第一个是Lr和Cr的串联谐振频率fr也就是变换器设计的主谐振频率公式是fr 1/(2π√(Lr·Cr))。第二个是LrLm和Cr共同作用的谐振频率fm公式是fm 1/(2π√((LrLm)·Cr))。这两个频率把工作区域分成了三段变换器在哪个频率段工作决定了它的开关行为和增益特性。这里有个容易混淆的点Lm在电路中的角色是动态的。当副边二极管导通时变压器副边被输出电压钳位Lm两端电压基本恒定此时Lm不参与谐振谐振槽只有Lr和Cr起作用当副边二极管全部关断时副边相当于开路Lm重新参与谐振和Lr、Cr一起谐振。这个参与与不参与的切换正是LLC能实现宽范围调压和软开关的根源。2.2 三种工作模态的电流路径与开关行为差异按照开关频率fs相对fr的关系LLC有三种工作模态。当fs fr时变换器工作在降压区此时副边电流连续Lm始终被输出电压钳位不参与谐振。谐振电流是完整的正弦波开关管在谐振电流过零之后关断关断时电流相对较小但副边二极管是硬关断存在反向恢复问题。当fs fr时这是最理想的工作点变换器增益为1副边电流临界连续。此时原边开关管实现ZVS开通副边二极管实现ZCS关断整个变换器的开关损耗降到最低。设计LLC时通常把额定输入、额定负载这个最主要的工作点放在这个频率附近。当fs fr时变换器工作在升压区。此时副边二极管提前关断存在一段Lm参与谐振的区间谐振电流在死区时间内对开关管输出电容充放电为ZVS创造条件。这个区域能提供更高的电压增益但副边二极管关断时的电流变化率受谐振电流控制实际上也是软关断这是LLC在宽范围输出应用中宝贵的特性。我说句实在话很多资料把这三个模态讲得很玄你只需要记住一件事工作频率偏离fr越远增益偏离1越远但相应地在某些区间会脱离ZVS条件。仿真时最值得观察的就是实际工作频率落在哪个区间以及开关管的开通瞬间是否真的实现了零电压。2.3 增益曲线与工作区域划分LLC的增益特性可以用第一谐波近似FHA来分析。对半桥LLC电压增益M可以近似为M 2n·Vout / Vin其中n是变压器原边到副边的匝比。增益的完整表达式是负载质量和电感比Ln的函数曲线形状是在fm和fr之间增益大于1随着频率降低而升高这是升压区在fr右侧增益小于1随着频率升高而降低这是降压区。在设计时我们有三个关键设计自由度匝比n由输入输出电压决定电感比Ln Lm/Lr决定增益曲线的峰值和ZVS范围品质因数Q决定曲线的陡峭程度。Ln取得越大增益峰值越高但Lm也越大励磁电流变小ZVS的实现条件变差Q取得越大曲线越陡满载时的频率变化范围越小但Q过大会导致工作区域滑入ZCS区失去ZVS特性。这个权衡关系仿真里调参比手算直观得多。3. 参数设计全过程从240W规格一步步推出Lr、Cr、Lm的取值3.1 设计规格与变压器匝比确定我的设计目标是输入电压Vin 400V典型PFC母线电压输出电压Vout 12V输出电流Iout 20A额定功率240W主谐振频率fr 100kHz。第一步确定变压器匝比。在理想情况下当fs fr时LLC增益M 1此时Vout Vin/(2n)。考虑到副边整流二极管的压降实际计算时要把二极管正向压降Vd算进去。这里我用全桥整流每个二极管压降按0.6V估算2n·(Vout Vd) Vin n Vin / (2×(Vout Vd)) 400 / (2×(12 0.6)) ≈ 15.87取整到n 16这是原边到副边的匝比。也就是说原边16匝对应副边1匝。需要注意这个匝比决定了额定工作点落在谐振频率处如果匝比取得不合适额定点会偏离fr导致效率下降。3.2 谐振参数推导Rac、Q和Ln的选择第二步计算等效交流负载电阻Rac。FHA分析里副边整流电路和输出负载折算到原边的等效电阻是Rac 8n²Ro / π²其中Ro Vout/Iout 12V/20A 0.6Ω。代入n 16Rac 8×256×0.6/π² ≈ 124.5Ω第三步选择品质因数Q和电感比Ln。Q的定义是特征阻抗与Rac之比Q √(Lr/Cr) / RacQ的取值直接影响满载时的频率范围和ZVS条件。工程上Q通常取0.3到0.5之间这里我取Q 0.4。Ln Lm/Lr通常取4到6兼顾增益峰值和ZVS能力这里取Ln 5。然后就可以反推谐振元件了。由Q和fr可以算出CrCr 1/(2π·fr·Rac·Q) 1/(2π×100×10³×124.5×0.4) ≈ 31.9nF取标准值33nF。再由fr和Cr计算LrLr 1/((2π·fr)²·Cr) 1/((2π×100×10³)²×33×10⁻⁹) ≈ 76.7μH仿真中我直接取77μH。最后计算LmLm Ln·Lr 5×77 385μH实际电路里取390μH或400μH都很常见仿真模型里我会用400μH后面会解释为什么差几十微亨影响不大。3.3 参数合理性验证与小细节参数算完不能直接开搭要做两轮验证。第一轮验证增益范围最大增益需求发生在最低输入电压和满载时刻对于PFC后级母线输入通常稳定在400V左右所以我们的增益变化范围并不大额定点在M1附近即可。第二轮验证ZVS条件。一个粗略的判据是死区时间内励磁电流能否把开关管的输出电容Coss充放电到所需的电压。要求励磁电流峰值大于2n·Coss·Vin/td其中td是死区时间。以100kHz频率、300ns死区、每管Coss按200pF估算励磁电流需要约0.53A而385μH励磁电感在400V输入下的励磁电流峰值约为Vin/(4·fr·Lm) ≈ 2.6A裕量充足。仿真中我会在开关管上并联电容来模拟Coss验证这个条件。还有一点值得提醒Lr在实际电路中可以全部由变压器的漏感提供也可以全部用独立电感更多时候是两者结合。在仿真模型里使用独立Lr元件更清晰也方便扫参。变压器模型则用理想耦合加励磁电感来建立下一节详细说。4. 在LTspice里搭建电路变压器建模、半桥功率级与驱动信号4.1 变压器模型选择耦合电感加励磁电感LTspice里没有现成的变压器符号但可以用耦合电感对来建模。对LLC的变压器我推荐用漏感为0的理想耦合变压器加上励磁电感谐振电感Lr放在变压器原边外部。这样做的好处是参数直观和设计计算用的模型完全一致。具体做法是放置两个电感L1和L2然后用K语句耦合。L1放在原边作为励磁电感L2放在副边两者通过K1耦合。设定匝比n 16那么L1 Lm 400μH L2 L1 / n² 400μH / 256 ≈ 1.56μH在LTspice原理图中放置两个电感电感值分别设为400μ和1.56μ然后放置一个耦合符号kt打开属性对话框填入K1 L1 L2 1其中最后一个1代表耦合系数。耦合系数为1表示全耦合、零漏感这正是我们需要的理想变压器模型。如果你是初次操作注意耦合符号的命名必须和电感元件的命名一致否则会报unknown schematic syntax之类的错误。如果你想把漏感集成到变压器模型里可以把耦合系数k设置成小于1的值此时原边等效漏感约为(1-k²)·L1。但我不建议在初学阶段这么做因为LLC的Lr通常单独设计用独立电感更灵活扫参数时也更好操作。仿真中用的变压器还需要关注同名端标记耦合电感的同名端要接对这决定了副边输出电压的极性。4.2 半桥功率级与谐振槽接线半桥功率级的连接方式如下输入源V1正极接上管Q1的漏极Q1源极接Q2漏极即半桥中点sw节点Q2源极接地。谐振槽从sw节点引出依次串联Cr、Lr连接到变压器原边的一端变压器原边另一端接回输入源地对于对称半桥是接输入中点在400V单母线输入下接输入地即可。谐振电容Cr取33nF这里有个实际建议在LTspice里这个电容耐压不用设置但你在做实际硬件选型时Cr要承受谐振电流的交流分量和直流偏置电压通常需要选择CBB电容或高频薄膜电容并联组合这个在仿真中体现不出来。功率开关管的选型我建议仿真初期用开关模型而不是真实MOSFET。具体用法是放置一个开关元件SW配合一个控制电压源。开关模型用语句声明.model SW1 SW(Ron10m Roff1Meg Vt4 Vh0.5)Vt是开启阈值Vh是回差电压的一半。当控制电压高于4.5V时开关导通低于3.5V时关断导通电阻10mΩ关断电阻1MΩ。这样做的原因是理想开关没有寄生电容仿真收敛性好、运行速度快适合先验证谐振槽的波形正确性。等基本波形确认无误后再把开关替换成真实MOSFET模型比如LTspice自带的IRFP460并在漏源之间并联100pF到200pF的电容来模拟Coss这样才能真实观察ZVS是否成立。如果你一上来就用真实MOSFET也不是不行只是调收敛性的过程会让人崩溃。4.3 驱动信号PULSE源与死区时间设置LLC的驱动信号是固定50%占空比的方波上下管互补中间插入死区时间。这是谐振变换器和PWM变换器在驱动上最大的区别——LLC靠调节频率来改变增益而不是调节占空比。我用两个PULSE电压源产生驱动信号。设死区时间td 300ns开关周期T 10μs100kHz那么每个开关管导通时间Ton T/2 - td 4.7μs。上管Q1的控制电压源Vg1设为PULSE(0 12 0 20n 20n 4.7u 10u)含义是从0到12V延迟0上升沿20ns下降沿20ns导通脉宽4.7μs周期10μs。下管Q2的控制电压源Vg2设为PULSE(0 12 5u 20n 20n 4.7u 10u)延迟时间设为5μs正好是半个周期之后开启。这样两个控制信号之间有300ns的间隔就是死区。这里有一个LTspice建模的细节必须提醒上管Q1的源极在sw节点不是地所以Vg1的地端不能直接接地而要接到sw节点上。在LTspice里电压源作为独立元件它的负极可以接任意节点所以把Vg1的负极接到sw节点即可正极接Q1栅极。如果你把Vg1接到地仿真仍能运行但栅源电压波形完全错误欺瞒性很强。4.4 输出整流与滤波环节副边整流我采用全桥整流四个二极管用LTspice自带的Schottky模型例如MBR20200CT或者直接用通用二极管模型指定导通压降0.4V左右。在仿真里二极管模型选择对效率数值有影响但对波形形态影响不大。整流输出接滤波电容和负载电阻。滤波电容取470μF为了兼顾高频纹波可以再并联一个1μF的小电容仿真里影响不大。负载电阻就是0.6Ω注意在LTspice里这个电阻的功耗是240W仿真中的数值没有任何问题但你如果在实际硬件里用这个阻值必须用大功率电阻或者电子负载。输出电路接好之后整机原理图的核心部分就完成了。为了后续扫频方便我把开关频率定义成参数freqPULSE源的周期写成{1/freq}后面用.step命令可以自动扫描频率。5. 仿真运行与波形判读启动过程、稳态分析与ZVS验证5.1 瞬态仿真参数设置与启动冲击电流完成原理图后仿真参数设置决定了你能否看到干净的稳态波形。我的建议是.tran 0 5m 0 100n startup解释一下这几个数字总仿真时间5ms意味着从零时刻开始仿真5ms后结束最大步长100ns保证能分辨出100kHz的波形细节startup选项让LTspice在仿真开始时从0V逐步建立输入电压而不是瞬间跳变到400V。这个选项对观察启动冲击电流非常重要。LLC谐振变换器启动时谐振电容从零开始充电会产生一个很大的冲击电流这是谐振变换器的一个固有特性实际硬件里需要软启动电路来限制。仿真中你会看到Lr电流的第一个峰值可能达到稳态的好几倍这是正常现象不是建模错误。如果你想快速跳过启动过程看稳态可以不勾选startup但那样输入电压是阶跃的冲击电流会更夸张。仿真时间5ms听起来不长但LTspice的瞬态求解器在开关变换器上表现很好实际运行可能只需要几秒到几十秒。如果跑得太慢可以把观察窗口缩小到2ms或者适当增大最大步长到200ns但要留意不要因此损失波形细节。5.2 稳态波形的判读先看电流再看电压等到仿真结束我建议你按下面的顺序观察波形这个顺序我在给新人培训时固定使用。第一步看Lr电流波形。稳态下应该是接近标准的正弦波频率等于开关频率。如果Lr电流波形出现明显畸变或者频率不对先检查驱动信号的频率设置是否真的进入了稳态再检查谐振参数是否设置正确。第二步看sw节点电压波形。半桥中点电压应该在0V和400V之间来回翻转上升沿和下降沿有一定斜率这个斜率来自开关管Coss的充放电过程。如果sw电压跳变非常陡峭说明你用的是理想开关模型这个属于正常的模型简化。第三步看输出Vout波形。稳定后应该接近12V纹波峰峰值在几十到几百毫伏之间。如果输出偏离12V太多先检查变压器匝比和输入电压设置再用下一节的增益概念判断当前工作频率落在增益曲线的哪个位置。我通常还会加几个.meas测量命令来量化结果.meas TRAN Vout_avg AVG V(out) FROM 4m TO 5m .meas TRAN Iin_avg AVG I(V1) FROM 4m TO 5m .meas TRAN Iin_rms RMS I(V1) FROM 4m TO 5m .meas TRAN I_primary_rms RMS I(Lr) FROM 4m TO 5m这些测量值可以用来计算输入功率、输出功率和效率避免肉眼估算的误差。5.3 ZVS验证把时间轴拉近看开关瞬间ZVS是LLC的灵魂仿真验证ZVS的方法很简单把时间轴窗口放大到开关瞬间观察Q2下管的Vds波形和Vgs波形。Q2在死区时间内应该先看到Vds从400V下降到0V然后Vgs才上升这就是ZVS开通。如果顺序反了Vgs先上升、Vds还很高说明开关管是在硬开关此时不仅效率下降EMI也会很糟糕。造成这个问题的常见原因有两个开关频率跑到了fr以上太远的区域或者死区时间太短谐振电流还没来得及完成Coss的充放电。为了真实观察ZVS仿真模型里必须在每个开关管漏源之间并联电容模拟Coss。如果你发现死区时间里Vds没有降零尝试增大死区时间从300ns调到400ns或者500ns再看。我会用.step命令扫一组死区时间参数一步到位对比不同死区下的ZVS效果。死区时间也不是越大越好。死区太长会导致谐振电流反向流过体二极管的时间过长增加导通损耗严重时甚至失去ZVS窗口。仿真里你只要观察一点Vds降到零之后等待Vgs上升的时间间隔是否合理就能判断死区是否合适。5.4 用.step命令扫描频率看动态规律LLC的增益随频率变化这是它调压的基本手段。在LTspice里我可以把频率设为参数然后用.step命令自动跑多个频率点.step param freq 80k 120k 5k配合PULSE源中使用{freq}表达式这样一次仿真就能得到9个频率点下的完整波形。把几个代表频率下的输出电压值记录下来或者直接用.meas把平均值提取出来你就能画出增益随频率变化的实际曲线。这里有个经验之谈第一次跑多个频率点仿真时不要用startup选项否则每个频率点都要经历完整的启动过程仿真时间会翻好几倍。可以先让电路在一个频率下跑到稳态然后利用LTspice的冷启动传递技巧但初学者直接跑慢一点也能接受。6. 仿真中的高频坑与排查经验收敛性、变压器模型与死区6.1 不收敛与时间步长问题LTspice的收敛性虽然好但LLC这类谐振电路在启动瞬间的冲击电流极大容易触发时间步长过小导致的仿真卡死。如果你遇到仿真进度条长时间不动或者报time step too small错误通常有三个解决方法。第一个方法是改求解器。在Simulate菜单里选择控制面板把求解器从默认的Modified Trap改成Alternate很多收敛问题会直接消失。第二个方法是在仿真命令里加上.options abstol1e-10 reltol0.003放宽一些绝对和相对误差容限代价是精度略微下降但在工程误差范围内完全可接受。第三个方法是在谐振电容或开关管上并联一个很小的阻尼电阻比如1MΩ或者给谐振电感串联一个很低的电阻比如10mΩ这能让求解器更容易收敛。这些附加的寄生参数在实际电路里本来就存在不算作弊。6.2 变压器模型参数错误导致的隐性故障变压器模型是LTspice仿真LLC时最容易埋雷的地方。我见过最典型的错误是把L1直接设成Lr然后抱怨波形完全不对。记住在原边串有独立Lr的模型中变压器原边电感L1表示的是励磁电感Lm不是Lr或者LmLr。另一个隐蔽问题是耦合系数。如果你用K1 L1 L2 1表示理想耦合那么副边电感必须满足L2 L1/n²的关系。如果L2偏大或偏小等效匝比就变了输出就不对。有一个快速验证方法不接谐振电容直接把变压器原边加一个交流小信号源看副边输出电压是否符合匝比关系。还有一个细节是电感元件的串联电阻。LTspice里的电感默认没有串联电阻但在实际变压器中原副边绕组电阻损耗不可忽视。仿真模型的精度取决于你的目的验证波形和ZVS机制默认设置够了估算效率就需要给Lr和变压器绕组合理添加串联电阻。6.3 死区时间设置不合理导致ZVS失效或异常死区时间的设置在LLC仿真里非常敏感而且失效方式很有迷惑性。死区时间过短时谐振电流还没完成对Coss的放电上管的Vds还没降到零驱动就来了表现就是硬开通但波形上看不出特别明显的异常只有通过放大开关瞬间才能发现。死区时间过长时谐振电流已经完成了Coss的充放电然后继续在反并联二极管里续流这本身不算问题但如果死区太长接近半个周期电路就会进入异常工作状态波形形态完全改变。我个人习惯把死区时间设成谐振周期的2%到4%作为起点也就是100kHz的谐振频率对应200ns到400ns的死区然后通过.step扫描对比把ZVS窗口和导通损耗的平衡找出来。仿真里对比几组参数是免费的这正是它的价值所在。6.4 启动冲击电流别误判为器件故障第一次运行时看到Lr电流的冲击峰值可能是稳态值的4到5倍很多人以为模型错了。实际上这是LLC的固有特性谐振电容初始电压为零上电瞬间输入电压全部加在Lr和Cr上电流必然冲得很高。如果你想观察稳态性能建议把启动过程的时间缩短。方法是在.tran命令里仍然用startup但把输入源V1的上升时间设置成一个合理值比如1ms这样冲击电流的大小可控电路也能快速进入稳态。真正做硬件时要配合芯片的软启动功能这个以后可以单独写一篇。7. 模型文件包说明及后续能玩的方向模型文件包里的内容我按元件和层级组织好了解压后包含完整的.asc原理图文件、仿真设置截图说明、以及各个子电路的模型文件。打开方式很简单LTspice菜单File→Open选择.asc文件即可。如果你的LTspice版本比较老可能需要更新到17.x以上新版本对耦合电感和开关模型的兼容性更好。打开原理图后你会看到一个参数占位符区域所有设计参数集中在图纸空白处的.param语句里包括输入电压、开关频率、Lr、Cr、Lm、匝比、死区时间等。修改任何参数重新运行仿真就能得到对应的工作状态。我在每个参数旁边都加了注释说明这个参数在理论计算中对应哪个公式方便你改参数时对照前文。文件包里还包含了两个版本的原理图一个是使用理想开关的基础版适合快速了解谐振槽工作原理另一个是使用真实MOSFET模型加Coss电容的完整版适合验证ZVS和死区时间。我建议你先跑基础版波形全部看懂之后再打开完整版对比差异。接下来你可以往这几个方向继续扩展。一是加入闭环控制用LTspice的电压反馈控制VCO压控振荡器来模拟芯片的调频稳压过程二是把负载改成动态负载用PWL电流源模拟实际设备的负载跳变观察LLC的瞬态响应三是扫描输入电压范围研究宽范围输入下的增益变化。如果你对某个方向感兴趣在评论区告诉我我后续可以继续写。最后说说我这次的实操体会。LTspice里搭LLC最大的收获不是得到一个能跑的仿真这么简单而是把增益曲线、ZVS条件、死区影响这些抽象概念全部变成了眼睛能看到的波形。第一次看到Vds提前降到零、Vgs再上升的那个瞬间我对LLC的理解才算真正落地。做硬件之前先在仿真里把参数空间摸一遍至少能帮你省掉一轮打样迭代的成本。这套方法我做了几个项目确实稳。