干电源这行的人应该都有体会,BUCK、BOOST这类拓扑只要环路稳定,补偿设计基本是套模板;而LLC谐振变换器第一次做环路补偿的时候,很多人会发现以前那套经验全对不上了。原因说穿了也简单:LLC的小信号特性随工作状态变化太明显,控制量又是频率而不是占空比,补偿网络设计得不好,轻载满载完全是两个脾气。我自己在调试一台200W半桥LLC时,就经历过"相位裕度明明算够了,负载阶跃照样振荡"的尴尬。后来静下心来把K因子法从原理到实践完整走了一遍,才把环路设计从"试参数"变成了"算参数"。这篇文章就以K因子法为主线,从LLC小信号特点、补偿器设计原理,到完整手算案例和实测避坑,一次性讲透。
1. 为什么LLC的小信号特性让常规补偿容易翻车
1.1 从"调占空比"变成"调频率",控制对象完全换了逻辑
BUCK、BOOST这类PWM变换器,控制量是占空比,功率级从控制到输出的传递函数在低频段近似为一个直流增益加上一个LC双极点,补偿器设计围绕这个双极点展开就行。但LLC谐振变换器的工作原理决定了它是通过改变开关频率来调节输出电压的:当工作频率偏离谐振频率时,谐振腔的等效阻抗变化,传递到副边的能量随之改变。
从控制角度看,这意味着被控对象不是"占空比对输出",而是"频率对输出"。频率变化引起的增益和相位响应,和占空比变化完全不同。低频段频率变化对输出影响较弱,增益曲线不是水平的;中频段可能有谐振峰;高频段增益快速滚降,相位急剧下跌。很多同学直接用BUCK的Type II补偿网络,结果实测Bode图怎么都不对,就是因为没搞清楚控制对象本身的结构。
1.2 输出侧没有传统LC滤波,相位下降速度超预期
LLC输出侧通常只有电容和整流电路,滤波电感的功能被谐振腔的漏感/励磁电感间接承担了。这带来一个特点:在部分频率范围内,控制到输出的幅频曲线呈现出"带通"特性,相位延迟比传统二阶系统更加明显。
实测中你会发现,额定负载下在10kHz附近,功率级相位可能已经掉到-140°甚至更低。如果你设计的穿越频率偏高,比如取到开关频率的1/5以上,相位预算会非常紧张,补偿器需要提供的相位boost往往超出Type II的能力范围。这也是LLC环路补偿和普通DCDC环路补偿电路设计最大的不同点之一。
1.3 增益和相位随负载、输入电压剧烈漂移
LLC在不同负载下,谐振腔Q值差别很大。满载时Q值高,谐振峰明显,增益曲线在谐振频率附近抬升;轻载时Q值低,曲线变得平缓,甚至增益下降。更麻烦的是相位曲线也会跟着整个Bode图移动。
所以一台LLC如果只在一个工作点设计补偿,很容易出现满载稳定、轻载振荡,或者高压输入稳定、低压输入不稳定的情况。实践中,一般取"增益最低、相位最差"的工况来设计,最典型的往往是大电流低输入电压满载点。K因子法的意义就在于,它能用一个清晰的参数框架快速覆盖这些工况,而不是靠反复试凑。
2. 动手设计前必须明确的三个数:fc、PM和开环数据
2.1 穿越频率fc定在什么位置
穿越频率是补偿后环路增益为0dB的频率点。对于LLC,这个值不能随便取。
首先必须低于开关频率,而且要有足够裕量,因为变频控制本身就带有采样和调制延迟。工程上常用的范围是开关频率的1/10到1/5。比如谐振频率100kHz、额定工作频率约90kHz~110kHz的系统,穿越频率取8kHz~15kHz比较合理。取太低,动态响应差,负载阶跃时电压跌得厉害;取太高,相位延迟大,开关噪声也容易串进环路。
我在实际设计时习惯于先把穿越频率定在谐振频率的1/8左右,然后再根据相位预算微调。如果某个工作点相位实在救不回来,优先降穿越频率,而不是硬上更大的相位boost。
2.2 相位裕度PM和增益裕度GM怎么定
相位裕度是环路延迟达到-180°之前剩余的相位空间。电源行业一般要求45°到60°。低于45°,负载阶跃容易出现振铃;高于70°,响应变慢,但更稳定。个人经验是LLC由于工况变化剧烈,至少按50°设计,最好能留到55°左右。
增益裕度也要看,通常要求10dB以上。增益裕度不足时,虽然相位裕度看着没事,但系统参数稍微变化,增益穿越点附近可能出现双穿越,导致实际稳定性下降。
这里要说清楚:相位裕度和增益裕度不是一回事。相位裕度管的是穿越频率附近的滞后程度,增益裕度管的是-180°相位附近增益还有多少余量。LLC的功率级相位掉得快,两个指标必须同时检查。
2.3 开环幅相曲线怎么拿才靠谱
K因子法的输入是未补偿环路在穿越频率处的增益和相位,也就是"控制到输出"的频率响应。这一步数据不准,后面全白算。
三种常见获取方式:
- 用平均模型或描述函数在仿真软件里跑:速度快,适合初步设计,但LLC的变频控制用平均模型误差较大,最好用谐波平衡或者时域扫频。
- 用SIMPLIS等电路仿真器做AC分析或时域注入扫频:这是我自己比较推荐的方式,能包含开关纹波影响,和实测比较接近。
- 实物环路分析仪扫频:最准确,但要等样机出来。注入点一般选在误差放大器输出端,也就是反馈环路断开后向功率级注入小信号的地方,这样调制器、驱动、功率级全都在环路里面,测得的数据才是设计需要的。
注意:测量时一定要把补偿器本身排除在外,或者直接在补偿器前端断开。很多人扫描时忘了这一点,拿到的Bode图里已经包含补偿器,算出来的参数根本对不上。
3. K因子法:把补偿器零点和极点"绑定"起来手算
3.1 K因子的数学本质
K因子法最早由Dean Venable提出,核心思想很直接:不再单独去凑几个零点和极点的位置,而是把补偿器的零点和极点都和穿越频率fc挂钩,用同一个参数K来描述它们之间的相对位置。
对于最常见的Type II补偿器,有一个积分器、一个零点、一个极点。K因子法规定:
fz = fc / K fp = fc * K也就是说,零点在穿越频率左侧K倍处,极点在右侧K倍处。K越大,零点极点分得越开,补偿器在fc处能抬升的相位就越大。
很多新手不理解为什么RC串联形成的零点能提升增益和相位。直观上,RC串联网络的零点对应一个转折频率,低于转折频率时电容阻抗很大,网络增益低;高于转折频率后电容阻抗变小,网络阻抗趋向电阻值,增益平台上抬。相位方面,在转折频率附近相位开始超前,逐渐趋向+90°。在环路补偿里加零点,就是利用这个特性把穿越频率附近的相位往上拉,同时补充高频段增益,防止增益下降到0dB以下太多。
3.2 Type II和Type III怎么选
补偿器Type的选择,取决于你需要补偿器在穿越频率处提供多少净相位。
先统一一个定义:令未补偿功率级在fc处的相位为φ0,闭环稳定要求补偿后总相位在fc处为:
φ_total = -180° + PM那么补偿器自身在fc处的相位就是:
φ_comp = φ_total - φ0 = -180° + PM - φ0注意,这里的φ_comp包含了补偿器中积分器贡献的-90°。Type II补偿器的基础相位就是积分器带来的-90°,零点极点对再叠加一个正相位boost,所以它的净相位范围是-180°到0°之间。如果算出来φ_comp需要是正的,比如+20°,Type II就做不到,必须上Type III。
Type III补偿器有两个零点、两个极点和积分器,能提供更大的相位提升,净相位范围可以到-180°到接近+90°之间。LLC因为功率级相位落后太多,大多数情况需要Type III。
3.3 手算五步流程
以Type III补偿器为例,假设两个零点重合、两个极点重合,传递函数写成:
Gc(s) = Kc * (1 + s/ωz)^2 / [s * (1 + s/ωp)^2]设计流程如下:
第一步:根据功率级Bode图,确定穿越频率fc处的原始增益A0(dB)和相位φ0。
第二步:设定目标相位裕度PM,计算补偿器需要提供的相位:
φ_comp = -180° + PM - φ0第三步:由φ_comp反推K。
Type III的相位表达式为:
φ_comp = -90° + 2 * [arctan(fc/fz) - arctan(fc/fp)]代入fz = fc/K、fp = fc*K:
φ_comp = -90° + 2 * [arctan(K) - arctan(1/K)]因为arctan(1/K) = 90° - arctan(K),所以:
φ_comp = -90° + 2 * [2*arctan(K) - 90°]简化后:
φ_comp = -270° + 4*arctan(K)工程上可以这样解:
K = tan(45° + β/2)其中β是单个零点极点对的相位提升,β = (φ_comp + 90°) / 2。
第四步:计算fz和fp:
fz = fc / K fp = fc * K第五步:计算增益系数Kc,目标是让补偿器在fc处的增益等于未补偿功率级增益的倒数:
|Gc(fc)| = 1 / |T0(fc)|具体公式:
|Gc(fc)| = (Kc / ωc) * [1 + (fc/fz)^2] / [1 + (fc/fp)^2]所以:
Kc = |Gc(fc)| * ωc * [1 + (fc/fp)^2] / [1 + (fc/fz)^2]到这里,连续域的补偿器设计就结束了。
3.4 为什么说K因子法把"试凑"变成了"计算"
传统设计方法是拿一个补偿器,看Bode图,改前面的电阻电容,再看,再改。问题是补偿器零点极点对相位和增益是耦合影响的,改一个电阻可能同时动了零点、极点、增益,新手很容易陷入反复试凑。
K因子法把所有零点和极点都用K绑定到fc上,K又由相位需求唯一确定,增益由Kc单独补偿,每一个设计自由度对应一个明确的目标量。这种"设计参数与性能指标一一对应"的特点,在实际工程里非常节省时间。就算最后实测需要修正,你也能清楚地知道应该动K还是动Kc,而不是盲目换电阻。
4. 实战案例:200W半桥LLC走一遍完整设计
4.1 系统参数与原始开环数据
我用一个实际做过的200W半桥LLC来走流程,参数如下:
- 输入电压:DC 380V~400V(PFC后级)
- 输出:24V / 8.3A,额定功率200W
- 谐振频率:110kHz
- 额定工作频率范围:65kHz~180kHz
- 控制方式:电压型PFM,闭环调节开关频率
样机出来后,用环路分析仪在额定满载、输入400V下测得未补偿环路(断开补偿器,只保留功率级、调制器、反馈分压)的频率特性。在选定的穿越频率fc=10kHz处,数据为:
- 幅值增益:-15dB
- 相位:-145°
这意味着原始环路在10kHz处的相位裕度只有35°,而且增益不够(需要补偿器在10kHz处提供+15dB增益才能让环路增益正好交越0dB)。
4.2 用K因子法计算补偿参数
设计要求:穿越频率fc=10kHz,相位裕度PM=55°,增益裕度≥10dB。
先算补偿器需要的相位:
φ_comp = -180° + PM - φ0 = -180° + 55° - (-145°) = +20°补偿器净相位要求为+20°,这意味着需要Type III补偿器。
计算K:
β = (φ_comp + 90°) / 2 = (20° + 90°) / 2 = 55°K = tan(45° + β/2) = tan(45° + 27.5°) = tan(72.5°) ≈ 3.17零点和极点位置:
fz = fc / K = 10kHz / 3.17 ≈ 3.15kHz fp = fc * K = 10kHz * 3.17 ≈ 31.7kHz再算增益系数Kc。功率级在fc处增益-15dB,换算成线性值约为0.178,所以补偿器增益应为5.62倍。
代入公式:
ωc = 2π * 10kHz = 62832 rad/s [1 + (fc/fz)^2] / [1 + (fc/fp)^2] = [1 + (10/3.15)^2] / [1 + (10/31.7)^2] ≈ (1 + 10.08) / (1 + 0.0995) ≈ 10.08Kc = 5.62 * 62832 / 10.08 ≈ 35000 rad/s这样,连续域补偿器传递函数就完全确定了:
Gc(s) = 35000 * (1 + s/(2π*3150))^2 / [s * (1 + s/(2π*31700))^2]直观检查一下设计结果:fz=3.15kHz远低于fc,在10kHz处两个零点已经进入作用区,能提供足够相位提升;fp=31.7kHz高于fc,极点对穿越频率附近相位的负面影响还没起来。这个配置和计算目标是一致的。
4.3 怎么落地到实际补偿网络
拿到连续域传递函数后,有两种落地方式。
如果用模拟运放实现Type III补偿,网络元件比较多,实际工程里误差放大器本身的开环增益、带宽都会影响高频极点位置,所以元件值算出来只能当初始值,最终要靠实测微调。这里不做具体元件折算,因为一不小心就会陷入近似公式的误差里。
我现在做这类项目更推荐直接在数字控制器里实现。把Gc(s)用双线性变换离散化,采样频率选200kHz(比穿越频率高20倍,足够),离散化后的差分方程直接写进DSP的中断里。这样做的好处是补偿器参数可以软件在线调,调试效率高很多,还能做动态切换。
在SIMPLIS里搭建闭环仿真模型,把未补偿的Bode数据作为功率级模型校准,然后接入上面这个补偿器,得到的闭环Bode图显示:穿越频率10kHz,相位裕度53°~56°,增益裕度12dB,和手算基本一致。负载阶跃仿真中,满载到半载跳变,输出电压过冲约300mV,恢复时间约1ms,没有振铃。
4.4 一个值得注意的细节:增益裕度也要看
LLC功率级相位在高于穿越频率后会继续快速下降,到了-180°相位点时如果增益还没衰减到-10dB以下,就会出现第二个穿越点。虽然主穿越频率处的相位裕度够,但系统仍然可能在高频段产生振荡隐患。
所以在仿真里要多看一眼补偿后环路在-180°相位处的增益。如果增益裕度不够,可以把fp往左移一点,或者适当降一点穿越频率。这个检查在K因子法里不会自动帮你完成,必须自己做。
5. 实测与调试图:几个必须记住的坑
5.1 相位裕度够为什么还在振荡
这是我在第一版样机调测时遇到的真实问题。按K因子法设计完,仿真相位裕度55°,一上负载阶跃居然有小幅振荡。后来用环路分析仪实测,发现穿越频率处的实际相位比仿真低了大约12°。
原因有三层:一是频率调制器的小信号延时比理想模型大,压控振荡器的压频特性本身存在额外相位滞后;二是采样和驱动电路的延迟没有完全建模;三是数字补偿器离散化的相位误差。这三项叠加起来,相位裕度直接从55°掉到43°左右,自然不稳。
解决办法也不是非得换补偿器结构,把设计目标PM从55°提高到65°再算一次就行。最终K变大,零极点拉得更开,实测相位裕度大约50°,系统稳定。换句话说,K因子法给出的参数是起点,实测修正一定要留足够相位余量。
5.2 LLC的轻载和满载要分别测
LLC在轻载时很可能进入间歇工作模式(burst mode),这种模式下环路是非线性的,K因子法的线性设计完全不适用。就算没进burst mode,轻载时谐振腔Q值低,功率级增益曲线和满载差别也很大。
我习惯的设计流程是:满载恶劣工况设计一次补偿参数,然后扫25%、50%、75%、100%负载,各测一组Bode。如果轻载相位裕度不足,优先考虑轻载时适当降低穿越频率,或者在软件里做补偿器增益随负载切换。很多数字电源芯片支持动态调整环路参数,这个功能在LLC上非常实用。
5.3 频率调制的小信号模型和PWM不一样
PWM调制器本身是一个比较清晰的增益模块,但LLC常用的PFM(频率调制)没有那么简单。不同芯片的压控振荡器实现方式差异很大,有的用电容充电比较,有的用锁相环架构,额外延迟各不相同。
设计阶段如果只是用理想VCO模型仿真,建议在实测前留出10°到15°的相位余量。有条件的话,直接拿环路分析仪在断环状态下测"控制电压到输出"的相位,把这个实测曲线作为设计基准,比任何理论模型都可靠。
5.4 限频、饱和和burst模式会毁掉线性设计
补偿器输出最终是电压信号,去控制VCO频率。如果这个电压接近运放电源轨或者数字限幅值,环路增益实际上被截断,相位裕度再高也没用。数字实现里,补偿器积分项饱和后还可能出现windup现象,负载突变时频率恢复慢,输出过冲很大。
针对这些问题,我在软件里加了anti-windup,限制积分项输出范围略窄于总输出限幅,并且在burst mode临界点做补偿器冻结。这些都是K因子法之外的经验,但少了它们,理论设计再漂亮也扛不住工程现场的复杂工况。
5.5 数字离散化时的坑
数字补偿器实现时,双线性变换是常用手段,但要注意频率预畸变。如果不做预畸变,零点极点频率在离散化后会偏移,穿越频率越高偏移越明显。
以本例来说,fz=3.15kHz、fp=31.7kHz,采样频率200kHz时双线性变换本身的误差还不大,但如果穿越频率到20kHz以上,极点位置偏移就会很可观,必须手动预畸变或者用更高的采样频率。另外,定点处理器里注意系数量化,零点位置很容易被量化噪声吃掉,建议用float或者Q24以上的定标。
结语前的一点实际操作体会
K因子法并不是什么高深理论,它的价值在于把环路补偿从"靠感觉试"变成"按流程算"。但接触的电源项目越多,我越觉得再好的设计方法也只能保证你在设计点上是稳定的,LLC这种强非线性、强工况依赖的拓扑,最终还是要靠实测数据去完善模型和参数。我自己现在的工作习惯是:先用K因子法快速定出补偿器初值,再上环路分析仪测Bode,根据实测的相位和增益偏差微调K和Kc,整个过程一般不超过半天。希望这篇实战记录能帮你少走一点弯路,把LLC的环路补偿一次做对。