4. 采样与量化对整定的影响

电压模式控制,说白了就是最经典、最直观的一种控制方式。你采样输出电压,跟参考电压比一比,误差信号直接去调占空比。听起来简单,但实际调起来坑不少。我刚开始做数字电源那会儿,就因为在补偿器上偷了懒,结果板子一上电就啸叫,吓得我赶紧拔了电源线。

这一章,咱们就聊聊电压环怎么设计,Type II 和 Type III 补偿器到底怎么选、怎么算。

电压环的基本结构

先看整体框架。电压模式控制环路里,几个关键模块串在一起:

  • 功率级:Buck、Boost 或 Buck-Boost,输出 LC 滤波器
  • ADC 采样:把模拟输出电压变成数字量
  • 数字补偿器:就是咱们要设计的 Type II 或 Type III
  • 数字 PWM 模块:把补偿后的占空比变成开关信号

嗯,这里要注意。功率级的传递函数里,LC 滤波器会带来一个双极点,相位直接掉 180 度。如果不加补偿,环路稳定性基本没戏。

核心思路:补偿器的任务就是在穿越频率附近,把相位裕度拉到 45° 以上,同时保证足够的增益裕度(一般 > 10dB)。

电压模式控制环路结构 电压模式控制环路结构 Vref 误差计算 数字补偿器 数字PWM 功率级 ADC采样 补偿器位于误差计算之后、PWM之前,是环路稳定的核心

Type II 补偿器

Type II 补偿器,也叫 PI 加一个极点。它有一个零点、两个极点(其中一个在原点)。适合用在功率级 LC 双极点频率比较低、而且你不需要太宽带宽的场景。

我个人习惯在下面这些情况用 Type II:

  • 输出电容是电解电容,ESR 比较大,自带一个零点
  • 穿越频率要求不高,比如开关频率的 1/10 以下
  • 系统对动态响应要求一般

Type II 传递函数

Gc(s) = K * (1 + s/ωz) / [s * (1 + s/ωp)]

其中:
ωz = 1 / (R1 * C1)      —— 零点
ωp = 1 / (R2 * C2)      —— 高频极点
K  = 1 / (R1 * (C1 + C2)) —— 增益系数

小技巧:数字实现时,用双线性变换(Tustin)把 s 域转到 z 域。采样频率至少是穿越频率的 10 倍,不然离散化误差会让你怀疑人生。

Type III 补偿器

Type III 补偿器,说白了就是两个零点、三个极点(一个在原点)。它能提供更大的相位提升,最高可以拉到 180°。适合功率级 LC 双极点需要被充分补偿、或者你要追求高带宽的场景。

我记得有一次做服务器电源,要求动态响应特别快,Type II 怎么调相位裕度都只有 30° 出头。换成 Type III 之后,直接拉到 55°,负载阶跃响应也漂亮多了。

Type III 传递函数

Gc(s) = K * (1 + s/ωz1) * (1 + s/ωz2) / [s * (1 + s/ωp1) * (1 + s/ωp2)]

典型配置:
ωz1 = ωz2 = ω_LC          —— 两个零点放在 LC 双极点处
ωp1 = ω_ESR               —— 第一个极点放在 ESR 零点处
ωp2 = 1/2 * ω_sw          —— 第二个极点放在开关频率一半

避坑指南:我曾经把 Type III 的高频极点放得太低,结果高频增益衰减不够,开关噪声被放大,输出纹波反而变大了。高频极点建议放在开关频率的 1/2 到 1/3 之间。

Type II vs Type III 对比

特性 Type II Type III
零点数量 1 个 2 个
极点数量(含原点) 2 个 3 个
最大相位提升 约 90° 约 180°
适用场景 电解电容、低带宽 陶瓷电容、高带宽
设计复杂度 低 中
动态响应 一般 优秀

设计步骤实战

下面是我自己常用的设计流程,你照着走一遍基本不会翻车。

  1. 测量或计算功率级传递函数:得到 LC 双极点频率 f_LC 和 ESR 零点频率 f_ESR
  2. 确定穿越频率 f_c:一般取开关频率的 1/10 ~ 1/5
  3. 计算所需相位提升:目标相位裕度 45°~60°,减去功率级在 f_c 处的相位
  4. 选择补偿器类型:相位提升 < 90° 用 Type II,否则用 Type III
  5. 放置零极点:Type II 零点放 f_LC 附近,Type III 两个零点放 f_LC,极点放 f_ESR 和 f_sw/2
  6. 计算增益 K:使开环增益在 f_c 处为 0dB
  7. 离散化:用双线性变换转成差分方程
  8. 仿真验证:看波特图,确认相位裕度和增益裕度

经验之谈:我建议你在仿真时留点余量。相位裕度别卡在 45°,做到 50°~55° 更稳妥。因为实际电路里还有采样延迟、PWM 延迟、PCB 寄生参数,这些都会吃掉一些相位。

数字实现注意事项

把补偿器从 s 域搬到数字域,有几个坑你得小心。

  • 采样延迟:ADC 采样到占空比更新之间,至少有一个开关周期的延迟。这会额外掉相位,你算补偿器时得把这部分算进去。
  • 量化效应:系数位数不够,零极点位置会漂。我一般用 Q15 或 Q24 格式,具体看你的 DSP 或 MCU 位宽。
  • 抗饱和(Anti-windup):占空比饱和时,积分项会一直累积,导致恢复超调。加个条件积分或者钳位逻辑,能省很多麻烦。

调试建议:先用仿真工具(比如 SIMPLIS 或 MATLAB)把补偿器调好,再烧到板子上。直接在板子上调,示波器看波形猜问题,效率太低了。