ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

LLC环路设计避坑指南:K因子法补偿与相位裕度实战

LLC环路设计避坑指南:K因子法补偿与相位裕度实战 1. 环路设计为什么总在LLC上翻车做开关电源的同行大概都有这种体会PFC那一级调环路虽然也不简单但至少心理有底补偿网络放上去带宽压一压相位裕度总能凑到四五十度。可一到LLC这一级事情就变得微妙起来——明明仿真里增益曲线看着挺漂亮相位裕度也够一上电带载就振荡轻载的时候更是叫得跟蝉一样。你回头查波形发现开关频率在谐振频率附近来回抖输出电压纹波大得离谱。这个问题我前前后后折腾过好几个项目从几百瓦的板子到三千瓦的通信电源都踩过。后来复盘下来LLC环路设计翻车基本集中在三个地方谐振频率点的选择跟环路带宽打架、K因子法用错了补偿位置、相位裕度在轻载和重载下完全不是一回事。这三个坑单独拎出来都不算致命但它们会互相耦合一个没处理好另外两个跟着一起崩。这篇内容就是围绕这三个坑展开的。我会把K因子法在LLC环路补偿里的具体用法拆开讲包括谐振频率怎么选才不给环路添乱、相位裕度在不同负载下怎么留够余量、以及实际调试时用哪些手段能快速定位问题。适合已经做过LLC仿真或者打过样、但环路调试还不太顺的同行参考。纯新手也能看但最好先把LLC的增益曲线和模态分析过一遍不然有些地方会卡住。2. 先搞清楚LLC环路到底在控什么2.1 被控对象不是单纯的LC滤波器很多人第一次做LLC环路会下意识把它当成Buck电路来处理——输出LC滤波加一个Type II或者Type III补偿带宽设在开关频率的十分之一到二十分之一完事。这个思路放在Buck上没问题但LLC完全不是这么回事。LLC的功率级传递函数跟Buck有本质区别。Buck的占空比到输出是一个固定的二阶系统LC双极点位置明确补偿网络只要把穿越频率压在双极点之前或者之后就行。LLC不一样它的增益是靠调节开关频率来实现的而开关频率到输出的传递函数里增益曲线的斜率在谐振频率两侧是反号的。也就是说在谐振频率左边频率升高增益下降在谐振频率右边频率升高增益反而上升。这个反号特性直接导致了一个后果如果你的环路带宽跨过了谐振频率相位会急剧变化补偿网络根本来不及拉回来。我见过不少设计仿真的时候把穿越频率设在谐振频率的1.5倍甚至2倍仿真结果看着还行因为仿真模型里寄生参数是理想的。实际上板子一跑谐振腔的寄生电容和漏感让实际谐振频率偏移穿越频率刚好落在增益曲线斜率翻转的区域相位裕度直接从45度掉到十几度不振荡才怪。2.2 谐振频率选择对环路带宽的硬约束LLC的谐振频率由谐振腔的Lr和Cr决定公式是$$f_r \frac{1}{2\pi\sqrt{L_r C_r}}$$这个频率一旦定下来环路的穿越频率就不能随便设了。根据我的经验穿越频率最好压在谐振频率的1/5到1/3之间具体取多少要看你的增益曲线在谐振频率附近的陡峭程度。如果谐振腔的Q值比较高增益曲线在谐振频率附近变化很剧烈那就往1/5靠如果Q值低曲线比较平缓可以放到1/3。为什么不能更高因为LLC的功率级在谐振频率附近有一个双极点这个双极点带来的相位下降非常快。你如果把穿越频率设在谐振频率附近补偿网络需要提供的相位提升量会大得离谱实际电路里根本实现不了。而且谐振频率附近的增益曲线对参数变化极其敏感Lr偏差百分之十谐振频率就偏百分之五穿越频率跟着偏相位裕度就保不住了。这里有个实操中的经验值可以参考假设你的LLC谐振频率设计在100kHz那么环路穿越频率设在20kHz到33kHz之间比较稳妥。如果输出电容比较大ESR零点比较低可以适当放宽到40kHz但再高就要慎重了。2.3 K因子法在LLC里的适用条件K因子法本身是个很成熟的补偿网络设计方法核心思路是根据需要的相位提升量来确定零极点的位置。但在LLC里用K因子法有一个前提条件经常被忽略K因子法假设被控对象在穿越频率处的相位是已知且稳定的。LLC的功率级相位在谐振频率附近变化剧烈如果你选的穿越频率刚好在相位快速变化的区域K因子法算出来的补偿参数就没有意义了。所以用K因子法之前必须先做一件事把LLC功率级从控制到输出的幅频和相频曲线扫出来确认穿越频率处的相位是多少而且这个相位在不同负载下变化不能太大。如果变化超过20度K因子法算出来的补偿网络就只能算个起点后面还得靠实际调试来修。3. K因子法在LLC环路补偿中的正确打开方式3.1 先扫功率级Bode图别急着套公式我刚开始做LLC的时候犯过一个很典型的错误直接拿数据手册里的典型补偿参数往板子上焊结果当然是不行。后来才养成习惯不管多急先把功率级的Bode图扫出来。扫Bode图有两种方式仿真和实测。仿真可以用Simulink或者PSIM把LLC的开关模型搭出来用频率响应分析工具扫。实测的话需要一台频率响应分析仪在环路里注入小信号测量扰动到输出的响应。仿真快但精度取决于模型实测准但需要设备和时间。我一般先用仿真扫一遍确认大致趋势然后在样机上实测验证。仿真的时候要注意LLC的开关模型不能用平均模型代替因为LLC的增益特性跟开关频率直接相关平均模型会把频率信息丢掉。必须用开关级模型步长设得足够小至少是开关周期的百分之一。扫出来的Bode图重点看三个东西低频增益、穿越频率处的相位、以及相位在谐振频率附近的变化速率。低频增益决定了稳态误差穿越频率处的相位决定了补偿网络需要提升多少相位相位变化速率决定了穿越频率能设多高。3.2 确定穿越频率和目标相位裕度扫完Bode图下一步是定穿越频率。前面说了穿越频率最好在谐振频率的1/5到1/3之间。但具体取哪个值还要看相位曲线。举个例子假设谐振频率是100kHz我先把穿越频率暂定在25kHz。然后看功率级在25kHz处的相位是多少。如果相位是-60度那么补偿网络需要提供的相位提升量就是目标相位裕度减去180度加上功率级相位。假设目标相位裕度是45度那么需要的相位提升量是45 - (180 - 60) -75度不对这里算错了。正确的算法是相位裕度 180度 功率级相位 补偿网络相位。在穿越频率处环路增益为1所以相位裕度就是180度加上总相位。如果功率级在穿越频率处的相位是-60度补偿网络提供的相位是-30度那么总相位是-90度相位裕度就是180 - 90 90度。这个裕度太大了说明补偿网络可以少提升一点相位或者把穿越频率再往上提。但如果功率级在穿越频率处的相位是-120度补偿网络提供-30度总相位-150度相位裕度只有30度这就偏低了。需要补偿网络提供更多的相位提升或者把穿越频率降下来。我一般把目标相位裕度定在45度到60度之间。低于45度动态响应会变差负载跳变时振铃明显高于60度带宽会被压得很低动态响应变慢。45度到60度是个比较舒服的区间。3.3 K因子法算补偿参数的具体步骤确定了穿越频率和目标相位裕度就可以用K因子法算补偿参数了。LLC环路一般用Type II补偿就够了因为功率级在低频只有一个极点输出电容的ESR零点可以帮忙提升一点相位。Type II补偿的传递函数是$$G_c(s) \frac{\omega_p}{s} \cdot \frac{1 s/\omega_z}{1 s/\omega_p}$$其中$\omega_z$是零点频率$\omega_p$是极点频率。K因子法的核心是确定零点和极点的位置使得在穿越频率处提供的相位提升量刚好满足要求。具体步骤计算需要的相位提升量$\phi_{boost}$。$\phi_{boost} \text{目标相位裕度} - 180^\circ - \text{功率级在穿越频率处的相位}$。如果算出来是负数说明功率级本身的相位已经够了不需要额外提升这时候可以把穿越频率往上提或者把目标相位裕度降低。计算K值。$K \tan(45^\circ \phi_{boost}/2)$。这个K值决定了零点和极点相对于穿越频率的位置。确定零点频率$\omega_z \omega_c / K$极点频率$\omega_p \omega_c \cdot K$。其中$\omega_c$是穿越频率。计算补偿网络的增益。在穿越频率处补偿网络的增益应该等于功率级增益的倒数这样总增益才能为1。根据零极点频率和增益算出电阻电容的值。这里有个细节要注意K因子法算出来的零极点位置是理论值实际电路中电容的容差和运放的带宽都会影响补偿效果。我一般会把算出来的电容值往标准值靠然后留一个可调的位置方便调试的时候微调。3.4 一个具体的计算实例假设谐振频率100kHz穿越频率定在25kHz。扫出来的功率级Bode图显示25kHz处的增益是-20dB相位是-100度。目标相位裕度定50度。需要的相位提升量50 - 180 - (-100) -30度。等等这个算出来是负数说明功率级相位-100度加上补偿网络的相位总相位要满足相位裕度50度即总相位 50 - 180 -130度。功率级已经是-100度了补偿网络只能再提供-30度。但Type II补偿在穿越频率处提供的相位是负的因为有一个积分器所以实际上补偿网络会提供-90度左右的相位积分器贡献-90度零极点对再贡献一点。这样总相位就是-190度相位裕度是-10度肯定振荡。这说明穿越频率25kHz选高了或者目标相位裕度定高了。把穿越频率降到15kHz试试。假设15kHz处功率级增益-10dB相位-80度。需要的总相位是-130度功率级-80度补偿网络需要提供-50度。Type II补偿的积分器提供-90度零极点对可以提供正的相位提升。如果零极点对提供40度总相位就是-80 - 90 40 -130度刚好满足50度相位裕度。然后算K值需要的相位提升量是40度零极点对提供的K tan(45 40/2) tan(65) ≈ 2.14。零点频率 15kHz / 2.14 ≈ 7kHz极点频率 15kHz × 2.14 ≈ 32kHz。补偿网络在15kHz处的增益应该是10dB因为功率级是-10dB。根据这个增益和零极点频率可以算出电阻电容的值。具体计算这里不展开网上有很多K因子法的计算工具输入参数就能出结果。4. 相位裕度在不同负载下的变化与应对4.1 轻载时相位裕度为什么会掉LLC的相位裕度在轻载和重载下差别很大这是它跟Buck最不一样的地方之一。Buck的功率级传递函数在不同负载下变化不大相位裕度基本稳定。LLC不一样轻载的时候谐振腔的Q值很低增益曲线变得很平缓功率级在穿越频率处的相位会往负方向跑。我实测过一组数据同一块LLC板子满载时穿越频率处的相位是-85度相位裕度52度轻载10%负载时相位变成-110度相位裕度掉到27度。27度的相位裕度已经接近临界了负载一跳变就容易振荡。为什么轻载相位会掉因为轻载时谐振腔的阻尼变小双极点的Q值升高相位在谐振频率附近的下降变得更陡。虽然穿越频率没变但相位曲线整体往下移了穿越频率处的相位就更负了。4.2 用负载前馈或者变带宽补偿来救应对轻载相位裕度下降有两个思路一是让补偿网络在不同负载下提供不同的相位提升量二是让穿越频率随负载变化。第一个思路可以用负载前馈实现。检测负载电流根据负载大小调整补偿网络的零极点位置。轻载时把零点频率往低频移提供更多相位提升重载时把零点频率往高频移避免带宽被压得太低。这个方案需要额外的检测电路和可调补偿网络成本高一些但效果最好。第二个思路更简单在轻载时主动降低穿越频率。因为轻载时相位裕度低如果把穿越频率降下来相位裕度就能恢复。具体做法是在补偿网络里加一个随负载变化的极点轻载时极点频率降低把带宽压下来。这个方案实现起来容易用一个MOSFET或者三极管控制补偿网络的电阻就行。我一般先用第二个方案因为简单可靠。如果动态响应要求特别高再考虑第一个方案。4.3 实测相位裕度的几个注意事项实测相位裕度的时候有几个坑我踩过这里说一下。第一个坑注入信号的幅度不能太大。LLC是非线性系统注入信号太大会让工作点偏移测出来的相位裕度不准。我一般把注入幅度控制在输出电压的1%到2%之间。如果信噪比不够可以多平均几次但不要加大幅度。第二个坑测量点要选对。相位裕度应该在环路的穿越频率处测量但穿越频率会随负载变化。所以要在不同负载下分别扫Bode图找到每个负载下的穿越频率再看对应的相位裕度。第三个坑注意测量设备的带宽。LLC的开关频率一般在几十kHz到几百kHz环路带宽在几kHz到几十kHz。频率响应分析仪的带宽要足够至少是开关频率的5倍以上不然高频段的相位测量不准。5. 常见问题与排查技巧实录5.1 上电就振荡从哪里开始查LLC上电就振荡最常见的原因有三个补偿网络参数不对、谐振频率偏移、或者PCB布局有问题。排查顺序我一般是这样的先断开环路用固定频率驱动看功率级本身是否稳定。如果固定频率下输出稳定说明功率级没问题问题在环路。然后检查补偿网络的电阻电容值是否跟设计一致特别是电容很容易焊错或者容值偏差大。如果补偿网络没问题再扫Bode图看相位裕度是多少。如果相位裕度低于30度那就是补偿不够需要调整。如果固定频率下输出就不稳定那问题在功率级。检查谐振腔的Lr和Cr值是否跟设计一致特别是Lr很容易因为绕制工艺导致感值偏差。还要检查输出电容的ESR是否跟仿真模型一致ESR零点位置对相位裕度影响很大。5.2 轻载叫机怎么定位轻载叫机是LLC的经典问题声音一般是高频啸叫或者间歇性的吱吱声。高频啸叫通常是环路振荡间歇性的吱吱声可能是跳周期或者burst模式。定位方法先用示波器看开关频率波形如果开关频率在谐振频率附近来回抖那就是环路振荡。再看输出电压纹波如果纹波很大而且频率跟啸叫频率一致基本可以确认是环路问题。然后扫轻载下的Bode图看相位裕度。如果相位裕度低于30度就是补偿不够需要调整。如果开关频率是间歇性的那就是跳周期。跳周期一般是轻载时增益太高环路把频率推到最大然后输出过压环路又把频率拉回来来回循环。这种情况需要调整环路的低频增益或者加一个假负载。5.3 负载跳变时振铃太大怎么办负载跳变振铃大说明环路的动态响应不够快或者相位裕度太低。先看相位裕度如果低于45度先把相位裕度提上去。如果相位裕度够了但振铃还是大那就是带宽不够需要提高穿越频率。提高穿越频率的前提是相位裕度够。如果相位裕度只有50度穿越频率可以提高一点如果相位裕度只有40度提高穿越频率会让相位裕度进一步下降振铃反而更大。所以顺序是先保相位裕度再提带宽。还有一个技巧在输出端加一个小电容容值不大但ESR很低可以提供一个高频零点帮助提升高频段的相位。这个电容对低频段影响不大但能改善负载跳变时的初始响应。5.4 常见问题速查表现象可能原因排查方法解决措施上电就振荡补偿网络参数错误检查电阻电容值重新计算补偿参数轻载啸叫轻载相位裕度不足扫轻载Bode图调整补偿网络或降低轻载带宽负载跳变振铃大带宽不够或相位裕度低检查相位裕度和穿越频率先提相位裕度再提带宽开关频率抖动环路不稳定看开关频率波形检查谐振腔参数和补偿网络输出电压纹波大低频增益不够看低频段增益提高补偿网络低频增益6. 几个容易被忽略的实操细节6.1 谐振腔参数偏差对环路的影响谐振腔的Lr和Cr偏差会直接改变谐振频率进而影响环路。Lr偏差百分之十谐振频率偏百分之五。如果谐振频率从100kHz偏到95kHz穿越频率如果设在25kHz相对位置就从1/4变成1/3.8相位裕度会变化。所以谐振腔的参数要控制得尽量准。Lr一般用磁集成的方式做感值偏差可以控制在百分之五以内。Cr用C0G或者薄膜电容容值偏差小温度特性好。如果用了X7R或者Y5V容值随温度和电压变化大谐振频率会飘环路就不稳了。6.2 输出电容ESR对相位裕度的贡献输出电容的ESR会提供一个零点这个零点可以提升高频段的相位。如果ESR太小零点频率很高对相位裕度帮助不大如果ESR太大零点频率很低虽然能提升相位但输出纹波会变大。我一般选ESR在10毫欧到50毫欧之间的电容零点频率在几十kHz到几百kHz刚好在穿越频率附近能提供10度到20度的相位提升。如果用电解电容ESR比较大零点频率低要注意零点频率不要低于穿越频率太多不然低频段增益会被抬高稳态误差变大。6.3 调试时用可变电阻电容快速找参数算出来的补偿参数只是起点实际调试的时候需要微调。我一般会在补偿网络的电阻和电容位置留可调的位置用可变电阻和可变电容先找大致范围找到之后再换成固定值。可变电阻用多圈精密电位器可变电容用可调电容或者用几个电容并联通过跳线选择。调试的时候先调零点频率看相位裕度的变化再调极点频率看高频段增益的变化。找到最佳值之后测量可变器件的实际值换成固定值。6.4 用Simulink做闭环仿真的几个设置要点Simulink做LLC闭环仿真有几个设置很关键。第一个是步长必须足够小至少是开关周期的百分之一不然开关动作会失真。第二个是求解器用变步长求解器比如ode23tb可以兼顾速度和精度。第三个是初始条件电容的初始电压要设对不然启动过程会有很大的冲击。仿真的时候先开环跑确认功率级工作正常再闭环跑。闭环跑的时候先给一个小的负载确认环路稳定再逐步加大负载。如果仿真里就振荡实际电路肯定也振荡先把仿真调稳再说。7. 最后再聊几句个人体会LLC环路设计这件事说到底是一个平衡的艺术。谐振频率选高了环路带宽可以宽一点但增益曲线陡相位裕度难保谐振频率选低了相位裕度好保但带宽窄动态响应慢。K因子法是个好工具但它只能帮你算个起点真正的功夫在调试。我自己的习惯是每次做新板子先花半天时间把功率级Bode图扫出来不管多急都不跳过这一步。扫完图心里就有底了知道穿越频率能设多高相位裕度能留多少。然后算补偿参数焊板子实测微调。整个过程快的话两天慢的话一周但比盲目试参数要快得多。还有一个体会是轻载和重载的相位裕度一定要分别测。我吃过亏满载调好了轻载没测结果客户反馈轻载叫机回头一测轻载相位裕度只有20度。从那以后不管多忙轻载重载的Bode图都扫一遍确认两个极端都稳了才放心。这个内容后续还可以往数字控制方向扩展比如用DSP做自适应补偿根据负载实时调整零极点位置。那个话题更大涉及数字滤波器的设计和定点化有机会再单独聊。
返回列表