Skip to content

15.3 DCM 开关网络的小信号交流建模

我们在上一节里把大信号的平均模型像搭积木一样搭起来了——那个看起来很诡异的「无损电阻 + 功率源」组合。这解决了直流和低频大信号的问题。

但如果你真的要动手设计反馈环路,光有大信号模型是不够的。我们需要知道:当我在占空比 d 上轻轻戳一下,输出电压 v^ 会怎么抖动?它的增益是多少?相位在哪里开始掉?

这就需要把那个非线性的大信号模型(记住,Re 里面可是有平方项的,绝对是非线性的)在静态工作点附近「拉直」,变成线性小信号模型。

这一节的任务,就是把那个非线性的 LFR 网络放到数学的实验台上做一次「线性化手术」。


15.3.1 从大信号到小信号:线性化手术

我们要处理的是上一节那个大信号平均开关网络模型。为了看得更清楚,我们把这个网络的端口变量列出来,然后对它们进行扰动。

这里的规则和标准的伏特勒级数展开一样:所有变量都拆成直流稳态值加上一个小扰动分量:

d(t)=D+d^(t)v1(t)Ts=V1+v^1(t)i1(t)Ts=I1+i^1(t)v2(t)Ts=V2+v^2(t)i2(t)Ts=I2+i^2(t)

这里 D 是稳态占空比,V1 是输入平均电压的稳态值,以此类推。那些带着帽子的 v^1(t)d^(t) 就是我们想要抓的小信号交流分量。

我们的目标是线性化上一节推导出的终端方程 (15.20) 和 (15.21)。那两个方程把输入电流 i1 和输出电流 i2 表达成了占空比 d 和端电压 v1,v2 的非线性函数。

当我们把它们线性化之后,i^1i^2 应该能写成 d^,v^1,v^2 的线性组合。具体来说,长成这样:

i^1=v^1r1+j1d^+g1v^2i^2=v^2r2+j2d^+g2v^1

这就是我们想要的那个双端口小信号网络模型的数学描述。这里面有一堆神秘的参数:r1(输入电阻)、j1(控制到输入电流的增益)、g1(跨导,把输出电压耦合到输入电流)……它们到底是什么?我们需要把上一节的公式 (15.20) 拿出来,用泰勒级数展开(Taylor Expansion)给它扒开看清楚。


15.3.2 输入端口的剖析:r1,j1,g1

还记得 (15.20) 是怎么说的吗?它说输入端的平均电流是电压除以一个受控电阻:

i1(t)Ts=v1(t)TsRe(d(t))=f1(v1,v2,d)

我们要在这个静态工作点 (V1,V2,D) 附近对它进行三维泰勒展开。别被三维吓到了,其实就是分别对 v1,v2,d 求偏导数:

I1+i^1(t)f1(V1,V2,D)+v^1(t)f1v1|op+v^2(t)f1v2|op+d^(t)f1d|op

先看直流项。直流部分必须相等,这其实就是欧姆定律:

I1=f1(V1,V2,D)=V1Re(D)

接下来我们只关心交流小信号部分。把直流项消掉,剩下的就是我们要的线性方程。对照前面的目标形式,我们就能把这几个参数一个个认领回来:

1. 输入电阻 1/r1 这是 i^1v^1 的偏导数,也就是方程对 v1 求导的结果:

1r1=f1v1=1Re(D)

你会发现,r1 正好就是我们在上一节算出来的有效电阻 Re。这很直观:在静态工作点附近,输入端表现得就像一个电阻。

2. 跨导 g1 这是 i^1v^2 的偏导数。但是回头看看 f1 的表达式,里面根本没有 v2!输入电流只取决于输入电压和占空比,跟输出电压半毛钱关系没有。

g1=f1v2=0

这意味着什么?意味着在小信号模型里,从输出端口到输入端口没有反向传输。这跟理想变压器的性质有点像,但在 DCM 里是因为功率源的单向性造成的。

3. 控制增益 j1 这个稍微麻烦点,它反映了占空比 d^ 的变化是如何通过改变 Re(d) 来影响输入电流的。我们需要对 d 求导:

j1=d(v1Re(d))=V11Re(D)2dRe(d)dd|d=D

代入 Re(d)=2Ld2Ts,算一下导数:

dRedd=ddd(2Ld2Ts)=4Ld3Ts

把它代回去,你就得到了教科书上的那个结果:

j1=2V1DRe(D)

