Skip to content

7.5.4 示例:非理想 Buck–Boost 变换器的状态空间平均

好了,理论铺垫得差不多了,该上点硬菜了。

上一节我们在黑板上推导了一通公式,得到了一个看起来有点唬人的通用线性化模型。如果不把它落地到一个具体的例子上,那些矩阵里的 AB 也就是一堆代号,没什么实感。

这一节,我们要把这套状态空间平均的方法论,应用到最经典的测试用例上:一个非理想的 Buck–Boost 变换器

之所以选它,是因为它既不像 Buck 那么简单(只有降压),也不像 Boost 那么单纯(只有升压),它能升能降,而且在这个例子里,我们要故意加入一些非理想因素——MOSFET 的导通电阻 Ron 和二极管的压降 VD——看看这套方法能不能像外科手术一样,把寄生参数的物理意义精准地切出来。

我们的目标是得到一个完整的等效电路模型,不仅管输出端口,还要管输入端口(也就是输入电流 ig 的行为)。让我们开始。


第一步:定义变量

首先,我们要把物理世界的元件翻译成数学世界的符号。

对于一个 Buck–Boost 变换器,真正的独立状态变量只有两个:电感电流 i(t)电容电压 v(t)。这两个量决定了系统的能量状态。

所以,状态向量 x(t) 的定义毫无悬念:

x(t)=[i(t)v(t)](7.130)

接下来是输入向量 u(t)。谁是外部驱动的独立源? 显然,输入电压 vg(t) 是一个。 除此之外,我们特意要把二极管 D1 的正向压降建模为一个独立的电压源 VD。既然是我们设定的“源”,它也得算作输入之一。

因此,输入向量包含两个元素:

u(t)=[vg(t)VD](7.131)

最后是输出向量 y(t)。 我们要的是“完整”模型,意味着我们要关心输入端口的电流特性。输入电流 ig(t) 是一个受电路状态控制的“非独立”量,所以我们要把它算进输出里,好让方程把它解出来。

注意,输出电压 v(t) 已经在状态向量里了,没必要在输出向量里重复算一遍。所以:

y(t)=[ig(t)](7.132)

变量定义完毕,战场清空。


第二步:子拓扑 1(开关导通)

当 MOSFET Q1 导通时,电路进入「充电」状态。二极管反向截止,输入电压直接加在电感上,电容独自给负载供电。

我们根据 KVL 和 KCL 写方程:

  1. 电感电压:输入电压减去电感电流在 Ron 上的压降。Ldi(t)dt=vg(t)i(t)Ron
  2. 电容电流:电容电压 v(t) 作用在负载 R 上产生的电流。Cdv(t)dt=v(t)R
  3. 输入电流:直接等于电感电流。ig(t)=i(t)

这里没什么魔法,只是把物理规律写下来。为了套用我们刚才的矩阵公式,我们需要把它整理成 Kx˙=Ax+Bu 的形式。

在这个子电路(Subinterval 1)里,对应的矩阵是 A1,B1,C1,E1。把它们填进去:

[L00C]Kddt[i(t)v(t)]=[Ron001R]A1[i(t)v(t)]+[1000]B1[vg(t)VD](7.134)

对于输出方程:

[ig(t)]y(t)=[10]C1[i(t)v(t)]+[00]E1[vg(t)VD](7.134 cont.)

A1,B1,C1,E1 到位。


第三步:子拓扑 2(开关关断)

当开关打到位置 2,电感通过二极管向电容和负载释放能量,电路进入「放电」状态。此时输入源 vg 被断开,二极管压降 VD 串联在回路里。

继续列方程。这里有一个建模选择必须先讲清楚:在这个例子里,我们让 Ron 只在 MOSFET 导通的那半个周期里串进电感回路,而关断的那半个周期(电流走二极管)就不再带 Ron。这看起来「非对称」,但其实是符合物理的——关断期间电流走的是二极管支路,电感看到的回路电阻是二极管的正向动态电阻(已经被我们用理想压降 VD 近似掉了),而不是 MOSFET 的 Ron。所以状态 2 的电感方程里没有 i(t)Ron 这一项。

于是状态 2 的方程为:

Ldi(t)dt=v(t)VDCdv(t)dt=v(t)Ri(t)ig(t)=0

写成矩阵形式 A2,B2,C2,E2

[L00C]ddt[i(t)v(t)]=[0111R]A2[i(t)v(t)]+[0100]B2[vg(t)VD](7.136)

输出方程:

[ig(t)]=[00]C2[i(t)v(t)]+[00]E2[vg(t)VD]

(注:输入电流在状态 2 为 0,这是合理的,因为开关断开了输入回路。)


第四步:平均化运算

现在我们手里有两套矩阵,一套描述“开”的状态,一套描述“关”的状态。 按照状态空间平均法的核心公式:平均矩阵等于各状态矩阵的加权和

权重就是占空比。 A=DA1+DA2B=DB1+DB2C=DC1+DC2E=DE1+DE2

我们来算一下 A

A=D[Ron001R]+D[0111R]=[DRonDD1/R](7.137)

再来算 B,C,E

B=D[1000]+D[0100]=[DD00](7.138)C=D[10]+D[00]=[D0](7.138)E=D[00]+D[00]=[00](7.138)

这几个矩阵里,A 是最关键的,它决定了系统的极点和动态响应。你可以看到那个 DRon,这就是我们之前用伏秒平衡算出来的等效直流电阻。而 DD 则体现了 Buck–Boost 变换器特有的能量传输属性。


第五步:稳态解(直流模型)

