做了一年多GaN图腾柱PFC,如果把调试过程中踩过的坑列个排行榜,过零点处理绝对稳居前三。如果你也在这条路上,大概率经历过这种场面:示波器探头刚搭上电流采样电阻,过零点附近那串毛刺就明晃晃地杵在那儿,又尖又密,像一排钉子扎在正弦波上。轻则THD超标,重则把GaN管子直接打穿。很多方案都会告诉你"加个锁相环锁相就行",但真正调过PLL的人都知道,锁相环参数整定、电网畸变适应、动态响应之间的矛盾,处理起来同样是一地鸡毛。
这篇文章不打算绕弯子,直接分享我们实测过的三种无锁相环过零点处理方案:电压过零检测加双模式切换、电感电流过零检测的ZVT换向、单周期控制。我会把每种方案的原理、关键参数、实测数据和踩过的坑都摊开讲,适合正在做图腾柱PFC电源设计、想越过过零点这道坎的工程师参考。无论你是刚开始接触这个拓扑,还是已经被过零点折磨了一阵子,这些内容应该都能给你一些直接可用的经验。
1. 过零点难题的物理本质:为什么GaN图腾柱PFC偏偏在这里翻车
1.1 图腾柱拓扑的基本盘:省掉整流桥的代价
图腾柱PFC,说白了就是把传统桥式PFC里那个又慢又热的整流桥去掉,用MOS管组成的有源桥替代。高频桥臂用GaN,负责把电感里储存的能量搬进输出电容;工频桥臂用最普通的慢管,按电网半波切换就行。这样做最大的好处是:电流不再流过那两个导通压降0.7V起步的二极管桥,整机效率能往上蹿一大截。3kW的服务器电源,传统方案做到97%已经很吃力,图腾柱可以奔着98.5%以上去。
但拓扑确实是"便宜没好货"。省了整流桥,代价就是把过零点这个控制难题甩给了你。传统桥式PFC因为有整流桥的存在,输入电流被强制单向,过零附近天然是DCM断续区,控制环路根本不用关心极性切换;图腾柱是双向导通拓扑,电感电流在过零点附近要从正到负或者从负到正完成换向,这中间的过渡区间、开关时序、死区处理,任何一个环节没弄好,电流尖峰就会立刻出现在示波器上。
1.2 占空比失控区:一道数学上就躲不过去的坎
Boost电路在CCM模式下的占空比公式是 D = 1 - Vin/Vout。电网电压是正弦波,在过零点附近Vin瞬间趋近于0,D就要趋近于1,也就是开关管几乎要一直导通。但开关管有最大占空比限制,数字控制器里哪怕你把PWM占空比上限设到99%,剩下的那1%时间里,电感电流也做不了多少事。
更麻烦的是,过零点附近瞬时功率本来就接近于零,但电感电流是连续量,不能瞬间从正变负。你说让电流自然过零,问题是CCM模式下,电流在零附近以极高斜率穿过零点时,桥臂上下管的切换必须非常精准。稍微早一点或晚一点,就是典型的硬开关,电流尖峰就在这时候冒出来。我们实测过一个工作点:220V输入、400V输出的3kW平台,过零点的理论失控区间大约是正负0.3ms,在这段时间里如果控制器不做特殊处理,开关管的电压应力会明显升高,波形上能直接看到一串衰减振荡。
1.3 GaN器件把问题放大了
如果用传统Si MOSFET做图腾柱,由于体二极管的反向恢复时间和电荷都比较大,高频桥臂往往只能做DCM或CrCM,频率上不去。GaN HEMT没有体二极管,反向导通靠的是二维电子气沟道,反向恢复电荷几乎为零,所以能把CCM模式的工作频率推到几百kHz甚至MHz级别,这是GaN图腾柱最大的优势。
但GaN器件在过零点换向时也有几个天生短板。第一,GaN的反向导通压降比Si MOSFET的体二极管高不少,死区时间内电流走沟道反向导通,损耗明显,死区时间必须尽量压缩,但压缩过头又可能在换向时直通。第二,GaN的Coss是非线性的,高压段和低压段电容值差好几倍,换向时Coss充放电时间会随电压变化。固定死区时间在这种情况下根本不保险,ZVS条件未必成立。第三,GaN的dv/dt可以做到50V/ns以上,过零点换向瞬间的高dv/dt会在寄生电感上激起振铃,严重的时候驱动波形上会出现毛刺,甚至导致桥臂误导通。
这三件事叠加在一起,过零点处理就成了GaN图腾柱PFC绕不开的核心课题。
2. 方案一实测:电压过零检测加CCM/CrCM双模式切换
2.1 思路:过零附近干脆不硬扛
先说明一点,很多工程师听到"无锁相环方案"就觉得要搞很复杂的控制算法,其实最简单的方法就是做模式切换。关键洞察在于:CCM模式下的占空比饱和失控区,本质上是因为电感电流在过零附近无法自然归零,控制环路失去了对电流的约束。那换个思路,过零附近干脆别让电感电流连续了,把控制模式切换到临界导通模式(CrCM)或断续模式(DCM),让电感电流每个开关周期都归零一次,换向问题就自然消失了。
这套方案的逻辑非常简单。正常工频段用CCM,既能控制电流纹波又能保持高效率;在电压过零前后开一个时间窗口,窗口内切换成CrCM,让高频桥臂以变频率的方式工作,电流每周期都过零,换向就变成了"顺水推舟"。窗口外再切回CCM。
2.2 实现细节:过零检测的坑比你想的多
过零检测看起来简单,一个分压电阻加一个比较器就行,但真正做起来里面全是细节。
第一个坑是分压网络的相位延迟。电阻分压后面通常要加一个小电容做滤波,防止高频噪声让比较器误翻转。但RC滤波会引入相位延迟,在50Hz电网频率下,哪怕只有100us的延迟,换算成相位角也有1.8度。听起来不大,但对过零窗口这种毫秒级别的控制来说,10%的误差已经能把窗口位置带偏了。我们最后把滤波器时间常数压到5us以内,同时在软件里做了一阶补偿,才把相位误差控制到可接受范围。
第二个坑是过零比较器的噪声。电网电压经过分压后,过零点附近信号幅度很小,稍微有一点噪声就会导致比较器多次翻转。解决办法是加滞回,滞回电压设在5V到10V量级,具体值要根据分压比算一下,不能让滞回把过零点的真实位置吃掉。
第三个坑是窗口宽度怎么设。窗口太宽,CrCM模式下开关频率上升,EMI变差、开关损耗变大;窗口太窄,CCM占空比饱和的问题没躲干净。我们在220V输入、400V输出、3kW的平台上做过扫参测试,结论是1ms到1.5ms比较合适,对应50Hz下约9度到13.5度的窗口范围。负载越轻,窗口可以适当收窄,因为轻载下电流本来就不大,过零换向的冲击也小一些。
2.3 CrCM切换时的无扰过渡:最容易翻车的瞬间
很多人以为模式切换就是把控制方式在某个时刻换一下,实际调试的时候你会发现,切换瞬间如果处理不好,电感电流会突然出现一个台阶或者凹坑,比过零点本身的畸变还难看。
原因其实不难理解。CCM模式下电感电流是连续的,CrCM模式下电感电流是三角形的,两者交界处的峰值电流参考如果不连贯,占空比就会跳变。我们的做法是:在切换点附近,让CrCM的峰值电流参考值等于CCM模式的电感电流瞬时值,同时在一个开关周期内渐变完成状态切换,而不是一步到位。
这套切换逻辑在STM32G474上用软件状态机实现,频率响应足够。实际波形上,CCM到CrCM的切换瞬间电流过渡几乎是平滑的,只有一个非常细微的噪声毛刺,不影响THD。
2.4 实测数据与局限性
在3kW平台上实测,这套方案的效果是:
- 未做任何处理时,过零点电流尖峰约3.6A,THD约6.9%
- 上了双模式切换后,过零尖峰降到约1.5A,THD降到3.8%
- 效率在中轻载下有约0.5%的提升,因为CrCM模式下的ZVS条件比CCM好
但它的局限性也很清楚。CrCM在过零窗口内是变频工作,轻载时开关频率会飙得很高,可能会超过GaN器件的推荐工作范围。我们遇到的情况是10%负载附近,CrCM频率冲到过500kHz,虽然GaN扛得住,但驱动损耗和磁芯损耗明显上升,EMI也变差了。另外,窗口宽度是固定的,如果电网频率波动超过正负2%,窗口和实际过零位置就会错开,效果打折。要做到自适应窗口,就得实时计算电网频率,这时候离锁相环就不远了,只是精度要求没那么高而已。
3. 方案二实测:电感电流过零检测加ZVT换向
3.1 思路:直接锚定电流换向时刻
方案一本质上是"避让",用模式切换绕开占空比失控区。方案二思路完全相反:不躲,直接正面解决换向问题。既然过零点的核心矛盾是电感电流方向改变,那干脆直接检测电感电流什么时候过零,在过零前主动关断高频桥臂,让桥臂中点电压自然翻转,实现零电压换向(ZVT)。
这个方案最吸引人的地方在于,它完全不关心电网电压的相位、频率、畸变情况,只看电感电流这一个状态量。只要电流检测足够准,它天然就是自适应电网频率的,负载变化也不怕。对于电网条件比较恶劣、电压谐波含量高的场景,这个方案的鲁棒性比方案一好得多。
3.2 实现细节:电流检测精度决定成败
这套方案的核心在电流检测环节,必须准确捕捉几安培到几十安培大电流基础上叠加的"过零穿越"。
我们试过几种检测方案。霍尔传感器带宽太低,几十kHz的带宽根本抓不住开关周期内的电流过零瞬间,直接淘汰。电流互感器在高频下表现不错,但在接近直流的低频部分无能为力,图腾柱PFC的电感电流基波是工频50Hz,互感器低频响应不够,也不行。最后稳定用的是低感分流器加高速差分放大器方案,带宽能做到10MHz以上,配合高速比较器,过零判断延迟可以压到50ns以内。
但这个方案有一个很关键的坑:检测到的信号上叠加着极高幅度的开关纹波。电感电流本身是带有三角波纹波的平均电流,直接拿这个信号做比较器判断过零,比较器会在纹波过零的每个开关周期都翻转一次,完全不是我们要的工频换向时刻。解决办法是加低通滤波器把开关纹波滤掉,但滤波器的截止频率又会影响过零点的延迟。我们最后用了一个折中的二阶滤波器,截止频率设在开关频率的十分之一左右,然后在校准环节把滤波器引入的固定延迟补偿掉。
3.3 ZVT换向时序:一个状态机的完整工作过程
检测到电感电流即将过零后,换向时序是这样的:
- 正常CCM工作,高频桥臂下管导通,电感电流为正
- 电流检测电路判断到电感电流正以一定斜率下降,即将穿过零点
- 控制器在预测的过零时刻之前关断下管,进入死区
- 此时电感电流还有少量残余,这部分能量刚好用来给桥臂中点电容(主要是GaN的输出电容Coss)充放电
- 桥臂中点电压从0V自然上升到400V,完成换向
- 上管的反向导通沟道开始续流,此时打开上管,就是标准的零电压开通
其中第4步是精髓。如果残余电流太大,中点电压在死区内提前翻转完毕,剩下的时间电流就要走反向导通沟道,白白增加损耗;如果残余电流太小,中点电压翻转到一半就停了,上管开通时还带着几百伏电压,硬开关,波形上会看到非常尖锐的电流尖峰。
所以这个方案对死区时间的要求极其苛刻。GaN的Coss非线性让这个计算更加复杂——我们最初用固定死区,300ns,结果在高压段和低压段表现完全不一样,低压段ZVS总是失败。后来改成两段式死区:根据检测到的输入电压幅度自动在250ns和380ns之间切换,才算把这个问题压下去。
3.4 实测数据与局限
这套方案在测试台上的表现是:过零换向尖峰控制得比方案一小,基本能压在1A以内,THD约3.2%。动态响应很好,负载从10%跳到100%,电压波动只有约15V,比方案一要好。
但它的短板也非常明显。第一,成本高,高性能电流检测电路比通用DSP加比较器贵不少。第二,轻载是个灾难:负载低于20%时,电感电流本来就很小,过零附近的电流信号信噪比极差,检测电路经常误判,换向时序错乱,我们把滞回阈值调低了才勉强能用,但这时候THD已经很难看了。第三,这套方案本质上是"局部优化",它解决了换向尖峰,但并没有系统性地改善占空比饱和带来的电流畸变,所以在重载下电流质量不如方案三。
4. 方案三实测:单周期控制(OCC)——天然无锁相环的过零优化方案
4.1 OCC为什么不需要锁相环
单周期控制这个名称听起来很玄,核心思想其实一句话就能讲清楚:在每个开关周期内,让受控变量在一个周期内的平均值严格等于参考值,通过复位积分器实时完成这个等式的结算。
PFC中OCC的控制方程推导到最后,占空比表达式就是Boost变换器的稳态占空比公式 D = 1 - Vin/Vout。关键在于,传统方案需要实时检测Vin的瞬时值并除以Vout,然后和前馈量叠加,中间还要涉及电网相位信息;而OCC用一只复位积分器就把这个关系"物理化"了——积分过程每周期从零开始,积分结束时输出占空比,天然不需要知道电网电压的绝对相位。
那过零点问题为什么在OCC里自动化解了?因为积分是从零开始的,参考值在过零附近本来就小,占空比不会冲到接近1的饱和区,而是平滑地"软着陆"。我们没有做任何额外的过零特殊处理,OCC自身就带有这个特性。这比前两个方案都省心,因为不需要维护模式切换状态机,也不需要精密电流检测电路。
4.2 数字OCC实现要点:积分器复位不是随便写个累加
OCC最早是模拟电路实现的,一个运放加一个复位开关就能跑。但在GaN图腾柱PFC里,我们还是要做数字化实现,方便做电压环补偿、保护逻辑和通信。
数字OCC在DSP里的实现,理论上就是每个开关周期累加一个与输出电压成正比的量,然后和电流参考比较,输出PWM。听着简单,实际操作里有三个非常要命的细节。
第一个是采样时刻。ADC采样必须同步到PWM载波的中心点或者谷底,绝对不能随机采样,否则采到的开关纹波分量会让积分结果乱七八糟。我们用的是TMS320F28379D的ePWM模块触发ADC,做中心对齐采样,采样窗口避开死区时间附近。
第二个是积分器的复位必须干净。硬件复位开关有电荷注入效应,数字实现里没有这个问题,但要注意积分器溢出。如果输出电压环饱和导致参考值过大,积分累加值可能超出PWM计数器的范围,必须在累加前做限幅,不然会有非常奇怪的跳变。
第三个是电压环带宽要压得住两倍工频纹波。PFC后级的电压环输出里天然含有100Hz纹波,这个纹波会直接叠加在电流参考上。OCC的响应非常快,如果电压环带宽太高,参考值会被100Hz分量干扰得乱七八糟,输出波形上能看到明显的低频振荡。我们最后把电压环穿越频率压到15Hz左右,纹波抑制和动态响应之间取了一个平衡。
4.3 实测数据:THD和动态响应双赢
在同一个3kW测试平台上,OCC方案的数据是最漂亮的:
- THD约2.8%,轻载20%时约3.4%
- 过零点电流尖峰几乎看不到,波形上只有一个非常平滑的过渡
- 负载从半载到满载的阶跃,电压波动控制在20V以内,恢复时间约30ms
另外有一点让我很意外:OCC的过零表现对输入电压谐波反而没那么敏感。我们往输入侧注入5%的5次谐波,方案一的窗口定位就开始漂移,方案二的电流检测信号也被污染了,而OCC仍然能维持3.5%左右的THD。这个特性在工业现场很有价值,因为实际电网远没有实验室那么干净。
4.4 OCC的边界条件与使用限制
OCC不是银弹,它有两个问题需要正视。
第一个是抗干扰的脆弱面。OCC的控制方程是从理想boost拓扑推导出来的,它对电感参数的依赖很低,但对电感电流的实际波形质量很敏感。如果电感设计不合理,或者在大信号扰动下电感电流出现饱和,OCC的积分器就会产生错误的占空比输出。所以电感选型要留足裕量。
第二个是数字实现下的分辨率限制。OCC对PWM占空比的分辨率要求比较高,在开关频率650kHz时,如果PWM时钟只有100MHz,一个LSB的占空比变化已经达到0.65%了。GaN器件对占空比分辨率敏感,这会导致输出电流纹波变大。我们的解决方法是把PWM分辨率提升到150ps级的HRPWM模块,成本略增但效果立竿见影。
5. 三方案横向对比与关键避坑清单
5.1 横向对比
把三个方案放在一张表里,各自的定位会清楚很多。
| 对比维度 | 方案一:双模式切换 | 方案二:电流过零ZVT | 方案三:单周期控制 |
|---|---|---|---|
| 过零尖峰抑制 | 较好,约1.5A | 最好,约1A以内 | 最好,无明显尖峰 |
| THD实测(满载) | 3.8% | 3.2% | 2.8% |
| 动态响应 | 中等,模式切换需时间 | 好,直接作用于换向 | 好,环路简单 |
| 轻载表现 | 差,CrCM频率过高 | 很差,电流检测信噪比不足 | 较好 |
| 对抗电网畸变 | 差,窗口位置会偏 | 一般,电流信号被污染 | 较好 |
| 成本增量 | 低 | 高,高性能电流检测贵 | 中,需要高分辨率PWM |
| 调试难度 | 中,状态机切换容易出问题 | 高,时序敏感 | 中,需要理解积分器行为 |
| 量产适配度 | 高 | 中 | 高 |
如果你只想记住一句话,我的看法是:方案一适合快速出功能样机验证拓扑,方案二适合追求极致动态和效率的特定场景,方案三是综合性能和成本最优的长期选择。
5.2 避坑清单:这几个坑跨方案通用
不管选哪个方案,下面这几个坑几乎是每个GaN图腾柱PFC工程师都要踩一遍的。
死区时间要动态调,不能一设了之。GaN的反向导通压降高,死区太长损耗很大,死区太短桥臂直通直接就炸管。GaN的Coss非线性意味着最优死区是随工作点变化的,至少要用分段查表的方式做两档调整。有一次我们偷懒用固定死区,结果在高压输入段管子温升比低压段高了将近10度,查了很久才定位到是死区问题。
电流采样带宽不够,过零判断全是假的。图腾柱PFC的电感电流里有几十kHz的开关纹波,要判断工频电流过零就得滤掉纹波,但滤波又带来延迟。带宽和延迟是一对冤家,没有滤波的原始信号不能直接用,滤多了判断不准。我们的经验是,滤波器截止频率取开关频率的1/8到1/10,然后做固定延迟补偿。
EMI滤波器的电容电流不能忽视。PFC前面的EMI滤波电路里有X电容,X电容的电流比输入电压超前90度,这个电流叠加在输入电流上,会让过零点的实际位置偏移。如果过零检测是电压型的,检测点是电网电压过零,但电容电流分量会让总输入电流的过零位置提前。严重的时候,这个偏差能达到正负几百微秒,足以让整个过零处理策略失效。我们最后做了个简单的软件补偿模型,把X电容的电流估算出来加回去,才算把相位差校准干净。
电压环带宽要压到两倍工频以下。这个其实是PFC的常识,但在GaN图腾柱上更容易翻车,因为GaN开关频率高,控制器带宽也相应调上去了,很多人顺手就把电压环带宽也调高了。电压环带宽高了,100Hz纹波会通过参考值污染电流环,最终体现在过零点附近就是一堆低频振荡。
轻载保护和过零检测要联动。轻载时电感电流小,过零换向的冲击本来就弱,但电流尖峰的相对畸变反而更明显。我们最后在软件里做了一个按负载分级的策略:满载时用完整的过零处理,轻载时适当关闭部分处理逻辑,同时把开关频率降下来躲开谐振点。这样既保了效率,又保了THD。
5.3 调试工具和测量技巧:看不到波形等于瞎调
过了这么多坑之后,有一个体会特别深:过零点问题是高速瞬态问题,常规的示波器设置根本抓不到关键波形。
调试过程中要保证示波器采样率够高,至少2.5GS/s,然后要花心思把触发条件设好。我们最常用的做法是拿输入电压过零信号做触发源,时基打到500us/格左右,然后连续采集几百次波形,在软件里做叠加对比。只有这样才看得出每次过零的尖峰是不是一致、死区时间是否覆盖住了所有负载点。
还有一点经验,示波器探头的地线一定要用最短的弹簧地,不要用那个长鳄鱼夹地线。GaN的dv/dt太快,长地线形成的环路会感应出巨大的电压尖峰,让你看到一堆根本不存在的"鬼波形"。之前我们花了整整两天排查一个振铃问题,最后发现是探头接地方式不对,这种事说出去都丢人,但做电源调试的人应该都懂。
用热像仪辅助观察换向损耗也是好办法。ZVS失效和换向损耗过大,在电参数上可能只是几个百分比的变化,但热像仪上GaN管子的温度差一照就出来了。我们换班调试时经常互相问:"今天管子多少度?",温度一旦比正常值高出15度,不用怀疑,过零点处理的状态机十有八九有bug。
结尾
目前我们在批量交付的项目里用的是方案三,数字单周期控制。回看整个选型过程,其实最早先用方案一跑通了全部功能,当时觉得能把过零点压到1.5A已经很满意了。后来是产线反馈说电网谐波大的厂区THD超标,才下决心换了OCC。换完之后发现,效率、THD、动态响应全面提升,代价只是一些软件层面的重构,还顺便去掉了两个外围芯片。
最后再多说一句:方案二并没有被放弃,我们正在把它和OCC做融合测试,用OCC做全局控制,用电流过零检测做换向时序的微调,数据还不错。如果这条路能走通,可能就真的把GaN图腾柱PFC过零点这个老大难问题彻底收进抽屉里了。
过零点这道坎,做电源的人迟早要面对。希望这篇实测记录能帮你少走点弯路,省下几块炸掉的GaN管子钱,也省下几个加班的夜晚。若有问题想探讨,评论区见。