Skip to content

18.9 平均电流模式控制

上一节我们聊了 DCM 下的 CPM。那是种「怎么干都对」的轻松模式,因为电感电流在每个周期都会归零,扰动没法积累到下一个周期。

但如果你工作在 CCM 模式下,或者你的应用场景对「平均电流」有着严苛的要求——比如给电池充电、驱动 LED、或者做低谐波整流——仅仅控制峰值电流(CPM)就显得有点不够用了。你需要更精细的手术刀。

这一节的主角就是这把手术刀:平均电流模式控制(ACM)


概念层:从「峰值」到「平均值」的视角切换

我们前面花了大量篇幅讨论的 Current-Programmed Control(CPM),本质上是在玩一个「看谁先撞线」的游戏:每个周期开始,让电感电流往上爬,一旦撞到控制信号 ic 这条红线,开关立刻关断。

这意味着我们控制的是峰值。而在 CCM 下,峰值和平均值之间差了一个随占空比变化的三角波尾巴(虽然加上斜坡补偿后近似线性能算出来,但这毕竟是近似)。

ACM 的思路完全不同。它不再直接去抓那个转瞬即逝的「峰值」,而是构建一个完整的负反馈系统(Inner Current Loop),硬性地把电感电流的平均值死死按在控制信号 vc 上。

类比:从「弹珠台」到「定速巡航」

你可以把 CPM(峰值控制)想象成玩弹珠台:你设定一个高度,让弹珠(电感电流)往上冲,冲到那个高度挡板就把它弹回去。你控制的是最高点,而弹珠的平均速度取决于挡板的高度和重力的博弈。

而 ACM 则像汽车的定速巡航:里面有一个速度控制器(Current Loop Compensator),它盯着速度表(采样的电流信号),发现慢了就踩油门(加大占空比),快了就松油门。不管路面(输入电压或负载)怎么起伏,它都想方设法把速度(平均电流)锁死在你设定的那个数值上。

真实情况是……

但「定速巡航」这个比喻有一点不精确。在 ACM 里,我们控制的是「平均电流」,而不是瞬时电流。控制环路里通常会有低通滤波器,或者补偿器本身具有积分性质,这意味着它会自动忽略开关频率上的高频纹波,只盯着波形的重心(直流平均值)。

这在噪声巨大的环境里(比如开关电源)是个巨大的优势——CPM 那种对峰值极其敏感的机制,稍微有点噪声就容易误触发,而 ACM 则要淡定得多。


机制拆解:ACM 的系统模型

让我们把这套 ACM 系统拆开来看。这里的核心变化在于,PWM 调制器不再直接受控于 vc,而是受控于电流环补偿器 Gci(s) 的输出 vm

信号流是这样的

  1. 感知(Sensing):电流传感器(比如一个电阻或霍尔传感器)把电感电流 i 变成电压信号 Rfi
  2. 求和(Error):这个信号和控制参考 vc=Rfic 相减。注意这里的定义,参考电压 vc 其实已经被电阻 Rf 折算过了,所以它和反馈信号单位一致。
  3. 补偿(Compensation):误差信号送进 Gci(s)。这是整个 ACM 的灵魂。它通常是一个 PI 或 PID 控制器。它的任务是把那个摇摆不定的电感电流误差,变成一个稳定的调制电压 vm
  4. 调制(PWM)vm 进去 PWM,跟锯齿波比大小,吐出占空比 d

理想情况下,如果环路增益无穷大,电感电流的平均值 i(t)Ts 会无条件服从命令:

i(t)Ts=1Rfvc(t)Ts(18.198)

这就是 ACM 的目标。它让变换器看起来像一个理想的电流源。

为什么这东西比 CPM 好?

还记得 CPM 那个让人头疼的次谐波振荡吗?那是峰值的死穴。在 ACM 里,因为我们通常在补偿环节加入了极点进行低通滤波,高频的开关纹波被大大衰减了,那个导致不稳定的扰动在到达比较器之前就已经被滤波器吃掉了。

这意味着:

  • 不需要斜坡补偿:只要环路设计得当,任何占空比下都稳如泰山。
  • 抗噪:因为 averaging,开关那点毛刺不算事儿。
  • 精确的平均值控制:这对电池充电器来说太重要了——电池寿命看的是平均充电电流,不是峰值。