现在我们要解稳态。在稳态下,导数为 0。 0=AX+BUY=CX+EU

把刚才算出来的平均矩阵代进去:

0=[DRonDD1/R][IV]+[DD00][VgVD](7.139)

这个方程组其实就在告诉你两件事:

  1. 第一行(电感方程)告诉我们:电感上的平均电压为 0(伏秒平衡)。
  2. 第二行(电容方程)告诉我们:电容上的平均电流为 0(电荷平衡)。

如果我们去解这个矩阵方程,就能得到稳态值 IV。原文给出了 (7.140) 的解,但那个矩阵求逆过程写出来太占地方,而且对理解电路模型帮助不大。 不如直接画电路。

观察 (7.139) 的第一行:

DRonI+DV+DVgDVD=0

这可以写成:

0=DRonI+DV+(DVgDVD)

这不就是一个包含电阻 DRon、电压源 DVg(这也是我们熟悉的,来自 M(D)Vg)以及二极管等效项 DVD 的回路方程吗?

基于这些方程,我们可以重构出直流等效电路模型

这个模型里有一个 1:DD:1 的级联变压器结构,原边串着 DRonDVg,副边串着折算后的二极管压降 DVD,输出端口接负载 R,输入端口电流为 Ig=DI

这个模型完美地把所有非理想因素都“吸收”到了各自的回路中:Ron 变成了 DRon,二极管压降变成了折算后的电压源 DVD


第六步:线性化——小信号模型

有了稳态工作点 (X,U),也就是 I,V,Vg,VD,我们就可以进行最后一步:扰动与线性化

我们需要计算那个看似吓人的系数项:

(A1A2)X+(B1B2)U(C1C2)X+(E1E2)U

先算 A1A2B1B2

A1A2=[Ron001/R][0111/R]=[Ron110]B1B2=[1000][0100]=[1100]

现在代入 X=[IV]U=[VgVD]

(A1A2)X+(B1B2)U=[RonIVI]+[Vg+VD0]=[VgVIRon+VDI](7.141)

这就是出现在 d^(t) 前面的系数向量。 注意看它的物理意义:第一行 VgVIRon+VD,这不就是电感上叠加的那些直流电压分量吗? 这一项作为受控源,会出现在小信号电感方程里。

同理,计算输出的系数:

C1C2=[10][00]=[10](C1C2)X+(E1E2)U=I(7.141)

这说明输入电流的扰动中,直接叠加了一个 Id^(t)

现在,把这些项全部组装到线性化状态方程 (7.142) 中:

Kdx^(t)dt=Ax^(t)+Bu^(t)+[(A1A2)X+(B1B2)U]d^(t)

写成标量形式(就是把矩阵展开成我们看得懂的电路方程),就是 (7.143):

  1. 电感方程

    Ldi^(t)dt=Dv^(t)DRoni^(t)+Dv^g(t)+(VgVIRon+VD)来自 d^ 的激励d^(t)
  2. 电容方程

    Cdv^(t)dt=Di^(t)v^(t)R+Id^(t)
  3. 输入电流方程

    i^g(t)=Di^(t)+Id^(t)

第七步:画出等效电路

这一步就是“翻译”。 我们把上面三个标量方程分别“翻译”成电路元件。

  • 第一行(电感):包含一个 L,一个串联电阻 DRon,一个受控电压源 Dv^g(源自 B),以及另一个受控电压源 ed^(t)(源自那个长长的系数项)。这是电感回路子电路。
  • 第二行(电容):包含一个 C,一个并联电导 1/R,以及一个受控电流源 Id^(t)。这是电容节点子电路。
  • 第三行(输入):包含一个受控电流源 Di^(t)Id^(t)。这是输入端口子电路。

最后,把这三块拼起来,中间用理想变压器(变比 D:D)连接——这就是我们在矩阵 A 中看到的 DD 项在电路层面的体现。

最终拼出来的,就是完整的小信号交流等效电路


回响

看看我们这一顿猛如虎的操作之后的战果。

这不仅仅是一个电路图,它是状态空间平均法的物理实体化

  • 矩阵 A 里的元素,变成了变压器匝比和寄生电阻。
  • 矩阵 (A1A2)X+(B1B2)U,变成了受控电压源。
  • 矩阵 (C1C2)X+(E1E2)U,变成了受控电流源。

你完全可以不用画电路,直接拿着这些矩阵去跑 MATLAB 求解传递函数。但对于工程师来说,画出来有两个巨大的好处:

  1. 直觉检查:如果变压器变比算反了,或者受控源极性搞反了,电路一眼就能看出来“这不对劲”,而矩阵可能就报错了。
  2. 通用性:不管你面对的是 Buck、Boost 还是 Flyback,只要你写出了状态方程,这套流程就能自动吐出一个等效电路。

状态空间平均法,本质上就是把离散的、跳变的物理世界,强行通过数学手段平滑成连续的、可解析的数学模型。它是连接“物理开关”和“控制理论”之间最坚固的那座桥梁。

💡 矩阵法的真正甜头:这一节手算到吐,你可能会问「为什么不直接用 7.2 节的电路平均法?」答案是——当拓扑只有两个子区间、一个电感一个电容时,电路平均法确实更直观。但一旦你面对的是 Cuk(4 个状态变量)、或者带多个寄生参数的五阶系统,电路平均法的「画受控源再合并」会绕到爆炸,而状态空间法只要老老实实填 4 个矩阵,剩下的加权平均和线性化全是机械代数,可以丢给 MATLAB。所以记住:简单拓扑用电路法找直觉,复杂拓扑用矩阵法保命。


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

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