LLC谐振变换器混合控制仿真:变频+移相策略与Simulink建模实践
搞过LLC谐振变换器仿真的朋友应该都有体会第一版模型跑起来不难难的是让它在宽负载范围下都保持高效率、低应力、稳定不炸。额定点满载的时候变频控制(PFM)一切都很美好一旦负载切到10%甚至空载开关频率往上飙到200kHz以上驱动都懒了死区损耗占比变大效率曲线难看环路还容易抖。这时候就得让“移相控制(PSM)”上场搭把手。很多人问我到底是变频加移相混合控制怎么个混合法Simulink里模型该怎么搭切换逻辑怎么设计才能不振荡。这篇就是把我的完整做法、参数推导和踩坑记录都摊开来讲给做电源仿真和数字电源开发的同学一份可以直接抄作业的参考。这个方案的核心价值在于只靠一套PID和两个调制信号生成模块就能让LLC在全负载范围都工作在软开关状态下输出稳定且动态响应不差。适合正在做DC-DC电源仿真、数字电源控制算法验证、或者准备把Petri网一样的控制状态机从Matlab搬进DSP的工程师参考。我介绍的所有模型结构、参数和逻辑都基于常见实践具体数值需要按你的功率等级重新算一遍但整个方法和排查思路是通用的。1. 为什么明明有变频还非要加移相1.1 LLC变频控制的天然短板LLC谐振变换器最吸引人的地方就是两个谐振点第一谐振频率fr1由谐振电感Lr和谐振电容Cr决定第二谐振频率fr2由(LrLm)和Cr决定。输出增益曲线在fr1附近有较平缓的“平台区”在这个区域里开关频率小幅变化就能覆盖较大增益区间而且开关管能实现ZVS二极管能实现ZCS效率非常好。缺点也在增益曲线里。当负载变轻为了维持输出电压开关频率必须往高处跑跑到fr1的两倍以上都是常态。频率一高首先驱动损耗和开关损耗不再可以忽略其次磁芯和绕组的高频损耗跟着涨核心问题是增益曲线在高频段变得非常平缓频率从150kHz调到200kHz增益才降一点点没有多少调节裕量。环路增益不足动态响应就慢超调还大整个系统给人一种“特别不跟手”的感觉。1.2 移相控制补什么短板移相控制改变的是全桥上下桥臂驱动信号的相位差。超前桥臂和滞后桥臂不再同时导通输出电压波形从完整的方波变成了带死区的准方波等效基波幅值降低相当于直接压低了增益而开关频率不必再大幅上升。这意味着轻载时可以用相对固定的、不太高的频率依靠减小有效占空比把输出电压压住。移相控制的核心优势就是轻载调节能力强变换器可以工作在较低频率下磁性元件损耗可控环路响应也更好。代价是移相量增大后会牺牲部分软开关范围滞后桥臂的ZVS变差所以移相量不宜开得过大最好控制在准方波占空比不低于0.4左右。1.3 混合控制的真实目标把两者组合起来目标很明确重载时以变频为主因为PFM在这个区域天生就是最优解轻载时以移相为主让频率不要飙上去中间过渡区则两者同时小幅参与通过合理的分配逻辑平滑过渡不能有明显的输出跳变和模式切换振荡。这套方案的优势是既保住了重载效率又解决了轻载调节问题整个负载范围内开关频率都被限制在合理区间(比如60kHz到160kHz)功率器件的电压电流应力也都能控制在相对稳定的水平。对数字电源来说实现起来并不复杂反而比复杂的突发模式更容易做稳定。2. 控制方案选型混合策略怎么搭才合理2.1 常见的混合思路对比行业里混合LLC控制大致可以分成三类思路。第一类是“区域切换式”负载重时纯跑PFM轻到某个阈值后直接切到纯PSM切换点用滞环比较器维持第二类是“并行接管式”频率环和移相环同时存在正常情况频率环输出有效当频率达到上限值后再让移相环开始起作用频率环到限幅后退出第三类是“联合调制式”一个PI输出同时分配成频率和移相角同一时刻两者都在变相当于多了一个自由度来优化效率曲线。我实际做下来第一类实现最简单但切换冲击最明显容易在模式切换瞬间看到输出电压凹陷或者尖峰。第三类控制自由度最高但依赖高效率查表或者在线寻优仿真阶段调参时间和计算资源都划不来。我最推荐第二类工程上最容易收敛策略直观也天然带保护性质频率到顶了才开始移相相当于给频率环加了上限保护不会出现频率无限往上飘的局面。2.2 我选的架构和切换边界我最终采用的方案如图(模型里看)所示快环是两个PI控制器一个输出开关频率一个输出移相角。误差信号是输出电压参考与实际输出电压的差。这个公共误差同时送到两个PI频率PI输出作为PWM开关频率移相PI输出作为滞后桥臂的延时角度。切换逻辑用状态机实现。状态一为“纯PFM模式”条件是开关频率未达到fmax且负载电流大于切换阈值状态二为“频率锁定、移相介入模式”条件是开关频率达到fmax或者误差持续小于某个小值且时间超过延时。进入状态二后频率PI的输出被锁定在fmax的95%附近移相PI从0开始缓慢展开移相角的变化速率做斜率限制防止瞬态跳变。状态三为“退出保护模式”当移相角减小到接近0度并且负载电流回升再切回纯PFM同样加滞环。2.3 边界参数不能拍脑袋切换阈值的选择直接影响系统会不会来回振荡。我用的办法是给“模式切换标志”加滞环电流阈值设为额定电流的15%但进入移相模式需要负载电流低于12%退出时需要高于18%。这样留出了6个百分点的差异带负载波动在阈值附近来回晃动时系统不会在PFM和PSM之间反复横跳。除了电流滞环还把输出电压误差也作为进入条件。如果只是电流轻但误差还很大说明负载刚发生瞬态暂时不切段先让频率环顶上去等输出电压稳定了再切换。仿真里这个逻辑只需要两个Memory块和几个比较器就能搭出来但带来的稳定性提升非常明显。3. 主电路参数设计谐振腔数值不能凭空定3.1 从规格书到等效电阻的计算流程仿真的主电路参数全按一套实际的规格来算。以输入400V、输出48V/20A、满载960W为例。变压器匝比选原边8:1对应副边全桥整流时额定输入下增益接近1可以工作在fr1附近。负载电阻RL48V/20A2.4Ω折合到原边的等效交流电阻R_ac约为(8/π²)·n²·RL代入n8R_ac差不多是124Ω。第一谐振频率取100kHz品质因数Q取0.4。这个Q值的选择有讲究太小会让增益曲线峰值过高启动和动态时谐振电流应力大太大会让曲线太陡峭频率调节范围不够。0.4左右是宽范围输出常用的折中点。然后算Lr(Q·R_ac)/(2π·fr)0.4·124/(2π·100k)≈79μHCr1/((2π·fr)²·Lr)≈32nF励磁电感Lm取Lr的4倍左右即320μH。3.2 变压器模型和死区设置细节变压器建模直接用Simulink里的线性变压器模块勾选带磁化电感磁化电感填Lm漏感分成原边和副边两部分其中原边漏感并入Lr、副边漏感折算后合并。很多朋友在这里图省事直接用理想变压器加外部电感结果谐振电流波形总是差那么点意思就是因为漏感位置不对导致谐振腔阻抗分布不对。死区时间设置为200ns对应100kHz满载开关周期刚好是2%。死区对ZVS很关键LLC要软开关必须让死区期间谐振电流给开关管结电容完成充放电。Simulink仿真里死区设置得太小驱动信号容易毛刺太大则波形占空比损失增益上不去。我建议从1%开始调看谐振电感电流过零点是否在开关时刻附近逐步调整。3.3 求解器设置是仿真的隐形坑LLC谐振变换器是高阶谐振系统仿真步长选错了轻则波形震荡失实重则直接发散。我的经验是固定步长取开关周期的二十分之一到五十分之一100kHz对应0.2μs建议取0.1μs。求解器选离散或ode3(即三阶龙格库塔)不要用变步长ode45跑整段稳态不然仿真时间会拉到怀疑人生。如果要在环路里做动态特性验证必须用定步长离散求解器因为PWM脉冲发生器和状态机在变步长下会产生额外的时间抖动导致每个周期看到的波形都不一样调试时很难分辨是控制问题还是数值问题。4. Simulink模型搭建实录4.1 主电路拓扑搭建步骤模型我分三级来搭。第一级是输入源和全桥。直流源电压设为400V全桥用四个MOSFET理想模型注意每个开关管自带反并联二极管这组二极管是电流反向通路的关键。如果是仿真ZVS波形二极管必须存在不能用理想开关替代。第二级是谐振腔从桥臂中点引出Lr经过Cr接到变压器原边变压器原边并联Lm。Cr的位置有两种常见接法一种在桥臂输出端串联一种在下桥臂中点并联到地。我选串联在谐振腔里这样寄生参数更接近实物谐振电流直接就是Lr电流。第三级是副边和负载。全桥整流二极管采用肖特基等效模型正向压降设0.4V左右导通电阻设毫欧级。输出滤波电容取470μF加一点ESR约50mΩ这样更接近实际电容特性不会出现理想电容在瞬态时电压纹波过小的问题。负载用RL串一个受控电流源并联方便做负载跳变实验。4.2 控制环路具体连线方式控制部分我按三块来连。第一块是采样与误差计算输出电压经过一阶低通滤波后再和参考值相减滤波时间常数取开关周期的5到10倍这样采到的电压纹波不会直接灌进PI造成调节器饱和震荡。第二块是频率PI和移相PI。两个PI都采用抗积分饱和结构频率环输出限幅在60kHz到160kHz移相环输出限幅在0到120度。比例积分参数先按经典整定频率环Kp取0.001Ki取0.05移相环Kp取0.005Ki取0.1。这只是初值要在动态调试里继续优化。第三块是PWM调制。频率信号通过一个VCO模块产生载波四个驱动信号由三角波比较和RS触发器生成。超前臂两个开关互补滞后臂相对超前臂延迟θ/(2π·fsw)秒。这里最容易出错的是移相角单位Simulink里延迟模块用秒记得把角度换算成时间我在这上面吃过大亏给定120度但延迟时间没换算结果相当于一直满载运行。4.3 模式切换逻辑的仿真实现切换逻辑我建议用Stateflow实现虽然几个逻辑门也能拼出来但状态多了以后可读性和调试性差很多。三个状态分别是PFM_ON、PSM_ON和EXIT_CHECK。进入PSM_ON的条件用两个输入负载电流和频率上限标志。进入条件在外部用逻辑运算生成输出两个布尔量Stateflow里只需要做状态转移。退出PSM_ON时加一个斜坡延时模块让移相角以每秒50度的速率回归零同时频率PI从锁定值开始恢复调节。这个退坡设计是仿真中调试出来的直接硬切会让输出电压瞬间顶上去因为移相角消失的瞬间等效占空比跳变输出能量突然增大输出电压马上抬升一个台阶。4.4 软启动与保护逻辑补全仿真模型只做稳态控制是不够的启动冲击电流经常让仿真直接发散。我加了软启动时序初始开关频率设定为200kHz让LLC远离谐振区低增益然后按照每毫秒10kHz的速率向工作频率靠近。移相角在启动过程中固定为0等频率稳定在目标附近后才允许切到闭环调节。这个过程在模型里就是一个Ramp模块串一个小型状态机约30行代码不到。过流和过压保护在仿真中也建议加上。谐振电流RMS超过阈值就封锁PWM脉冲输出过压同样封锁。这对后面做故障注入非常有价值比如模拟负载短路时可以看到封锁时序是否够快。没有保护逻辑的模型调试动态响应时很容易因为一次操作失误重新跑十几分钟的仿真。5. 波形分析与关键性能指标5.1 满载纯变频状态的软开关判断满载100kHz附近时重点看谐振电流波形是否正弦以及开关管漏源电压在驱动信号来临前是否已经被钳位到零。具体在Scope里叠加同一桥臂上下管的Vds和Vgs如果Vds在Vgs变高之前已经降到零附近说明ZVS成立。另一个判断点是谐振电流的过零时刻。超前桥臂ZVS需要谐振电流在死区时间内变化到足够的负值能够抽走结电容电荷。如果死区长度不够或者电流过零点离开关时刻太近Vds下降过程会拖到驱动开启之后这时波形上能明显看到Vds不是陡降而是慢慢爬下去这就是硬开关的前兆。实测中如果看到这种波形优先加长死区或者增大Lm/Lr比例。5.2 轻载移相介入后的对比数据我在10%负载下分别跑了纯PFM和混合控制两组仿真。纯PFM在10%负载时频率跑到200kHz左右谐振电流波形很矮输出电压纹波脉动变大毛利大概是波形尖刺多、驱动脉冲间隔不均匀。混合控制模式下频率被限制在160kHz移相角展开到55度附近输出电压纹波基本没有变化但开关频率降下来之后驱动波形间距均匀从仿真器报的损耗数据看开关损耗下降了差不多三成。有一个值得注意的现象移相角增大后滞后桥臂的ZVS范围会变差在过大移相角时能看到滞后桥臂的Vds下降速度变慢。这是移相控制的固有特性不必追求把移相角开到90度以上能在40到70度之间解决频率上飘问题就已经达到目的。5.3 动态负载跳变的过渡表现仿真里做了一次满载到10%负载的阶跃时间点在0.2秒。纯变频控制下输出电压需要大约2ms恢复期间频率冲到200kHz以上有一段明显的高频振荡尾迹。混合控制下频率环先往上抬碰到160kHz频率限幅后移相环开始接管由于有斜率限制输出电压的过渡速度稍微慢一点约2.4ms但整个过程没有出现电压过冲超过5%的情况振荡尾迹也基本消失。如果切换逻辑没做好这一阶段会看到两种典型故障一是输出电压突然下掉因为模式切换瞬间频率环被锁定但移相环还没建立积分系统瞬时失控二是模式反复横跳输出电压出现周期性锯齿。前者的解决办法是让移相PI在进入PSM模式前保持预置初值后者的解决办法就是前面说的滞环设计。6. 常见问题与排查技巧实录故障现象可能原因排查顺序和建议仿真直接发散或NaN求解器步长太大、初始条件冲突、器件模型理想度不匹配先把步长调到0.1μs级别再检查Cr初始电压是否设成0最终建议用离散定步长求解器输出电压在轻载时震荡频率PI到达限幅值且无移相介入检查频率上限是否生效再确认移相PI输出是否使能重点看切换状态的Enable端口接没接模式切换瞬间电压凸起移相角退出太快退坡速率太快将退坡速率降到20度/s以下可观察瞬时波形逐步调高谐振电流波形明显不对称全桥PWM驱动出现了不应有的死区或延迟不匹配分别查看四路驱动脉冲确认滞后臂相对超前臂的延迟方向是否正确动态时频率快速打满但输出仍低频率PI增益过大或积分饱和给PI输出加合理限幅开启反计算抗饱和Kp调小一半观察带宽变化稳态纹波过大且随负载变化输出滤波电容ESR设得过大或采样滤波时间常数太小将ESR降到50mΩ以内采样滤波时间常数加大到5到10倍开关周期最常见的翻车点集中在三个地方。第一是移相角没有换算出对应的延迟时间Simulink报错或者波形完全不变第二是切换逻辑的布尔信号在环路里形成代数环没有加Memory或Unit Delay打断一仿真就红色报错第三是谐振初始电流不为零启动瞬间有很短的暂态电流冲击但被忽略了导致后续环路参数看起来总是不对。针对代数环问题我建议在所有模式切换逻辑的输出端加一个Unit Delay将判断结果延迟一个采样周期。这么一点延迟对控制环路影响可以忽略但能彻底消除仿真时不收敛的头痛问题。如果模型里出现“Algebraic Loop”提示先别急着改参数优先找连线找信号环往往改几个位置就能解决。另一个小技巧是不要一开始就跑满载到轻载的阶跃先用固定负载把稳态跑通了再加阶跃最后再上自动负载循环。分阶段调试能让仿真时间利用最大化报错时也容易定位到底是主电路参数问题还是控制逻辑问题。7. 我最后想分享的一点经验模拟仿真和实际硬件最大的区别是实际里有磁滞、温漂、分布参数而软件里没有。所以仿真调好的参数搬到实物上一定会偏移但这不代表仿真没用。我搭这套混合控制模型最大的收益是用两个小时的时间把模式切换状态机可能出的问题全都踩了一遍如果不做仿真这些坑在实机上每一个都意味着烧管子、熔保险丝和重新打板。建议你在仿真模型基础上把输出电流检测的噪声模型、栅极驱动信号的死区抖动这些非理想因素也加进去这样仿真出来的切换边界和实物行为会更贴近。完成这一步之后再去做数字电源移植控制代码基本就是复制粘贴的事。