2、数字电源架构概述:数字电源 vs 模拟电源,数字控制环路(PID)的基本原理,数字电源的典型拓扑(Buck、Boost、Buck-Boost)

好,咱们正式开始聊数字电源。

很多人一听到「数字电源」,就觉得它很神秘。其实说白了,数字电源就是在传统电源的反馈环路上,用一颗数字芯片(比如 DSP、MCU 或者 FPGA)替代了原来的模拟误差放大器和补偿网络。嗯,就这么简单。

我刚开始接触数字电源时,也犯过嘀咕:模拟电源都用了这么多年,干嘛非要换成数字的?直到我在一个项目中,客户要求输出电压能在 0.8V 到 1.8V 之间动态调整,而且纹波要小于 10mV。用模拟方案改硬件得换电阻电容,折腾了好几版。换成数字方案后,改个寄存器值就搞定了。从那以后,我对数字电源的态度就彻底变了。

2.1 数字电源 vs 模拟电源

先看看它们到底差在哪。我习惯从三个维度去对比:控制方式、灵活性、调试难度。

对比维度 模拟电源 数字电源
控制核心 误差放大器 + 无源补偿网络 ADC + 数字控制器 (PID) + DPWM
环路调整 换电阻电容,重新计算 改寄存器系数,在线更新
灵活性 固定拓扑,固定参数 可配置拓扑,可动态调参
调试工具 示波器 + 烙铁 示波器 + GUI 软件
成本 低(大批量) 略高(含数字芯片)
抗干扰 易受温漂、器件老化影响 一致性高,无温漂问题

我的经验之谈: 模拟电源在固定输出、大批量、低成本场景下依然有优势。但如果你需要多路输出、动态调压、或者要跟系统做通信,数字电源几乎是唯一选择。

你想想看,模拟电源的补偿网络一旦焊上去,想改就得动烙铁。数字电源呢?我坐在电脑前,打开 GUI,拖几个滑块,点一下「烧录」,完事。这种体验上的差距,做过项目的人都懂。

2.2 数字控制环路(PID)的基本原理

数字电源的核心,就是那个跑在芯片里的控制算法。最常用的,就是 PID。

PID 这三个字母,分别代表比例(Proportional)、积分(Integral)、微分(Derivative)。它们各自干一件事:

  • P(比例):看当前误差有多大,误差大就猛调,误差小就轻调。但光有 P,系统会有静差。
  • I(积分):把过去的误差累积起来,专门消除静差。我遇到过一个问题,只调 P 时输出电压总是差 20mV,加上 I 之后,误差直接归零。
  • D(微分):预测误差的变化趋势,提前做出反应。说白了就是「踩刹车」,防止系统过冲。

在数字域里,PID 的表达式长这样:

u(k) = Kp * e(k) + Ki * Σe(i) + Kd * [e(k) - e(k-1)]

其中:

  • u(k) 是当前周期的控制输出
  • e(k) 是当前周期的误差(目标值 - 实际值)
  • Kp、Ki、Kd 是三个系数

避坑指南: 我曾经在调试一个 Buck 电路时,把 Ki 设得太大,结果输出电压像荡秋千一样来回晃。后来才意识到,积分项太强会导致「积分饱和」。解决办法是加一个抗饱和(Anti-windup)机制,或者限制积分项的累积上限。

数字 PID 的流程,我画了一张图,你看一眼就明白了:

数字 PID 控制环路流程图 设定电压 Vref ADC 采样 Vout 计算误差 e(k) PID 运算 DPWM 输出 功率级 反馈回路 说明 每个开关周期执行一次 PID 运算,更新占空比

这个环路每个开关周期都会跑一遍。ADC 采样输出电压,跟设定值比较,算出误差,然后 PID 算出一个新的占空比,通过 DPWM 模块输出给功率管。整个过程在微秒级完成。

2.3 数字电源的典型拓扑

拓扑这块,其实跟模拟电源一样。数字电源只是换了控制器,功率级还是那些老面孔。我挑三个最常用的说说。

2.3.1 Buck 降压拓扑

Buck 电路,输入高电压,输出低电压。这是最基础的拓扑,也是我入行时第一个调通的电路。

数字 Buck 的关键点:

  • 占空比 D = Vout / Vin(连续导通模式下)
  • 数字控制器直接调节占空比
  • 输出纹波主要跟电感电流纹波和输出电容 ESR 有关

注意: 数字 Buck 在轻载时容易进入断续导通模式(DCM),这时候 PID 参数需要切换。我见过有人用一套参数跑所有负载,结果轻载时输出电压抖得像心电图。解决办法是加一个「模式切换」逻辑,或者直接用一套参数覆盖全负载范围的算法。

2.3.2 Boost 升压拓扑

Boost 电路,输入低电压,输出高电压。比如锂电池升到 5V 给 USB 供电。

Boost 比 Buck 难调,原因在于:

  • 右半平面零点(RHPZ)的存在,限制了环路带宽
  • 占空比不能太大(一般不超过 0.9),否则效率急剧下降
  • 启动时会有浪涌电流,需要软启动策略

我记得有一次调一个 3.7V 升 12V 的 Boost,怎么调都振荡。后来发现是输出电容太小,导致 RHPZ 频率太低,环路根本稳不住。换了大电容,问题就解决了。

2.3.3 Buck-Boost 升降压拓扑

Buck-Boost 电路,输入电压可以高于或低于输出电压。比如车载电源,电池电压从 9V 到 16V 变化,输出要稳定在 12V。

数字 Buck-Boost 的常见控制策略:

  • 四开关 Buck-Boost:两个 Buck 管 + 两个 Boost 管,效率高,但控制复杂
  • 模式切换:Vin > Vout 时跑 Buck 模式,Vin < Vout 时跑 Boost 模式,中间有个过渡区
  • 单周期控制:一个周期内同时控制四个管子,实现无缝切换

我的建议: 如果你刚开始做数字 Buck-Boost,先从模式切换入手。虽然过渡区会有轻微抖动,但逻辑简单,容易调试。等把 PID 调稳了,再考虑更高级的单周期控制。

三种拓扑的对比,我整理了一个表:

拓扑 输入输出关系 典型应用 数字控制难点
Buck Vout < Vin CPU 供电、DDR 供电 轻载模式切换
Boost Vout > Vin 电池升压、LED 驱动 RHPZ 限制带宽
Buck-Boost Vout 可高可低 车载电源、USB PD 模式切换平滑性