但也有代价:你需要设计一个补偿器 Gci(s)。这比单纯算个电阻值要麻烦。


实践层(1):设计内电流环

要把这个电流环路跑起来,我们需要画出它的小信号模型,也就是一个标准的反馈框图。

这里的核心公式是反馈定理(Feedback Theorem)。闭环后的电流响应 i^ 是:

i^=1RfTi1+Tiv^c+Gig1+Tiv^g(18.199)

这里的 Ti(s) 就是我们的电流环路增益

Ti=RfGci1VMGid(18.200)
  • Rf:采样电阻,把电流变电压。
  • Gci:我们要设计的补偿器。
  • 1/VM:PWM 调制器的增益(锯齿波峰值 VM 越大,增益越小)。
  • Gid:功率级的控制-电流传递函数(占空比变电感电流)。

目标很明确:设计 Gci(s),让 Ti 在我们想要的频率 fci 处穿过 0dB,并且有足够的相位裕度。

一旦环路闭合,闭环传递函数 Gic(s) 就变成了:

Gic(s)=i^v^c=1RfTi1+Ti=GicTi1+Ti(18.201)

这里的 Gic=1/Rf。注意到了吗?这跟 CPM 那个简单模型 iLic 是一模一样的! ACM 做得最完美的时候,就退化成了 CPM 的理想模型。


实践层(2):双环系统的外层——电压环

通常,我们控制电流是为了控制电压。我们会在 ACM 的外面再套一个电压环。

现在的层级关系是:

  1. 外环(电压环):电压误差 电压补偿器 Gcv 输出 vc
  2. 内环(电流环):把上面的 vc 当作电流参考指令,迫使电感电流跟随它。

这是一个经典的级联控制结构。设计方法遵循「内先外后」的原则:

  1. 先把内环 Ti 搞定。
  2. 把内环闭合,看作整个功率级的一部分,算出此时的控制-输出电压传递函数 Gvc(s)
  3. 基于 Gvc(s) 设计外环 Gcv(s)

公式长得很直观,从反馈框图可以直接推出来:

v^=(GciVMGvd11+Ti)v^c+(GvgGigGvdGid1+Ti)v^g

我们要的是前半部分,也就是 Gvc(s)

Gvc(s)=v^v^c=1RfGvdGidTi1+Ti(18.203)

18.9.2 实战演练:ACM 控制的 Boost 变换器

光看公式容易晕,我们来上板子。

