ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LLC谐振变换器数字控制方案:从原理到样机调试的工程实践

LLC谐振变换器数字控制方案:从原理到样机调试的工程实践 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π√((LrLm)·Cr))因为Lm通常比Lr大好几倍所以fr2明显低于fr1。实际工作时开关频率fs一般工作在fr1附近或略低于fr1的区域这个区域既能实现原边开关管的ZVS又能让副边整流管实现ZCS效率最高。理解这两个频率是理解LLC增益曲线的钥匙。当fs等于fr1时谐振腔阻抗最小增益接近1当fs低于fr1时进入感性区增益大于1可以升压当fs高于fr1时进入容性区增益小于1但这时候原边会失去ZVS所以一般不让它工作在这个区域。2.2 增益曲线怎么读LLC的增益曲线通常以归一化频率fnfs/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它们有高分辨率PWMHRPWM、高速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·(VoutVf) / 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.7Lm/Lr取3到7。我通常取Q0.5Lm/Lr5。第五步计算谐振腔参数。先算等效负载电阻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.2nFLr通过变压器漏感加外部电感凑。4.2 数字控制中的频率分辨率问题LLC对频率分辨率的要求很高。假设fr1100kHz定时器时钟是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是励磁电流峰值。假设Coss200pFVin400VIm0.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丢失时开通波形会有明显的电压台阶同步整流时序不对时副边电流会有尖峰。养成每次调试都存波形的习惯建立自己的波形库下次遇到类似问题就能快速定位。另外数字控制的代码一定要加版本管理每次改参数都记录改了什么、为什么改不然改多了自己都忘了。这些经验都是踩坑踩出来的希望能帮你少走点弯路。
返回列表