
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作祟环路上电就啸叫。举个例子比如Vout400VL200μH开关频率100kHz满载3kW输入220V时占空比峰值约0.28等效R_load53.3Ω。算下来f_rhpz大约在f_rhpz 53.3 × (1-0.28)² / (2π×200e-6) ≈ 43.5kHz看上去电流环带宽取10kHz是安全的。但如果你把电感加大到400μHf_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/(-RR)数学上发散但通过小信号线性化处理最终得到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常用双线性变换Tustins (2/Ts)·(z-1)/(z1)这两个变换各有特点。后向欧拉实现简单但高频增益有畸变双线性变换频率映射准确但要注意预畸变处理否则转折频率会偏移。我自己的做法是电流环用直接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/20100kHz开关频率取10kHz。太高了次谐波振荡风险大太低了THD补偿能力不足。然后计算被控对象在穿越频率处的增益|G_id(j·2πf_ci)| Vout / (2π·f_ci·L)比如Vout400VL200μHf_ci10kHz那么|G_id| 400 / (2π×10k×200μH) ≈ 31.8倍 ≈ 30dB为了在穿越频率处开环增益为1PI控制器的增益必须是被控对象增益的倒数即约0.031也就是-30dB。这里的增益是包含了电流采样系数和PWM调制增益后的综合比例增益如果采样电阻增益是R_sense那么实际Kp 1/(|G_id| × R_sense)。PI零点f_z通常放在f_ci的1/4到1/3处。取f_z3kHz则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~15Hz60Hz系统用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*(1s/wz)/(s*(1s/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开关频率100kHzBoost电感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.0520A对应1V实际从控制量到电感电流的增益需要把采样系数乘进来。设计PI如下穿越频率f_ci 10kHz零点f_z 3kHzKp 1/(31.8×0.05) ≈ 0.63Ki 2π×f_z×Kp ≈ 11880离散化后得到差分方程系数。放到Simulink里做平均模型仿真开环波特图显示相位裕度57°穿越频率10.2kHz符合预期。再看闭环电流波形正弦追踪效果良好过零畸变在死区附近可以接受满载输入电流THD实测3.8%。这里有个细节电流环比例增益Kp不能只按公式算完就完事还要乘上数字控制延迟带来的增益变化。PWM调制器等效增益通常是1/VmVm是载波幅值在数字控制里这个Vm是固定的10kHz下零阶保持器的幅值衰减大约-0.8dB所以实际Kp会略调高一些。我最终在硬件上用的是Kp0.68。4.3 电压环参数计算与仿真验证电压环被控对象取G_v(s) K / (1s×R×C/2)。满载时RVout²/P53.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%稳定时间150ms100Hz纹波约7.5V1.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环路这几年我最深的体会是传递函数和补偿器设计只是骨架真正决定成败的是对延迟、采样噪声、拓扑切换这些“隐形的细节”的把握。每一次振荡都能往回追溯到一个被忽略的延迟或一个没算准的极点。把基础模型吃透再用实测数据修正参数这个方向永远不会错。