做LLC谐振变换器的环路补偿调试,几乎每个电源工程师都会碰到这么一幕:示波器探头夹住输出,负载从满载切到空载,电压抖动两三个来回才稳住,甚至干脆振荡起来;用环路分析仪一扫,相位裕量只剩十几度。这不是个案,而是LLC控制特性的必然结果。相比Buck/Boost那套成熟的PWM小信号模型,LLC的受控对象是非线性的PFM模型,增益和相位随负载、随开关频率变化非常剧烈,传统试凑法在这里很容易让人崩溃。K因子法就是在这样的背景下被反复验证的一套快速设计方法,它用清晰的数学关系把零点、极点放在正确的位置,让补偿网络在穿越频率处提供我们需要的相位提升和增益匹配。这篇笔记,我把完整的计算过程、器件映射和踩坑点都写出来,希望能帮你少走弯路。
1. 为什么LLC的环路补偿这么容易翻车
1.1 LLC的基本工作原理与调频控制
LLC谐振变换器的主功率级由两个开关管(半桥或全桥)构成方波发生器,驱动一个由谐振电感Lr、谐振电容Cr和励磁电感Lm组成的谐振槽路,再经过变压器隔离和整流滤波输出直流电压。它的名字里有三个“L/C”,实际上控制对象有两个谐振频率:一个是Lr和Cr串联谐振形成的较高频率fr1,另一个是Lr加Lm与Cr串联谐振形成的较低频率fr2。正常工作区间通常在fr2到fr1附近,开关管利用励磁电流实现ZVS(零电压开通),这也是LLC能做出高效率的关键。
LLC的输出电压调节方式和普通PWM变换器完全不同。Buck、Boost这类变换器通过改变占空比来调节能量传递比例,而LLC通过改变开关频率来改变谐振槽的阻抗和增益,从而实现调压,本质上是一种PFM(调频)控制。频率升高时,谐振槽增益下降,输出电压降低;频率降低时,增益上升,输出电压升高。控制环路输出的不是一个占空比信号,而是一个频率指令,经过VCO或数字PWM模块转换成开关管的驱动信号。这个“控制量-被控量”的本质差异,是后面所有设计难点的根源。
1.2 LLC被控对象的特殊性:没有“标准”的传函
做PWM变换器的环路设计,我们有一整套成熟的小信号模型可以套用,比如Buck变换器的控制到输出传函有几个典型的零极点,电感电流连续模式下的模型可以精确到“标准形式”。LLC谐振变换器没有这么好的待遇。它的增益曲线由谐振槽的幅频特性决定,在fr附近增益随频率变化的斜率非常陡峭,而且负载越轻,曲线形状变化越明显。更麻烦的是,LLC的开关频率本身就接近谐振频率,不能像PWM那样按“开关周期平均”的方法建立小信号模型,工程上常用描述函数法或者直接靠仿真、实测扫频来获取控制到输出的频率响应数据。
这意味着什么?意味着你拿到的被控对象Bode图,往往不是一个漂亮的二阶系统,而是一条在谐振点附近大幅弯曲、相位急剧下坠的曲线。曾经有一个项目,我用环路分析仪扫出来的Gvd(频率控制到输出电压的传函)在12kHz处相位已经到了-170°,再往高走一点直接越过-180°。如果穿越频率选得不够谨慎,补偿网络稍微偏一点,环路就会在某个负载点突然崩溃。LLC环路难做,难就难在模型的不确定性大、工作点变化敏感,而非公式本身有多复杂。
1.3 和普通PWM变换器相比,补偿难点在哪
我把LLC和传统PWM变换器在环路设计上的差异整理成一个表格,这样看得更清楚:
| 对比项目 | PWM变换器(以Buck为例) | LLC谐振变换器 |
|---|---|---|
| 控制量 | 占空比d | 开关频率fsw |
| 小信号模型 | 平均模型成熟、精确 | 描述函数法/仿真扫频 |
| 控制到输出传函 | 典型的二阶/三阶系统 | 谐振槽增益随频率非线性变化 |
| 穿越频率选择 | 可做到1/5到1/10开关频率 | 一般只能做到1/10到1/20 |
| 相位特性 | 相对平滑,易于补偿 | 在fr附近相位快速跌落 |
| 轻载特性 | 模型变化相对小 | 增益曲线形状变化大,环路更难稳住 |
PWM变换器可以在比较高的穿越频率下工作,因为它的控制到输出传函在中频段还保持着比较可预测的形状。LLC则完全不同,它的频率控制增益在fr附近变化剧烈,穿越频率选得太高,会让补偿网络不得不去“硬拉”一个相位剧烈变化的区域,稍有偏差就振。所以在实际项目中,LLC的环路穿越频率通常都被压得比较低,目的就是让控制环路工作在被控对象特性相对平缓、模型不确定性更小的频段。理解了这一点,后面K因子法的所有计算才有了正确的物理前提。
2. 环路补偿的核心逻辑:相位裕度决定了一台电源的“脾气”
2.1 稳定性判据与开环Bode图怎么看
环路补偿设计的核心,是把整个反馈环路的开环传递函数T(s)调整到满足稳定性要求。这个T(s)等于被控对象传函、补偿网络传函、反馈采样网络传函的乘积。工程上最关心的两个指标,一个是相位裕度(PM),一个是增益裕度(GM)。
相位裕度可以从开环Bode图的增益曲线穿越0dB处直接读出来:在增益等于1(0dB)的那个频率点,看相位离-180°还有多远。假设在穿越频率处开环相位是-130°,那么相位裕度就是50°。为什么这个数字这么重要?因为负反馈环路天生有“自激振荡”的趋势,当环路在某个频率点增益为1且相位为-180°时,反馈信号就会变成同相叠加,系统彻底失控。相位裕度就是衡量系统离这个崩溃点还有多少安全距离的指标。
增益裕度则是相位穿过-180°的频率点,看增益曲线离0dB还有多远。PM保证环路在增益穿越点附近的稳定程度,GM保证系统在相位临界点附近不会因为增益略高而爆发振荡。两者要同时看,不能只盯一个。我在实际测试中见过不少PM看起来还有40多度、但是GM只有2dB的电源,负载一抖就开始振铃,原因就是GM余量太薄。
2.2 相位裕度和增益裕度的工程取值
理论教材会说PM大于45°系统就稳定,但工程上不能按这个下限去设计。LLC的模型不确定性大,温度、负载、批次偏差都会让Bode图整体移动,如果你按PM=45°去设计,实测一老化,PM很可能掉到20°以下。我的习惯是:
- 相位裕度目标:55°到60°。LLC这种模型不太“乖”的被控对象,宁可相位裕度大一点,也不能卡着下限走。
- 增益裕度目标:至少8dB到10dB。老化和批次差异对增益的影响非常明显。
- 穿越频率:满载工况下取开关频率的1/10到1/20。100kHz的谐振频率,穿越频率放在5kHz到10kHz比较合理。
相位裕度也不是越大越好。PM接近90°时系统是绝对稳定,但动态响应会变得很慢,输出恢复时间拉长。这就像一辆悬挂特别软的汽车,过坑不颠,但方向盘打过去要半天车身才跟过来。电源的负载阶跃响应要求往往是几百微秒内恢复,PM太大反而过冲时间长。所以55°左右是一个经过实践检验的甜点区。
2.3 RC串联零点为什么能同时提升增益和相位
很多刚开始接触环路补偿的同学,最难理解的就是为什么要放零点,以及为什么RC串联能同时提升增益和相位。这里从最基础的传函讲清楚。
一个电阻R和一个电容C串联,如果把电容上的电压作为输出,它的传函是1/(1+sRC),这是一个极点,会让高频增益往下掉。但如果RC串联网络被放在反馈补偿网络里,形成的是(1+sRC)这样的表达式,情况就反过来了,这是一个零点。这个零点对应的转折频率是fz=1/(2πRC)。当信号频率低于fz时,电容阻抗很大,网络几乎不产生额外增益;当频率高于fz后,电容阻抗变小,信号绕过电阻直接“通过”电容,增益以+20dB/dec的斜率爬升。同时,相位会从0°逐渐上升到+90°。
用生活类比来说,零点就像是音响均衡器的高音增益旋钮。你往右拧高音旋钮,高频段的输出声音更大,同时你会感觉乐器的“攻击感”变强了,声音更靠前、更清脆。在控制环路里,被控对象往往因为输出滤波器、谐振槽等因素在高频段相位滞后,零点就是在被控对象的极点频率附近提供一个“反向的力”,把往下掉的相位拉回来,同时把增益曲线抬起来,让穿越频率能够落在我们希望的位置。这也是热搜词里那个问题“为什么RC串联形成的零点能提升增益和相位”的本质,零点在高频段相当于一个微分项,微分项天生就是幅度增大、相位超前。
3. K因子法解决什么问题
3.1 从试凑到K因子:补偿器设计的两种思路
没有K因子法之前,环路补偿设计基本靠“试凑”。先根据被控对象的Bode图猜一个零点频率和极点频率,放到仿真里看开环Bode图,PM不够就挪零点,GM不够就挪极点,反反复调试十几个版本,最后慢慢找到一组能用的参数。这种思路在PWM变换器上勉强可行,因为被控对象形状相对固定,经验丰富的工程师可以快速猜中。但是放到LLC上,试凑效率极低,因为被控对象的形状随负载变化、随频率变化,你刚在一组参数下调好,换个工况又变了。
K因子法本质上是把“猜零点和极点”变成一道有确定解的数学题。它先明确设计目标:穿越频率fc、相位裕度PM。然后根据被控对象在fc处的相位,计算出补偿器需要提供的相位提升量。最后用一个参数K,把零点和极点对称地安放在fc两侧,于是零极点的位置不再是任意的,而是被一个K值统一定义。整个设计过程从“盲人摸象”变成“按图索骥”。
3.2 K因子法的数学原理与TYPE II公式推导
K因子法里,TYPE II补偿器(一个积分、一个零点、一个极点)的传函写成:
Gc(s) = G0 * (1 + s/ωz) / [s * (1 + s/ωp)]其中ωz=2πfz,ωp=2πfp。K因子法的核心假设是:把零点放在fc/K处,把极点放在K*fc处。也就是说fz和fp关于fc几何对称,一个在fc左边,一个在fc右边,它们到fc的距离在“倍频程”上是相等的。
为什么要对称放?因为在穿越频率fc处,零点贡献的相位提升量是arctan(fc/fz)=arctan(K),极点贡献的相位滞后量是arctan(fc/fp)=arctan(1/K)。两者相减,补偿器在fc处提供的净相位提升为:
φboost = arctan(K) - arctan(1/K)利用arctan(1/K)=90°-arctan(K)这个恒等式,可以得到:
φboost = 2*arctan(K) - 90°因此,已知需要的相位提升量φboost,就能反推出K值:
K = tan(45° + φboost/2)这个公式是TYPE II补偿器K因子法的核心。给定一个相位提升目标,K就唯一确定了,零点和极点位置也就确定。比如需要40°的相位提升,K=tan(65°)=2.14,那么fz=fc/2.14,fp=2.14*fc。
K因子法之所以比试凑法可靠,就是因为它把两个自由变量(fz和fp)压缩成了一个变量K,而K又与明确的物理需求(相位提升量)直接挂钩。你在设计时不会出现“fz和fp各调各的,导致fc处相位提升不够”的情况。再来算增益匹配:补偿器在fc处的增益需要补偿掉被控对象在fc处的增益缺口,让整个环路的开环增益在fc处正好等于1(0dB)。把s=jωc代入Gc(s),可以解出G0(注意这里的G0不是直流增益,而是积分器系数的量纲,单位是rad/s,它决定了补偿器的中频增益)。
3.3 TYPE II还是TYPE III:LLC到底需要几个零点
TYPE II补偿器最多能提供接近90°的相位提升,TYPE III(两个零点、两个极点)理论上的相位提升可以接近180°。那LLC是不是应该用TYPE III?我的经验是:优先用TYPE II,只有在穿越频率无法压低的情况下才考虑TYPE III。
前面说过,LLC的Gvd在fr附近相位跌落非常快。如果你把穿越频率选得很低(比如fc=5kHz,fr=100kHz),此时被控对象在fc附近的相位通常还在可控范围内,需要补偿器提供的相位提升往往不超过60°,TYPE II完全够用,而且结构简单、参数少、调试容易。如果你追求更高的带宽,把fc推到20kHz甚至30kHz,此时被控对象的相位可能已经到了-170°甚至更低,补偿器需要提供70°到80°以上的相位提升,TYPE II虽然理论极限是90°,但实际上零点极点放得过开,中频增益和抗噪能力都会变差,这时候才需要TYPE III。
我的建议是:先核算在目标穿越频率下所需相位提升量,如果超过60°,与其上TYPE III增加复杂度,不如把穿越频率往下压。LLC本身就是高频高效拓扑,环路带宽做不了太高是天生的约束,不要硬碰硬。
4. 实战:300W LLC环路补偿完整计算过程
4.1 设计目标与被控对象扫频数据处理
下面用一个我实际调试过的600W LLC项目来走完整流程。主功率参数:输出48V/12.5A,谐振频率fr=100kHz,最低开关频率80kHz,最高150kHz。控制方式为电压模式PFM,反馈采用TL431加光耦隔离,控制芯片是常见的UCC25600这类频率调制控制器。
设计环路补偿前,第一步必须拿到被控对象Gvd的Bode图数据。我一般用环路分析仪直接在样机上扫,扫之前要确保电源工作在满载、稳态输出48V的工况,而且扫频信号的注入电平不能太大,要保证系统处于小信号线性工作区间。如果手头没有环路分析仪,也可以在仿真软件里搭建LLC主功率拓扑,用交流扫频方式提取。这里给出一个典型的实测数据点:在满载条件下,f=10kHz处,Gvd的增益为-18dB,相位为-170°。
这里强调一下,-18dB这个数值只对这一个工作点有效。LLC的增益曲线随负载变化,你必须在满载、半载、轻载分别扫,至少确认在满载工况下完成补偿设计,再回到其他工况做校验。很多项目翻车就是因为只在满载下调试,结果轻载时环路相位完全不同,直接振荡。
4.2 确定穿越频率与相位提升量
根据设计经验,这个项目开关频率100kHz,穿越频率取10kHz比较合理,即开关频率的1/10。为什么不取更高?因为LLC的Gvd在超过10kHz后相位曲线开始急剧下滑,模型不确定性迅速增大,同时数字控制或驱动芯片内部的传输延迟在高频段会贡献额外的相位滞后,这些都会让环路变得不可控。
相位裕度目标取PM=50°。被控对象在fc=10kHz处的相位是-170°,要让补偿后开环在穿越频率处的总相位等于-180°+50°=-130°,补偿器需要提供的相位提升量为:
θc = PM - 180° - ∠Gvd = 50° - 180° - (-170°) = 40°也就是说,补偿器在10kHz处需要净提供40°的相位提升。
增益方面,被控对象在10kHz处增益是-18dB,那么补偿器在10kHz处必须提供+18dB的增益,也就是约7.94倍的增益,才能保证补偿后的开环增益在穿越频率处等于1。到这里,设计目标就很清晰了:一个相位提升40°、中频增益18dB的TYPE II补偿器。
4.3 用K因子法计算零极点位置
有了相位提升量φboost=40°,直接代入K因子公式:
K = tan(45° + φboost/2) = tan(65°) ≈ 2.1445于是零点频率和极点频率分别为:
fz = fc / K = 10kHz / 2.1445 ≈ 4.66kHz fp = K * fc = 2.1445 * 10kHz ≈ 21.44kHz这个结果的含义很直观:补偿器在10kHz以下先通过零点以+20dB/dec爬升增益并提升相位,在21.44kHz处用极点把增益斜率重新压回-20dB/dec,同时抑制高频噪声。零点和极点关于10kHz几何对称,保证10kHz处得到最大相位提升。
接下来计算补偿器的增益系数G0。TYPE II传函在fc处的增益表达式为:
|Gc(fc)| = G0 * sqrt(1 + (fc/fz)^2) / [2πfc * sqrt(1 + (fc/fp)^2)]代入fc/fz=2.1445,fc/fp=0.4664:
- 分子sqrt(1+4.599)≈2.366
- 分母2π10000sqrt(1+0.2175)≈62832*1.103≈69308
要求|Gc(fc)|=7.94,所以:
G0 = 7.94 * 69308 / 2.366 ≈ 232,568 rad/s这个G0值决定了补偿器低频积分增益的高低。如果你用运放实现补偿器,这个值对应反馈电阻和积分电容的比值;如果像我一样用TL431加光耦实现,就要通过光耦CTR、限流电阻、采样分压电阻来综合匹配。这也是K因子法“纸上算得清楚,落地方案仍需要工程调校”的地方。
4.4 从补偿器传函到TL431实际阻容参数
实际电源里,LLC反馈环路很少用运放,因为副边供电和成本都不划算,最常见的是TL431加光耦的组合。TL431的REF端通过两个分压电阻采样输出电压,补偿网络(电阻电容)接在TL431的REF和阴极之间,光耦原边串在TL431阴极回路里,副边输出接到控制芯片的FB/EA引脚。这种结构的传函比较复杂,但工程上可以按近似关系把前面算出的零点、极点映射到具体阻容:
- 零点fz由Rz和Cz串联产生:fz=1/(2πRzCz)
- 极点fp由Rz和Cp共同决定:fp≈1/(2πRzCp)(近似条件Cz远大于Cp)
取Cz=22nF,则:
Rz = 1/(2π*4660*22e-9) ≈ 1553Ω,取标称值1.5kΩ Cp ≈ 1/(2π*21440*1500) ≈ 4.95nF,取标称值4.7nF这里要注意,22nF和4.7nF的关系不算特别“远大于”,所以这个映射出来的极点位置会有偏差,最终必须通过仿真或者实测Bode图来修正。如果偏差大,可以把Cz加到33nF、Cp取3.3nF,让近似条件更充分。
中频增益G0的匹配,靠TL431反馈回路的几个电阻来完成。实际操作中,我习惯先按主功率估算光耦原边电流在2到5mA之间线性工作区,再根据控制芯片FB引脚的上拉电阻(通常是芯片内部恒流源或者外部上拉电阻)来选择光耦副边上拉电阻。具体数值很难一次算准,因为光耦CTR的批次离散度很大,我的做法是先用典型CTR值估算,装上样机后实测开环Bode图,再微调上拉电阻改变中频增益。K因子法在前段把零极点位置定死了,后面只需要调一个增益参数,工作量已经小很多。
5. 仿真验证与实测调试验证
5.1 用Python/Matlab搭建环路模型
参数算完不能直接上样机,我习惯先用Python搭一个简化模型做环路仿真,确认Bode图满足预期再动手改硬件。下面是我常用的脚本框架,用scipy.signal建立被控对象和补偿器的传递函数,然后画开环Bode图:
import numpy as np from scipy import signal import matplotlib.pyplot as plt # 设计参数 fc = 10e3 fz = 4.66e3 fp = 21.44e3 G0 = 232568 # rad/s # 补偿器传函: G0 * (1 + s/wz) / [s * (1 + s/wp)] wz = 2 * np.pi * fz wp = 2 * np.pi * fp num_comp = G0 * np.array([1 / wz, 1]) den_comp = np.convolve([1, 0], [1 / wp, 1]) # 积分极点 + 高频极点 sys_comp = signal.TransferFunction(num_comp, den_comp) # 被控对象Gvd:这里用一个带谐振峰的二阶近似演示 # 实际项目请替换为环路分析仪扫频数据拟合的传函 wr = 2 * np.pi * 95e3 Q = 2.5 Gdc = -20 # dB,低频增益 num_plant = [10 ** (Gdc / 20) * wr**2] den_plant = [1, wr / Q, wr**2] sys_plant = signal.TransferFunction(num_plant, den_plant) # 开环传函 T = Gvd * Gc sys_open = signal.TransferFunction( np.convolve(num_comp, num_plant), np.convolve(den_comp, den_plant) ) freqs = np.logspace(2, 6, 500) w = 2 * np.pi * freqs _, mag, phase = signal.bode(sys_open, w) plt.figure() plt.subplot(2, 1, 1) plt.semilogx(freqs, mag) plt.grid(True) plt.ylabel('增益 (dB)') plt.axhline(0, color='gray', lw=0.8) plt.axvline(fc, color='red', linestyle='--', label='fc=10kHz') plt.legend() plt.subplot(2, 1, 2) plt.semilogx(freqs, phase) plt.grid(True) plt.ylabel('相位 (deg)') plt.xlabel('频率 (Hz)') plt.axhline(-180, color='gray', lw=0.8) plt.axvline(fc, color='red', linestyle='--') plt.show()这个脚本里被控对象用的是带谐振峰的二阶近似,因为演示方便。真实项目里,我会把环路分析仪扫出来的数据拟合成一个有理传函,再替换进去。拟合的阶数不要太高,能把10kHz附近幅相特性匹配好就够了,高频部分本身不做环路带宽,拟合误差可以接受。
5.2 从Bode图到负载动态响应的对应关系
仿真通过后,看Bode图时重点检查几个东西。第一,穿越频率是否在预期位置,这个直接对应负载阶跃响应的恢复速度。第二,穿越处增益曲线斜率应该接近-20dB/dec,这是K因子法对称零极点带来的好处,如果斜率是-40dB/dec,说明零极点配置不对称或者被控对象在这个频段有未建模的极点,需要回头修正。第三,看GM有没有留够,如果相位曲线在-180°处对应的增益裕度只有2到3dB,那批量生产时CTR漂移、参数偏差很容易让GM跌到负值。
Bode图上的PM和GM只是频域指标,最终还是要看时域动态响应。用电子负载做满载到25%负载的阶跃切换,观察输出电压波形。一个调好的LLC环路,48V输出的过冲应该控制在200mV以内,恢复时间在几百微秒量级,波形恢复过程应该是“快速回到目标值,再轻微过冲一两次就稳住”,而不是来回振荡好几个周期。如果波形一直在振,大概率是穿越频率附近相位裕度不足;如果恢复得很慢、像在“爬坡”,说明穿越频率偏低,需要把fc往高推。
5.3 实测波形解读与修正思路
实测中最常见的一种情况:仿真Bode图画出来PM有55°,但是阶跃响应还是振两下才稳。这种“频域稳定,时域振铃”的矛盾,通常是因为扫频数据是在小信号条件下测的,阶跃响应是大信号过程,LLC在大信号下的增益曲线和相位特性和小信号时不一样。特别是从满载切到轻载时,开关频率大幅跳变,被控对象的增益在几百微秒内跟着变,补偿网络如果针对性不强,就会短暂地运行在一个PM很低的工作点上。
遇到这种情况,我不会马上怀疑K因子法的计算,而是先去抓轻载和重载两端的实际扫频数据。LLC有一个特点:轻载时开关频率升高,被控对象增益下降,如果补偿器的中频增益是按重载下-18dB缺口设计的,轻载时可能补偿器给多了增益,导致轻载穿越频率偏高,碰到高频未建模极点。修正思路是按“最恶劣工况”重新核算穿越频率和相位裕度,或者用一个小幅值的假负载把轻载工作点拉回设计范围。这个方法治标快,治本还得靠对Gvd模型随负载变化的准确掌握。
6. 常见问题与排查技巧实录
6.1 相位裕度达标但动态响应很差
这是一个非常典型的“指标好看,手感拉垮”的案例。Bode图上PM有60°,GM也有10dB,按标准算是合格设计,但负载阶跃时输出要2ms才恢复,明显偏慢。问题根源通常是穿越频率选得太低。10kHz的穿越频率对100kHz的LLC来说已经算中等,但如果你的被控对象在10kHz处相位太差,被迫把fc压到3kHz,那恢复时间必然慢。PM高只代表系统稳定,不代表系统快,带宽才是决定动态速度的指标。
排查方法很简单:用电子负载做一个重复率较低的阶跃(比如100Hz),看输出波形恢复时间的量级。恢复时间在1ms以上,基本可以确定穿越频率低于预期。解决路径有两条:第一,如果被控对象相位允许,把fc提上去,重新算K因子;第二,如果fc提不上去,考虑在电流内环(如果芯片支持)或者前馈路径上增加优化,但这些改动复杂,不如直接接受较低带宽,然后在输出电容上加一点预偏置。个人经验:LLC的环路带宽天生受限,项目前期规划动态指标时就要留够余量。
6.2 轻载振荡/声音异常
很多LLC电源满载怎么调都稳定,一到轻载就开始“呻吟”,电源在几十千赫兹到几百赫兹之间反复横跳,变压器发出吱吱声,输出纹波变粗。这背后的机理是:轻载时LLC的开关频率被拉得很高,被控对象的增益曲线形态和满载时完全不同,原来补偿网络在满载下设计的零极点位置,在轻载下不再匹配,环路从稳定变成临界稳定甚至振荡。
调试这类问题,我第一个动作不是改补偿参数,而是先看轻载下的实际开关频率。如果开关频率已经逼近最高限频,说明环路在“努力地把电压压住”,此时可以在输出端加一个几十毫安的假负载,把工作点从极轻载往正常重载方向拉一拉,再重新扫Bode图。加假负载的本质是让LLC避开增益曲线最陡峭、模型最不确定的区间。如果假负载没有解决问题,再针对轻载工况重新用K因子法核算补偿参数,必要时在轻载和重载之间做分段补偿。这个方法实现起来比较复杂,通常只有高端电源才会做。
6.3 光耦CTR偏差对环路的影响
最后必须单独提醒一下光耦的问题。LLC副边反馈广泛使用TL431加光耦,光耦的电流传输比(CTR)在不同批次之间差异很大,同一只光耦随着温度升高和老化,CTR也会逐渐下降。CTR的变化会直接改变补偿环路的中频增益G0,进而改变穿越频率和相位裕度。实际中经常出现这样的场景:调试用的样机PM 55°,小批量试产时有几个电源动态响应明显变差,一查发现是这批光耦的CTR比调试时用的低了一半。
我对策有三个层面:设计时按CTR的中间值计算,但把GM余量留到10dB以上,让CTR在一定范围内漂移不至于击穿稳定性;生产时对光耦CTR做筛选或者限定采购范围;样机验证时把光耦在高温箱里做100小时老化,复测环路指标。K因子法本身不涉及这些非理想因素,但只有把这些工程细节补上,计算出来的参数才算真正落地。
最后再分享一个小技巧:算完K因子参数后,我习惯把零点频率和极点频率各往两端多推10%再仿一遍,相当于做一个“灵敏度测试”。如果PM变化在5°以内,说明这套参数对元件公差不敏感,可以放心转产;如果PM变化超过10°,说明设计余量不足,建议重投或调整目标穿越频率。这个习惯帮我挡掉过好几个潜在的批量问题。