数字电源架构:数字控制器 vs 模拟控制器

做电源设计这些年,我见过不少工程师一上来就纠结「到底用数字还是模拟」。其实这个问题没有标准答案,关键看你想要什么。我个人习惯先画一张架构对比图,把两边的底牌都摊开,再根据项目需求做选择。

一句话总结:模拟控制器靠硬件搭建补偿网络,响应快但灵活性差;数字控制器靠软件算法实现控制,灵活可配置但引入额外延迟。

模拟控制器的典型架构

模拟电源的核心是误差放大器加补偿网络。反馈电压经过电阻分压后,与参考电压比较,误差信号通过 RC 网络整形,再送入 PWM 比较器。整个过程是连续的,没有采样保持,也没有量化误差。

我在项目中遇到过一款 1MHz 的 Buck 变换器,用模拟控制器做,环路带宽轻松做到 100kHz 以上。补偿网络调起来也简单——换几个电阻电容,扫一下波特图就行。但问题在于,一旦补偿网络焊死了,想改控制策略就得重新打板。

特性 模拟控制器 数字控制器
控制方式 连续时间 离散时间
补偿网络 硬件 RC 网络 软件数字滤波器
灵活性 低(需改硬件) 高(可在线更新)
延迟来源 运放带宽、传播延迟 ADC 采样、计算、PWM 更新
典型应用 低成本、高带宽场景 多相、通信、自适应控制

数字控制器的核心组件

数字电源的架构可以拆成三个部分:ADC 采样、数字补偿器、数字 PWM 生成。说白了,就是把模拟环路的连续信号,变成离散的数值处理流程。

  • ADC:将输出电压/电流转换为数字量。分辨率、采样率、延迟直接影响环路性能。
  • 数字补偿器:通常是一个 IIR 或 FIR 滤波器,实现 PID 或更复杂的控制律。
  • 数字 PWM:根据补偿器输出生成占空比信号。分辨率由时钟频率和计数器位数决定。

嗯,这里要注意:数字控制器的每个环节都会引入延迟。ADC 需要转换时间,补偿器需要计算时间,PWM 还要等下一个周期才能更新。这些延迟加起来,就是数字环路比模拟环路「慢半拍」的根本原因。

ADC 与 PWM 的时序关系

这是数字电源设计里最容易踩坑的地方。我曾经因为没搞清楚 ADC 触发时刻和 PWM 更新点的关系,导致环路相位裕度少了 20 度,带载时直接振荡。

常见的时序方案有两种:

  1. 同步采样:ADC 在 PWM 载波的波峰或波谷触发。此时电感电流纹波处于中点,采样噪声最小。
  2. 异步采样:ADC 独立于 PWM 运行,采样时刻随机。需要额外的滤波或过采样来抑制噪声。

我个人习惯用同步采样,尤其是在高频开关电源里。你想想看,如果采样点刚好落在开关噪声的尖峰上,ADC 结果会抖动得很厉害,环路补偿器跟着乱跳,输出纹波反而更大。

经验之谈:ADC 采样时刻最好设置在 PWM 载波的谷底(或峰顶),此时开关管刚完成换流,振铃已经衰减,采样值最稳定。我一般会在定时器中断里触发 ADC,确保采样点与 PWM 同步。

数字环路延迟的来源

数字环路的延迟可以分成三部分:

延迟类型 典型值 影响因素
ADC 转换延迟 100ns ~ 1μs ADC 架构(SAR、ΔΣ)、分辨率
计算延迟 200ns ~ 2μs MCU 主频、算法复杂度、编译器优化
PWM 更新延迟 0 ~ 1 个开关周期 更新模式(立即/下一周期)、影子寄存器

这三部分加起来,少则几百纳秒,多则几个微秒。对于 100kHz 的开关频率,一个周期是 10μs,延迟占比可能达到 20%~30%。这就是为什么数字电源的带宽通常只能做到开关频率的 1/10 到 1/20,而模拟电源可以做到 1/5 甚至更高。

避坑指南:我曾经在一个 500kHz 的 LLC 项目中,用了 12 位 SAR ADC,转换时间 500ns,加上 PID 计算 800ns,PWM 更新延迟一个周期 2μs,总延迟 3.3μs。环路带宽只能做到 15kHz,再高就振荡。后来换成 10 位 ADC 和查表法 PID,把总延迟压到 1.5μs,带宽才拉到 30kHz。

数字环路延迟的 SVG 时序图

下面这张图展示了从 ADC 采样到 PWM 更新的完整时序流程。你可以看到每个环节的延迟是如何叠加的。

数字环路延迟时序图 数字环路延迟时序图 t t₀ t₁ t₂ t₃ ADC 采样 数字补偿计算 PWM 更新 T_adc T_calc T_pwm 总延迟 = T_adc + T_calc + T_pwm 说明: • ADC 采样延迟:从采样保持到转换完成的时间 • 计算延迟:数字补偿器执行乘加运算的时间 • PWM 更新延迟:从写入影子寄存器到实际生效的时间

如何评估延迟对环路的影响

延迟会降低相位裕度。具体来说,每增加一个开关周期的延迟,相位会在穿越频率处额外滞后 360° × (f_c / f_sw)。举个例子,如果开关频率 200kHz,穿越频率 20kHz,一个周期的延迟会带来 36° 的相位滞后。这可不是小数目。

我建议你在设计初期就用仿真工具把延迟模型加进去。很多工程师只算补偿器的零极点,忽略了延迟,结果样机做出来振荡,又回头查问题。其实只要在 MATLAB 或 PLECS 里加一个 z^(-n) 模块,就能模拟延迟效果。

核心结论:数字电源的环路稳定性,很大程度上取决于你能不能管住延迟。ADC 选型、MCU 主频、算法效率、PWM 更新模式,每一个环节都在跟时间赛跑。