拿一个 Boost 变换器来开刀,我们要把它改成 ACM 控制。参数如下:

  • 输入Vg=170V
  • 输出V=400V,功率 Pout=2kW
  • 频率fs=100kHz
  • PWM:锯齿波幅度 VM=4V
  • 采样Rf=0.25Ω
  • 参考Vref=3V(分压增益 H=0.0075

设计指标

  1. 内环:电流环带宽 fci=10kHz(开关频率的 1/10)。
  2. 外环:电压环带宽 fcv=1kHz

第一步:搞定工作点

先把直流工作点算出来,这是所有小信号模型的地基。

D=1VgV=1170400=0.575I=Ig=PoutVg=200017011.8AVc=RfI=0.25×11.8=2.94V

第二步:设计内环补偿器 Gci

Boost 的小信号模型告诉我们,未补偿的环路增益 Tiu(当 Gci=1 时)是:

Tiu=RfVMGid(s)(18.205)

我们需要知道 Boost 的 Gid(s) 长什么样。根据第 7 章的推导(或者查表 18.3-18.5),它是标准的二阶形式:

Gid(s)=Gid01+sωzi1+1Qsωo+(sωo)2(18.206)

带入数值:

  • Gid0=55.4A34.9dB (低频增益很大)
  • 零点 fzi=121Hz
  • 谐振频率 fo=745Hz
  • 品质因数 Q=12.4 (非常尖的峰)

看看它的波特图。因为 Q 很高,fo 处有个很大的尖峰。 但在 10kHz 附近,也就是我们的目标带宽处,曲线已经以 -20dB/dec 的斜率滚降了,相位大概在 -90度。

这意味着我们不需要复杂的补偿器。一个简单的 PI(或者叫 Lag)补偿就够了。公式如下:

Gci(s)=Gcm1+sωz1+sωp(18.209)
  • 零点 ωz:放在 fci 之前,提供相位提升。选 fz=fci/2.5=4kHz
  • 极点 ωp:放在 fci 之后,衰减高频开关噪声。选 fp=2.5fci=25kHz
  • 中频增益 Gcm:用来把幅值拉到 0dB。

怎么算 Gcm?在 10kHz 处,原系统 Tiu 的增益大约是 RfLω/(VVM)(公式 18.208)。 为了让总增益为 1,我们需要:

Gcm=VMLωciVRf(18.210)代入数Gcm0.63

验证相位裕度: 用经验公式(18.212)算一下,大概有 46 度的相位裕度(18.213)。虽然不算非常奢侈,但对于电流环来说绝对够用了。

补偿后的波形完美达标。 闭环后的 Gic 低频段是一条平线,增益为 1/Rf(也就是 4)。这意味着电流完全受控。

第三步:设计外环补偿器 Gcv

内环搞定了,现在把它包进黑盒子里。我们需要找出这个黑盒子的输入输出特性,也就是 Gvc

既然 Gic 在低频很稳(近似 1/Rf),我们可以利用公式 18.203 的近似形式。

对于 Boost 变换器,当电压环带宽远小于电流环带宽时(fcvfci),Gvc 可以简化为一个单极点系统:

Gvc1RfGvdGidDR2Rf11+sωzi(18.214)
  • 极点 fzi=121Hz(跟 RC 有关)。
  • 还有一个讨厌的 RHP 零点 fz,RHP9.2kHz

但别慌,我们的电压环带宽只有 1kHz,远低于这个 RHP 零点,所以它暂时不会出来捣乱。在这个频段内,它就是个单纯的一阶惯性环节。

这就好办了。对付单极点系统,PI 补偿器是绝配。

Gcv(s)=Gvm(1+ωzvs)(18.215)
  • 增益 Gvm:把 1kHz 处的幅值顶到 0dB。公式 (18.216) 算出来是 16.4。
  • 零点 fzv:选在 fcv/3=333Hz

结果呢?相位裕度高达 72 度(18.218)。最终的响应非常漂亮。


总结

这一节其实是在告诉你一个分层设计的故事。

如果你面对的是一个复杂的双环系统(比如 ACM 控制),千万不要试图一锅端。剥洋葱是最好的办法:

  1. 先盯着最里面的核心(电感电流),把它伺候好,让它在任何指令下都能精准响应。
  2. 然后,把这块已经驯服的肌肉封装起来,当作整体执行机构,再去设计外面的控制逻辑(输出电压)。

ACM 的代价是你需要多设计一个环路,多几个运放。但换来的是极低的噪声敏感度、对平均电流的绝对控制权,以及再也不用担心斜坡补偿的烦心事。在 Buck、Boost 这种拓扑上,ACM 往往是比 CPM 更稳健的选择。

上一节提到的 DCM 那种「天然稳定」的特性固然好,但 ACM 让我们意识到:只要环路设计得当,CCM 也可以被驯服得一样温顺。

踩坑提醒:ACM 的电流环补偿器 Gci(s) 里那个极点(用来衰减开关纹波)的位置很讲究——放太高,开关频率上的纹波会漏进比较器,导致占空比抖动;放太低,电流环带宽被自己掐死,瞬态响应变肉。经验法则是把极点放在开关频率的 1/51/3 附近。还有一个隐藏坑:如果你用纯 PI(没有这个极点),积分器会把开关纹波当成稳态误差不断累积,最终产生所谓的「次谐波纹波注入」——电流看起来在跟随,但叠加了一个开关频率的低频包络。所以 ACM 的补偿器几乎一定要带极点,不能是裸 PI。


参考说明:参考自 geqianQWQ 同学阅读《Fundamentals of Power Electronics》的笔记,仅作理解线索;本文为结合自己理解重新整理的学习笔记,不涉及对原书的复制或翻译。

面向嵌入式学习者的硬件学习笔记