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 的流程,我画了一张图,你看一眼就明白了:
这个环路每个开关周期都会跑一遍。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 | 模式切换平滑性 |