LLC谐振变换器这几年在电源圈的热度一直没降过,从服务器电源、车载OBC到光伏微逆、LED驱动,几乎只要涉及中高功率的高效隔离变换,就绕不开它。但很多刚接触的朋友会卡在一个尴尬的位置:原理书看了一堆,增益曲线也背了,真到动手做一台样机,却发现轻载电压飘、ZVS丢失、同步整流炸管,问题一个接一个。核心原因往往不在拓扑本身,而在于控制方案没选对、参数没算透、数字控制的时序没抠细。
这篇内容我想把LLC数字控制方案这件事从头到尾讲清楚。所谓数字控制,就是用MCU或DSP替代传统的模拟控制芯片,通过软件实现频率调节、死区管理、软启动、保护逻辑和通信接口。它解决的是模拟方案灵活性差、参数难调、保护单一的问题,适合有一定电源基础、准备把LLC从"能跑"做到"跑稳"的工程师,也适合想理解数字电源控制逻辑的嵌入式开发者。下面我会围绕为什么选数字控制、核心原理、参数计算、代码实现和实测踩坑几个维度展开,尽量把每个决策背后的逻辑说透。
1. 为什么LLC要从模拟控制转向数字控制
1.1 模拟控制芯片的天花板在哪里
早些年做LLC,主流方案是用类似L6599、ICE2HS01G这类专用模拟控制芯片。它们把压控振荡器、死区生成、软启动、过流保护都集成在一颗芯片里,外围加几个电阻电容就能跑起来,开发周期短,成本也低。我最早做的一款200W LED驱动就是用的这类方案,两周就点亮了,当时觉得挺香。
但项目做多了就会发现模拟方案的几个硬伤。第一是频率调节范围有限,模拟芯片的VCO线性区通常就那么一段,想覆盖宽输入宽输出场景,比如光伏那种输入电压从200V到450V波动的场合,频率要拉得很开,模拟方案就很难兼顾。第二是保护逻辑死板,过流保护点靠外部电阻设定,一旦要改就得动硬件,而且很难做分级保护,比如先降频再打嗝最后锁死这种策略,模拟芯片基本实现不了。第三是参数一致性差,电阻电容有温漂,批量生产时每台机器的谐振频率点都会有偏差,导致效率曲线离散。
还有一个容易被忽略的点:模拟方案很难做状态监控和通信。现在很多电源要求上报输入电压、输出电流、温度、故障码,甚至要支持在线升级固件,这些用模拟芯片根本没法做,必须外挂一颗MCU,那还不如直接让MCU把控制也接管了。
1.2 数字控制带来的实际收益
换成数字控制之后,最直观的变化是所有参数都变成了代码里的变量。谐振频率、死区时间、软启动斜率、保护阈值,改一个数字重新烧录就行,不用动烙铁。我做过一个项目,客户中途要求把输出从48V改成54V,模拟方案得重新算谐振腔、换变压器,数字方案我只改了输出电压采样系数和频率上限,半天就搞定了。
第二个收益是控制策略可以做得更聪明。比如轻载时自动进入间歇模式(Burst Mode)降低开关损耗,重载时切回连续调频,过载时先降频再限流,这些逻辑用状态机写出来非常清晰。模拟芯片想实现类似效果,得搭一堆比较器和逻辑门,可靠性还差。
第三个收益是一致性和可追溯性。数字控制下,每台机器的控制参数完全一致,生产效率曲线重合度高。而且可以在出厂时把参数写进Flash,后期通过通信读取运行数据,做故障追溯和寿命预测。这一点在工业电源和车载电源里越来越被看重。
当然数字控制也不是没代价。MCU的ADC采样延迟、中断响应时间、PWM分辨率都会影响控制精度,尤其是LLC这种对频率极其敏感的拓扑,频率分辨率不够会导致输出电压纹波大。所以选型时得算清楚,后面我会专门讲。
2. LLC谐振变换器的工作机理与增益特性
2.1 谐振腔的两个谐振频率
LLC的名字来自它的谐振腔结构:两个电感(谐振电感Lr和励磁电感Lm)加一个电容(谐振电容Cr)。这里有两个谐振频率,一个是Lr和Cr谐振的串联谐振频率fr1,另一个是Lr、Lm、Cr一起谐振的并联谐振频率fr2。公式分别是:
- fr1 = 1 / (2π√(Lr·Cr))
- fr2 = 1 / (2π√((Lr+Lm)·Cr))
因为Lm通常比Lr大好几倍,所以fr2明显低于fr1。实际工作时,开关频率fs一般工作在fr1附近或略低于fr1的区域,这个区域既能实现原边开关管的ZVS,又能让副边整流管实现ZCS,效率最高。
理解这两个频率是理解LLC增益曲线的钥匙。当fs等于fr1时,谐振腔阻抗最小,增益接近1;当fs低于fr1时,进入感性区,增益大于1,可以升压;当fs高于fr1时,进入容性区,增益小于1,但这时候原边会失去ZVS,所以一般不让它工作在这个区域。
2.2 增益曲线怎么读
LLC的增益曲线通常以归一化频率fn=fs/fr1为横轴,以电压增益M为纵轴,不同的品质因数Q对应一组曲线。Q值由负载决定,负载越重Q越大,曲线峰值越低。这里有几个关键结论:
- Q值越大,峰值增益越低。这意味着重载时想升压会更困难,所以谐振腔设计要保证最大负载下仍有足够的增益裕量。
- 每条曲线都有一个峰值点,峰值点左侧是容性区(ZVS丢失),右侧是感性区(ZVS保持)。设计时要保证全负载范围内工作点都在峰值右侧。
- 峰值点对应的频率随Q增大而升高,所以重载时最大增益点会往fr1靠近。
我一般会在设计时留20%到30%的增益裕量。比如输入电压最低时需要的最大增益是1.2,那我会把谐振腔设计成峰值增益能到1.5左右,这样即使批量有偏差也不会掉出感性区。
2.3 ZVS是怎么实现的
ZVS(零电压开通)是LLC高效率的核心。它的实现靠的是死区时间内谐振电流对开关管结电容的充放电。具体来说,当上管关断后,谐振电流还在流动,它会抽走下管的结电容电荷,把下管漏源电压拉到零,这时候再开通下管,就实现了零电压开通。
要保证ZVS,关键是死区时间内谐振电流必须足够大,能把结电容电荷抽完。这个电流大小和励磁电感Lm有关,Lm越小,励磁电流越大,ZVS越容易实现,但Lm太小会导致导通损耗增加。所以Lm的选取是个折中:既要保证轻载时也有足够励磁电流维持ZVS,又不能太小导致效率下降。
实测中我遇到过轻载ZVS丢失的问题,波形上能看到开通时漏源电压还没降到零,导致开通损耗剧增,管子发热严重。解决办法通常是减小Lm或者适当增大死区时间,但死区太大又会降低有效占空比,影响增益。这个平衡点得靠实测调。
3. 数字控制方案的核心架构拆解
3.1 主控芯片选型:MCU还是DSP
数字LLC控制器的选型主要看三个指标:PWM分辨率、ADC采样速度和运算能力。PWM分辨率决定了频率调节的精细度,LLC对频率很敏感,分辨率不够会导致输出电压纹波大。一般要求PWM频率分辨率至少能到100kHz以上,也就是时钟周期小于10ns。ADC采样速度决定了控制环路的响应带宽,LLC的环路带宽通常在几kHz到十几kHz,所以ADC采样率至少要几十kHz。
常见的选型有两条路。一条是用专用数字电源MCU,比如TI的C2000系列(如F28004x、F28002x),它们有高分辨率PWM(HRPWM)、高速ADC和硬件除法器,专门为电源控制设计,跑LLC非常合适。另一条是用通用MCU,比如STM32G4系列,它也有HRTIM高分辨率定时器和快速ADC,成本比C2000低一些,适合中小功率场合。
我个人的经验是,如果功率在500W以上、对效率和控制精度要求高,优先选C2000;如果是几百瓦以内、成本敏感,STM32G4完全够用。选型时一定要看数据手册里的PWM分辨率和ADC转换时间,别只看主频。
3.2 采样与控制环路设计
LLC数字控制需要采样的量包括:输入电压、输出电压、谐振电流(或原边电流)、温度。输出电压采样用于闭环调节,谐振电流采样用于过流保护和ZVS检测,输入电压用于前馈和欠压保护。
采样电路的设计有几个坑。第一是采样延迟,ADC从启动转换到结果可用有几百纳秒到几微秒的延迟,如果控制环路带宽高,这个延迟会引起相位裕度下降。解决办法是尽量用硬件触发ADC,在PWM特定时刻采样,减少软件延迟。第二是采样噪声,LLC的开关噪声很大,采样信号要加RC滤波,但滤波太狠又会增加延迟,得折中。
控制环路一般用电压单环或电压外环加电流内环。电压单环简单,适合负载变化不剧烈的场合;电流内环能提高动态响应,但实现复杂。我做的多数项目用电压单环加前馈就够了,输入电压变化时通过前馈直接调整频率,减轻反馈环的压力。
3.3 频率调节与软启动策略
数字控制的核心是用定时器生成可变频率的PWM。具体做法是:定时器工作在连续计数模式,周期寄存器决定开关频率,占空比固定接近50%(半桥)或50%(全桥),通过改变周期寄存器的值来调频。
软启动策略很关键。LLC启动时如果直接给满频,谐振腔会产生巨大的冲击电流,可能炸管。正确的做法是从高频开始,逐渐降低频率。因为高频时增益低,输出电压从零慢慢建立,谐振电流可控。软启动时间一般设几十毫秒,具体看输出电容大小。
我一般把软启动分成三段:第一段从最高频降到fr1附近,快速建立输出电压;第二段在fr1附近停留,让输出电容充电;第三段进入闭环调节。这样既快又稳。
4. 谐振腔参数计算与数字实现细节
4.1 从规格到参数的完整计算链路
假设要设计一台400W、输入400V、输出48V/8.3A的LLC。计算步骤如下:
第一步,确定变压器匝比n。LLC通常工作在fr1附近,此时增益接近1,所以匝比约等于输入输出比。n = 400 / (48 + 0.7) ≈ 8.2,取整为8。这里0.7是副边整流管压降。
第二步,确定最大和最小增益。输入电压范围假设是380V到420V,考虑一定裕量,取360V到440V。最大增益Mmax = n·(Vout+Vf) / Vin_min = 8×48.7 / 360 ≈ 1.08。最小增益Mmin = 8×48.7 / 440 ≈ 0.885。实际设计时我会把Mmax放大到1.3左右留裕量。
第三步,确定谐振频率fr1。一般取100kHz左右,兼顾效率和磁元件体积。取fr1 = 100kHz。
第四步,确定Q值和Lm/Lr比值。Q值一般取0.4到0.7,Lm/Lr取3到7。我通常取Q=0.5,Lm/Lr=5。
第五步,计算谐振腔参数。先算等效负载电阻Rac = 8n²/π² × (Vout²/Pout) = 8×64/9.87 × (2304/400) ≈ 298Ω。然后Lr = Q·Rac / (2π·fr1) = 0.5×298 / (6.28×100k) ≈ 237μH。Cr = 1 / (2π·fr1·Q·Rac) = 1 / (6.28×100k×0.5×298) ≈ 10.7nF。Lm = 5×Lr ≈ 1.18mH。
这些值算出来后,还要根据实际磁芯和电容标称值微调。比如Cr用两个5.6nF并联得到11.2nF,Lr通过变压器漏感加外部电感凑。
4.2 数字控制中的频率分辨率问题
LLC对频率分辨率的要求很高。假设fr1=100kHz,定时器时钟是100MHz,那周期寄存器的值就是1000。如果频率要调到101kHz,周期值变成990,变化了10个计数,分辨率约1%。这个分辨率下,输出电压的调节精度大概在1%左右,对多数场合够用。
但如果定时器时钟只有50MHz,周期值只有500,调1kHz频率只变5个计数,分辨率2%,输出电压纹波就会明显变大。所以选MCU时一定要看定时器时钟频率,最好能到100MHz以上,或者用HRPWM把分辨率提高到皮秒级。
我在一个项目里用过某款通用MCU,定时器时钟只有48MHz,结果轻载时输出电压纹波有200mV,后来换成带HRPWM的型号,纹波降到50mV以内。这个教训说明频率分辨率不是小事。
4.3 死区时间与ZVS的数字配合
死区时间在数字控制里是通过定时器的死区寄存器设置的,单位是时钟周期。死区时间太短,上下管直通风险大;太长,ZVS可能来不及完成,而且有效占空比下降。
死区时间的计算要看开关管的结电容和励磁电流。经验公式是:td ≥ 2·Coss·Vin / Im,其中Coss是开关管输出电容,Im是励磁电流峰值。假设Coss=200pF,Vin=400V,Im=0.5A,那td ≥ 2×200p×400 / 0.5 = 320ns。实际取400ns到500ns留裕量。
数字实现时,死区时间可以在代码里动态调整。比如轻载时适当增大死区保证ZVS,重载时减小死区提高效率。这个策略我在几个项目里用过,效果不错。
5. 实测中那些文档不会告诉你的坑
5.1 轻载电压飘高与间歇模式
轻载时LLC的增益曲线会变得很陡,频率稍微一变,输出电压就飘。更麻烦的是,轻载时如果还维持连续调频,开关损耗占比会很大,效率掉得厉害。
我遇到过一个案例:输出48V,负载从满载降到5%时,输出电压飘到52V,而且效率只有70%。排查后发现是轻载时工作频率已经接近fr1,增益调节能力很弱。解决办法是引入间歇模式:当负载低于某个阈值时,让控制器间歇性地工作,输出电压降到下限就停一会儿,降到上限再启动。这样平均开关次数大幅减少,效率能回到85%以上。
间歇模式的实现要点是设置合理的滞环窗口,窗口太小会频繁启停,窗口太大纹波又大。我一般设输出电压的±2%作为滞环。
5.2 同步整流的时序陷阱
副边用同步整流能显著提高效率,但时序不对会炸管。核心问题是同步整流管的开通和关断必须与原边开关管严格配合。如果同步整流管开通太早,原边还没建立电流,副边电容会反向放电;如果关断太晚,副边电流反向时管子还开着,会形成直通。
数字控制下,同步整流时序可以通过PWM通道的相位关系精确控制。我一般让同步整流管的开通延迟原边管开通约100ns,关断提前约50ns。这个值要根据实际波形调,不同管子、不同布局都不一样。
还有一个坑是轻载时同步整流管的反向电流。轻载时副边电流会反向,如果同步整流管还开着,能量会倒灌回原边,效率反而下降。解决办法是轻载时切换到二极管整流模式,或者用电流检测判断过零后关断。
5.3 保护逻辑的分级设计
数字控制的一大优势是保护逻辑可以做得精细。我一般设计三级保护:
- 一级保护:过流超过1.2倍额定值,先降频限流,给系统一个恢复机会。
- 二级保护:过流超过1.5倍且持续10ms,关闭PWM,进入打嗝模式,500ms后尝试重启。
- 三级保护:过流超过2倍或短路,立即锁死,需要断电重启。
这套逻辑用状态机实现非常清晰,而且每级的阈值和时间都可以在代码里改。模拟方案想实现类似效果,得搭一堆外围电路,可靠性还差。
5.4 采样噪声与滤波的平衡
LLC的开关噪声会耦合到采样信号上,尤其是谐振电流采样,波形上全是毛刺。如果直接拿这个信号做过流判断,会频繁误触发。
我的做法是硬件RC滤波加软件滑动平均。硬件上在采样电阻后面加一个截止频率约1MHz的RC,把高频毛刺滤掉;软件上做4点滑动平均,进一步平滑。但滤波会引入延迟,所以过流保护不能只靠滤波后的信号,还要有一个快速比较器通道做硬件保护,响应时间在微秒级。
这个"硬件快保护加软件慢保护"的组合,我在多个项目里验证过,既能防误触发,又能保证真过流时快速切断。
6. 从代码到样机:一个可复现的实现路径
6.1 状态机框架的搭建
数字LLC控制器的软件核心是一个状态机,我一般分成这几个状态:待机、软启动、闭环运行、间歇模式、故障保护、故障恢复。每个状态有明确的进入条件和退出条件,状态之间的切换由事件驱动。
待机状态下PWM关闭,等待启动命令。软启动状态下频率从最高逐渐降低,同时监测输出电压和电流。当输出电压达到目标值的90%时,切换到闭环运行。闭环运行中如果负载降到阈值以下,切换到间歇模式。任何状态下如果触发保护,立即跳到故障保护,根据故障等级决定是否自动恢复。
这个框架的好处是逻辑清晰,每个状态只关心自己的事,调试时也容易定位问题。我建议新手先把状态机画出来再写代码,能省很多调试时间。
6.2 关键中断服务程序的写法
LLC控制对实时性要求高,关键逻辑要放在中断里。我一般用两个中断:PWM周期中断和ADC转换完成中断。
PWM周期中断在每个开关周期开始时触发,用来更新频率和占空比,执行控制环路计算。这个中断的优先级最高,执行时间要尽量短,一般控制在几微秒内。ADC转换完成中断用来读取采样值,做滤波和保护判断,优先级稍低。
中断里要注意避免浮点运算,因为浮点运算耗时长。我一般把增益计算、PID运算都转成定点数,用Q格式表示。比如Q15格式,把-1到1的浮点数映射到-32768到32767的整数,运算速度快很多。
6.3 调试工具与波形观测
数字控制调试离不开示波器,但光看模拟波形还不够,还要能看代码里的变量。我一般用DAC输出加示波器的方式,把关键变量(如频率、输出电压、电流)通过DAC输出,在示波器上实时观测。这样能把代码逻辑和实际波形对应起来,定位问题非常快。
另外,串口打印也很有用,但要注意打印不能放在中断里,否则会打乱时序。我一般用DMA把数据搬到缓冲区,在主循环里慢慢打印。
6.4 从空载到满载的完整测试流程
样机做出来后,测试要按顺序来,不能一上来就满载。我的流程是:
- 空载上电,确认软启动正常,输出电压能建立,没有过冲。
- 10%负载,观察ZVS波形,确认死区时间合适。
- 50%负载,测效率,看是否达到设计值。
- 满载,测温升,确认管子、变压器、谐振电容温度在范围内。
- 动态负载,从10%到90%跳变,看输出电压跌落和恢复时间。
- 保护测试,模拟过流、短路、过温,确认保护逻辑正确动作。
每一步都要记录波形和数据,方便对比。我见过有人跳过空载直接满载,结果软启动没调好,一上电就炸管,损失惨重。
7. 几个容易被忽视的设计细节
7.1 谐振电容的选型与损耗
谐振电容Cr流过的电流是正弦波,有效值可能达到十几安培,所以不能用普通电容。要选高频低损耗的薄膜电容,比如聚丙烯电容,而且耐压要留足裕量,一般取谐振腔最大电压的1.5倍以上。
我见过有人用普通CBB电容,结果跑几个小时就发热鼓包。谐振电容的损耗角正切要小,ESR要低,否则损耗会很大。另外,电容的温升也要测,超过70度就要考虑换型号或并联。
7.2 变压器漏感的利用与补偿
LLC的谐振电感Lr通常由变压器漏感加外部电感组成。漏感是变压器固有的,但一致性差,批量生产时每台机器的漏感可能差10%以上。如果完全靠漏感做谐振,批量一致性会很差。
我的做法是漏感只占Lr的一部分,比如30%到50%,剩下的用外部电感补足。外部电感用磁环绕制,感量稳定,这样整体一致性就好很多。外部电感的磁芯要选低损耗的,比如铁硅铝或铁镍钼。
7.3 驱动电路的隔离与抗干扰
LLC的原边是半桥或全桥,上管的驱动需要隔离。数字控制下,PWM信号从MCU出来,经过隔离驱动芯片送到开关管。隔离驱动芯片的传输延迟要小,一般要求小于100ns,否则会影响死区精度。
另外,驱动回路的布局很关键。驱动电阻要尽量靠近开关管栅极,驱动回路面积要小,避免引入干扰。我见过因为驱动走线太长导致开关管误导通,上下管直通的案例,管子炸了一片。
7.4 热设计与效率的权衡
LLC的效率虽然高,但损耗还是集中在几个地方:原边开关管的开关损耗和导通损耗、副边整流管的导通损耗、变压器的铁损和铜损、谐振电感的损耗。数字控制能通过优化死区、调整频率来降低开关损耗,但不能消除导通损耗。
热设计时要重点照顾这几个发热源。开关管要加散热片,变压器要留散热空间,谐振电感要用低损耗磁芯。我一般会在满载跑两小时,用热像仪看温度分布,哪里热就改哪里。
8. 数字控制方案的扩展方向
8.1 三相LLC的均流控制
三相LLC是把三个LLC单元交错并联,每相相差120度,能大幅降低输出纹波和输入电流纹波。数字控制下,三相的均流可以通过调整每相的频率或占空比来实现。我做过一个3kW的三相LLC,用一颗C2000控制,三相电流不平衡度控制在5%以内。
均流的关键是每相独立采样电流,然后微调频率。频率高的相输出功率小,频率低的相输出功率大,通过PI调节让三相电流相等。这个逻辑用数字实现很自然,模拟方案几乎做不到。
8.2 宽禁带器件与数字控制的配合
碳化硅和氮化镓器件开关速度快,能大幅提高LLC的开关频率,从而减小磁元件体积。但它们对驱动和控制的时序要求更严,死区时间要精确到纳秒级。数字控制的高分辨率PWM正好能发挥优势,配合宽禁带器件能把功率密度做得很高。
不过宽禁带器件的成本还比较高,目前主要用在服务器电源、车载充电机这些对功率密度要求极高的场合。随着成本下降,未来会越来越普及。
8.3 数字控制与通信接口的融合
现在的电源越来越多要求支持PMBus、CAN、Modbus等通信接口,数字控制天然适合做这件事。我一般会在控制代码里留出通信任务,用空闲的中断或主循环处理。这样电源不仅能供电,还能上报状态、接受远程指令、在线升级固件。
这个方向在数据中心电源和储能变流器里特别明显,客户要求电源能接入能源管理系统,实现智能调度。数字控制方案在这方面有天然优势。
最后分享一个我在实际调试中的小技巧:LLC的很多问题在波形上都有征兆,比如ZVS丢失时开通波形会有明显的电压台阶,同步整流时序不对时副边电流会有尖峰。养成每次调试都存波形的习惯,建立自己的波形库,下次遇到类似问题就能快速定位。另外,数字控制的代码一定要加版本管理,每次改参数都记录改了什么、为什么改,不然改多了自己都忘了。这些经验都是踩坑踩出来的,希望能帮你少走点弯路。