ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

自适应斜坡补偿:解决峰值电流模式次谐波振荡的关键技术

自适应斜坡补偿:解决峰值电流模式次谐波振荡的关键技术 做电源的同行应该都有这种体会明明是闭环控制占空比却在某个工作点突然开始高频抖动电感电流波形出现一高一低的“大小波”开关管和电感还跟着发出吱吱声。这个问题十有八九和峰值电流模式控制中的次谐波振荡有关而把它压下去的关键就是斜坡补偿。传统的做法是直接加一个固定斜率补偿稳定是稳定了但代价往往是被掩盖的动态响应变慢和效率损失。这几年我越来越倾向于用自适应斜坡补偿它能在保证环路稳定的前提下把补偿量压到“刚够用”的水平让峰值电流模式控制同时兼顾稳定、动态响应和效率。这篇文章就把我在实际项目中踩过的坑、算过的参数、调过的波形都整理出来给准备上这个方案的朋友做个参考。1. 为什么峰值电流模式需要斜坡补偿1.1 峰值电流模式控制的先天优势峰值电流模式控制是开关电源里用得最多的控制方式之一Buck、Boost、Flyback 里都很常见。它的基本思路是外环电压误差信号作为电流基准内环检测功率管电流当电流上升到这个基准时关断功率管。由于电流内环直接参与脉宽调制它天然带了限流保护不用额外加过流检测同时在输入电压变化时电流环能很快响应不需要等电压外环慢慢去调所以输入瞬态响应比电压模式好不少。我在项目里选峰值电流模式主要是看中两点。第一单极点系统比较好补偿。峰值电流模式下功率级传递函数里那个由电感和输出电容构成的二阶极点会被电流内环“推走”一个外环补偿只需要按单极点来处理环路稳定裕度容易做高。第二并联均流特别方便多个电源模块直接共用一个电压误差信号电流环会自动均匀分配电流这在电源模块并机场景里非常实用。但这套方案有个绕不开的坎在占空比大于 50% 的时候如果不加斜坡补偿电流内环会变得不稳定产生次谐波振荡。这是峰值电流模式控制与生俱来的问题不是环路参数没调好而是离散采样结构决定的。1.2 次谐波振荡是怎么来的要理解次谐波振荡得从电感电流的扰动传播说起。以 Buck 变换器为例在恒定频率峰值电流模式下每个开关周期开始功率管开通电感电流以斜率 m1 上升当电流到达基准值功率管关断电感电流以斜率 m2 下降直到下一个时钟周期到来。现在假设某个周期里电感电流因为噪声多了一个很小的扰动 Δi。这个扰动会让关断点稍微提前或者延后导致这个周期结束时扰动被传递到下一个周期的起始点。经过一个开关周期后扰动变成了多少推导下来可以用一个系数 α 来衡量α (m2 - mc) / (m1 mc)其中 mc 是外加斜坡补偿的斜率。如果 |α| 小于 1扰动会一个周期比一个周期小最终收敛如果 |α| 大于 1扰动会被逐周期放大电感电流就会出现交替的大小波这就是次谐波振荡。它的频率是开关频率的一半听起来像“一半频率的噪声”所以经常被误判成 EMI 问题。问题就出在占空比上。稳态时 Buck 变换器有伏秒平衡关系m1 × D m2 × (1 - D)。也就是说 m2 / m1 D / (1 - D)。当 D 小于 0.5 时m2 小于 m1不外加补偿α m2 / m1 小于 1扰动自己就会衰减但当 D 大于 0.5 时m2 大于 m1α 大于 1扰动就会逐周期放大。这就是“占空比大于 50% 必须加斜坡补偿”这句话的由来。1.3 斜坡补偿的本质把一阶动态响应拉到收敛区间如果你还记得电路课程里的一阶动态电路响应会更容易理解这件事。扰动幅值在相邻开关周期之间的传递关系本质上就是一阶差分方程收敛还是发散取决于特征根。这和一阶 RC 电路里电压按指数趋向稳态是同一个数学结构。差别只在于一阶 RC 的极点由 R 和 C 决定这里的“极点”由 m1、m2 和 mc 决定。加入斜坡补偿 mc 之后α 的绝对值被压低扰动收敛速度加快。收敛的时间常数对应到控制环路上就是电流内环的动态特性。理论上只要满足mc (m2 - m1) / 2就能保证 |α| 小于 1次谐波振荡被抑制。这个条件在 D 大于 0.5 时尤其重要因为此时 m2 大于 m1必须有正值的补偿斜率。但这里有个容易被忽略的点这个条件是“稳定”的门槛不是“最优”的门槛。斜坡补偿加得越多α 绝对值越小稳定裕度越高但同时电流内环增益也越低。补偿不是越多越好它是一个稳定性和动态性能之间的权衡。理解了这一点才能明白自适应斜坡补偿的动机。2. 固定斜坡补偿省事但代价不小2.1 固定补偿的设计逻辑很多传统方案用的是固定斜坡补偿也就是不管输入电压、负载电流怎么变补偿斜率始终是一个常数。设计方法是把最恶劣工况算出来取一个足够大的 mc保证在所有占空比下都满足稳定条件。举个例子一个 Buck 变换器输入电压范围 4.5V 到 16V输出电压 3.3V电感 2.2uH开关频率 500kHz。电感电流下降斜率m2 Vo / L 3.3V / 2.2uH 1.5 A/us电感电流上升斜率m1 (Vin - Vo) / L在最低输入 4.5V 时m1 (4.5 - 3.3) / 2.2 0.545 A/us此时占空比 D 3.3 / 4.5 0.733大于 0.5是次谐波振荡风险最高的工况。按稳定条件mc (m2 - m1) / 2 (1.5 - 0.545) / 2 0.478 A/us留一点裕量固定补偿斜率取 0.6 A/us 甚至 1.0 A/us。这样设计在最低输入电压满载时确实没问题但问题在于在输入电压升高的工况下这个 0.6 到 1.0 A/us 的补偿斜率相对于当时的电感电流上升斜率会变得非常大。比如输入电压 6V 时m1 (6 - 3.3) / 2.2 1.23 A/us固定补偿取 0.6 A/us 就已经是 m1 的一半如果当初取的是 1.0 A/us补偿斜率都快赶上 m1 了。此时环路能稳定但动态响应已经被严重拖累。这正是固定补偿的尴尬按最恶劣工况留的裕量在多数稳态工况下都属于“过补偿”。2.2 过补偿如何拖慢动态响应过补偿对动态响应的影响要从峰值电流模式的电流内环增益说起。峰值电流模式控制中从电压误差信号到电感平均电流的等效跨导大概是 1 / [(m1 mc) × Ts]Ts 是开关周期。mc 越大这个跨导就越小意味着同样大小的电压误差信号变化能引起的电感电流变化幅度越小。宏观上表现出来就是电流内环增益下降整个环路的穿越频率跟着降低。补偿斜率一旦过大环路带宽可能只剩下设计值的一半甚至更低。负载突变时电压外环需要更长时间才能把电感电流推到新负载所需的值输出电压过冲和恢复时间都会变差。我实测过一个 12V 输入的 Buck固定补偿从 0.3 A/us 调到 1.2 A/us负载阶跃 10A 时的输出电压跌落从 90mV 恶化到 160mV恢复时间从 40us 变成了 80us。稳定裕度是保住了但动态性能几乎腰斩。对于需要快速响应用电器的场合这个代价很难接受。2.3 过补偿对效率的隐性损耗效率这块过补偿的影响更隐蔽但长期运行下来很可观。峰值电流模式比较器在电感电流到达基准值时关断斜坡补偿如果叠加上去等效于让比较器的电流基准阈值“缩水”。也就是说在同样的电压误差指令下实际能达到的平均电感电流会比无补偿时小。为了维持同样的输出功率电压外环会自行把电流基准抬高。结果就是稳态时电感峰值电流变大电流有效值也变大开关管的导通损耗、电感的铜损和磁芯损耗都会上升。在重载时尤其明显因为导通损耗是跟电流平方成正比的。更麻烦的是过补偿会让峰值限流点变得不准确。原本设计在 20A 过流保护的电源可能 18A 就把电流环推到限流点过早进入恒流模式带载能力莫名其妙下降。这些问题都不是“不工作”级别的故障而是性能打折式的慢性损失很容易被忽略。3. 自适应斜坡补偿的实现思路3.1 核心思想只补偿“刚够”的量自适应斜坡补偿的思路其实不复杂既然稳定需要的补偿斜率是工作点的函数那就实时测量工作点动态调整补偿斜率让它始终保持在稳定所需的临界值附近。补偿多了就适当降下来把电流内环增益和动态性能还给系统补偿不够了马上加上去防止次谐波振荡冒头。回到前面的公式min 需要的补偿斜率可以写成mc_min max((m2 - m1) / 2, 0)对于 Buck 变换器m1 (Vin - Vo) / Lm2 Vo / L代入之后mc_min max((2Vo - Vin) / (2L), 0)这个式子很关键。它说明在 Buck 拓扑里最小补偿斜率只跟输入电压、输出电压和电感量有关跟负载电流没有直接关系。输出电压通常是固定的电感量是已知的那么唯一需要实时跟踪的变量就是输入电压。当然这是理论最小值实际应用中不会卡得那么死一般会留 1.2 到 1.5 倍的裕量同时叠加一个很小的底值用来抑制轻载时可能的抖动和噪声误触发。但总体原则是补偿量跟着工作点走而不是一个常数打天下。3.2 模拟实现方案模拟域的实用做法是采用输入电压前馈型斜坡发生器。设计思路是用电阻分压网络采样输入电压 Vin再用一个运放或者跨导放大器计算出 (2Vo - Vin) 这个量因为 Vo 固定所以 2Vo 是一个常量基准减法电路很容易做。当 Vin 小于 2Vo 时输出为正对应的补偿斜率按比例叠加到 PWM 比较器当 Vin 大于 2Vo 时输出为零只保留一个很低的底值。具体到斜坡发生器的电路常见结构是用一个电容和恒流源构成线性斜坡。恒流源的电流由上述运算电路的输出电压控制这样斜坡斜率就正比于 (2Vo - Vin)。每个开关周期开始时斜坡电压从零开始线性上升在 PWM 比较器输入端与电感电流采样信号相加。这个方案的优点是响应快几乎不需要数字运算模拟电路天然就是连续的。缺点是精度受元件离散性和温度影响比较大电阻比例、电容容值、跨导放大器的增益都要校准。不过对于模拟控制的电源来说这已经是很成熟的工程方案很多专用电源控制芯片内部集成了类似的自适应补偿电路外部只需要配几个电阻设定系数。3.3 数字实现方案在数字电源里自适应斜坡补偿做起来更直接。芯片每个开关周期都要采样输入电压和输出电压占空比等信息本来就有计算工作点几乎是零成本。实现流程通常是每个周期根据上次采样的 Vin 和 Vo 计算 D Vo / Vin再按 mc_min 的函数关系计算需要的补偿斜率最后换算成数字比较器里的补偿量。数字实现的一个额外好处是可以加入温度和老化校准。模拟电路的电阻、电容随温度漂移会导致补偿实际值和设计值偏离数字方案里可以用温度传感器数据修正系数长期运行一致性更好。另一个优势是补偿量可以做成可实时观测的寄存器调试时直接读出来看当前补偿斜率是多少很容易确认自适应算法是否按预期工作。数字实现的坑也有最典型的是更新时序。补偿量一定要在 PWM 周期起始点更新不能在周期中间跳变否则会在占空比波形上产生毛刺。另外 ADC 采样延迟会带来相位滞后如果输入电压快速变化补偿量更新会有几个周期的延迟需要增加一点带宽和裕量来覆盖这个延迟。3.4 一个宽输入 Buck 的设计计算例子拿前面那个宽输入 Buck 来算一下自适应补偿的具体数值。Vin 范围 4.5V 到 16VVo 3.3VL 2.2uHFsw 500kHzTs 2us。关键工作点的计算如下输入电压占空比 Dm1 (A/us)m2 (A/us)理论最小补偿 mc (A/us)4.5V0.7330.5451.50.4786V0.551.231.50.1358V0.4132.141.5012V0.2753.951.5016V0.2065.771.50可以看到只在输入电压低于 6.6V 时才需要正的斜坡补偿输入电压越接近 4.5V需要的补偿斜率越大。如果采用固定补偿按最恶劣 0.478 A/us 再加裕量取 0.7 A/us那么在 16V 输入时补偿斜率是实际需要的十几倍。自适应方案下16V 时补偿量只有底值 0.05 到 0.1 A/us电流内环增益几乎不受影响动态响应自然好得多。实际标定时我会按理论值乘以 1.5 的安全系数同时确保底值不小于 0.05 A/us。然后在最低输入电压满载下实测电感电流波形如果没有出现大小波再把裕量慢慢往下压找到既能稳定又不明显拖垮动态响应的甜点区。这个过程就是“自适应”调校的核心。4. 设计与验证从仿真到实测4.1 参数计算与补偿斜率标定设计的第一步是确定基础参数。电感量、开关频率、输出电压这些在前面已经用了但实际项目里还会考虑电感电流纹波。补偿斜率的设计其实会反过来影响电感的选择过大的固定补偿会迫使系统把电流基准抬得更高相当于变相要求更大的电感纹波能力否则限流点太早触发。自适应补偿因为把补偿斜率压低对电感的额外应力也小。选定模拟方案或数字方案后要先把补偿回路里的增益系数标定好。模拟电路里通常先确定斜坡电容 Cramp 和充电电流源的比例然后用电阻网络调节 (2Vo - Vin) 到电流源的转换系数。数字方案里则是把 mc_min 公式中的乘除运算做成定点数注意 L 的数值要按实际电感量写入不能直接套理论值因为电感饱和后实际电感量会下降补偿斜率会偏小。标定顺序建议先在空载下看稳态波形确认没有音频噪声然后满载下看次谐波振荡迹象最后做负载阶跃测试记录输出电压动态响应。每一步都在固定补偿和自适应补偿之间做对比数据表格化方便后续复盘。4.2 仿真验证要点仿真阶段我习惯分成两步。第一步用理想的电流模式控制器模型验证控制逻辑重点看补偿斜率随工作点变化的规律是否正确。第二步加入 MOS 管、电感 DCR、采样电阻等非理想因素看补偿斜率在实测条件下是否仍然满足稳定裕度。常用的仿真软件是 LTspice 或 SIMPLIS。峰值电流模式仿真里PWM 逻辑通常用 RS 触发器搭时钟信号置位比较器复位时钟频率就是开关频率。斜坡补偿信号加在比较器的反向输入端和电感电流采样信号叠加。注意比较器需要设置合理的传输延迟延迟太大会让仿真结果偏乐观实测时次谐波振荡更早出现。我在仿真里会用参数扫描功能把输入电压从最低扫到最高每一点都看电感电流波形。重点不是在仿真里“能稳定”而是观察补偿斜率变化是否平滑。如果自适应算法在某个输入电压点出现补偿量跳变说明公式实现里有边界问题要提前修掉。4.3 实测波形判读如何发现次谐波振荡实测时最容易忽略的是次谐波振荡的波形特征。它不像普通振荡那样明显而是表现为电感电流峰值交替变化占空比也一高一低地交替。由于频率是开关频率的一半很多人会把它当成测量噪声或者示波器混叠结果调了半天环路参数也没找到根因。判断方法很简单把示波器时基放到比几个开关周期稍宽的范围触发在 PWM 上升沿。如果看到电感电流峰值点形成一条明显的“双线”说明两个相邻周期的电流峰值不重合次谐波振荡存在。更严格的做法是把波形做数学运算取电流峰值的包络如果包络有周期性的高低起伏那就是次谐波振荡。还有一个快速定位手段改变负载电流观察振荡幅度是否随电流增大而增大。次谐波振荡在 D 大于 0.5 的工况下会随电流增大加剧而普通噪声没有这种相关性。这样可以很快判断问题是不是补偿不足引起的。5. 常见问题与排查技巧实录5.1 轻载啸叫与音频噪声轻载啸叫在峰值电流模式电源里很常见尤其在进入轻载后系统从 CCM 切到 DCM 或者突发模式时。固定斜坡补偿太大时电流内环增益被压得过低突发模式的窗口阈值不准加上次谐波振荡的残余包络可能落在音频范围内电感就会发出吱吱声。自适应补偿在这种情况下有明显优势轻载时占空比往往不大需要的最小补偿斜率也很小系统自动把补偿量降下来电流内环增益恢复到较高水平突发模式切换的抖动明显减小。如果仍然有轻微啸叫优先检查底值补偿是否设置过大。我用过的最小底值是 0.03 A/us再往下就压不住比较器噪声了。5.2 瞬态恢复变慢的调试如果自适应方案做完了负载阶跃测试反而比固定补偿前更慢大概率是自适应算法里的补偿斜率计算偏差导致的。常见的锅是输入电压采样有延迟或者有高频噪声导致补偿量在真实工作点附近乱跳环路平均增益反而降低。排查时先在轻载和满载分别读出当前的补偿斜率寄存器值看数值是否和理论计算一致。如果数值波动很大给输入电压采样加一级数字低通滤波截止频率别太高刚好滤掉开关噪声就行。另外从固定补偿切换到自适应补偿时不要一次性把裕量砍太多分步验证每次只降 20%观察动态响应是否有劣化趋势。5.3 数字实现中的抖动与量化毛刺数字斜坡补偿最容易踩的坑是量化毛刺。补偿量在每个开关周期刷新如果相邻两个周期的补偿量变化太大PWM 比较器的翻转点会被“拉扯”占空比波形出现抖动脉宽。这在电感电流波形上看起来像随机噪声但实际上是确定性的量化效应。解决办法有三个方向。第一提高补偿量的有效位数用定点数或者多级累加器来平滑变化。第二补偿量更新时刻对齐到 PWM 周期起点不要在比较器翻转前瞬时更新。第三如果芯片支持 PWM 抖动功能开启抖动可以消除周期性毛刺的幅值。这个毛刺问题在模拟电路里不明显但在数字电源里几乎是必踩的坑。5.4 排查工具与测量心得我自己调试峰值电流模式电源必用的工具组合是电流探头、差分电压探头、网络分析仪。电流探头用于看电感电流波形判断次谐波振荡差分电压探头用于测量输出纹波和负载阶跃响应网络分析仪用于测量控制环路的穿越频率和相位裕度。网络分析仪在自适应补偿调试里特别有用。在固定补偿和自适应补偿两种模式下分别测环路增益对比穿越频率可以很客观地量化自适应补偿带来的动态性能提升。我见过不少团队只看时域波形觉得差不多但频域数据一出来穿越频率差了 1.5 倍才意识到固定补偿原来“偷”了这么多带宽。测量时还要注意探头的接地方式。高频环路测量对探头地线非常敏感地线夹一长高频段全是噪声毛刺相位裕度测出来虚低。我一般用接地弹簧探针和地线尽可能短测量结果才有参考价值。6. 调试中我印象最深的几件事做自适应斜坡补偿这一年多最深的体会是斜坡补偿不是“为了稳定而牺牲一切”的手段它本质上是一个优化问题。稳定只是下限动态响应和效率才是真正要追求的上限。刚开始我也习惯沿用固定补偿毕竟设计简单验证一次就能量产。但连续两次遇到宽输入范围电源的负载动态不合格后我下定决心把自适应方案工程化效果确实超出预期。有一次在 4.5V 到 16V 输入的 Buck 上做对比测试固定补偿下负载阶跃恢复时间是 75us切换到自适应补偿后降到 38us输出电压跌落也从 140mV 改善到 85mV。效率在中重载区提升了 0.8 到 1.2 个百分点。这个差距不是纸面上的是实实在在的系统性能提升。最后分享一个调试技巧在数字方案里加一个补偿斜率的遥测寄存器把实时补偿值记录下来配合输入电压曲线一起看。很多模糊的问题比如某个输入电压范围内效率突然变差、动态响应突然变慢对着补偿斜率曲线一看就明白了——多半是补偿量在那个区间被算法顶到了不该有的高位。数据永远比直觉可靠这也是我越来越倾向数字实现的原因。
返回列表