这个参数描述了:「当你 tweak 占空比时,有效电阻变了,导致从电源吸取的电流变了多少」。


15.3.3 输出端口的剖析:r2,j2,g2

输入端搞定了,接下来是输出端口。这里可是那个著名的「功率源」所在地。

根据 (15.21),输出电流是功率除以电压:

i2(t)Ts=v1Ts2Re(d)v2Ts=Pv2Ts=f2(v1,v2,d)

同样的戏码再来一遍:在静态工作点 (V1,V2,D) 附近展开泰勒级数。

直流项相等给出了功率守恒的稳态表达式:

I2=f2(V1,V2,D)=V2M2Re(D)=PV2

然后是交流项。我们重点关注下面这三个系数:

1. 输出电阻 1/r2 这是对 v2 求偏导。因为 i2 正比于 v2 的倒数(P/v2),所以:

1r2=f2v2|op=1M2Re(D)

或者写成 r2=M2Re(D)

这里有个非常有意思的物理图像:r2 实际上是那个非线性功率源特性曲线在静态工作点处的切线斜率。如果你负载是个电阻 R,那么在这个点切线电阻算出来正好也是 M2Re。这说明在 DCM 下,输出端对内呈现的动态电阻和负载电阻有某种对偶关系。

2. 跨导 g2 这描述了输入电压扰动 v^1 是如何通过改变「输入功率」来影响输出电流 i^2 的。

g2=f2v1|op=2MRe(D)

这也很直观:输入电压稍微涨一点,输入功率(v12/Re)就涨一大截(平方关系),这多出来的功率被搬运到输出端,就把输出电流顶上去了。

3. 控制增益 j2 这是最核心的控制参数。它描述了占空比 d^ 如何通过改变 Re 来改变输出功率。

j2=f2d|op=V2Re(D)2V2dRedd=2V1DMRe(D)

把这些参数全部列出来,就得到了表 15.2 的第一行。你会发现,这些公式里充满了 V1,V2,M,Re(D) 这些大家伙。虽然看起来有点吓人,但只要你记得它们背后的物理意义——电阻切线、功率传输比——它们就不再是死记硬背的公式了。


15.3.4 组装完整的小信号模型

参数都算出来了,现在我们可以把晶体管和二极管扔掉,换上那个由电阻、电流源和跨导组成的双端口小信号网络。

把 DCM Buck-Boost 变换器的开关替换成这个小信号模型后,你就可以用你最熟悉的电路分析课上学过的线性电路分析方法(节点电压法、叠加定理)来解这个电路了。

盯着这个电路,你可能会觉得:这跟 CCM 的模型比起来,好像也没简单多少?而且这里还有两个动态元件:电感 L 和 电容 C。这意味着传递函数应该有两个极点。

但这里有个巨大的陷阱。

这个模型是从 (15.20) 和 (15.21) 推导出来的,而那两个方程基于一个核心近似:电感平均电压为零。 我们在 15.1 节说过,这个近似在推导直流和低频大信号模型时没问题,但在谈论高频动态时,它是有问题的。如果我们强行解这个双极点模型,我们会得到两个极点:一个由电容 C 决定(低频),另一个由电感 L 决定。

文献 [71, 74, 126...] 告诉我们,那个由电感 L 引起的极点(以及一个右半平面零点)实际上出现在非常高的频率,甚至可能高于开关频率。这显然是不靠谱的——怎么可能用平均模型去预测开关频率以上的事呢?

所以,我们要清醒地认识到:

  • 这一节推导出来的完整模型(保留 L),它的低频特性是可信的。
  • 它的高频预测(那个 L 引起的极点)是数学上的产物,物理上并不准确。

那么,我们在做环路补偿时,真正关心的通常是低频部分。既然那个高频极点本来就远,而且又不准,不如我们就把它忽略掉

怎么忽略?直接把电感 L 短路。 这就得到了那个更简化的模型。

现在,模型里只剩下一个电容 C 了。这变成了一阶系统。这才是我们在实际工程设计中经常用的 DCM 小信号模型:简单、粗暴,但在低频足够准确。


15.3.5 通用传递函数

利用这个简化的一阶模型,我们可以推导出几个通用变换器的传递函数。

控制到输出传递函数 Gvd(s)v^g=0(输入电压没有扰动)。解这个电路,你会发现这是一个典型的单极点系统:

Gvd(s)=v^d^|v^g=0=Gd01+sωp

