资讯动态

LLC全桥移相控制仿真:固定频率稳压的建模与波形调试

发布时间:2026/10/22 0:19:12 来源:尧图企业网站定制
第一次听说要给LLC配移相控制时我第一反应是这不太对劲吧LLC拓扑从出生起就是靠调频来稳压的怎么还能固定频率玩移相呢后来在某平台样机上做了一整套全桥LLC谐振变换器PSM控制策略仿真在MATLAB/Simulink环境里反复跑了额定、低压、轻载各种工况才意识到移相调制并不是把PFM简单换成PSM而已它改变了整个谐振级的工作方式。这篇就把我搭模型、写控制、调PI、判波形时踩过和补过的细节都整理出来给正在做LLC仿真或打算用移相控制的电源工程师一个可直接参考的版本。1. 为什么LLC需要PSM调频控制做久了谁都会被频率范围恶心到1.1 传统变频控制的两头难LLC最经典的控制方式就是变频PFM靠改变开关频率来调节电压增益。谐振网络在串联谐振频率fr附近增益最高偏离fr越远增益越低所以负载变重或者输入电压变高时往低频跑输入电压变低或轻载时往高频跑。听起来没问题但实际做设计的时候就会被频率范围折磨。拿我之前调的一套参数来说输入400V输出48V/20A满载额定工作点设在100kHz附近但只要把输入电压从400V摆到360V再把负载从满载切到10%开关频率经常要被逼到180kHz甚至更高。频率范围一宽后面全是连锁反应变压器磁芯必须按最低频率下不饱和来选体积和匝数都要加。磁性元件在宽频范围内的损耗不好算铜损和磁损的变化曲线完全不同。驱动电路、隔离变压器、采样滤波都要覆盖整个频带EMI滤波器更头疼因为开关频带本身就是个宽频干扰源。仿真阶段这些问题还不明显因为理想模型不会发热。但一旦到样机阶段频率漂移带来的效率下降和噪声问题就非常具体。我见过有人为了压低高频范围的开关损耗把死区时间设得很短结果轻载时原边电流相位失衡波形直接炸掉。所以很多人开始找“固定频率”的替代方案PSM移相调制就是其中一个非常实际的选择。1.2 移相调制怎么把频率钉住PSM的思路很直观既然频率不能随便变那就让全桥逆变出来的电压“变窄”。全桥四个开关管正常的话对角管同时导通输出端VAB是完整的±Vin方波。现在让一侧桥臂相对另一侧桥臂的驱动信号滞后一个角度这个角度叫移相角记为φ。于是VAB不再是一直顶到±Vin的满幅方波而是中间出现一段零电平等效脉宽变窄了。等效脉宽一窄加在谐振网络上的基波电压幅值就降低副边输出自然下降。关键是开关频率从头到尾保持不变一般就定在fr附近也就是谐振网络增益最高、电流波形最接近正弦的位置。这样变压器、谐振电感、谐振电容全部按单一频率优化EMI频谱也集中控制动态特性相比调频也更好观察。从我实际搭模型的经验看PSM在全桥LLC上并不是什么冷门操作它相当于把“调增益”这件事从频率域搬到了相位域。但要注意它不是简单地把PFM控制环换成移相角控制环就完事整个谐振级的工作模态会发生变化尤其是轻载和大移相角下原来靠变频抬高频率来维持软开关的行为不再成立这部分后面我会专门展开。1.3 PSM到底在调什么很多刚接触PSM的人会问固定频率之后LLC是靠什么稳压的答案是靠改变全桥输出电压的基波分量。能量传递链路是这样的开关频率固定 → 移相角改变VAB的脉宽 → 谐振网络把方波滤成近似正弦电流 → 副边整流后得到直流输出。频率不变但电压幅值在变所以等效上它更像一个“半控”的Buck型行为。对闭环来说我们需要控制的量从“频率”变成了“相位差”控制对象从压控振荡器变成了一个角度调节回路。我在仿真里验证过移相角在0到π之间变化时VAB基波幅值近似按cos(φ/2)单调下降φ越大输出越低。这意味着只要把移相角限制在一个合理范围内输出电压和移相角之间就是单调关系PI调节器可以正常工作。但是φ过大时谐振电流会出现断续软开关状态恶化所以控制器必须加限幅这是PSM仿真中最容易忽略、也最容易出问题的地方。2. 搭仿真前必须想明白的数学模型与等效关系2.1 全桥LLC的电路结构与关键器件角色在Simulink里搭模型之前脑子里先把电路结构过一遍。全桥LLC由这几部分组成输入直流源我习惯用400V。全桥逆变器四个开关管分成A、B两个桥臂S1/S2组成A臂S3/S4组成B臂对角管组成一组工作态。谐振腔包括谐振电感Lr、谐振电容Cr和励磁电感Lm。Lm在理想变压器模型里就是并联在原边的励磁电感。变压器原副边变比n。副边整流桥式整流或者中心抽头全波整流都行。输出滤波电容Cout和负载Rload。这里每个元件的角色要清楚Lr和Cr主要决定串联谐振频率frLm负责提供励磁电流和参与低频段的增益整形。Lm太大会让增益峰值变得很高、但轻载ZVS变差Lm太小又会让励磁损耗变大。常规经验是Lm/Lr比值取3到6之间我后面给的参数表就是按这个范围选的。谐振网络和负载之间靠变压器耦合。副边整流输出的直流电压近似等于变压器副边电压经整流后的平均值所以在仿真时变压器的变比、同名端方向、副边绕组接法都要和实际目标一致否则闭环之后输出永远对不上。2.2 移相角与全桥输出电压的数学关系移相控制的数学核心是算VAB的基波幅值。假设S3相对S1滞后角度φ当φ0时对角管同时导通VAB是标准的±Vin方波基波峰值是V_AB1 (4/π) · Vin这个公式大家很熟。加上移相角之后VAB变成三电平波形正电平持续时间不再是半个周期而是(π-φ)对应的电角度其余时间电压为零。对这样的准方波做傅里叶级数基波幅值会变成V_AB1 (4/π) · Vin · cos(φ/2)注意这个φ取弧度范围0到π。φ0时cos(0)1回到满幅方波φ接近π时cos(π/2)0输出几乎为零。仿真调试时我经常用这个公式快速判断VAB波形和移相角的对应关系比如φ30°时基波峰值是满幅的96.6%φ90°时会降到满幅的70.7%φ120°时只剩一半。这个关系式是整个PSM控制策略的基石。因为增益单调且近似线性PI调节器不会出现方向混乱的问题。但在Simulink里写PI输出限幅时记得把移相角限制在0.85π以内不要给满π留一点裕量给软开关和动态调节。2.3 固定频率下谐振网络的角色变化固定频率在fr附近工作时Lr和Cr的串联阻抗在fr处接近于零谐振网络的电压增益接近1。这里的“增益接近1”是在不考虑副边负载折算的理想情况下说的实际因为副边导通、整流压降等影响增益会略低一点。很多人以为固定频率后谐振网络就“不重要了”其实不对。谐振网络仍然在做三件事把方波电压变成近似正弦的谐振电流为副边提供软换流条件。通过Lm的励磁电流为原边开关管提供死区期间的换流能量。在移相角较大时“吸收”输入电压脉宽变化产生的谐波分量。PSM下频率虽然固定但VAB的谐波成分随着φ变化一直在变。谐振网络对这些谐波的衰减能力决定了电流波形是否好看。如果Lr和Cr选得太大或太小即使移相角正确波形也会出现畸变副边二极管的反向恢复也会加重。所以仿真调参时不要只盯着PI先把谐振参数校正好再看控制。3. Simulink模型搭建从功率级到控制级的完整套路3.1 元件库与电路连接顺序我用的是MATLAB/Simulink里的Simscape Electrical库老版本里叫SimPowerSystems。操作路径大概是库浏览器 → Simscape → Electrical里面能找到直流电压源、MOSFET、二极管、电容电感、变压器这些元件。搭功率级电路时按这个顺序连直流电压源接全桥输入。注意Simscape每个物理回路都要有接地参考直流源负极要接地否则模型会报回路不完整。A桥臂和B桥臂用MOSFET模块。要触发软开关观察建议用带体二极管的MOSFET型号或者单独在开关两端并联一个二极管否则死区期间电流没有续流通路仿真会出现离谱尖峰。全桥输出端接LrLr后面接CrCr另一端回到全桥另一输出端也就是谐振腔串联在VAB之间。Lm不需要额外放一个电感直接在变压器参数里设置励磁电感即可。变压器用Linear Transformer原边接谐振腔副边接整流二极管。理想变压器在Simscape里没有现成模块Linear Transformer就可以把漏感设成极小值比如0.01μH励磁电感设成你要的Lm。副边整流后接Cout和Rload。这里最容易迷糊的是Lm的位置。在Simplorer或者Saber里变压器模型自带励磁电感Simscape的Linear Transformer也支持但很多人会习惯性地在原边再并联一个Lm电感结果等效励磁电感变成两个并联参数直接翻倍。我建议只设变压器参数不额外放电感这样和理论模型一致。3.2 参数表一份可直接照抄的初始值调试的时候参数改来改去很烦我先把一版能跑通的初始参数放在这里照着输进去基本能出结果后面再根据你的目标电压电流去微调。参数数值说明输入电压 Vin400 V直流输入开关频率 fs100 kHz固定频率PSM下不变谐振电感 Lr30 μH串联谐振电感谐振电容 Cr84.4 nF和Lr配合fr约100kHz励磁电感 Lm120 μH变压器原边励磁电感变压器变比 n8:1原边匝数:副边匝数输出电容 Cout470 μF低ESR额定负载 Rload2.4 Ω48V/20A工况参考电压 Vref48 V闭环目标死区时间 Td150 ns防止直通移相角限幅0 ~ 0.85π防止过调导致丢ZVS说明一下这个参数组合的合理性Lr30μH、Cr84.4nF算出来的串联谐振频率是1/(2π√(Lr·Cr))约等于100kHz刚好和开关频率对齐。Lm/Lr4处在常规经验范围内。变压器变比8:1配合400V输入副边满载时电压比较接近48V移相角不必推到很大就能稳压控制裕量比较充足。3.3 四路驱动脉冲的实现Matlab Function写法PSM控制策略仿真里最核心的模块是四路驱动脉冲发生器。我之前试过用Pulse Generator模块堆四个脉冲源但移相角是动态变化的Pulse Generator不好实时调相位最后还是用Matlab Function写了个干净利落的版本。模块输入是两个信号系统时间t和移相角标幺值phi_norm。phi_norm范围0到1对应移相角0到π。模块输出S1到S4四个0/1门极信号。核心逻辑是A桥臂的S1/S2互补各导通半个周期B桥臂的S3相对S1滞后phi_norm·TS4再和S3互补。function [s1, s2, s3, s4] fcn(phi_norm, t) % PSM四路脉冲生成 % phi_norm: 0~1对应移相角0~pi % fs: 固定开关频率100kHz fs 100e3; T 1/fs; phase rem(t, T); % A桥臂S1前半周期导通S2后半周期导通 s1 double(phase T/2); s2 double(~(phase T/2)); % B桥臂相对A桥臂滞后 phi_norm * T shifted_phase rem(phase - phi_norm * T T, T); s3 double(shifted_phase T/2); s4 double(~(shifted_phase T/2)); end代码里的rem函数做取模保证移相后的相位始终落在一个周期内。注意这里S1/S2没有加入死区真正仿真时门极信号还要经过一级死区处理否则上下管切换沿会重叠模型跑起来就是直通短路。我通常在每个开关信号后面接On-Off Delay模块Turn on delay设成150nsTurn off delay设成0这样开延迟、关不延迟死区就插进去了。门极信号是Simulink的0/1逻辑信号Simscape的MOSFET门极端口需要物理信号输入所以要加Simulink-PS Converter把逻辑电平转成物理信号再接给每个开关管。如果忘了这一步示波器看起来一切正常但功率电路根本不会动作。4. 闭环控制与软启动落地的几个细节4.1 负反馈方向、PI限幅与抗积分饱和PSM闭环的第一件事是确认反馈方向。移相角增大VAB基波幅值下降输出下降。所以想让系统稳定误差信号应该取e Vsense - Vref当输出电压高于目标时误差为正PI输出增大移相角增大输出电压下降形成负反馈。PI模块输出直接作为phi_norm送给脉冲生成函数。如果你把误差定义反了仿真一启动输出电压就会冲到天上去而且PI饱和后一时半会儿拉不回来。PI参数我给一个起步值Kp0.03Ki1.2。这个参数不是万能的但在这个量级的功率等级里先用它能跑出一个稳定输出之后再根据阶跃响应微调。比例增益太大会让移相角抖动积分增益太大会导致启动过冲。PI模块的限幅一定要做而且要做抗积分饱和。限幅上限设为0.85对应移相角0.85π也就是153°左右。为什么不能给到1因为移相角接近π时VAB有效电压已经很低谐振电流很小滞后桥臂很难再实现ZVS波形会急剧恶化和振荡。限制在0.85以内既留出稳压范围也保住了软开关的下限。Simulink的PID Controller模块里有Output Saturation和Anti-windup选项记得打勾。4.2 死区时间为什么不能省全桥同一个桥臂的上下管如果同时导通输入电源直接短路仿真里表现为电流瞬间冲到几十万安培。实际硬件会炸管子仿真里虽然“炸”不了但波形会变成一堆毛刺后面的控制环全乱掉。死区时间一般取开关周期的1%到2%。100kHz对应10μs周期死区取100~200ns都合理我常用150ns。插死区的原则是同一桥臂的两个管子关断沿保持不动开通沿向后延迟死区时间。这样无论怎么切换总有一个小窗口两个管子都不导通电流靠体二极管续流。死区对LLC还有一个额外好处死区期间谐振电流给开关管结电容充放电的时间正好是ZVS实现的过程。如果死区设得太短管子开通时结电容还没放完电导通瞬间会有硬开关损耗如果死区太长励磁电流可能反过来反向充电ZVS也会丢失。仿真里可以通过观察管子体二极管电流来验证死区时间是否合适这个方法后面波形判读会详细说。还要注意加入死区后B桥臂实际移相角和理论值会有微小偏差因为开关沿变形了。仿真阶段这个偏差可以通过闭环自动修正不用做特殊补偿但如果做高精度样机这个偏差要单独算。4.3 软启动怎么做才不炸电容LLC最凶险的时刻其实是开机瞬间。因为谐振电容Cr初始电压为零全桥一启动VAB直接满幅方波砸在Lr和Cr上谐振电流峰值可能是稳态的好几倍输出电容也要经历一个很大的充电浪涌。PSM控制下软启动比较容易做核心思想是让系统从一个“低压弱激励”状态慢慢进入稳态。具体两个手段给定Vref斜坡上升从0V用5ms左右斜坡升到48V。PI模块的初始输出设成较大移相角比如0.75这样一开机控制器就输出电压很小。两个手段配合起来开机过程大概是Vref还很低误差为负PI输出维持在初始大移相角输出只有很小的电压Vref逐渐爬升PI控制输出电压跟上给定移相角逐渐减小直到进入稳态。整个过程原边谐振电流峰值能被控制在稳态的1.5倍以内输出电容也不会被浪涌击穿。如果你不想用Vref斜坡只想靠固定给定直接启动也可以把PI初始输出设大输出还是会冲一下只是幅度小很多。我建议两个手段都做调试成本不高效果却立竿见影。仿真里看启动波形时重点看原边电流峰值和输出电压超调量这两个指标能最快暴露软启动参数合不合理。5. 仿真波形怎么判读证明PSM确实在干活5.1 先从VAB看移相有没有生效跑完仿真第一件事不是看输出电压而是看全桥输出端VAB波形。电压探头放在全桥两个桥臂中点之间。正常PSM稳定工作状态下VAB应是一个三电平波形Vin、0、-Vin依次出现正负电平持续时间接近相等两个电平之间夹着零电平。用示波器光标测量正电平持续时间把它和开关周期T做对比可以反推出实际移相角实际脉宽 (T/2) - (φ/2π)·T比如T10μs如果测到正脉宽是4.17μs那对应的移相角就是30°如果脉宽只剩2.5μs移相角大约是90°。把这个实测值和闭环中的phi_norm换算结果对比如果误差在死区时间范围内说明脉冲生成逻辑没写错。如果VAB波形看起来是满幅方波、完全没有零电平那说明移相角一直很小或者控制根本没作用。先查phi_norm是不是被PI饱和在0附近再查脉冲生成函数里移相延迟是否被rem取模吃掉。这个环节是排查PSM控制是否真正运行起来的“体检表”。5.2 原边电流与ZVS的观察方法PSM仿真里最值得观察的是原边谐振电流。频率固定在fr附近时原边电流应该比较接近正弦波幅值随着负载变化而变化。如果电流波形出现明显平顶、削顶或者非线性畸变大概率是谐振参数不对或者移相角范围跑偏了。ZVS的验证方法是把示波器同时调出开关管门极信号和开关管两端的漏源电压。理想ZVS开关过程是这样在门极变高之前电流已经通过体二极管续流把漏源电压钳位到接近零伏然后门极信号到来管子在这个零电压条件下导通所以漏源电压波形会在门极开通瞬间之前就降到零并且维持一小段时间。在实际仿真Scope里我会给每个MOSFET并联一个电流传感器放在体二极管支路上或者直接看MOSFET模块内部的二极管电流输出。如果门极信号变高前体二极管电流已经出现并为正值说明那段时间是二极管在续流ZVS条件成立。反之如果门极信号变高瞬间漏源电压还很高体二极管电流为零那就是硬开关波形上会有明显的电压电流尖峰。PSM下有一个规律小移相角时两个桥臂都能ZVS随着移相角增大滞后桥臂会比超前桥臂先丢ZVS。所以判读波形时要重点看滞后桥臂的开关管比如S3和S4它们才是PSM里最容易出问题的位置。5.3 副边二极管ZCS与输出纹波的检查LLC的另一个卖点是副边二极管可以ZCS关断减小反向恢复损耗。仿真中看副边电流波形在频率等于fr附近时副边整流二极管电流应该在开关周期结束前自然过零而不是被强行关断。如果波形显示电流在二极管关断瞬间还有明显幅值说明工作点偏离fr较远或者移相角太大导致工作模态变化。输出纹波的检查也有简单估算方法。全桥整流后输出电压纹波频率是2fs也就是200kHz。只看电流纹波时ΔV大约等于I_out/(2fs·Cout)。按20A、200kHz、470μF估算纹波大约0.21V。仿真里实际纹波还会叠加电容ESR的影响但如果实测纹波量级远超这个数就要怀疑是不是输出电容设置太小、副边整流波形异常或者PSM已经进入了断续模态。判读波形这件事我一直觉得比调参数更重要。参数好坏最终都要以波形来检验如果不会看波形调PI就像蒙着眼睛开车。6. 调试中最容易翻车的几个问题和处理思路6.1 启动瞬间电流尖峰大到离谱第一次搭好模型满怀期待地点Run结果Scope里看到原边电流直接从零跳到几百安培随之而来的是一大堆数值发散警告。这个问题我在做某平台样机验证时遇到过不奇怪。原因是多方面的Vref直接给48V阶跃PI初始输出太小或者Cr初始电压为零。处理方式就是我上面写的软启动方案Vref用5ms斜坡、PI初值设0.75、移相角限幅。如果电流尖峰还是压不下去检查一下仿真求解器是不是步长太大导致开关事件没有被精确捕捉把固定步长设到1e-7s再看。另外别忽略一个很“懒”的解决办法给Cr在参数设置里设一个合理的初始电压。但这个方法只能让仿真“看上去”正常实际硬件不可能有预充电我建议仅作为调试辅助手段最终还是要回到软启动方案上来。6.2 轻载下滞后桥臂丢失ZVSPSM策略在轻载下最容易暴露的问题是滞后桥臂丢ZVS。现象很典型额定负载时所有波形干干净净切到10%负载后VAB还在正常变化但原边电流变小滞后桥臂的开通关断处出现一堆高频振荡尖刺输出纹波也变大。原因在于移相角变大后VAB的导通脉宽窄了谐振电流幅值降低死区时间内没有足够的电流能量把开关管结电容放电完成。频率固定又没法像PFM一样通过升频来改善轻载特性所以这个现象是PSM的固有短板。仿真阶段的处理方式有两种第一种是保守路线把移相角上限从0.85再降一点牺牲一下极限降压能力换取更可靠的ZVS范围第二种是策略路线对轻载工况做模式切换比如降到一定负载后切换成间歇工作模式不过这个会增加控制复杂度。我现在做的项目里就把最低负载限制在10%以上低于这个点不再让PSM独自扛效果比较稳。6.3 仿真结果不稳先怀疑求解器而不是PI波形毛刺多、某一步突然NAN、仿真速度越来越慢这些问题在LLC仿真里特别常见。很多人的第一反应是PI没调好其实大概率是求解器配置问题。LLC是强谐振电路开关动作瞬间电流变化率很大变步长求解器为了保证精度会把步长压得很小仿真速度骤降反过来如果步长下限放太松开关点又捕捉不准产生虚假的高频振荡。我的做法是把仿真求解器设为固定步长步长取1e-7s。这个步长在100kHz开关频率下每个开关周期有100个采样点足够分辨死区和移相角的变化。功率级如果是Simscape的连续模型允许它在固定步长下用内部局部求解器收敛这样既保证速度又不会因为PWM刷新不同步而出现逻辑错误。如果固定步长下仍然有数值振荡优先去看死区是否设置正确、体二极管是否并联而不要一上来就动PI。PI是替罪羊真正的凶手往往在功率级建模里。6.4 变压器漏感参数叠加导致的频率漂移有一次我调了半天的PI输出电压就是稳不住移相角一直在限幅附近来回顶。后来把开环谐振频率算了一遍才发现实际谐振点根本不是100kHz而是被“偷偷”拉低到了90kHz以下。问题出在Linear Transformer的漏感参数上。我一边在外围串联了Lr一边又把变压器的漏感设置成默认非零值两个电感串联实际等效Lr比设计值大了不少。谐振频率fr1/(2π√(Lr·Cr))是随Lr增大而降低的工作点漂了自然怎么调都别扭。给读者一个排查建议调初次模型时把Linear Transformer的漏感参数直接设成0.01μH级别当成理想变压器来用外围只保留一个明确的Lr。等模型验证没问题了再根据实际变压器数据去把漏感拆出来注意此时要把漏感值并入Lr的设计值里去而不是简单叠加。顺带一提Lm和Lr的比值也在这个阶段校核。kLm/Lr取4左右时增益峰值适中轻载ZVS范围也好如果k取得太大比如超过8增益曲线会变得很尖PSM工作点稍微偏离fr电压增益就波动很大闭环也就不稳了。写到这里其实已经把我做这套仿真模型的完整路径都过了一遍。最后说一个个人体会PSM移相控制在仿真里看着逻辑很直白无非是固定频率、调移相角、看波形但真正让它稳定工作时间多半花在启动时序、死区和限幅这三件事上。我头两次跑通之后都觉得波形已经挺漂亮把限幅放宽到0.99结果瞬间看到了什么叫丢ZVS加振荡。所以如果你也在调同一个控制器别急着把移相角往大推先把固定频点、软启动、死区这三件事坐实PSM带来的收益远比想象的稳。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