尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

全桥LLC谐振变换器设计实战:双环竞争控制与960W电源实现

全桥LLC谐振变换器设计实战:双环竞争控制与960W电源实现 去年调完这台48V/20A全桥LLC谐振变换器波形在示波器上拉成一条直线的时候我第一反应不是高兴而是想把前几个月踩的坑都记下来。这台电源最开始用的是硬开关全桥后来被发热逼着转向了LLC控制策略最开始沿用了BUCK那套电压外环电流内环结果在CC/CV切换时反复振荡最后才换成了标题里写的“电压电流双环竞争控制”。现在这套方案已经稳定跑在960W的负载下说明文档也整理到了可以直接照着复现的程度。写这篇文章就是把从拓扑选型到控制环路实现、再到文档整理的完整思路捋一遍给同样在调LLC的工程师一个参考。1. 为什么是“全桥LLC”从硬开关全桥被效率逼到谐振这条路上1.1 先从硬开关全桥的“三座大山”说起最初做这台电源时我选的是传统硬开关全桥母线电压380V左右开关频率定在90kHz。频率不敢再高因为硬开关全桥有三个绕不开的问题。第一是原边开关管的开关损耗IGBT在400V母线关断时拖尾电流明显MOSFET的Coss充放电损耗也会随频率直线上升第二是副边整流二极管的反向恢复输出端整流二极管在关断瞬间会产生很大的反向恢复尖峰需要额外加RC吸收效率的和EMC都很受影响第三是变压器漏感硬开关全桥的漏感能量会在开关管关断时产生电压尖峰必须靠RCD钳位电路吸收这部分能量全部变成了热。这三个问题在大功率段会被指数级放大。1000W的电源效率每低一个点多出来的损耗都在10W以上散热器体积和整机温升完全不是一个概念。我实测第一版硬开关全桥满载效率大概在91%左右而且发热集中在原边开关管和副边整流管上。加散热器、加风道折腾下来依然没有解决本质问题。1.2 LLC怎样把“寄生参数”变成“谐振元件”LLC谐振变换器解决这三个问题的方式很有趣它不跟寄生参数对抗而是把寄生参数变成电路的一部分。变压器的漏感被利用成谐振电感Lr励磁电感参与谐振形成Lm原边开关管利用谐振电流的负向流动实现零电压开通ZVS副边整流二极管在谐振电流过零时自然关断ZCS。这里面最关键的物理过程是开关管开通前谐振电流先把管子输出电容上的电荷抽走使漏源电压降到零此时触发导通就没有了开通损耗。而关断是硬关断但电流相对较小因为励磁电流在关断时刻通常不大。副边整流二极管则在fr以下工作区间内电流降到零后自然关断反向恢复损耗基本被消除。这些软开关特性带来的结果是开关频率可以明显提高磁性元件体积缩小满载效率能轻松做到95%以上。我后来实测这台全桥LLC满载效率为95.2%在轻载时也能维持94%左右比硬开关全桥高了4个百分点。这个差异在千瓦级电源上是决定性的。1.3 为什么大功率必须用全桥而不是半桥LLC有半桥和全桥两种经典结构。半桥LLC的开关管只承受母线电压的一半但原边谐振腔得到的方波电压幅值也只有半桥的一半。同样输出功率下半桥的原边电流是全桥的两倍开关管和变压器原边的电流应力会明显变大而且半桥输入母线电容需要有分压电容中点要处理不均衡电流在大功率场景下会很麻烦。全桥LLC的原边四个开关管分两组对角导通谐振腔两端得到的是幅值为母线电压的方波在相同功率等级下电流应力更低配合移相或对称PWM驱动功率输出能力更强。所以从500W到几千瓦的电源全桥LLC都是更主流的方案。这台960W的电源用全桥拓扑原边谐振电流峰值不到15A开关管电流应力很舒服如果换成半桥这个数字会逼近30A选管和散热都会很头疼。2. LLC的增益曲线和三个工作区间读不懂这张图就做不好频率控制2.1 用基波近似把谐振网络看成阻抗分压器LLC的完整数学模型很复杂但工程上绝大多数设计都用基波近似法FHA来简化。思路是全桥输出的方波电压经过谐振腔传输到副边谐振腔本身是一个选频网络方波里的基波分量经过谐振腔后会被整形送到负载侧的能量主要由基波决定高次谐波贡献很小。所以可以把方波激励近似成正弦波把副边整流和负载折算回原边等效成一个交流电阻R_ac。折算后的交流等效电阻是R_ac 8n² / π² × R_L其中n是变压器原边到副边的变比R_L是实际负载电阻。这个公式在整个设计过程中会反复用到因为Q和增益都跟它挂钩。有了这个等效模型LLC的电压增益可以写成关于归一化频率fnfn fs / fr、电感比KK Lm / Lr和品质因数Q的表达式。Q的定义是Lr与Cr在谐振频率下的特性阻抗除以R_acQ越大表示负载越重。这个表达式具体长这样M 1 / sqrt( [ (1 1/K) - (1/K) × (fr/f)² ]² Q² × (f/fr - fr/f)² )我在工程上很少手工去完整算这个表达式但会用它画增益曲线族观察不同Q值下增益随频率的变化趋势这是LLC设计的核心工具。2.2 工作区间划分与ZVS边界LLC谐振腔有两个特征频率一个是Lr和Cr的串联谐振频率fr另一个是(LrLm)和Cr的谐振频率fr2。按开关频率和这两个频率的关系工作区间可以分成三块工作区间频率范围原边开关管副边整流管工程建议区间1fs fr2可能进入ZCS失去ZVS电流波形畸变尽量避开区间2fr2 fs frZVSZCS重载/满载主要工作区增益可大于1区间3fs frZVS硬关断有反向恢复轻载/过压/限流时使用增益小于1区间2是LLC最理想的工作区域原边和副边都是软开关效率最高这也是满载工作时希望待的地方。区间3虽然原边依然ZVS但副边二极管关断时电流不为零会有反向恢复损耗所以正常重载运行时不会待在这里。区间1要避免进入因为失去ZVS后开关管开通时刻谐振电流不为零开通损耗和发热会急剧恶化严重时直接炸管。2.3 对控制而言最要命的“频率-增益单调性”增益曲线有一个特征在感性区内频率升高增益单调下降频率降低增益单调上升。单调性看似简单却是整个频率控制策略的基础。因为在LLC里唯一的控制自由度就是开关频率频率升则输出电压降频率降则输出电压升方向不能搞反。但这条单调曲线不是全局都成立。在容性区fs过低时增益随频率的变化方向会反转如果控制环路误入这个区域反馈方向就会错误环路直接失控。所以LLC设计必须在增益曲线上标出感性区的边界并把最低工作频率限制在某个安全值以上防止环路或动态响应把频率压进容性区。我在软件里把频率下限设为60kHz低于这个值禁止输出同时加了防止频率跳变的斜坡限幅确保这个方向性问题不会发生。3. 双环竞争不是双环级联电压环和电流环到底在抢什么3.1 经典电压外环电流内环为什么在LLC上水土不服做电源设计的都知道经典串级双环电压外环生成电流指令电流内环快速跟随。这句话在BUCK这类拓扑上没问题因为BUCK是脉宽调制占空比到电感电流的传递函数相对线性电流内环可以做得很宽带宽做到开关频率的1/10都不难。但LLC完全不同。LLC的控制量是开关频率而从频率到谐振电流的传递函数是强非线性的同时谐振电流还跟负载状态强耦合。这时候拉一个高带宽电流内环相位裕度根本做不出来环路很容易在过流瞬间振荡。而且LLC本身有谐振腔储能瞬间过流时谐振电流并不会被环路立刻压住内环“快速跟随”的假设不成立。我第一版就是硬把电压外环电流内环往LLC上套结果是CC/CV切换时环路打架电流限制点附近的电压纹波特别大。后来才放下惯性思维意识到LLC需要的是“并列竞争”而不是“串级嵌套”。3.2 “竞争”的控制数学表达谁输出频率高谁说了算双环竞争控制的核心思想很朴素电压环和电流环各自独立闭环各自输出一个频率指令但最终送到PFM调制器的是一个经过选择的频率选择规则是取两者中的较大值。这里要解释清楚为什么是取较大值。LLC的频率高意味着增益低也就是输出电压和输出电流都被压制。所以当输出电压超过参考值时电压误差为正电压环需要把频率推高来压低输出电压当输出电流超过限流值时电流误差为正电流环需要把频率推高来限制电流最终生效的一定是那个要求频率更高、要求更“狠”的环。用数学表达e_V V_FB - V_REF e_I I_FB - I_LIMITfout max(fV, fI)其中fV是电压环PI输出fI是电流环PI输出。正常稳压状态下输出电流低于限流值e_I为负电流环的输出会自然跑向下限此时电压环的输出更高制定权在电压环手里一旦出现输出短路或过流I_FB越过I_LIMITe_I变正电流环输出快速抬升超过电压环输出后接管频率LLC的频率被推到上限电压和电流都被压住。这套逻辑本质上是恒压恒流CV/CC竞争的推广。充电电源里经常遇到“先恒流再恒压”的需求竞争策略天然能完成这个切换不需要额外的模式判断也不需要切换时重新配置PI参数。3.3 切换是竞争的关键不是平均有人可能会问既然电压环和电流环都在工作那为什么不把两个输出平均一下注意平均是绝对不行的。如果把两个误差信号平均成一个控制量相当于在任何时刻都在折中过流时电流环想压电流电压环却认为电压偏低想升频率平均结果会让两个目标都达不到表现为电流慢慢上升但电压上不去环路进入一种“半吊子”状态。竞争策略就是“两把钥匙最紧的那把生效”。它不追求让每个环都在每个时刻发挥50%的作用而是让状态条件更恶劣的那个环完全接管。这样处理的好处是每个时刻都有一个明确的控制目标波形干净不会出现两个PI互相对抗的极限环。但竞争切换也有一个工程上的副作用在切换点附近fV和fI可能非常接近系统会在CV和CC之间反复跳跃。解决办法是给切换判据加滞回例如要求“电流环输出超过电压环输出且持续数个周期”才算接管而释放条件要求“I_FB明显低于限流值比如95%以下”这样切换特性会有明显迟滞不会被噪声反复触发。4. 一版完整的参数设计过程从960W/48V规格反推谐振槽4.1 先定规格和分母变比的选择参数设计从硬规格开始。这台电源的输入是PFC输出的380V直流母线实际波动范围按360V~400V考虑输出48V/20A额定功率960W。副边整流管压降按1V估算所以输出电压加管压降是49V。变压器变比n是第一个要确定的量它决定了整个增益范围。电压增益的定义是M 2n × (Vo Vf) / Vin。我希望在额定输入390V时增益接近1这样满载时工作频率落在fr附近软开关条件最好。代入n 390 / (2 × 49) ≈ 3.98取整为4。然后算增益范围工况输入电压增益 M满载最低输入360V1.088额定输入满载390V1.005最高输入轻载400V0.98所以谐振腔需要覆盖的增益范围大约是0.98到1.088峰值增益至少要有10%的余量也就是1.2左右。如果变比取大了M_max会整体上移满载时工作点可能被迫离开fr附近取小了最高输入轻载时的最低增益又不够低频率会被迫推得很高。4:1对这个规格来说是合适的选择。4.2 选K和Q算出Lr/Cr/LmK是Lm与Lr的比值Q是负载相关参数。K越大励磁电感相对越大励磁电流越小原边导通损耗越低但增益曲线的峰值会变低ZVS范围也会收窄Q越大代表满载时谐振腔损耗越大增益曲线越平坦峰值增益越低。这是一组相互制约的参数需要折中。我在这个设计中选了K5、满载Q0.4。峰值增益按上文的公式校核在0.7倍谐振频率附近能达到1.2左右满足1.088加余量的要求。确定K和Q后Lr、Cr、Lm就是纯计算变压器原边到副边等效折算后的R_ac为R_ac 8 × 4² / π² × (48/20) 128/9.87 × 2.4 ≈ 31.1Ω谐振频率fr取100kHz由Q的定义式Q sqrt(Lr/Cr) / R_ac再结合fr 1 / (2π × sqrt(Lr × Cr))联立解出Cr 1 / (2π × fr × Q × R_ac) ≈ 128nF取标准值120nFLr 1 / ((2π × fr)² × Cr) ≈ 21μHLm K × Lr ≈ 105μH最终参数表如下项目数值输入母线电压360~400 VDC输出电压48 V额定功率960 W变压器变比4:1:1原边:副边中心抽头谐振频率 fr100 kHz谐振电容 Cr120 nF谐振电感 Lr21 μH励磁电感 Lm105 μH工作频率范围60~180 kHzLr在实机上并没有单独做谐振电感而是通过调整变压器气隙把漏感调整到接近21μHLm靠变压器磁芯自身的励磁电感实现这样少了一个独立磁性元件整机体积更紧凑。4.3 频率范围和软启动区间频率下限和上限需要跟闭环逻辑一起规划。满载最低输入360V时需要1.088的增益对应频率大概在0.75fr附近也就是75kHz留出动态余量后频率下限设为60kHz防止突加负载瞬间增益不够。最高输入轻载时需要0.98的增益这个值略低于1理论上频率只要比fr高一点点就可以但空载时LLC增益曲线收敛得很慢可能出现空载电压压不住的情况所以上限频率设到180kHz1.8fr再配合间歇模式兜底。这两个频率值同时也作为PI输出和竞争逻辑的限幅边界超限就钳位防止频率指令进入非法区域。软启动时初始频率从180kHz向下扫让输出电容慢慢充电扫描速率大约每毫秒降几kHz直到电压环接管闭环。这个设计在满载启动时冲击电流能被压在额定电流的1.2倍以内。5. 数字实现竞争控制的细节与排坑PI抗饱和、切换平滑、限频与启动5.1 DSP/STM32的PFM实现框架数字实现LLC控制本质就是周期性地计算频率指令然后把它映射到PWM周期寄存器。我用的是STM32G474的HRTIM每路PWM工作在up-down计数模式开关周期等于两倍计数周期通过对角驱动配置生成全桥四路驱动信号两路中间插入300ns死区。控制环在一个固定的中断频率下运行我取的是10kHz。每个中断里完成ADC采样、双环PI计算、竞争选择、限幅、更新周期寄存器。ADC采集的是输出电压和输出电流电压用电阻分压加隔离运放电流用副边分流器加AMC1300两路信号同步采样避免相位误差。核心代码结构大致是这样// 10kHz中断 void ControlISR(void) { adc_update(); float e_v V_FB - V_REF; // 过压为正 float e_i I_FB - I_LIMIT; // 过流为正 PI_Step(pi_v, e_v); PI_Step(pi_i, e_i); // 竞争选择频率高者接管 float f_sw (pi_i.out pi_v.out) ? pi_i.out : pi_v.out; // 频率限幅防止进入容性区 f_sw clamp(f_sw, FS_MIN, FS_MAX); // 映射到HRTIM周期寄存器 set_sw_freq(f_sw); }PI实现用的增量式typedef struct { float kp, ki; float out, err_prev; float lo, hi; } PI_Obj; void PI_Step(PI_Obj *pi, float err) { float delta pi-kp * (err - pi-err_prev) pi-ki * err; pi-out delta; if (pi-out pi-hi) pi-out pi-hi; if (pi-out pi-lo) pi-out pi-lo; pi-err_prev err; }频率更新率不需要太高10kHz的更新率配合开关频率100kHz对带宽1~2kHz的环路来说完全够用。刻意提高更新率反而会让频率指令抖动PWM周期寄存器微小的跳变经过谐振腔放大后波形会出现毛刺。5.2 PI参数整定与离散化电压环和电流环的PI参数理论整定要基于增益曲线在某个工作点的小信号斜率但工程上我是先给初值再在实物上扫出来的。电压环的目标带宽取1.5kHz相位裕度大于60°电流环带宽取2.5kHz比电压环稍高但不能太高因为电流采样经过隔离运放会有延迟带宽做高了容易在谐振频率附近出现相位滞后振荡。初值可以按这样一个逻辑给先测出在额定工作点附近频率每变化1kHz对应多少伏特输出变化得到“频率到电压”的增益然后按带宽要求反推PI的Ki和Kp。我在调机时的初始参数是这样一组环路KpKi输出限幅电压环0.80.0260~180 kHz电流环0.50.0160~180 kHz注意电流环的Ki要比电压环小很多原因在于电流误差变化很快如果Ki大频率指令会剧烈抖动导致谐振电流出现毛刺。电流环的核心任务不是追求零稳态误差而是在过流时有一个明确、稳定的频率抬升把电流压在限制值附近所以比例项起主要作用积分项只要保证稳态时电流误差能被收敛就行。5.3 抗积分饱和与快速接管最容易翻车的地方竞争控制里有几个坑我花了不少时间才理清楚。第一个坑是未接管环的积分饱和问题。正常稳压状态下e_I恒为负电流环PI输出会一路向下饱和到频率下限60kHz积分项持续累积负值。当突发短路时e_I突然变正饱和的积分器需要花时间从下限爬升回来导致电流环接管速度变慢可能在这段时间里输出已经过冲了。解决办法是把未接管环的输出强制钳位在一个合理的“待命”位置上这个位置要接近当前电压环输出附近但又不会顶替它。我的做法是当检测到电流环未接管时把电流环PI的输出下限动态设为“当前fV减去2kHz”这样它始终跟在电压环附近一旦过流只需要很小的积分变化就能快速接管。第二个坑是切换抖动。两个环的输出本来就带噪声在接近切换点附近时哪怕只差几百赫兹都有可能在CV和CC之间来回跳。我的处理是加了一个16周期的迟滞计数连续16个中断周期内fI都高于fV才认定为过流接管释放时要I_FB低于限流值的95%并且持续一段时间才切回。实际效果是这个迟滞逻辑完全消除了切换点附近的振荡代价是切换响应时间多了几毫秒但对CC/CV这种宏观工作模式切换来说完全可接受。第三个坑是积分限幅的频率值本身要合理。频率下限设太低会让PI在轻载时积分跑偏频率上限设太高会让短路时频率超过谐振腔的承受范围。我最后把电压环和电流环的限幅都设在60~180kHz同时增加第二层软件保护如果检测到频率指令连续一段时间顶在上限且电流依然超限就触发打嗝重启防止长期高频运行导致磁性元件温升超标。5.4 边界工况启动、轻载、短路这几个关键时刻启动过程最容易出问题的是输出电容预充。如果让电压环直接闭环给定值从0跳到48V输出电容电压从0开始爬增益需求会非常极端频率会被瞬间压到下限原副边产生很大的冲击电流。所以我实现了基准爬坡V_REF从0以每毫秒0.5V的速率爬升到48V同时初始开关频率强制从180kHz开始按固定步长向下扫频直到V_FB跟随基准。这样输出电压上升过程是一个可控斜坡冲击电流被控制在设计范围内。轻载和空载是LLC另一个麻烦点。由于增益曲线在fsfr时会缓慢趋近于某个下限值频率调到上限180kHz后空载输出电压可能仍然偏高无法靠频率继续压下去。我的做法是加了一个简单的间歇模式当输出平均电流低于阈值并且电压到达参考值时暂停驱动脉冲让输出电容放电电压降到参考值的97%时重新恢复驱动。间歇模式下的开关噪声会转移到间歇频率上我测试过几组间歇频率低于20kHz会产生可闻噪声所以最终把比较器档位设在50kHz左右的脉冲簇模式人耳基本听不到。短路保护必须靠硬件和软件两级配合。双环竞争能让CC环在短路时把频率推到上限但LLC的最小增益不为零短路时依然有一定电流流过原边长时间短路依然会发热。软件层我依靠的是频率顶上限加打嗝重启硬件层在原边电流互感器上设置了逐周期峰值保护一旦电流超过设定阈值立刻封锁驱动。测试时直接短路输出实测短路电流峰值被限制在额定电流的1.2倍左右且驱动封锁发生在10微秒内。6. 说明文档该怎么整理让复现者少走弯路6.1 一页纸说清规格与假设这套项目最终整理成了带说明文档的完整资料。文档的第一部分不是原理图而是一页设计规格和关键假设输入范围、输出规格、目标效率、谐振参数、增益范围、频率限幅、软启动参数、保护阈值。每一行数字都要注明“这是设计目标”还是“这是实测结果”两者不能混在一起。这页纸的价值在于让接手的人第一时间建立全局预期。很多复现者拿到一个工程文件就直接看代码结果被PI参数、限幅值这些细节淹没不知道哪些是需要根据自己规格调整的哪些是可以直接照搬的。把规格和假设单列能让复现者一目了然地知道只要输入输出规格相近这套参数就能直接用差异较大则需要先改哪些位置。6.2 三张必给的图增益曲线、环路伯德图、切换波形说明文档里我认为有三张图是必须给出的缺一不可。第一张是增益曲线族要把所有设计工作点标上去满载最低输入、满载额定输入、轻载最高输入、短路对应的频率上限每个点用不同颜色标出来。这张图能让复现者确认自己设定的频率范围和工作点的对应关系避免“频率域盲飞”。第二张是电压环和电流环的闭环伯德图。数字环路没法像模拟环路那样方便扫频但可以用控制器的零极点反推环路特性。我会给出电压环和电流环的开环传递函数Bode图标注穿越频率和相位裕度。没有这张图调PI全靠猜复现者不敢动任何参数。第三张是CC/CV切换的实测波形纵轴是输出电压和输出电流横轴是时间从重载跳变到短路再恢复。这张图要能看出切换过程中没有过冲、没有振荡、切换时间是多少。波形图比任何文字都有说服力只要复现者跑出的波形形态接近就能确认自己的环路调对了。6.3 排错清单与调试顺序文档最后我放了一份排错清单里面记录了我实际踩过的坑和对应的排查方向。举几个例子空载电压偏高压不住先确认频率上限是否被顶到再考虑间歇模式阈值是否合理。重载时开关管温升异常确认工作点是否掉进了容性区查最低频率限制用谐振电流波形判断ZVS是否丢失。过流切换振荡检查电流环接管判据的滞回逻辑先确认CC切换时频率是否连续再看电流环Kp是否过大。启动冲击电流偏大查软启动扫描速率和基准爬坡斜率必要时降低启动频率下扫速率。调试顺序我也会在文档里写明白先开环点频率确认谐振幅值和工作点再接电压环闭环用电子负载拉满载看增益曲线和频率范围的匹配确认电压环调稳后才启用电流环和竞争逻辑先做短路测试再做动态切换测试。这个顺序能最大化地降低排障难度所有问题都可以分层定位而不是纠缠在一锅粥里。把文档整理到这种颗粒度之后我自己再回头调试这套电源基本上看波形就能判断问题出在参数、环路还是保护逻辑。后面再做新的LLC项目也完全可以拿这套文档做模板替换规格和参数就可以加速起步。最后说一个我自己体会最深的事LLC的设计方法论已经非常成熟真正拉开差距的往往是对“频率怎么动、增益往哪走”的直觉。而双环竞争控制考验的也不是算法复杂程度而是切换那一两个毫秒里你愿不愿意把细节抠透。把这些细节沉淀成文档比多调一个电源更值钱。
返回列表