其中:

  • 直流增益 Gd0j2 产生的电流流过 Rr2 的并联电阻。Gd0=j2(Rr2)
  • 极点频率 ωp:由输出电阻和输出电容决定。ωp=1(Rr2)C

输入到输出传递函数 Gvg(s)d^=0。这也是个单极点系统:

Gvg(s)=v^v^g|d^=0=Gg01+sωp

其中直流增益 Gg0=g2(Rr2)。如果你代入具体的 g2 表达式,你会发现对于 Buck-Boost,Gg0 正好等于稳态转换比 M。这符合直觉:直流时输入变多少,输出按比例变多少。

表 15.3 把 Buck、Boost 和 Buck-Boost 的这些关键参数都列出来了。你可以看到,DCM 的低频极点通常都比较大(因为等效电阻 Re 比较小,导致 r2 比较小,进而 (Rr2) 也比较小,极点频率就上去了)。这也解释了为什么 DCM 变换器通常比 CCM 变换器容易补偿——它的动态响应更快,带宽更宽,相位裕度更容易做出来。


15.3.6 实战演练:DCM Boost 变换器的频率响应

光推公式太空洞了。我们来算一个具体的例子,看看那个模型到底长什么样。

假设有一个 DCM Boost 变换器,参数如下:

  • 负载电阻 R=12Ω
  • 电感 L=5μH
  • 电容 C=470μF
  • 开关频率 fs=100kHz

我们的目标是算出它从控制到输出的传递函数 Gvd(s)。已知工作点如下:

  • 输出电压被稳压在 V=36V
  • 负载电流 I=3A
  • 输入电压 Vg=24V

第一步:算出有效电阻 Re 我们在上一节学过,对于 Boost,输出功率 P 等于输入功率 VgI。或者用功率源算式:

P=I(VVg)=3A(36V24V)=36W

注意这里用 VVg 是因为 Boost 的电感两端电压差。有了 P,直接套公式:

Re=Vg2P=(24V)236W=16Ω

第二步:算出稳态占空比 D 利用 Re 的定义公式反推 D

D=2LReTs=25μH16Ω10μs=0.25

第三步:查表 15.3,计算直流增益和极点 对于 Boost 变换器:

  • 转换比 M=V/Vg=36/24=1.5
  • 直流增益 Gd0Gd0=2VDM12M1代入数值:Gd0=2360.251.5131=2880.52=72V37dBV(这里 2M1=21.51=2
  • 极点频率 fpfp=12π(Rr2)C需要先算 r2。对于 Boost,查表可知 r2=2M(M1)2Re。 算一下:r2=0.50.2516Ω=32Ω。 那么 Rr2=12Ω32Ω8.7Ω。 最后:fp=12π8.7Ω470μF112Hz

第四步:画出波特图 把上面的结果画成波特图,就是这个样子。

  • 实线:我们刚才算的一阶模型。低频增益 37dB,在 112Hz 处开始以 -20dB/dec 滚降。
  • 虚线:更精确的模型(考虑了电感动态的高频部分)。

你会发现,虚线在大概 6.4kHz(即 f2/10)的地方就开始偏离实线了,相位掉了更多。这是因为我们刚才故意忽略掉的那个高频极点(在 64kHz 附近)开始起作用了,甚至还有一个右半平面零点(RHP Zero)在 127kHz 附近虎视眈眈。

但正如我们之前分析的,对于环路设计来说,我们通常关注的穿越频率在几kHz以下。在这个范围内,用我们那个简化的一阶模型(实线)是完全够用的。一旦你把穿越频率设得太高,撞上了那些高频极点,那这 Boost 变换器在 DCM 下也会变得不稳定。

这个例子告诉我们:模型是分频段的。别拿着低频平均模型去硬刚开关频率附近的波形,那是它的死穴。但在它管辖的领地(低频)里,它就是王。

⚠️ 踩坑提醒:别用 DCM 一阶模型报相位裕度。我见过有人拿 Gvd 那条干净的单极点曲线直接算相位裕度,得出「80,稳得一批」的结论,然后把带宽推到 fs/5。结果一上电就啸叫。原因正是上面这段——一阶模型在 f2(约 fs/3)以上就开始撒谎,那里藏着被你忽略的高频极点和 RHP 零点,相位掉得比模型预测陡得多。经验法则:DCM 的环路穿越频率,老老实实压在 fs/10 以内,给那个高频极点留够缓冲。


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

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