
做硬件的朋友应该都有印象常规的不控整流后面直接挂大电容电网电压很高的时候才充一下电输入电流变成很窄的尖峰脉冲谐波含量高、功率因数低。要想在输出母线稳定在400V的同时把输入电流修成正弦形状现在最通用、也最容易被接受的电路就是Boost PFC。最近我用LTspice完整跑了一遍Boost PFC从电感电流连续模式CCM到断续模式DCM的全过程仿真这篇笔记就把电路搭建、模式边界、波形对比和工程选型一次讲清楚。无论你是在校学生、刚入行的助理工程师还是被客户要求整改谐波的电源老手这套仿真流程都能直接拿过去用。1. 从Boost PFC的设计需求看CCM与DCM1.1 为什么PFC几乎成了电源的“标配”现在的开关电源要过EMC和能效认证输入电流谐波是有硬指标的。欧洲IEC 61000-3-2把小于16A的用电设备分为A到D类照明设备和大多数家电都划在需要限制谐波的类别里。即便不做认证工厂配电柜里的变压器和断路器也会因为高次谐波发热、误动作这是实实在在的工程质量问题。Boost PFC做的事情很简单把整流桥后面的电压升到比输入峰值还高然后通过控制开关管的占空比让输入电流在每个开关周期内跟着输入电压的变化走最终让电流波形和电压波形都接近正弦、相位对齐。功率因数这个概念可以用一个很朴素的公式表达PF等于有功功率除以视在功率。理想情况下是1普通整流加电容能做到0.6到0.7加上PFC之后能到0.95以上。1.2 Boost拓扑为什么能成为PFC的主流方案Boost变换器在PFC应用里赢在三点。第一升压电感的电流在开关导通时存储能量关断时和输入电压叠加向输出充电天生就能把整流后的馒头波电压抬升到高压母线而不需要额外的变压器。第二它放在整流桥后面电感电流就是输入电流的低频包络只要控制电流按正弦走谐波自然就降下来了。第三相对Buck或Buck-Boost方案Boost不需要悬浮驱动电路MOS管源极接地驱动设计简单这也让它在功率较大时更可靠。1.3 三种工作模式的定义与差异Boost PFC在稳态工作时有三种典型状态按电感电流是否降到零来区分CCM连续导通模式整个开关周期内电感电流始终大于零。电流波形是不断续的三角波开关管在每个周期开始前电感里还有残余能量。BCM临界导通模式电感电流在开关周期末端刚好降到零不进入负值也不留空隙。这是CCM和DCM的边界。DCM断续导通模式电感电流在开关关断后的一段空闲时间内降到零电流波形中间有明显的台阶和空白段。用一个直观的比喻电感电流的储能过程就像往水池里蓄水。CCM是池子里始终有水水龙头从没关死过DCM是每次都把池子放空再重新灌水BCM就是刚好放干的那一刻水龙头立刻打开。三种状态对应不同的能量传递方式也直接决定了电感的尺寸、开关管的电流应力、控制策略和EMI表现。1.4 工程上怎么选模式我见过很多新手一上来就纠结CCM还是DCM其实第一款决定因素就是功率和成本。大功率一般300W以上倾向CCM因为电流纹波小开关管峰值电流低EMI也好处理中小功率几十瓦到两三百瓦倾向DCM或者BCM因为电感可以做得小还能利用临界导通实现准谐振二极管没有反向恢复问题。这个结论要记住模式不是设计目标而是功率、效率、成本共同约束下的工程折中。2. LTspice仿真环境搭建与关键元伴件2.1 为什么用LTspiceLTspice是ADI官方免费的SPICE仿真工具没有节点数量限制能跑大模型瞬态收敛性在免费软件里算是一流的。做PFC仿真要用到开关电源的高频开关过程又要观察50Hz工频的输入电流包络时间尺度和频率跨度都很大LTspice的瞬态求解器对这种多时间尺度问题比较友好。而且它支持行为电流源、电压源、逻辑器件可以很方便地搭一个简化版的PFC控制环不用非要挂一个完整的控制芯片模型才能跑出波形。收到英飞凌、TI、ST这些厂商的SPICE模型后LTspice可以直接通过.include引入某些型号的.lib文件需要把加密模型转成标准SPICE文本转换前先用文本编辑器打开看一眼能否识别这是大家经常会踩的第一个坑。2.2 功率级电路装配与参数我这次仿真的目标是100W量级的Boost PFC输入220V RMS/50Hz输出母线电压设定在400V开关频率100kHz。功率级核心参数如下。元件参数说明交流源V1SINE(0 311 50)峰值311V等效220V RMS整流二极管1N5408型或理想二极管模型整流桥上每个二极管升压电感L12.2mH / 0.4mHCCM用2.2mHDCM用0.4mH开关管M1NMOS 600V用库里自带MOS或导入厂商模型输出二极管D5快恢复600V/5A普通1N4007反恢复时间太长仿真会失真输出电容C1220µF/450V初始电压设350V加快仿真启动负载R11600Ω400V/100W这里有个重要提醒输出二极管一定要用快恢复类型否则在CCM模式下关断瞬间的反向恢复电流会把波形搞得很难看甚至误导你判断电路是否正常工作。仿真里用理想开关管加真实二极管模型比两个都用理想模型更有参考价值。2.3 用行为电压源生成PWM驱动信号真实PFC芯片内部会做电压环、电流环、乘法器甚至还可以做输入电压前馈。仿真阶段不一定要从头把环路全搭起来可以用行为源做一个开环正弦包络调制先把功率级和模式问题跑明白。我采用了三个行为电压源* 三角波载波频率100kHz幅度0~1V B_tri tri 0 V 2*abs(2*mod(time*100k,1)-1) * 占空比调制信号按输入半波电压动态改变 B_mod pwm 0 V 1 - abs(V(bridge))/400 * 比较器输出12V驱动 B_gate gate 0 V if(V(pwm)V(tri), 12, 0) Rser4.7B_mod信号工程上的依据是Boost在稳态下占空比等于1减输入电压除以输出电压。输入电压过零时占空比接近1输入峰值时占空比最小大概0.22附近。这个简化调制方式虽然没有电流闭环但足以让电感的平均电流跟随输入电压形成典型的PFC电流包络。如果你想更贴近实际可以在B_mod前面加一个比例系数并对最小占空比做限幅效果差异不大。2.4 仿真测量与频谱分析命令仿真时间和步长设置在PFC仿真里非常关键。要看到完整的工频周期至少跑两个50Hz周期要看到开关纹波细节步长又必须小于100kHz的开关周期。我常用的瞬态指令是.tran 0 60m 20m 1u意思是仿真60ms从20ms才开始存储波形数据步长上限1µs。跳过启动阶段后波形稳定电容充电毛刺不会干扰观察。要看输入电流谐波用傅里叶分析指令.four 50 30 I(V1)这条指令会给出基波到30次的电流谐波分量。THD数据可以从SPICE Error Log里直接读出来这也是后续做CCM/DCM对比最直接的量化指标。3. CCM模式仿真与波形拆解3.1 CCM仿真结果电感2.2mH、100W输出把电感设成2.2mH负载1600Ω仿真时间跑到60ms后观察电感电流波形。正常CCM状态下10µs的开关周期内电感电流从比如说0.55A上升到0.87A再回落到0.55A整个过程中电流始终大于零。放大到整个工频周期看电流包络呈现出清晰的半波正弦形状最大值出现在输入电压峰值附近过零处电流自然收窄但不会断流。你还能看到输出电压稳定在400V附近纹波大概两三伏。因为输出电容只有220µF母线在工频双倍频上的纹波是正常的这个100Hz纹波会反馈到控制环路上所以在做闭环PFC时电压环带宽不能太高通常压到20Hz以内否则电流波形会被电压纹波调制出明显畸变。3.2 电感电流纹波如何决定THD与EMICCM之所以在中大功率里统治地位关键在电感电流纹波小。电感电流等于输入电流加上高频纹波纹波幅度和电感量成反比和频率成反比。若峰值电流处纹波0.32A平均电流0.64A纹波率只有50%高频成分落入传导EMI频段时能量就小很多。波形数据我们可以直接算一个理论值电感电流纹波ΔI等于输入瞬时电压乘以占空比再除以电感量和开关频率。在311V峰值处占空比0.2222.2mH、100kHz下ΔI≈0.31A如果换用1mH电感ΔI直接翻倍到0.7A以上。这个差距意味着共模和差模滤波器的成本完全不一样。THD方面得益于电流包络很接近理想正弦LTspice的.four分析结果里3次谐波约在5%左右5次和7次逐级衰减整体THD能控制在8%以内对应功率因数在0.997以上。对有谐波认证要求的产品来说这是非常健康的状态。3.3 CCM模式隐藏的坑二极管反向恢复CCM最大的麻烦是整流二极管关断时还有电流二极管从导通转为截止需要通过反向恢复把内部存储电荷抽走这段时间里二极管表现为短路状态会造成很大的尖峰电流。仿真里如果给输出二极管用理想模型或慢速二极管你会看到开关管开通瞬间有一个几十安培的电流尖峰推向真实器件甚至直接烧MOS管。我试过用1N4007这种工频整流管去仿真CCM结果电流尖峰严重输出电压完全失真。换成STTH5R06快恢复二极管或者SiC二极管以后尖峰立刻小下去。这也是为什么大功率CCM PFC几乎都用SiC二极管或超快恢复管仿真里选二极管时Tt反向恢复时间参数一定要设置否则等于没考虑这种现象。4. DCM模式怎么进入、看什么、为什么能行4.1 临界电感公式与算例CCM和DCM的边界由电感量、负载、开关频率共同决定。临界电感量可以近似用下面的公式估计Lc (R_L × D × (1 - D)²) / (2 × fsw)其中R_L等于输出电压平方除以输出功率400V、100W对应1600Ω。取输入峰值附近的占空比0.222开关频率100kHz算出来Lc大约1.08mH。这意味着在这个条件下如果电感量低于1mH左右电路就会进入DCM断续模式。我把电感从2.2mH换到0.4mH这是非常明显的DCM工作区间。保持同样的负载和开关频率仿真跑出来的电感电流波形会发生彻底改变。4.2 DCM波形的三个典型特征DCM模式下最直观的三个现象我一个个说电感电流在每个开关周期内下降并保持为零出现一段稳定的零电流平台。在工频半波的正弦包络里电流像一串断开的小山包而不是连续的锯齿形。电流峰值明显变大。因为电感小了开关导通期间电流上升斜率更陡想要传输同样的功率峰值电流自然就上去了。实测峰值从CCM的0.87A变成DCM的1.6A以上。电流过零时MOS管漏极和电感交接点的电压会出现高频振铃。这是电感和寄生电容谐振产生的振铃频率可能到几兆甚至几十兆赫在实际板子上要靠RC缓冲电路去吸收。从LTspice的Fourier结果看DCM虽然零电流平台存在但因为Boost固有的输入电流整形特性电流包络依旧能保持高频正弦THD在这个开环简化模型里反而比CCM更低一些。这一点我初做仿真时也意外后来一想其实合理DCM的自然能量传递方式决定了平均输入电流正比于输入电压。4.3 DCM下二极管和开关管的区别DCM最讨喜的地方是电感电流降到了零输出二极管在零电流条件下自然关断不存在CCM那种反向恢复尖峰。二极管可以选低频管或者慢恢复管成本低很多。这在小功率适配器、LED驱动电源里是巨大的优势。但事情要看两面。DCM的MOS管峰值电流高导致开关管导通损耗和关断损耗都高大功率应用效率会掉得很难看。DCM的电流断续让输入电流的高频谐波成分变大EMI滤波器要处理更宽的频带。仿真时把这些因素一起看进去就不会简单得出“DCM就是好”或“DCM就是差”的结论。4.4 DCM在真实电源里的身影目前手机充电器、LED驱动、电动工具充电器等几十瓦到一百多瓦的场合大量使用DCM或BCM方式的PFC。这类电源体积要求小散热条件差允许用轻载下进入DCM的方式来折中。BCM还用变频控制来降低开关损耗只是在低输入电压满载时会碰到频率太高的问题需要加入谷底导通控制来优化。5. CCM vs DCM仿真对比与工程决策5.1 输入电流质量对比我把两组仿真在同等功率条件下对比只改动电感量。下面是LTspice误差日志里读出来的数据汇总。指标CCM2.2mHDCM0.4mH电感峰值电流≈0.87A≈1.6A开关周期内电流是否为零否是输出二极管反向恢复明显有尖峰基本消除输入电流THD30次以内≈8%≈5%计算功率因数≈0.997≈0.999电感磁芯体积大小EMI滤波器复杂度较低较高这里有一个很容易忽略的细节THD低不等于EMI好。DCM的THD指标可能不错但高频开关纹波幅度大、频带宽传导骚扰更严重后级滤波器体积未必小。5.2 器件应力和效率的权衡MOS管峰值电流直接影响导通损耗导通损耗和电流平方成正比。DCM峰值电流几乎翻倍同样的RDS(on)下导通损耗增加四倍。再加上峰值电流带来的关断损耗DCM在100kHz下如果功率超过150W开关管发热就会变得非常棘手。换到CCM这边虽然MOS管电流应力小但二极管反向恢复损耗是逃不掉的。工程上要么换SiC二极管要么采用多相交错CCM来降低单相应力这也意味着成本上升。我在实际项目里总结了一条粗糙的经验100W以下用BCM或DCM成本和体积最优100W到300W开始纠结如果对成本极敏感、EMI有把握DCM还能硬撑300W以上老老实实上CCM再配SiC二极管。这条线不是绝对的但可以帮新手避开最危险的发热坑。5.3 控制策略对模式选择的约束CCM和DCM不仅是电平量还决定了控制算法选型。CCM适合平均电流控制和峰值电流控制但峰值电流控制容易在占空比超过0.5时出现次谐波振荡需要加斜率补偿。DCM因为电流每周从前一次下降到零不存在记忆效应控制方式可以更简单比如恒定导通时间就能实现很好的功率因数校正。我建议仿真时不仅看波形还要在头脑里过一遍这个模式下如果我用一颗专用PFC芯片来实现它是怎么采电流、怎么调制PWM的。CCM对应UC3854、UCC28180这类平均电流控制芯片DCM/BCM对应L6562A这类带乘法器的临界导通芯片。芯片选型反过来决定了你的外围电路设计这是从仿真到实物转化的必经一步。5.4 我个人做电源时的一个习惯每次拿到一个新项目我先不急着选芯片定拓扑。我先用LTspice搭一个通用Boost功率级把负载从轻载到满载扫描一遍观察电感电流何时从CCM进入DCM或者反过来。这个扫描花不了半小时但能清晰看到模式切换的位置从而判断这颗电源在整机工作范围内会不会频繁踩到模式边界。模式频繁切换对环路设计非常不友好控制参数在两种模式下差异巨大补偿网络难以兼顾实际板子容易出现“带载时正常、轻载时啸叫”的怪毛病。仿真阶段提前看到边界比后面拿到样机再头疼强太多了。6. 仿真踩坑与提速技巧6.1 LTspice不收敛的三个常见原因PFC电路里二极管桥、快恢复二极管和MOS管构成一个强非线性网络LTspice经常报“Time step too small”一类的错误。我总结下来最常见的三个原因如下。第一二极管模型反向恢复恢复时间设成一个极小值或零会导致导通转换时刻电流变化过于剧烈。处理方法是给二极管加一个几纳秒的Tt或者直接并联一个几皮法的电容做缓冲。第二电感旁边没有加任何阻尼元件开关关断瞬间会产生高频振铃振铃频率超过仿真器能处理的步长范围。处理方法是给电感并联一个RC串联缓冲并联电阻100Ω、电容100pF起步实际数值看振铃频率调整。第三初始条件不合适。输出电容默认从0V开始充电到400V需要很长时间瞬态里大量时间浪费在启动充电上如果你把仿真步长又设得很小很容易中途崩溃。用.ic V(out)350V或者.tran 0 60m 20m startup都能加快稳定过程。6.2 波形抖动和开关毛刺怎么处理高频电流和寄生电容谐振造成的尖峰在LTspice里会表现为纳秒级的细微波形锯齿。如果你观察的是宏观包络这种毛刺不影响分析但如果你要做.four谐波分析毛刺就会污染频谱导致THD数据偏高。处理方法是把最大步长调低到0.5µs.options maxstep0.5u虽然计算时间会拉长但傅里叶结果的稳定度提升很多。另一个技巧是分析前先让仿真运行到稳态。我在.four之前会先看电感电流和输出电压是否在20ms后保持周期一致不行就延长到40ms或60ms再启动频谱分析。6.3 构造库外模型的小技巧LTspice自带的功率MOS管模型其实很有限实际仿真时我经常需要用厂商模型。下载回来的模型有时是加密文件有时是.lib或.sub文件LTspice一般不直接识别加密模型需要去厂商官网找普通的SPICE子电路版本。导入方式就是在原理图里放一个“npn/nmos”符号然后在元件属性里填上模型文件名和子电路名。如果只是验证拓扑完全可以用LTspice自带的开关管模型设一个低导通电阻比如.model SW1 SW(Ron0.05 Roff1Meg Vt3)这样仿真速度快很多也不至于因为MOS模型参数不合适而折腾半天。等验证完原理再替换成真实器件模型做精细仿真效率最高。6.4 加速大型PFC仿真的三个设置PFC仿真涉及工频和开关频率两种时间尺度实际板子跑几十毫秒就要上万次开关周期仿真文件很容易卡成PPT。我常用的提速组合如下仿真启动阶段用3µs或5µs的大步长等进入稳态后用1µs步长换精度。有条件的话用LTspice自带的多核求解器17.1以上版本默认支持并行加速但注意老版本需要在新版里重新打开一次才能生效。把不必要的示波器探针全部删掉只保留要观察的有限节点。波形窗口里拖太多节点会让波形刷新拖慢在长时间仿真时差距非常明显。这些思路放在Altium、Simplis等工具里也通用先开环验证系统再闭环整定参数先用理想模型抓趋势再换真实器件抠细节。把CCM和DCM当成两种“性格”而不是两个阶段跑完这一整套仿真我最想分享的一点是CCM和DCM没有绝对的优劣它们只是电感在每天没有放完水还是放完再灌的区别。真正要紧的是你在仿真前就确定目标功率段、成本和EMI预算再用临界电感公式和LTspice扫描去验证你的选择是否成立。我比较常用的一个收尾习惯是最后把电感量从0.2mH一直扫到10mH观察不同电感下的峰值电流和THD变化曲线这个操作对建立直觉特别有效建议你也试一次。仿真软件能告诉你波形长什么样但只有练习后才能把波形背后的物理机制看透那时候再回头选电感、选芯片、调环路心里就有底了。