做双向电源的人,基本都绕不开LLC。单方向的LLC方案太成熟了,软开关、高效率、低EMI,性能拉满;可一旦要求能量正着走、反着走都能跑,LLC立刻露怯。这时候CLLLC这个变体成了双向充电机、储能变流器、电池测试设备里的常客。这阵子我在Matlab/Simulink里搭了一套全桥双向CLLLC闭环控制仿真,从谐振参数计算到主电路建模,再到PI整定和双向切换,踩了不少坑,也攒了不少可以直接复用的经验。这篇博文就把整个过程中的技术决策、操作细节和排障经验摊开来讲,给正在啃这个项目的同行一个参照。
1. 为什么双向场景绕不开CLLLC
1.1 LLC和CLLLC到底差在哪
要理解CLLLC,得先知道LLC的结构。LLC变换器原边有一个谐振电感、一个谐振电容和变压器的励磁电感,副边通常只有整流二极管或同步整流管,不再挂谐振元件。这个结构在单向应用里非常漂亮:原边开关管能做ZVS(零电压开通),副边整流管能做ZCS(零电流关断),开关损耗和EMI都很低。
但一旦要反向传能,问题就来了。把原边看负载、副边看电源时,原来副边只有二极管和电容,根本没有参与谐振的能力,整个变换器的工作点和增益特性完全变了。就算强行让副边全桥逆变,也会出现波形严重畸变、增益不够、软开关丢失的麻烦。一句话:LLC的“不对称谐振网络”决定了它天生不适合双向。
CLLLC的做法很直接,在原边和副边都放上一组谐振电感和谐振电容,让变压器两侧都形成完整的谐振腔。这样的拓扑本身就为双向运行铺好了路,两个方向的能量传输模式是对称的。很多论文里提到,当原副边谐振参数按变比折算后相等时,CLLLC正反向的增益曲线几乎完全重合,这就是它作为双向DC-DC核心拓扑的最大卖点。
| 对比项 | LLC | CLLLC |
|---|---|---|
| 谐振元件位置 | 仅原边有Lr、Cr | 原副边均有Lr、Cr |
| 双向运行能力 | 差,反向增益和波形恶化 | 好,正反向特性对称 |
| 软开关特性 | 正向优秀,反向受限 | 正反向均能保持软开关 |
| 应用场景 | 单向电源适配、服务器供电 | 双向充电机、储能变换器、V2G |
1.2 双向CLLLC的招牌能力
双向CLLLC最常见的用法是能量路由器。高压直流母线和低压电池组之间,充电时能量从母线流向电池,放电时能量从电池回到母线。整个过程变换器必须在两个方向都保持高效率和稳定输出,这就是CLLLC的舒适区。
它的一大优势是全负载范围内的软开关。CLLLC的励磁电感可以做得比较大,空载和轻载下依然能维持开关管的ZVS条件,在需要长时间待机的储能场景里特别有价值。另一个优势是增益特性和负载关系相对平滑,在全桥结构下电压增益范围也比较宽,能覆盖电池电压大幅度波动的工况。
从应用范围看,凡是需要能量的双向流动、还要求高效率高功率密度的场合,基本都会出现CLLLC。比如双向车载充电机、储能PCS、燃料电池测试系统、直流微网里的隔离型DCDC。做这类项目的人手里必须有一套靠谱的仿真模型,而Matlab/Simulink正好是这个领域的通用语言。
1.3 闭环在这其中扮演什么角色
CLLLC的负反馈控制和普通Boost/Buck不太一样,它的核心调节手段不是占空比,而是开关频率。谐振变换器的电压增益随开关频率变化而变化,闭环的任务就是把实际输出电压或电流和参考值比对,然后通过控制器决定“频率该往哪调”。
开环状态下,CLLLC只能在一个固定频率点附近工作,负载变化或输入电压波动都会导致输出电压明显漂移,这在真实产品里完全不可接受。闭环控制解决的正是这个问题:输出电压低了就降低频率以提升增益,电压高了就升高频率以压低增益,最终让系统稳定在设定值上。除此之外,闭环还承担软启动、限流、双向模式切换这类高级任务。这些逻辑都在Simulink的仿真模型里先跑通,才有可能搬到样机上。
2. 仿真前必看:主电路结构与参数计算
2.1 主电路拓扑与每个元件的作用
全桥双向CLLLC的主电路可以简化成四个部分:原边全桥、原边谐振腔、高频变压器、副边谐振腔加副边全桥。原边全桥由四个开关管组成,正向往前推能量时它们做逆变,把直流母线电压变成高频方波送进谐振腔;反过来的工况下,这四个开关管作为整流侧把高频能量回收成直流。副边全桥的角色刚好反过来。
谐振腔里的电容和电感是决定波形和增益的核心。电容负责和电感形成串联谐振,同时起到隔直作用,防止变压器饱和;谐振电感提供谐振所需的感性分量,通常一部分来自变压器的漏感,一部分来自外置电感。变压器的励磁电感Lm是LLC/CLLLC的灵魂,它大小直接影响增益曲线、软开关范围和输出特性。副边谐振腔参数需要按匝比折算到原边进行对称设计,否则正反向特性会出现偏差。
搭建仿真模型之前,把这些元件的物理角色搞清楚,比直接拖模块重要得多。很多人仿真跑不出来,问题往往出在对谐振网络没有一个整体的理解,只盯着某一个波形看。
2.2 以1kW双向CLLLC为例的参数计算
参数计算是整个项目里最见功力的环节,也是网上资料最零散的部分。我这里分享一套比较通行的思路,目标规格取常见的1kW双向储能应用:高压侧400V母线,低压侧250V电池,谐振频率100kHz,变压器匝比按增益需求选1.6。
先算等效负载电阻Rac。对于全桥结构的LLC/CLLLC,折算到原边的等效电阻公式是:
$$R_{ac} = \frac{8 \cdot n^{2} \cdot U_{out}^{2}}{\pi^{2} \cdot P_{out}}$$
代入n=1.6,Uout=250V,Pout=1000W,算出来大约是130欧姆。然后选一个品质因数Q,工程经验上Q取0.3到0.5比较稳妥,这里取0.4。由Q的定义可以推导出谐振电感和电容的关系:
$$\sqrt{\frac{L_{r}}{C_{r}}} = Q \cdot R_{ac}$$
同时谐振频率满足fr = 1/(2π·√(Lr·Cr)),两个方程联立,就能解出Lr约等于82微亨,Cr约等于31纳法。工程上Cr取33nF即可。励磁电感Lm按K=Lm/Lr的经验取值范围6到10设计,取6的话Lm约为500微亨。副边参数按匝比折算,Lr2等于Lr1除以n的平方,约32微亨,Cr2等于Cr1乘以n的平方,约79nF。
为了验证这个参数组合合理,可以在Simulink里先做一次开环扫频,看增益曲线是否覆盖了设计范围。我自己习惯把计算过程写成一小段可重复执行的脚本,方便调整规格时立刻重算。
2.3 Simulink里搭主电路的实用建议
搭建主电路时,我建议直接用Simscape Electrical里的Specialized Power Systems库,里面的功率器件、变压器和测量模块都基于真实物理模型,比纯Simulink数学模块贴近实际。原边和副边的全桥用“Universal Bridge”模块就可以,选MOSFET,内置反并联二极管,这样反向续流工况也能正确模拟。
变压器建模是第一个容易踩坑的地方。Simulink里的变压器模块需要设置变比、励磁电感和漏感。一个靠谱的建模方式:用理想变压器外加强励磁电感Lm的并联支路,漏感直接串联在谐振腔里当作Lr的一部分。这样参数控制最直接,不会和模块内部寄生参数纠缠不清。特别注意高频变压器模块的饱和模型不一定需要,仿真初期可以用线性变压器模型把注意力集中在控制环路上。
死区时间一定不能省。全桥上下管如果直通,仿真会直接提示错误或者电流爆炸。Universal Bridge模块里可以设置死区,我一般按开关频率在100kHz级别来算,设置几百纳秒量级的死区,既能保证安全,又不会太影响输出波形。初始阶段的仿真步长也要照顾好,最大步长不要超过0.1微秒,否则动态波形会明显失真。
3. 闭环控制链路:从采样到PWM
3.1 控制策略选择与总体框架
CLLLC的闭环主流方案是变频控制(PFM),也就是保持占空比固定为50%,通过调节开关频率来控制输出。相比定频移相控制,PFM更贴近谐振变换器的物理本质:频率变了,增益就变。而且在宽负载范围内作PFM控制相对容易保留软开关特性,调试负担小很多。
总体控制框架是典型的电压外环结构。采样输出电压,和参考值比较,误差经过PI控制器,输出频率指令,频率指令再转成四路带死区的PWM信号。如果需要在充电过程中限流,就再叠一个电流内环,或直接切换到恒流控制。对于双向应用,正向和反向各准备一套控制环路,模式切换真没必要搞太高深的算法,把两套PI的输出通过模式信号做二选一,就能满足大多数仿真验证需求。
这有个和普通变换器完全不同的地方:CLLLC的频率调节方向是反着的。输出电压偏低时,需要降低开关频率来提升增益;输出电压偏高时,则要升高频率。PI输出和最终频率指令之间要做一个反向映射,否则环路一闭合就朝错误方向跑,系统必发散。
3.2 采样与滤波的建模
控制环路不能对开关纹波敏感,采样值必须经过滤波。谐振变换器的开关频率在100kHz附近,而控制通带通常只想保留几百赫兹到几千赫兹的动态信息,所以低通滤波器的截止频率取10kHz以内比较合理。我用Simulink里的Transfer Fcn做一阶低通滤波,时间常数取1/(2π×1000)量级就够了。滤波太深会把相位裕度吃光,滤波太浅又会让PI看到大量高频分量,这个截止频率需要根据开关频率带宽来权衡。
电压和电流测量模块可以直接从Simscape Electrical里拖出来,测量信号是Simulink的标量信号,可以直接参与加减运算。特别提醒一点,谐振电容两端的电压、谐振电感的电流这些内部波形,调试时不能只看输出侧,它们在判断软开关状态时至关重要。早期调试把采样滤波和测量模块接好,之后调参效率会高很多。
3.3 PI控制器参数与频率映射
PI参数在仿真的不同阶段有完全不同的整定策略。开环阶跃响应先看主电路的固有特性,把滤波环节时间常数纳入考虑后,初步给定Kp和Ki,再根据环路的响应速度做扰动测试。我的初衷会放小一点,比如Kp取0.5,Ki取200(以误差电压为输入,输出为频率偏移量),然后观察动态过程再逐次调整。
PI输出需要限幅,限幅就对应了频率的上限和下限。这个限幅范围怎么定很有讲究:下限不能太低,太低会进入容性工作区,软开关丢失甚至波形畸变;上限也不必太高,高于谐振频率越多增益越小。实操经验是把频率变化范围限制在谐振频率的0.7倍到1.3倍之间,比如谐振100kHz时,频率限幅设在70kHz到130kHz,这样能杜绝PI积分跑到物理上毫无意义的工作点。
流程上一定要做抗积分饱和处理。Simulink的PID Controller模块自带限幅和抗积分饱和选项,直接启用就行。我自己习惯把“限幅”和“反向计算抗饱和”都打开,避免在双向切换或启动阶段积分器大幅度堆积。
3.4 从频率指令到四路PWM信号
这是不少初学者卡壳的地方:PI输出的是频率数字量,怎么变成MOSFET的驱动信号?最省事的方案是用Simscape Electrical里的PWM Generator,把它配置为DC-DC模式,频率端口输入PI输出的频率指令,模块内部自动生成两路互补PWM,还能设置死区。双向全桥需要四路,用两个PWM Generator分别驱动原边和副边全桥即可。
如果想对PWM生成逻辑有完全的控制权,也可以自己搭比较器方案。用周期和频率成反比的锯齿波发生器,让50%占空比信号在频率变化时自动跟随。这种方案能做得很灵活,但仿真里引入代数环的概率也高,需要特别注意在反馈通道后面加内存块或单位延迟来打断代数环。对于第一版验证模型,我更推荐用现成的PWM Generator,先把控制逻辑跑通,再谈精确实现。
3.5 双向模式的切换逻辑
双向控制的核心难点是模式切换的过渡时刻。双向运行时需要一个逻辑信号来标记当前模式:正向充电模式,选通正向电压控制器的输出;反向放电模式,选通反向电压控制器的输出。这个二选一逻辑在Simulink里用一个带判断的Switch就能实现。
真正的坑在切换瞬间的频率突变。正向模式里PI输出频率可能是90kHz,切换瞬间反向PI的输出初始值如果设成80kHz,驱动频率会跳变,电感电流立刻冲高甚至触发仿真错误。我的做法是切换时给待选通的控制器输出赋一个初始值,让它的频率指令等于当前正在工作的频率值。这个技巧能让切换过程平顺很多,是双向闭环控制调试中最值得重视的细节之一。
4. 调试流程实录:从开环扫频到双向切换
4.1 开环扫频确认工作点
拿到参数模型后的第一件事不是闭环,而是开环跑。把频率固定在某一个值,比如100kHz,跑完一个稳态,记录输出电压和电流波形。再换几个频率点,比如80kHz、90kHz、110kHz、120kHz,记录每个频率对应的输出值。这能画出信任的增益曲线,也验证主电路建模是否正确。
我实际按这个流程走下来,明显能看出低于谐振频率时输出电压更高,高于谐振频率时输出电压更低,和理论完全吻合。如果开环扫出来的结果和理论曲线差异很大,先别急着调PI,回头检查变压器匝比、谐振参数折算这些基础设置。开环数据足够可靠了,后续的闭环整定才有意义。
开环调试期间还要顺手确认软开关状态。通过观察开关管漏源电压和电流的重叠关系,可以判断ZVS是否成立。如果频率离谐振点太远,波形会显示硬开关特征。闭环参数设计要把工作范围尽量固定在软开关区域内,这是提高效率的前提。
4.2 闭环单步调试与PI整定
闭环投入后,我习惯先做给定值阶跃测试。把参考电压设为250V,给定一个额定负载,观察启动波形。第一次闭环很可能出现两种情况:要么频率指令瞬间冲到限幅值,输出完全失控;要么系统振荡,电压围绕参考值上下波动。这两种现象分别对应PI参数太小和PI参数太大。
正向调试时,把PI的Kp和Ki由小往大慢慢试。Kp先给一个能让系统在阶跃后朝正确方向变化的量级,然后微调,让响应不出现明显超调。Ki确保稳态误差归零,它加大会让输出更快回归参考值,但也会降低相位裕度。我的目标是让输出在几毫秒内接近参考值,且不来回振荡超过两三次。
由于功率级的响应远高于控制环,仿真中可以直接用较小步长观测到整个过程。波形调整到位后再加入负载突变测试,看闭环能不能把输出电压按回参考值。负载从满载跳到10%时,如果电压波动太大,优先考虑给频率限幅范围缩小一点,因为轻载时增益曲线更平缓,频率变化对电压的影响变弱,PI动作会显得很“无力”。
4.3 双向切换测试完成闭环验证
正向验证通过后,把参考电压或电流改成反向模式,开始测反向运行。这里最容易出现的现象是切换瞬间的电压过冲和电流尖峰。按前文的方法给反向PI赋初值,让切换前频率不跳变,再观察波形,基本能压住过冲。
我测试时切换条件直接用一个阶跃信号在0.02秒处翻转模式标志。正向0.02秒前是250V低压侧输出,反向0.02秒后变成高压侧400V母线稳压,同时让电池侧功率回馈到母线。这个过程中没有出现振荡发散,输出波形有短暂调节过程后重新进入稳态,就说明双向控制逻辑的通路是完整的。
波形验收除了电压,还必须看原边和副边开关管的驱动信号和电流波形。模式切换后软开关工况是否依然成立,直接关系到产品化后能否应付实际效率测试。我一般会调出谐振电流波形,确认它没有出现严重畸变。
5. 常见问题与排查技巧速查
5.1 仿真不收敛或直接报错
仿真刚开始跑就报错,九成是最大步长设置不合理或存在代数环。安全做法:把求解器切换到变步长模式,相对容差设到1e-4,最大步长手动限制在1e-7秒以内,这样100kHz开关周期内能采样足够多的点。代数环问题则可以沿控制回路找有没有直接信号直通的环节,在反馈通道插入Memory或Unit Delay就能切断。
5.2 输出电压纹波大或闭环振荡
纹波大的首要检查点是采样滤波。如果截止频率设得太高,PI会跟着开关频率的动作来回动,输出频率指令就不光滑,最终表现为电压纹波大。把滤波截止频率压到几个千赫兹,通常能显著改善。闭环振荡则优先检查PI参数是否过高,特别是积分增益Ki,它最容易把系统推到临界稳定状态。
5.3 启动电流尖峰明显
谐振变换器启动瞬间,如果没有软启动控制,谐振电容会像短路一样吸收大电流。解决方式是在闭环的给定频率路径上做斜坡:启动时先把频率给到1.3倍谐振频率,让增益处于低位,再在10到20毫秒内平滑降到接近谐振频率的工作点。PI输出限幅配合频率斜坡,可以让启动电流控制在合理范围内。
| 现象 | 可能原因 | 处理手段 |
|---|---|---|
| 仿真报不收敛 | 步长过大或代数环 | 限制最大步长,插入Memory |
| 电压纹波大 | 采样滤波不足 | 降低低通截止频率 |
| 闭环持续振荡 | PI参数过大 | 降低Kp、Ki,打开抗饱和 |
| 启动浪涌电流 | 没有软启动 | 频率斜坡从高频扫到工作点 |
| 轻载电压漂移 | 频率限幅范围过宽 | 收窄限幅或切换间歇模式 |
| 双向切换过冲 | PI初始化未同步 | 切换时保留当前频率作为初始值 |
5.4 双向切换瞬间的冲击电流
这个问题在模型里可能不像实物那么严重,但趋势是一致的。切换瞬间如果两套PI的输出频率差异大,谐振电流会产生明显冲击。我个人的排查思路是:把切换前的频率值打出来,再和后选的控制器初始输出比对。尽量让它们一致。另外切换的同时设置一个短暂的频率斜坡,不让模式选择信号跳变后立刻全速运行,过渡会更顺。
调试双向流程时,我还会刻意观察切换后输出侧的功率方向是否在第一时间翻转。在Simulink里有直接的功率计算模块,或者直接用电压和电流乘积来表示瞬时功率。这个值从正变负的过程如果平滑,说明控制策略没有大的方向性问题。
最后分享一点实际体会。CLLLC的闭环仿真,最大的难点反而不在控制器本身,而在对主电路频率特性的理解。搭模型、调PI,一步步都离不开“频率调高增益降、频率调低增益升”这条主线。参数计算偏差、变压器漏感设置不对、基础建模粗糙,最后都会反馈到波形上,掩盖真正的闭环问题。先把开环工况摸透,再用PI一点一点把环抱紧,整个过程就会顺很多。如果最终的目标是产品样机,仿真阶段可以多保存几组不同参数下的边界工况数据,这些数据在后续硬件调试时非常有用。