PFC电路在电源行业里属于那种看着简单、调起来要命的模块。很多新人上手电源设计,画CCM Boost PFC主电路半天就能搞定,但一接上环路补偿,电流环啸叫、电压环振荡、THD超标全来了。原因很简单:PFC是一个强非线性、宽输入范围、双闭环交叠的系统,它的传递函数跟普通DC-DC完全不是一个套路。今天我就把PFC电路里的传递函数推导和环路补偿设计完整拆一遍,从功率级小信号模型一直写到数字控制离散化,最后给出一套3kW CCM Boost PFC的实操参数和仿真方法。这篇文章适合已经在做电源、但被PFC环路折磨过的工程师,也适合刚接触PFC想建立系统认知的研究生,我把公式、计算步骤、坑点一次说透。
1. 为什么PFC环路设计是硬骨头
1.1 PFC的本质:让输入电流主动跟着电压走
PFC(功率因数校正)的本质不是稳压,而是强制输入电流的波形和相位跟随输入电压。对于最普及的CCM Boost PFC来说,主功率级靠Boost电感完成升压,控制回路的任务远比普通DC-DC复杂:电流内环要在一个开关周期内快速跟踪正弦电流基准,电压外环又要稳定输出母线电压。
大多数人卡住的地方在于,PFC有两个控制环,它们的时间尺度差了三个数量级。电流环带宽通常在10kHz量级,负责把电感电流波形“捏”成正弦;电压环带宽只有10~20Hz,因为它必须压制二倍工频纹波,避免电压环把100Hz纹波传给电流基准造成THD恶化。这两个环路的传递函数相互耦合,设计时又必须解耦处理,这本身就是难点。
1.2 双闭环架构与控制带宽为什么要差这么远
CCM Boost PFC的标准控制架构是电压外环加电流内环。电压环输出作为电流基准的幅值,乘以输入电压前馈的归一化波形,得到正弦电流基准。电流内环让电感电流跟踪这个基准。
电压环带宽低到几十赫兹是不得已而为之。输出电压上必然叠加100Hz(或120Hz)的工频纹波,如果电压环带宽过高,它会把这部分纹波直接“看见”并输出到电流基准上,结果就是输入电流出现3次谐波畸变。工程上有个经验值:电压环带宽不要超过工频纹波的1/5,也就是20Hz左右。这种带宽差异造成两个环路的交接频率很远,设计时可以近似认为电流环是电压环的一个理想功率源受控环节。
1.3 恒功率负载给环路稳定性挖的大坑
还有一个容易被忽略的点:PFC的输出级在电压环看来是一个恒功率源,而下游负载如果是开关电源(比如后级LLC),它也是一个恒功率负载。恒功率负载在小信号分析中呈现负阻抗特性,低频时其等效小信号阻抗是-R,而不是+R。
这个负阻抗会导致系统阻尼变差。在推导电压环被控对象时,如果把负载简化成纯电阻R,相位裕度算出来是够的,实际测试却可能振荡,就是因为没有考虑恒功率负载效应。这也是为什么PFC的电压环模型里经常出现R/2这样的等效电阻,后面我会详细推导。
2. 功率级传递函数:从电路到可设计的小信号模型
2.1 电流环被控对象:占空比扰动到电感电流的传递函数
先说Boost PFC电流环最核心的传递函数:占空比到电感电流的传递函数G_id(s)。在CCM模式下,忽略电感寄生电阻和输出电容ESR,用小信号扰动法可以得到:
G_id(s) ≈ Vout / (s·L)
这个式子看起来简单到让人怀疑,但它是有适用条件的。它成立的前提是输出电容足够大,输出电压在电流环带宽内基本恒定,同时电流环带宽离Boost的右半平面零点(RHPZ)足够远。
Boost变换器存在右半平面零点,频率为:
f_rhpz = R_load·(1-D)² / (2π·L)
这个零点的物理意义是:占空比增大在短期内会先让电感电流下降(因为输出电压被拉低),随后才升上来。这是一种延迟效应,在相位上表现为滞后。设计电流环时,带宽最好低于f_rhpz的1/3到1/5。我见过有人在3kW PFC上把电流环带宽拉到20kHz,结果重载时RHPZ作祟,环路上电就啸叫。
举个例子:比如Vout=400V,L=200μH,开关频率100kHz,满载3kW,输入220V时占空比峰值约0.28,等效R_load=53.3Ω。算下来f_rhpz大约在:
f_rhpz = 53.3 × (1-0.28)² / (2π×200e-6) ≈ 43.5kHz
看上去电流环带宽取10kHz是安全的。但如果你把电感加大到400μH,f_rhpz会掉到21.7kHz,电流环带宽就得压到7kHz以下,这就直接限制了动态响应能力。所以电感量不是越大越好,环路设计必须一起考虑。
2.2 电压环被控对象:为什么简化后负载阻抗变成了R/2
电压环的被控对象是从电流基准到输出电压的传递函数G_v(s)。推导思路是把电流环理想化:电流环响应足够快,输入功率等于给定功率,功率级等效为一个受控功率源。
此时功率平衡方程为:
C_out·dVout/dt = P_in/Vout - Vout/R_load
在稳态工作点附近线性化后,会得到一个重要结论:小信号等效负载电阻是R_load/2,而不是R_load。所以电压环被控对象可以写成:
G_v(s) = K / (1 + s·R_load·C_out/2)
其中K是包含输入电压前馈、电流采样系数等多个常数的等效增益。这个R/2的来由就是恒功率负载负阻抗与电阻负载正阻抗并联叠加的结果。负阻抗-R与正阻抗R并联,等效阻抗就是-R×R/(-R+R),数学上发散,但通过小信号线性化处理,最终得到R/2,而且这个R/2是正阻性,说明功率级自身是稳定的。
从物理直观上讲,恒功率负载在电压升高时电流减小,这个负增量加剧了电压上升趋势,等效于将负载电阻减半,阻尼变弱。这也是PFC空载到满载切换时电压容易过冲超调的原因。
电压环还有另一个被忽略的极点:电流环闭环引入的延迟。电流环闭环带宽是10kHz量级,在电压环带宽10Hz这个尺度上,可以等效成一个一阶惯性环节,转折频率约为电流环带宽的一半。这个极点不影响电压环低频设计,但它负责在最终开环传递函数里提供高频衰减,不能完全删掉。
2.3 数字控制引入的延迟与离散化问题
现在做PFC基本都用数字控制,DSP或MCU。数字控制比模拟控制多的东西很明确:采样保持、计算延迟、PWM零阶保持。
把这些延迟折算回s域,就是一个e^(-s·T_d)项,其中T_d典型值是1到1.5个开关周期。它的相位滞后是:
Δφ = 360° × f × T_d
以100kHz开关频率、1个周期延迟为例,在10kHz处相位滞后就是36°。这就很吓人了:模拟设计时相位裕度留50°,数字化实现后实际只剩14°,系统随时可能振荡。所以数字PFC的环路设计,相位裕度目标通常要比模拟设计多留10°到20°,或者用预测控制补偿延迟。
离散化方法也需要仔细选。电流环因为采样率等于开关频率,常用后向欧拉(backward Euler)离散,公式是:
s = (z-1) / (Ts·z)
电压环采样率通常低一些,比如5kHz,常用双线性变换(Tustin):
s = (2/Ts)·(z-1)/(z+1)
这两个变换各有特点。后向欧拉实现简单,但高频增益有畸变;双线性变换频率映射准确,但要注意预畸变处理,否则转折频率会偏移。我自己的做法是:电流环用直接Z平面设计(用c2d函数离散后再看波特图),电压环用双线性变换加预畸变,算完再用MATLAB的bode()对比连续与离散的频响,确保转折频率一致。
3. 环路补偿设计:从零点和极点到稳定
3.1 为什么RC串联零点能提升增益和相位
环路补偿里最常用的小技巧就是RC串联支路产生的零点。很多人知道PI控制器有个零点,但不一定理解它的频响本质。
一个RC串联支路,从电阻端看进去的阻抗是:
Z(s) = R + 1/(sC) = R·(1 + 1/(sRC))
转折频率f_z = 1/(2πRC)。在转折频率以下,电容阻抗占主导,幅频特性按-20dB/dec下降;在转折频率以上,电阻阻抗占主导,幅频特性变成平坦。从整体的控制器频响来看,这个零点会让增益从-20dB/dec的斜率切换到0dB/dec,也就是相对提升+20dB/dec,同时相位从90°向0°过渡,在转折频率处大约贡献+45°相位。
这就是为什么RC串联零点能“提升增益和相位”:它实际上是把控制器的积分特性在某个频点以上终止掉,避免积分环节无限压低高频增益导致穿越频率过低,同时利用它的相位提升来补偿功率级的相位滞后。设计零点位置时,通常放在期望穿越频率的1/3到1/2处,这样相位提升能正好在穿越频率附近产生效果。
3.2 电流环PI补偿器设计:手把手计算
电流环一般用PI控制器就够了,因为电流环被控对象G_id(s)≈Vout/(sL)本身就是一个积分特性,控制器只需要提供一个零点来把低频增益抬起来,再加上一个比例项来保证穿越频率。
设计思路如下:
先确定电流环穿越频率f_ci。工程上取开关频率的1/10到1/20,100kHz开关频率取10kHz。太高了次谐波振荡风险大,太低了THD补偿能力不足。
然后计算被控对象在穿越频率处的增益:
|G_id(j·2πf_ci)| = Vout / (2π·f_ci·L)
比如Vout=400V,L=200μH,f_ci=10kHz,那么:
|G_id| = 400 / (2π×10k×200μH) ≈ 31.8倍 ≈ 30dB
为了在穿越频率处开环增益为1,PI控制器的增益必须是被控对象增益的倒数,即约0.031,也就是-30dB。这里的增益是包含了电流采样系数和PWM调制增益后的综合比例增益,如果采样电阻增益是R_sense,那么实际Kp = 1/(|G_id| × R_sense)。
PI零点f_z通常放在f_ci的1/4到1/3处。取f_z=3kHz,则:
f_z = 1/(2πRC)
在模拟实现中,R取10kΩ,则C≈5.3nF,取标称4.7nF。比例电阻R1决定Kp,积分电阻R2与C共同决定零点位置,最终通过增益分配确定。
设计完必须验证相位裕度。电流环在穿越频率处的总相位是:
φ_total = -90°(被控对象积分特性) + 零点补偿相位 + 数字延迟相位
被控对象G_id(s)在低频是-90°相位,PI零点在10kHz处约贡献20°到30°相位,数字延迟贡献-36°。所以相位裕度大约在-90°+25°-36°+90°(PI的比例项相位0°)……实际算下来,最稳妥的还是画波特图确认。我设计时至少要求电流环相位裕度55°以上,否则满载启动会有振荡风险。
3.3 电压环Type-II补偿器设计:三个元件的艺术
电压环不能用简单PI,因为被控对象G_v(s)已经有一个来自输出电容的低频极点,PI会导致穿越频率附近相位滞后过多。标准解法是Type-II补偿器,也就是一个积分极点加一个零点再加一个高频极点:
G_cv(s) = K_c · (1 + s/ω_z) / (s·(1 + s/ω_p))
零点的作用前面说过,用来提升相位。高频极点用来压制开关噪声和电流环等效极点之后的残余高频增益。
电压环设计流程是这样的:
第一步确定穿越频率f_cv。PFC电压环一般取10~20Hz,这取决于工频纹波频率。50Hz系统用10~15Hz,60Hz系统用12~20Hz。我习惯取15Hz,留一定余量。
第二步计算功率级在穿越频率处的增益。把G_v(s)在f_cv处的幅值算出来。由于f_cv远大于功率级极点(R_load·C_out/2决定,通常几赫兹),幅值近似为:
|G_v(j2πf_cv)| ≈ K / (2π·f_cv·R_load·C_out/2)
第三步设置补偿器零点频率f_z。通常取穿越频率的1/5到1/3,我常用3Hz左右。这样在穿越频率处,零点已经贡献了约70°到80°的相位提升。
第四步计算K_c,使得在f_cv处开环增益为1。这个K_c就是补偿器的中频段增益。
第五步设置高频极点f_p。取开关频率的1/10到1/5左右,或者放在电流环闭环极点附近,用来衰减高频噪声。100kHz开关频率,f_p取10kHz比较合适。
用Type-II补偿器设计出来的电压环,开环波特图呈现典型的“积分—零—极点”三段式。低频段高增益保证输出电压稳态精度,中频段以-20dB/dec穿越0dB线保证相位裕度,高频段快速衰减抗噪声。这个方法非常成熟,几乎所有PFC控制芯片内部都是这么干的。
3.4 数字电源传递函数离散化的工程实现
模拟设计完成后转到数字域,最核心的就一件事:把s域补偿器变成差分方程。
以Type-II补偿器为例,双线性变换后Z域传递函数是:
G_cv(z) = (b0 + b1·z^-1 + b2·z^-2) / (1 + a1·z^-1 + a2·z^-2)
对应的差分方程是:
u[k] = b0·e[k] + b1·e[k-1] + b2·e[k-2] - a1·u[k-1] - a2·u[k-2]
系数b0、b1、b2、a1、a2可以直接用MATLAB的c2d函数批量计算,不用手推。但有一个点必须注意:离散化时,s域公式里的增益K_c、零点ω_z、极点ω_p必须用双线性变换的频率预畸变(prewarp)修正过,否则实际频率响应会和连续设计有偏差。
我踩过一个大坑:直接用c2d(Gc, Ts, 'tustin')离散化,没有加预畸变,结果电压环零点从3Hz漂到了4.2Hz,穿越频率从15Hz变成了11Hz。虽然系统还是稳定的,但相位裕度比设计值少了8°,在低温环境下实测就出现了临界振荡。之后我所有离散化都这样写:
% 连续域补偿器 s = tf('s'); Gc = Kc*(1+s/wz)/(s*(1+s/wp)); % 预畸变双线性离散化 Gc_d = c2d(Gc, Ts, 'prewarp', 2*pi*fc);其中fc是关心的关键频率,一般取穿越频率。这样离散化后的相位在穿越频率附近和连续域几乎一致。
4. 实操案例:一款3kW CCM Boost PFC的完整设计
4.1 功率级参数与设计目标
下面用一套实际做过的参数来演示完整设计。主电路是单相CCM Boost PFC,设计规格如下:
| 参数 | 数值 |
|---|---|
| 输入电压 | 90~264Vrms |
| 额定输出 | 400V/3kW |
| 开关频率 | 100kHz |
| Boost电感 | 200μH |
| 输出电容 | 940μF(两颗470μF并联) |
| 控制芯片 | TMS320F280049C |
| 电流采样 | 采样电阻+隔离运放 |
设计目标:电流环穿越频率10kHz,相位裕度不小于55°;电压环穿越频率15Hz,相位裕度不小于50°;满载输入电流THD小于5%。
这个功率等级下,输出电容是450V电解电容,两颗并联是为了降低ESR和纹波电流应力。电感取200μH是综合考虑了纹波电流和RHPZ位置的结果,在90V低压输入满载时,峰值电流约40A,纹波电流约占总电流的20%以内,可以接受。
4.2 电流环参数计算与仿真验证
按前面的公式,G_id(s) = Vout/(sL) = 400/(s×200μH)。10kHz处增益约31.8倍(30dB)。考虑电流采样系数为0.05(20A对应1V),实际从控制量到电感电流的增益需要把采样系数乘进来。
设计PI如下:
- 穿越频率f_ci = 10kHz
- 零点f_z = 3kHz
- Kp = 1/(31.8×0.05) ≈ 0.63
- Ki = 2π×f_z×Kp ≈ 11880
离散化后得到差分方程系数。放到Simulink里做平均模型仿真,开环波特图显示相位裕度57°,穿越频率10.2kHz,符合预期。再看闭环电流波形,正弦追踪效果良好,过零畸变在死区附近可以接受,满载输入电流THD实测3.8%。
这里有个细节:电流环比例增益Kp不能只按公式算完就完事,还要乘上数字控制延迟带来的增益变化。PWM调制器等效增益通常是1/Vm(Vm是载波幅值),在数字控制里这个Vm是固定的,10kHz下零阶保持器的幅值衰减大约-0.8dB,所以实际Kp会略调高一些。我最终在硬件上用的是Kp=0.68。
4.3 电压环参数计算与仿真验证
电压环被控对象取G_v(s) = K / (1+s×R×C/2)。满载时R=Vout²/P=53.3Ω,所以功率级极点:
f_power = 1/(2π×R×C/2) = 1/(2π×53.3×470μF) ≈ 6.35Hz
这个极点附近有一个问题:频率低,意味着电压环穿越频率必须远大于6.35Hz才能获得足够的相位裕度,但又要低于20Hz来压制工频纹波。加上电流环的等效极点约5kHz(电流环带宽的一半),整个功率级在15Hz处的增益大约为:
|G_v(j2π×15Hz)| = K / (2π×15×R×C/2)
这里的K与输入电压、电流采样系数、电压采样系数都有关系,通常在0.01~0.1量级。设计时用MATLAB把每项系数写清楚算出来,然后配置Type-II补偿器。
我最终用的补偿器参数:
- Kc = 2.5
- 零点f_z = 2Hz
- 极点f_p = 5kHz
开环波特图显示:穿越频率14.8Hz,相位裕度54°,低频增益80dB以上,高频衰减到-40dB以下。Simulink仿真正弦满载启动,输出电压从0升到400V,超调约8%,稳定时间150ms,100Hz纹波约7.5V(1.9%),符合要求。
4.4 Simulink里怎么让传递函数直观显示出来
很多人在Simulink里搭了小信号模型,却不知道怎么把传递函数“看”出来。这里分享几个最实用的方法。
如果你有Simulink Control Design工具箱,在模型上标记线性化输入输出点,然后用linearize函数或Model Linearizer界面直接得到传递函数对象,再用bodeplot画波特图。这是最正规的做法,适合验证非线性平均模型的小信号特性。
如果没有工具箱,另一个笨办法是纯手算加MATLAB:把小信号的G_id(s)和G_v(s)写成tf对象,补偿器也写成tf对象,串起来直接用bode()函数画。我的习惯是两种方法同时用:手算模型用来快速迭代参数,Simulink线性化用来核对功率级的寄生参数影响(比如电感DCR、电容ESR)。
对于数字模型,要在闭环里显示离散域传递函数,可以用c2d把连续模型离散化后在MATLAB里bode,或者用Simulink里的LTI Viewer导入离散模型。注意离散波特图和连续波特图在接近奈奎斯特频率时会明显分叉,这是正常的,设计带宽只要远离采样率一半就不会有问题。
4.5 从负载切换看环路动态:实测波形解读
参数设计完成后,必须做动态负载测试。我习惯用突加/突卸50%负载来验证环路。
实测波形中有一个常见现象:负载突卸时,电压冲高后会有衰减振荡。如果振荡频率大约在几十赫兹,首先怀疑电压环相位裕度不足;如果振荡频率在几百赫兹到几千赫兹,多半是电流环快恢复时和电压环发生了相互作用。
我遇到过一种情况:负载突卸从满载到半载,电压过冲只有4%,但是过冲后有一个约5Hz的缓慢回摆,持续了三个周期才衰减完。排查发现是电压环零点f_z设得太低,导致相位回升太慢。把零点从2Hz提到3Hz后,回摆明显变短,但THD从3.8%涨到了4.2%。这就是环路设计里经典的“动态响应与THD的权衡”。
5. 拓扑演进带来的环路设计变化
5.1 图腾柱PFC工作原理与为什么高频臂不用IGBT
图腾柱PFC是近年来非常火的无桥拓扑,尤其在服务器电源和快充领域。它的结构是:交流输入直接接两个共源极的MOSFET组成的高频桥臂,另外两个低频二极管(或MOSFET的体二极管)构成工频整流桥臂。
工作原理可以这样理解:在工频正半周期,低频臂下管导通形成电流回路,高频臂上管作为Boost开关管、下管作为续流管工作;负半周期则角色互换。由于电流回路中始终只有两个半导体器件导通,对比传统Boost PFC桥式整流后还要经过二极管和开关管,导通损耗明显下降。
高频臂为什么不用IGBT?答案很直接:PFC的高频开关管工作在100kHz附近,IGBT的关断拖尾电流会造成很大的开关损耗,而且图腾柱PFC的高频臂要处理快速的电流换向,IGBT的反向恢复特性会导致严重的EMI问题。现在图腾柱PFC高频臂基本都是GaN HEMT,利用其零反向恢复特性实现高频高效率。IGBT在这个拓扑里顶多用在低频臂,因为低频臂只做工频换向,开关频率也就是50Hz/60Hz,拖尾损耗几乎可以忽略。
从环路设计角度,图腾柱PFC和传统Boost PFC在电流环上基本一致,都是电感电流控制,但它的电流采样因为没有整流桥,输入电流和电感电流存在极性差异,控制算法里需要根据电网电压极性切换电流环方向。如果切换点处理不好,过零点附近会出现电流畸变,这就是图腾柱PFC过零失真问题的来源。
5.2 三相维也纳PFC原理与环路差异
三相维也纳PFC主要用在通信电源和充电桩这类大功率三相输入场景。它的拓扑核心是:每相一个Boost电感加两个开关管,通过二极管钳位到中点,实现三电平输出。
维也纳PFC的控制复杂度比单相高很多。三个电流环分别控制三相电流,三个相位差120°;输出电压环只有一个,但需要额外处理中点电位平衡。因为三相的瞬时功率之和是恒定的(不包含二倍频纹波),所以维也纳PFC的电压环可以把带宽大幅提高,可以做50Hz甚至100Hz,动态响应远好于单相PFC。
但代价是控制变量多了。电压环输出同时给三相电流基准,而中点平衡环又会叠加一个零序分量到各相占空比上。这个零序分量对电流环来说就是一个前馈扰动,处理不好就会在相电流里注入三次谐波。设计时一般会让中点平衡环路带宽远低于电流环带宽,避免它们产生负交互。
5.3 无桥PFC的EMI优势与控制代价
双Boost无桥PFC、图腾柱PFC这类无桥结构在EMI上的最大优势是共模噪声更低。传统Boost PFC的输入整流桥在工作时会对地产生高频电位跳变,共模电流路径复杂;图腾柱PFC因为交流输入端直接接在桥臂中点,高频电流路径更集中、更对称,共模噪声更小。
但从控制角度,无桥PFC的输入电压采样和电流采样都需要特殊处理。比如图腾柱PFC在负半周期时,电感电流方向反向,但电流采样电路只能测正值,就需要加法器偏置或极性切换。每一处采样处理不当,都会成为环路里的额外延迟或增益误差,最终体现为THD劣化或环路裕度下降。所以别只看无桥拓扑效率高,它其实把硬件上的复杂度转移到控制上来了。
6. 常见问题与排查技巧实录
6.1 次谐波振荡:电流环比例增益过大的典型症状
现象:电感电流在峰值附近出现成对的宽窄脉冲交替,开关频率一半处有明显能量,噪声谱上出现f_sw/2的尖峰。
原因多半是电流环比例增益Kp过大,或者采样点没有对齐到PWM中心。CCM平均电流模式下,如果PWM更新发生在开关周期开始时,而采样发生在开关周期结束时,整个环路就多出约一个周期的延迟。在10kHz带宽下,这个延迟相位已经占36°,足以让次谐波振荡成立。
排查方法:先把Kp缩小一半看症状是否消失。如果消失,就是增益太大;如果没消失,检查采样时刻。TMS320F280049C的ADC采样应该在PWM计数器的周期匹配点触发,确保采样的是电感电流的平均值而不是开关纹波顶部或底部。
6.2 满载输入电流THD突然超标:电压环带宽在作怪
现象:空载和半载时THD正常(<5%),满载时THD飙升到8%以上,尤其轻载到满载切换瞬间。
这个问题的根源是电压环在满载时为了维持稳压,输出电流基准幅值出现100Hz纹波。虽然电压环带宽设计在15Hz,但如果补偿器的积分增益过大,在100Hz处仍有可观增益,就会把纹波传进电流基准。用示波器看电压环输出(也就是电流基准幅值),如果上面有可见的100Hz正弦波动,那就是电压环谐波抑制不够。
处理办法:压低电压环穿越频率到10Hz,或者增大高频极点附近的衰减。注意不能只降Kc,否则负载动态恢复时间会拉长。更优的做法是在电压环输出和电流基准之间加一个50Hz/60Hz陷波器,专门衰减工频纹波,这样既能保留动态响应,又能改善THD。
6.3 轻载时环路不稳定:CCM/DCM边界问题
现象:输出功率低于额定值的10%时,电感电流出现断续,电压环输出电压低频波动,甚至听到电感啸叫。
原因在于传递函数本身变了。DCM模式下,Boost的小信号模型和CCM完全不同,占空比到电感电流的特性不再是简单的Vout/(sL),而是包含更多的低频增益和相位变化。如果补偿器是按CCM设计的,到DCM就可能失效。
工程上的处理有三条路:一是强制工作在CCM,轻载时降低开关频率或加大最小电感电流偏置;二是设计模式切换,检测到DCM后切换到不同的补偿参数;三是用自适应控制,根据负载实时调整Kp、Ki。最简单可靠的是第二种,固定参数表切换,实测效果稳定。
6.4 启动时电压过冲过大:软启动与环路限幅配合
现象:第一次上电加载,输出电压冲到480V甚至更高,然后跌落回400V,伴随继电器吸合声。
PFC启动时输出电压从0爬升,此时电压误差很大,电压环积分器会很快饱和到一个很大的值,导致电流基准幅值过大。如果软启动只是缓慢抬升电压基准,但积分器不受限幅约束,过冲依然会存在。
我的做法是把电压环积分器输出限制在对应30%额定电流的水平,同时电压基准按10ms斜坡爬升。更规范的方法是用电压环输出钳位配合电流基准软启动斜坡,让PFC在启动阶段像是一个限流升压变换器,而不是全力追赶电压基准。这样即使负载突变,过冲也能控制在5%以内。
6.5 环路参数速查与调试顺序建议
最后给一张参数调整速查表,都是我实测验证过的调整方向:
| 症状 | 第一步调整 | 第二步调整 | 禁止操作 |
|---|---|---|---|
| 电流环啸叫/次谐波 | 降Kp 20% | 调采样点至PWM中心 | 同时拉高Ki |
| 电压环振荡(几十Hz) | 降电压环Kc | 高频极点内移 | 大幅提高带宽 |
| THD超标 | 降电压环带宽 | 加工频陷波器 | 盲目提电流环增益 |
| 启动过冲大 | 积分器限幅 | 加软启动斜坡 | 直接降穿越频率 |
| 负载切换回摆 | 电压环零点上移 | 补偿增益微调 | 一次性调两个参数 |
调试顺序很重要。我的习惯是先把电流环独立闭环,用电子负载当恒压负载,验证电流内环稳定;再把电压环闭环,先空载,再轻载,逐步加负载;每一步都在常温下确认稳定后再做高低温循环。环路调试最忌讳一次性把两个环都改了,那出了问题根本分不清是谁引起的。
调PFC环路这几年,我最深的体会是:传递函数和补偿器设计只是骨架,真正决定成败的是对延迟、采样噪声、拓扑切换这些“隐形的细节”的把握。每一次振荡,都能往回追溯到一个被忽略的延迟或一个没算准的极点。把基础模型吃透,再用实测数据修正参数,这个方向永远不会错。