反激电源环路稳定性:Type II补偿器与TL431实战设计
做反激电源这些年最常被朋友拉过去看的问题不是变压器怎么绕而是“为什么我的电源一带负载就响、就抖、甚至掉压”。排掉变压器饱和、供电不足这些问题之后剩下九成都在反馈环路上。离线反激转换器的反馈环路设计说难是真难因为功率级在不同的输入和负载下变化很大说容易也容易只要把Type II补偿器从原理到参数计算彻底搞明白大多数稳定性问题都能在画板之前解决掉。这篇不打算讲教科书式的长篇推导而是以我实际调板子的经验为主线把Type II补偿器的原理、零极点布置、TL431配合光耦的实现方式以及一个12V/2A离线反激的具体计算过程从头到尾走一遍。最后再分享一些实测验证的土办法和排查经验。适合刚接触电源环路设计的硬件工程师也适合做了几款板子但对补偿参数怎么来的还不太有底的朋友。1. 反激电源凭什么这么难缠稳定性问题的根源1.1 一面是功率级变化一面是隔离传输离线反激转换器的输入是整流后的直流母线变化范围非常大85V到265V交流输入意味着母线电压从大约120V跳到370V。占空比跟着输入走功率级的小信号传函也随之大幅变化。负载方面从空载到满载反激还会在断续模式DCM和连续模式CCM之间切换这两种模式下的传函形状完全不是一回事。再加上反馈要从次级传到初级中间必须经过光耦。光耦的电流传输比CTR本身离散性很大同一型号从50%到600%都能遇到。这就让环路增益变得不确定同样一个补偿参数这只光耦装上去很稳换了一只可能就振了。很多工程师第一次调反激调到怀疑人生的点就在这里——不是某一个模块难而是所有环节凑在一起变量太多。我的习惯是先把“控制对象”看明白再谈补偿。反激在峰值电流控制下从控制电压到输出电压的传递函数有一个非常重要的特征它退化成单极点系统而不是电压模式下的双极点LC系统。这个性质决定了Type II补偿器在大多数反激场景下够用不需要一上来就上Type III。1.2 负反馈和相位裕度稳定性的本质反馈环路本质上在做一件事检测输出电压偏差通过补偿器计算误差然后调整占空比把它拉回来。理想情况下扰动一出现环路应该快速、少振荡地消除它。但现实是信号从采样、补偿、光耦传输、PWM调制到功率级滤波每一级都会引入相位延迟。当环路总相位延迟达到180度而增益又恰好等于1时负反馈就变成了正反馈电源就成了振荡器。衡量稳定性的核心指标就是相位裕度一般要求45度以上工程上60度左右最舒服。相位裕度不足负载突变时输出电压会振铃好几个周期严重时干脆持续自激。相位裕度过大比如70度以上系统很稳但动态响应速度会变慢恢复时间拉长。很多人拼命堆相位裕度结果把瞬态做烂了其实没必要45到60度是黄金区间。1.3 Type I/II/III为什么Type II是反激的主流搭配先看三个补偿器类型的差异。Type I就是纯积分器低频增益无限大输出稳态误差为零但它会附加固定的90度相位滞后穿越频率只能做得很低动态响应慢适合对稳定性要求极高但速度要求不高的场景比如一些辅助电源。Type II在积分的基础上增加了一个零点和一个高频极点。零点用来提升相位最多可以补回90度正好抵消积分器那90度的相位滞后高频极点则用来压制开关噪声和高频增益。对峰值电流控制的反激来说功率级在CCM下近似为一个极点Type II的零点和这个极点配合就能做出穿越点附近增益以-20dB/dec穿越、相位裕度足够的效果。Type III则多了一组零极点通常用来对付电压模式控制下由LC滤波器带来的双极点或者需要把穿越频率做到很高比如高于谐振频率的1/2的场合。反激既然用峰值电流控制把功率级“改造”成了单极点就没有必要用Type III拉满武器。Type II足够电路简单、相位裕度好调、成本低。这个结论是我做了几个项目之后才真正认可的一开始总觉得Type II不够高级后来发现反激的瓶颈不在补偿器阶数而在右半平面零点对穿越频率的物理限制。补偿器类型积分器零点高频极点典型应用Type I有无无低带宽、音频电源Type II有1个1个峰值电流模式反激、部分BuckType III有2个2个电压模式Buck/Buck-Boost、高带宽控制2. 功率级传函补偿之前先摸清控制对象的脾气2.1 CCM与DCM同一台电源的两种性格反激在重载和低压输入下会进入CCM在轻载和高压输入下则进入DCM。两个模式下的功率级小信号传函差异很大。CCM下输出极点主要由输出电容和负载电阻决定极点的频率很低大概在几十赫兹量级。同时还有那个著名的右半平面零点在几十到几百千赫兹处等着你。DCM下输出极点频率大幅抬高而且没有低频率的右半平面零点或零点频率极高到可以忽略功率级变得更加温顺环路随便补偿一下都能稳定。问题就来了一台电源要从空载到满载全程稳定工作。如果你的补偿是按照CCM满载工况设计的到DCM轻载时功率级极点上移、增益变化补偿器零点和极点的搭配就可能错位。轻载振荡、打嗝、啸叫很多都是这个原因。所以经验做法是补偿参数以最恶劣工况为准来设计CCM、满载、最低输入电压。2.2 右半平面零点反激动态响应的天花板右半平面零点是反激和Boost这类升降压拓扑特有的麻烦它比普通零点带来的后果严重得多。普通零点在频率升高时提供相位超前而右半平面零点是相位滞后。幅度曲线上看是个零点相位上却像个极点所以特别迷惑人。物理直觉是这样的反激的占空比突然增大意味着初级导通时间变长、次级导通时间变短。在CCM下次级续流时间变短输出电容被放电的时间减少不对实际的机制是占空比增大开始时副边导通时间缩短输出电容必须单独支撑负载电流输出电压会先下降然后随着能量传递增加再升回来。这个“先降后升”的动态过程就是右半平面零点在时域里的体现。从数学上讲右半平面零点没有把系统变成不稳定系统但它把可用相位硬生生地扣掉了一大块导致补偿器能用的相位预算变少。你没法在右半平面零点频率附近获得足够的相位裕度所以穿越频率必须远低于它。工程上一般要求穿越频率不超过最低右半平面零点频率的1/3比较保守的取1/5。对一个W输入、12V输出、变压器初级电感380μH、匝比10:1的反激来说反射到次级的电感大约是3.8μH满载电阻6Ω在低压输入、占空比0.5的最恶劣情况下右半平面零点频率约为f_RHPZ (1 - D)² × Ro / (2π × Ls) 0.25 × 6 / (2π × 3.8e-6) ≈ 62.8kHz如果穿越频率做到15kHz和右半平面零点只差不到4倍相位裕度会很紧张取10kHz就比较稳妥。所以你会看到绝大多数UC384x方案的反激穿越频率都设计在开关频率的1/10左右这不是保守是右半平面零点逼出来的。2.3 功率级增益的工程化估算方法知道了极点位置和右半平面零点位置还差一个重要参数功率级在穿越频率附近有多少增益。这个增益决定了补偿器需要在穿越频率处“补”多少。教科书会给你完整的传递函数公式但工程上我更推荐两种方法仿真和实测。在Simplis或者PSIM里搭一个平均模型或者直接用厂商提供的仿真模板扫一下控制到输出的频率响应能得到比较准确的增益和相位曲线。更可靠的是实物测量把反馈环路断开注入一个正弦扰动扫频测量从扰动点到输出的增益。这个方法精度最高因为变压器杂散、等效串联电阻、光耦的实际偏置都被包含进去了。如果没有扫频仪也可以用一个初值估算然后通过瞬态测试验证。对常见的12V输出反激、峰值电流控制功率级在100Hz到1kHz区间的典型增益大概是20到30dB在10kHz附近大概还有-5到10dB的水平取决于采样电阻、变压器匝比和输入电压。设计时先按这个估做出板子再用瞬态测试确认一遍基本不会跑偏。3. Type II补偿器结构、传递函数和TL431实现3.1 补偿器的传递函数和我怎么说人话Type II补偿器的传递函数可以写成Gc(s) G0 × (1 s / ωz) / (s × (1 s / ωp))其中ωz是零点角频率ωp是高频极点角频率G0和低频积分斜率有关。看这个公式别慌把它拆成三块来理解s在分母上意味着低频是积分特性。频率越低增益越大直流处理论增益无限大这保证了输出电压稳态无差。分子上的(1 s/ωz)在频率超过ωz之后开始提升增益并贡献相位超前最大相位提升90度。这个零点用来抵消功率级输出极点带来的相位滞后。分母上的(1 s/ωp)在频率超过ωp之后开始压制增益把高频段的增益拉下来让开关噪声不会被放大也让频率响应在穿越后快速衰减。所以Type II做的事情就是低频使劲扛增益中频用零点稳住相位高频用极点收掉尾巴。整个思路和功率级一配合就形成了一个干净利落的穿越过程。3.2 TL431光耦如何搭出Type II电路实际电路不在于运放而在于一颗TL431和一个光耦。TL431本质是一个内置2.5V基准的误差放大器光耦负责把次级的误差信号传到初级。典型电路是这样输出经过Rupper和Rlower分压送到TL431的参考端RTL431的阴极K到参考端R之间跨接R1和C1串联支路同时接C2在K和R之间阴极K与输出之间通过限流电阻接光耦的发光二极管光耦三极管的集电极和发射极分别接到PWM控制器的COMP端和地。Rupper和Rlower的分压比决定了标称输出电压Vout 2.5 × (Rupper Rlower) / Rlower。R1串联C1是Type II的零点支路C2是高频极点电容Rlower本身又和补偿器增益相关。这套电路在电源界用了快四十年元件少、成本低、带隔离性能足够好。有个容易踩的坑需要提醒TL431阴极K和参考端R之间跨接的补偿网络它的参考地是次级地和初级的COMP端没有电气连接。环路分析的“地”在光耦这里发生了跨越光耦本身在小信号模型里就是一个受控电流源加一个受控电流源CTR就是它的电流放大倍数。所以光耦CTR直接出现在环路增益里选型时一定要考虑离散性。3.3 零点和极点该摆在哪儿零点和极点的摆放位置没有唯一答案但有一条经过大量实践验证的路径。零点频率一般放在穿越频率的1/3到1/5。比如穿越频率10kHz零点就放在2k到3.3kHz。这个位置的零点刚好能在穿越频率附近把相位拉回正数又不至于在中频区间注入过多增益破坏增益曲线的斜率。高频极点放在穿越频率的2到3倍以上比如10kHz穿越极点放在30kHz。这样在穿越点附近增益曲线能以-20dB/dec的斜率通过0dB线对应45到60度的相位裕度。极点如果放得太低比如放在穿越频率附近就会把那段斜率变成-40dB/dec相位裕度被吃掉动态响应变得很差。还有一个容易忽略的点高频极点的位置还要看你对输出纹波噪声的忍受能力。极点放得越低高频噪声衰减越多但相位裕度和瞬态响应跟着变差。实际设计时可以用仿真或实测多试几个位置找到噪声、稳定性和响应速度的平衡点。4. 实战设计12V/2A反激电源的Type II补偿参数4.1 先亮出设计规格和关键参数用我最近在做的一个辅助电源来做实例。设计目标是12V/2A输出开关频率100kHz采用UC3842峰值电流控制反馈用TL431加PC817光耦。变压器参数如下参数数值说明初级电感Lm380μH满载时工作于CCM匝比Np:Ns10:1初级到次级的匝数比输出电容Co1000μF普通电解电容ESR约20mΩ负载电阻Ro6Ω满载2A对应的等效电阻开关频率100kHzUC3842振荡频率最低母线电压120V85V交流输入整流后最高母线电压370V265V交流输入整流后反馈网络的初始选择是Rlower10kΩRupper38.3kΩ这样输出电压在12V附近同时Rlower的取值决定了补偿器的输入阻抗10kΩ是一个平衡值太小了功耗大太大了分压电流过小容易受噪声干扰。4.2 五步法确定R1、C1、C2第一步确定穿越频率fc。开关频率100kHz保守取fc 10kHz也就是开关频率的1/10。之所以不取更高前面算过低压满载工况下右半平面零点大约63kHz10kHz附近留了足够的间隔。如果取15kHz理论上也可以但相位裕度就会比较紧张温湿度变化后可能出问题。第二步估算功率级在10kHz处的增益。这个值我建议至少要一次实测或仿真确认。本次设计基于仿真和实测结果功率级在10kHz附近的增益约为-10dB意味着环路在穿越频率处需要补偿器提供大约10dB的增益才能把总增益拉回0dB。低压满载下增益最高这个条件是功率级想要的增益也是采样电阻和匝比决定的。第三步配置补偿器在穿越频率处的增益。Type II补偿器在中频段的增益近似为R1/Rlower。需要10dB的增益换算成线性值就是约3.16所以R1 Rlower × 10^(10/20) 10k × 3.16 31.6kΩ取标准值R1 33kΩ。这里有个细节R1的取值对中频增益和零点位置同时起作用所以不能只考虑增益还要回过去匹配零点的电容值。第四步摆放零点。零点频率取fc/3 3.3kHz零点由R1和C1产生C1 1 / (2π × R1 × fz) 1 / (6.28 × 33k × 3.3k) ≈ 1.46nF取标准值C1 1.5nF。实际零点频率约为3.2kHz完全在合理区间。第五步摆放高频极点。极点频率取30kHz大约3倍于穿越频率。极点由R1和C2产生C2 1 / (2π × R1 × fp) 1 / (6.28 × 33k × 30k) ≈ 160pF取标准值C2 150pF对应极点频率约32kHz。这样最终的补偿参数就是R1 33kΩC1 1.5nFC2 150pF。4.3 光耦和限流电阻的选择光耦选PC817ACTR典型档位在80%到160%之间标称值约100%。光耦LED的限流电阻Rled从输出12V接到LED阳极Rled (12 - 1.2 - 2.5) / 5mA ≈ 1.66kΩ取1.5kΩ实际LED电流约5.5mA。这个电流不能太小太小了光耦三极管工作点太浅环路增益不稳也不能太大太大了光耦饱和动态范围被压缩。CTR的影响必须在设计中考虑。如果光耦CTR偏大环路增益整体上升相位裕度降低CTR偏小则环路增益不足输出稳态误差变大。所以量产时最好定一款指定CTR档的光耦不要今天用A档明天用B档。我遇到过光耦批次造成的批量不稳定问题后来在规格书上强制限定CTR 100%到200%同时把Rled做了重新调整问题才收敛下来。4.4 仿真验证和初次上电的检查清单计算完参数我习惯先在Simplis里搭一个平均模型验证一下环路。重点看10kHz穿越点附近的相位裕度以及低频增益是否足够高。仿真通过后打板上电前按这个清单检查空载上电输出电压是否稳定在12V附近有没有低频振荡或啸叫轻载100mA观察输出电压纹波是否干净有没有次谐波振荡满载2A输出电压是否还在12V左右有无掉压现象满载下做负载阶跃从0.2A跳到2A观察输出电压的下冲、过冲和恢复时间输入电压从85V拉到265V全程记录环路稳定性表现我自己的经验是如果负载阶跃波形只有一个小的下冲然后迅速回到12V没有多余振荡说明相位裕度基本在45度以上这套参数可以进入量产验证。5. 实测验证与排障实录那些让人头秃的问题5.1 没有扫频仪怎么用示波器估算环路稳定性很多人不到万不得已不会去买小几万块的环路分析仪但稳定性又不能等到出了问题再发现。这里分享一个不需要专用仪器的土办法。准备一台函数发生器和一台数字示波器。在光耦LED的阳极前串联一个小电阻比如50Ω把函数发生器的正弦信号通过这个电阻注入到反馈环路中。在输出端用示波器测量输出信号同时在注入点测量扰动信号然后从几十赫兹到几十千赫兹逐点扫描记录每个频率点上的幅度比和相位差。数据整理到Excel里画Bode图就能估算穿越频率和相位裕度。这个方法精度不如专业仪器但判断“稳不稳”足够了。关键是测试时要在满载和最低输入电压下进行这是相位裕度最差的工况。另外注意注入电阻要小注入信号的幅度要足够低避免把环路推动到非线性区。如果懒得扫频还有一个快速判断法给负载加一个阶跃观察瞬态响应波形。如果恢复过程出现两次以上明显振铃相位裕度大概率低于30度如果完全没有振铃但恢复很慢则穿越频率偏低了。结合这两个特征能大致判断出补偿参数该往哪个方向调。5.2 常见故障现象和调整方向速查调试过程中我几乎把能踩的坑都踩了一遍整理了一个速查表每次调板子都直接对着看故障现象可能原因调整方向负载阶跃后剧烈振铃相位裕度不足增大C1零点前移或减小R1降中频增益空载或轻载啸叫DCM下补偿器零极点错位加假负载让电源退出DCM或增大C2压低高频增益满载上电输出先下掉再爬升右半平面零点限制不是故障检查穿越频率是否过高必要时降到8kHz输出低频周期性波动光耦CTR过大环路增益过高减小R1或限制光耦CTR档位纹波噪声偏大高频毛刺高频极点位置偏高增大C2把极点往下压启动时输出电压过冲大软启动不足或零点位置过前检查软启动电容或把零点前移位置回调这些调整不是孤立的动一个参数往往会牵动另一个指标。比如为了压高频毛刺增大C2会把极点往下拉如果极点拉到了穿越频率附近相位裕度就会跟着下降。所以每次调整都建议只动一个元件改了之后重新测瞬态响应再决定下一步。5.3 我这几年在反激环路里积累的几个细节说几个细节都是文档里不会写的。第一输出电容ESR对零极点的影响。现在很多设计为了把纹波做低会用低ESR的固态电容甚至几个小电容并联这会让输出极点频率变高、相位特性变化。Type II补偿器的极点位置要跟输出电容匹配不能拿着老参数套新电容。每次换输出电容我都要求重新扫一次环路这句话说出来是老工程师的教训。第二TL431阴极直接接的光耦LED寄生电容会和R1形成额外的极点。高通流光耦或者CTR过大的光耦寄生电容会更大。在反馈设计时C2可以稍微选大一点但别指望C2能完全抵消寄生电容的影响最好的做法是光耦选型时关注CTR和寄生电容的参数。第三变压器辅助绕组的供电也会影响环路。如果VCC电压不稳UC3842的占空比会被供电电压干扰反馈环路表现得像多了一个扰动源。碰到环路调不稳的情况先确认VCC纹波是否超标再动补偿参数。第四也是最重要的一条补偿参数的设计值是最优起点不是终点。实际板上一定会有额外寄生参数加上PCB布局、变压器结构不同参数需要微调。计算过程的价值是告诉你每颗元件为什么放在这个位置、向哪个方向调是安全的而不是给你一个一劳永逸的答案。