ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LLC软启动谐振电流峰值抑制:基于CLB-MACO的逐周期限流方案

LLC软启动谐振电流峰值抑制:基于CLB-MACO的逐周期限流方案 LLC谐振变换器的软启动一直是数字电源工程师绕不开的“油门与刹车”问题。刚合上母线电压的那一刻谐振电流往往会冲出十几个安培的尖峰变压器“嗡”的一声甚至接近磁芯饱和输出电容跟着抖搞不好管子直接炸。我这次做的是三相LLC谐振变换器的启动控制主控端选了带PSoC™的平台重点用它的CLB-MACO功能做了LLC启动谐振电流峰值抑制算是把软启动的“温度”真正降了下来。整套方案跑完启动过冲从之前贴满保护阈值的8A以上压到了不到3A而且全程没怎么占用CPU的中断开销。这篇文章就把这套思路完整拆开从为什么会有过冲、传统方案卡在哪到CLB-MACO怎么配置、阈值怎么算再到我实测过程的坑和波形记录一次性讲透。1. 为什么LLC必须做软启动谐振电流峰值是怎么冲上去的1.1 拓扑特点与启动工况LLC谐振变换器本质上是一个通过调节开关频率来改变增益的DC-DC变换器半桥LLC里有一个谐振电感Lr、一个谐振电容Cr以及变压器的励磁电感Lm三者组成谐振网络。为了让开关管实现ZVS通常把开关频率工作在谐振频率fr附近或者谐振点右侧感性区。三相LLC则是把三个半桥LLC单元错相组合每相功率降下来适合大电流、大功率场景。启动阶段和稳态最大的区别是输出电压Vo从0开始建立谐振电容Cr的初始电压为0变压器励磁电感上也没有磁链积累。这时候如果直接用额定频率、额定占空比发波相当于把一个完整的母线电压阶跃直接扔到LC串联谐振网络上。因为LLC的增益曲线在远离谐振点时增益很低理论上启动频率拉高一点就能抑制电压过冲但你会发现电流过冲并不能完全靠“拉高频率”压住原因在下面的机理里。1.2 电流过冲的机理一个LC阶跃问题把LLC启动第一拍的等效电路简化一下就是Lr和Cr串联、初始电流为0、Cr初始电压为0输入端突然加上半个母线电压半桥结构下谐振回路接在母线和谐振中点之间。这个二阶RC串联电路的阶跃响应电流峰值接近Vstep除以特征阻抗[ Z_o \sqrt{\frac{L_r}{C_r}} ]我调试的这台三相LLC输入母线电压400V单相半桥等效阶跃电压约200V谐振参数Lr取15μHCr取30nF。算下来[ Z_o \sqrt{\frac{15 \times 10^{-6}}{30 \times 10^{-9}}} \sqrt{500} \approx 22.36 \Omega ]理论首个谐振电流峰值就是200V/22.36Ω约8.9A。这个数值很说明问题如果你选用的功率管额定电流只有15A稳态电流可能只有6A但启动瞬间一上来就是8.9A的尖峰再加上电流互感器采样延迟、控制环路还没建起来实际波形往往比理论值再高20%到30%。闸极驱动、整流二极管、变压器都会在这个瞬间承受巨大的di/dt应力。更麻烦的是输出电容在启动初期相当于短路负载LLC的输出整流侧会抽出很大的充电电流。谐振回路既要给输出电容充电又要克服Cr的零初始条件两者的叠加效应会让峰值电流进一步抬高。很多人习惯只调频率斜波发现总是差一口气就是因为没把Cr初始条件和输出电容充电需求分开考虑。1.3 软启动到底在“软”什么软启动要解决三件事。第一把谐振电流峰值限制在功率器件安全范围内这是最核心的第二让输出电压平缓建立不能出现明显过冲否则后级负载会被打坏第三启动过程中尽量维持一定的ZVS条件别把软开关变成硬开关。传统软启动的设计思路是让系统从“高增益低”的状态慢慢过渡到“低增益高”的状态。具体手段就是频率斜坡、占空比斜坡、或者两者结合。频率越高LLC增益越低输出功率越小电流自然受限但频率不能无限高否则驱动损耗、死区影响、磁性元件损耗都会恶化。占空比斜坡则是从很窄的脉宽逐步展宽。LLC在死区设置合理时用50%固定占空比配合频率调制即可但软启动阶段必须人为限制占空比否则电流尖峰完全取决于LC特征阻抗跟软启动频率关系不大。2. 传统软启动方案的痛点为什么改用CLB-MACO2.1 三种常见软启动策略业界用得最多的策略有三种。第一种是纯频率斜坡初始频率设为额定谐振频率的1.5到2倍然后以固定斜率降到额定频率。这种方式实现简单只要把PWM周期寄存器里的周期值按时间递减即可。问题是轻载时电流仍然偏大因为增益虽然低但没有闭环反馈输出电容充电电流依然不受控。第二种是占空比斜坡从10%到20%的窄占空比开始逐步增加到50%。这种在移相全桥里很常见但LLC本身是依靠频率调压的占空比变化会影响变压器励磁电流和死区时间窄占空比下ZVS条件很难保证。第三种是“脉冲串”或者“打嗝式”启动发几个脉冲观察电流下降再继续发脉冲。这种方式最保守但启动时间长而且脉冲串的变频分量可能在磁性元件上产生音频噪声听起来就是“滋滋”的异响。2.2 软件限流为什么做不到逐周期我之前在样机上先用纯软件方案做限流谐振电流互感器信号经过运放调理后送入ADCCPU在中断里比较ADC值超限就修改PWM占空比寄存器。实测下来ADC采样、转换、中断响应、寄存器更新这一条路径至少需要8到12微秒而开关周期在100kHz下只有10微秒。也就是说一个周期已经结束你限流动作才刚执行电流尖峰早就过去了。如果要做到“逐周期限流”就必须在当前PWM周期内对电流信号做出反应。ADC方案做不到模拟比较器的输出也必须通过硬件逻辑直接连到PWM模块的强制关断端口才行。这就是我后来转向PSoC CLB-MACO方案的最直接原因不是软件工程师不会写PID而是物理上的时序瓶颈绕不过去。2.3 CLB-MACO在项目里扮演的角色PSoC里面的CLB是一组可编程逻辑块内部有查找表LUT、触发器、计数器可以看成一颗放在MCU旁边的小型FPGA。它的输入输出信号可以和PWM模块、IO、内部模拟比较器直接互连修改PWM信号的过程根本不经过CPU总线。MACO侧我这边理解为一套模拟比较与阈值控制资源谐振电流互感器的电压信号进入比较器和DAC给定的阈值比较以后输出一个数字电平给CLB。CLB根据这个电平在当前开关周期内直接控制PWM输出脉宽的截断。从电流超过阈值到PWM边沿动作整个过程延迟只有几十纳秒真正意义上做到了逐周期限流。这个架构相当于把“检测-判决-执行”做成了一条纯硬件链路。CPU只负责配置初始参数、监控状态机、在故障时做记录不再参与实时限流。即使程序卡住CLB-MACO路径依然能保护功率级这是软件中断方案无法提供的安全冗余。3. 整体方案设计三相LLC启动状态机与谐振电流限流3.1 硬件架构与信号路由整台电源的架构是这样的前级PFC输出400V母线后级是三相LLC谐振变换器每个半桥单元输出经过高频变压器隔离整流后并联成54V/25A输出。主控采用PSoC输出6路PWM驱动三个半桥。每相谐振回路里串了一个电流互感器采样得到的电流信号经过整流和调理变成0到3.3V的单极性电压分别接到MACO的3个比较器输入通道。CLB部分占用PSoC的若干可编程逻辑单元用来实现启动状态机、逐周期限流掩码、脉冲截断逻辑。PWM模块工作在center-aligned模式死区时间由PWM模块内部插入。我做了一张信号路由提纲方便后面配置时对照电流互感器信号 - 运放调理 - MACO比较器输入阈值DAC输出 - MACO比较器参考端比较器输出 - CLB的LUT输入CLB逻辑输出 - PWM模块的强制关断/脉宽修正端口CPU通过寄存器配置阈值、斜坡参数读取故障标志因为三相LLC每相参数不可能完全一致三个比较器通道的阈值我后来做成了独立配置每个通道单独校准避免出现一相误动作、其它相没反应的情况。3.2 启动状态机五个阶段怎么划分软启动整体状态机我分成五个阶段比单纯“频率斜波”要细得多。第一阶段是母线预充电。LLC驱动不输出前级PFC通过限流电阻给母线电容充电PSoC只做母线电压检测等母线到350V以上才允许进入下一步。第二阶段是IDLE待机。所有PWM输出关闭CLB计数器清零比较器阈值加载到DAC。这里必须确保CLB的默认输出是“不截断”否则一使能就被误动作打掉。第三阶段是频率斜坡。PWM频率从150kHz开始每1ms下降2kHz占空比固定在25%。这个阶段输出电压开始建立但会很慢因为频率远高于谐振点100kHz增益不足1。第四阶段是占空比斜坡。频率已经降到100kHz占空比从25%每10ms增加5%一直升到50%。此时谐振电流会明显增大是峰值抑制逻辑最需要发力的时候。第五阶段切换闭环。检测输出电压达到目标值的95%以上将控制权交给电压环频率和占空比由环路自动调节。每个阶段之间CLB都有一只“退出标志寄存器”状态满足条件才切过去。电流超限时不会立即强制状态回退而是先让CLB截断PWM如果连续超过N个周期都截断说明软启动参数太激进了状态机才退回到上一个阶段重新以更慢的速率爬升。3.3 峰值抑制逻辑的完整数据路径峰值抑制逻辑分两级。第一级叫“预警削波”电流超过第一阈值TH1后CLB不把PWM完全关断而是把当前周期的剩余导通时间切成若干个2微秒窗口每隔一个窗口遮蔽一个PWM上升沿相当于把平均占空比降低一半。削波之后电流峰值不再继续上升但输出功率还能维持输出电压建立过程不会断档。第二级叫“硬关断”电流超过第二阈值TH2时CLB在比较器翻转后立即关断当相PWM的驱动输出并且至少要等待一个完整的谐振周期才恢复发波。这一级是最后防线用来应对负载短路、变压器饱和之类的情形。为什么要做两级而不是一个阈值直接砍因为我实测发现单阈值削波在满载启动时会陷入“关断-恢复-再关断”的振荡输出电压建不起来还会产生明显的电流断续噪声。两级限流配合状态机回退启动过程平滑很多。4. 参数计算与配置实现4.1 先算清楚谐振电流阈值阈值设低了会误动作设高了保护无效所以值一定要算。以我上面那组参数为例输入400V半桥谐振回路等效阶跃电压Vstep≈200V特征阻抗Zo22.36Ω裸奔启动的理论峰值约8.9A。三相LLC稳态每相输出电流约8.3A谐振电流的峰值还要再乘一个系数大致在12A到14A之间。启动过程允许的电流比稳态峰值略低我按功率管的SOA曲线取了一个安全值TH1设为9ATH2设为12A。这里有个细节变压器匝比对启动电流的影响其实藏在增益曲线里。半桥LLC变压器匝比n通常按最小输入电压和输出电压来初算公式是n ≈ Vin_min/(2*Vo)但这只是名义变比。LLC实际工作点在启动阶段远离谐振频率增益小于1输出电压比值不等于匝比如果忽视这一点容易把启动频率选得太低导致第一拍的增益还是太高。建议用LLC在线计算器先把mLm/Lr、Q值、增益曲线算一遍再结合启动频率点的增益确认一下首波电流。4.2 频率斜坡与占空比斜坡的设计频率斜坡的目标是从150kHz平滑降到100kHz总共50毫秒。步进频率如果太大电流波形上会出现明显的台阶每次台阶都是一次新的LC阶跃步进太小启动时间又被拉长。我这里取每1ms降2kHz折算成周期寄存器更新量大约是2%。这样从150kHz到100kHz需要大约12.5ms后面一段留给占空比斜坡。占空比斜坡从25%升到50%周期是100kHz所以每10ms增加5%总共50ms。为什么占空比不从更低开始因为太低的占空比会导致谐振电流断续磁性元件工作在B-H曲线的局部回线上启动噪声非常难听而且对频率斜坡没有实际帮助。25%是我用示波器观察后确认的“最低既有能量输出、又不触发明显尖峰”的起始值。输出电容充电时间可以粗算一下输出电容6800μF输出电压54V平均充电电流如果按10A算tCΔV/I6800μF54V/10A≈36.7ms。所以频率斜坡加占空比斜坡总时长设在80ms左右是够的留了接近一倍裕量。4.3 CLB逻辑单元实现CLB部分我整理成下面这样的逻辑表达式看起来更接近Verilog实际用PSoC的CLB配置工具做LUT映射时思路也一样。千万不要把它当真接的RTL代码但逻辑关系可以直接照搬assign limit_hit comp_out_th1; // MACO比较器1输出 assign hard_fault comp_out_th2; // MACO比较器2输出 // 状态机IDLE - RAMP_FREQ - RAMP_DUTY - NORMAL assign in_soft_start (state RAMP_FREQ) || (state RAMP_DUTY); // 预警削波每2us窗口屏蔽一半窗口 assign chop_window cycle_counter[0]; // 用CLB计数器取最低位 assign pwm_cut in_soft_start limit_hit chop_window; // 硬关断超TH2后锁存直到下个周期开始才释放 always (posedge pwm_clk) begin if (hard_fault) pwm_force_off 1; else if (period_start) pwm_force_off 0; end实际做CLB映射时状态机用三个DFF就够了计数器和窗口发生器用CLB自带的16位计数器搭。CLB输出到PWM模块的连线最好在项目初期就规划好我当时因为改过一版引脚分配结果发现CLB到PWM空口的路由被占满了只能硬凑了一个LUT层级。4.4 MACO阈值与前沿消隐配置MACO阈值用DAC设置DAC分辨率我用了12位参考电压3.3V。电流互感器采样电阻定了0.25Ω电流转电压系数是0.25V/A。所以TH19A对应2.25VTH212A对应3.0V。DAC寄存器值就是电压除以3.3V乘以4096这个转换直接用在线计算器核对一遍就行。采样信号进入比较器前必须加RC滤波不然PWM开关边沿的共模噪声会让比较器乱翻转。我用的电阻100Ω、电容2.2nF时间常数0.22微秒相对100kHz的开关周期足够快又能把几十纳秒的毛刺滤掉大部分。同时在比较器输出到CLB之间还要加一个前沿消隐窗口时间设为200ns在这200ns内比较器结果被强制置为“未超限”。否则谐振电流在开关管刚刚导通的瞬间本来就有di/dt尖峰阈值再高也会被误判。5. 实测结果与调试记录5.1 启动波形表现样机调试完成后用示波器同时抓了母线电压、输出电压、谐振电流三个通道。启动波形基本符合预期母线电压稳定在400V输出电压从0开始爬升大约85ms后稳定在54V没有明显过冲。谐振电流峰值在启动初段被限制在8A以内进入占空比斜坡阶段后慢慢爬升到12A切闭环时有个很小的回落但没有出现以前那种直接冲到15A甚至更高的尖峰。我最关心的还是“第一拍”。示波器单次触发抓到的第一拍电流峰值是7.5A比理论计算的8.9A还低了一点应该是实际死区时间、线路寄生电阻都在帮忙消耗能量。CLB截断动作发生在电流超过9A阈值后的200ns以内从波形上看就是电流上升到阈值附近后立刻变平没有继续上升的趋势。5.2 调试中踩过的三个坑第一个坑是前沿消隐不够造成的误限流。最开始消隐时间设得太短只有80ns结果每次开关管开通比较器都会因为di/dt噪声翻转CLB把脉宽削掉软启动变成“每周期都削一刀”输出电压根本建不起来。后来把消隐加到200ns误动作才消失。这个参数要跟实际gate drive的开关速度和采样电路的噪声特性匹配不能照抄别人的值。第二个坑是单级阈值导致满载启动时输出电压建立太慢。开始只设了一个9A阈值一旦超过就削波结果满载启动时每个周期都在削波平均功率被限制得很死输出电压爬升到54V要180ms明显太慢。改成两级阈值后预警削波只是削掉部分脉宽还允许一定功率通过硬关断只用来保底启动时间就恢复正常了。第三个坑是三相参数差异导致一相单独误动作。三相LLC的三个谐振电容虽然标称都是30nF实测容差有±2%左右三相峰值电流天然有差异。同一个阈值设下去A相可能经常超限B相和C相从来不超。解决办法是每相独立配置阈值初始化时做一次小幅开环测试把每相实际电流值记录下来然后按比例把阈值标定到同一物理电流值。这个步骤在批量生产时尤其重要。5.3 软件限流与硬件限流效果对比我在同一台样机上分别跑了纯软件限流和CLB-MACO硬件限流对比结果很直观对比项软件中断限流CLB-MACO硬件限流检测到响应的总延迟8-12微秒约200纳秒逐周期限流能力无法实现逐周期执行启动谐振电流峰值15.2A11.6A输出电压建立时间120ms85msCPU中断负载高占核心资源几乎为零程序跑飞时的保护能力失效仍有效差距最大的其实是响应延迟。12微秒 vs 0.2微秒整整差了60倍。LLC的谐振周期在100kHz下是10微秒软件限流根本追不上电流变化只能“事后补救”硬件限流才是真正的“实时干预”。从安全性角度看CLB-MACO方案把保护功能从代码层面下沉到硬件层面程序的健壮性要求降低了很多。6. 常见问题排查与经验速查6.1 问题速查表调试过程里遇到的各种现象和原因我整理成了一张速查表后面做类似项目可以直接对着找方向现象可能原因排查与解决一使能就触发限流比较器阈值过低或噪声干扰校准阈值检查RC滤波和前沿消隐启动电压爬升太慢削波过于频繁频率斜坡太慢提高启动频率斜率放宽TH1阈值启动时变压器有异响占空比太低导致磁复位不完整提高起始占空比缩短占空比斜坡时间单个桥臂反复限流该相谐振参数偏差大独立阈值标定检查电流互感器切闭环瞬间电流跌落闭环环路的基准电压阶跃太大把环路给定值从软启动状态平滑过渡到额定值母线电压跌落前级PFC限流电阻还没退出调整母线预充电完成判断条件6.2 硬件布线与采样的配套建议谐振电流采样建议优先用电流互感器不要用采样电阻加隔离放大器。高压侧的共模干扰在LLC这种高频开关电路里非常严重采样电阻方案需要高性价比的隔离放大器成本和噪音都不划算。电流互感器要串在谐振回路的原边侧副边并联采样电阻注意副边不能开路否则会感应出很高的尖峰电压把后级电路打坏。CLB到PWM模块的信号连线要在原理图设计阶段就确认。PSoC内部虽然有可编程路由矩阵但CLB输出口的数量和位置是固定的如果板子上已经定了引脚逻辑再漂亮也没法用。建议在项目开始就画出“CLB引脚分配表”把所有需要用到的内部信号、PWM端口、比较器输入输出列清楚再开始写CLB逻辑。死区时间处理也要特别留意。CLB截断PWM脉宽时只是把“有效导通时间”缩短但死区插入仍然要依靠PWM模块完成。我在最早的逻辑里直接把PWM输出置零结果导致互补半桥同时封锁死区丢失功率管直通炸了一对管。后来改成CLB只修改PWM模块的内部占空比寄存器而不是直接强制IO口问题才解决。6.3 这套方法的可迁移性CLB-MACO这套“硬件级逐周期限流”思路不只是LLC能用。移相全桥的ZVS软启动同样有电流峰值问题把比较器阈值接到原边电流信号CLB逻辑改成限制移相角即可PFC电路的电感电流逐周期限流也可以复制只是把谐振电流信号换成电感电流信号比较器阈值按峰值电流限制值设定多相交错Buck启动时各相电感电流均衡也可以用这种思路每个比较器通道对应一相阈值加上最小脉宽约束。只要控制器的PWM模块支持外部硬件强制修正端口CLB-MACO方案基本都能迁移。核心原则是实时性要求高的保护动作一定要走硬件路径状态管理、参数整定、故障记录这些相对慢速的工作才交给CPU。最后再分享一个我个人的调试体会CLB-MACO这类硬件路径调试顺序很有讲究。我建议先把MACO阈值和比较器消隐时间调好在开环小功率下把峰值抑制逻辑验透确认没有误动作再去调频率斜坡和占空比斜坡。如果一上来就把所有环节都打开波形上根本分不清到底是频点选择错了还是限流逻辑误触发只能对着示波器干瞪眼。先小步走通再逐步加复杂度这个习惯帮我少烧了不少管子。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进