连续模式Buck、Buck-Boost、Boost电路的传递函数推导(状态空间平均法+小信号扰动)
Buck、Buck-Boost、Boost电路的传递函数推导
状态空间的优点
\hspace{2em}
状态空间的思想来源于描述微分方程的状态变量法,可以适用于更一般的系统,构建的常微分方程可以是非线性和时不变的。用状态变量的形式表示常微分方程,这种方法为我们提供了一种更简洁、标准的形式进行对系统的研究。同时,状态空间还可以更容易推向多输入、多输出的复杂系统研究。还有状态空间可以将内部描述和外部描述联系起来,动态系统的状态往往描述了系统内部能量的分布,我们常常选择将涉及内部能量变化的变量作为状态变量,在电路中最常见的就是电容电压(电能),电感电流(磁能)。 内部能量可以用状态变量求得,同时状态变量还可以和系统的输入、输出联系起来,进而可以将内部能量与输入、输出之间建立联系。传递函数只能描述输入和输出之间的关系,而不能描述系统的内部行为,但状态空间的形式却可以建立这些联系,这种联系在某些情况下是很重要的。在我们使用状态空间法进入设计之前,希望读者已经熟悉一些基本的矩阵概念(单位矩阵、转置矩阵、逆矩阵等),包括矩阵的一些运算,例如矩阵加减、乘积、求逆等运算方法。确保掌握以上线性代数的基础知识,方可开展后文的学习。
\hspace{2em}
状态空间的形式是通过微分方程建立的,开关电源变换器工作时,不同的开关状态则会有不同的微分方程,因此需要采用平均方程进行统一。在前两期开环Buck电路的PSIM仿真与计算、Boost电路的学习中,我们使用平均方程将不同的开关状态进行统一,通过平均方程进一步推导了直流传递函数的表达式,即稳态下输入和输出之间的关系。而接下来要进行的功率级小信号传递函数推导,也是建立在平均方程之上,所以希望读者确保已经掌握前两期的内容之后,再进行本文的阅读。
Buck
\hspace{2em}
回顾Buck电路工作在连续模式时,存在如图1所示的两种开关状态:
根据开关状态可以建立平均方程:(D表示占空比,符号<>表示对信号取平均)
<
v
L
>
=
V
L
=
D
(
V
i
−
V
o
)
−
(
1
−
D
)
V
o
=
D
V
i
−
V
o
<v_L>=V_L=D(V_i-V_o)-(1-D)V_o=D V_i-V_o
<vL>=VL=D(Vi−Vo)−(1−D)Vo=DVi−Vo
<
i
C
>
=
I
C
=
D
(
I
L
−
V
o
R
)
−
(
1
−
D
)
(
V
o
R
−
I
L
)
=
I
L
−
V
o
R
<i_C>=I_C=D(I_L-\frac{V_o}{R})-(1-D)(\frac{V_o}{R}-I_L)=I_L-\frac{V_o}{R}
<iC>=IC=D(IL−RVo)−(1−D)(RVo−IL)=IL−RVo
电感(容)电压和电流之间的关系:
V
L
=
L
d
I
L
d
t
I
C
=
C
d
V
o
d
t
V_L=L\frac{dI_L}{dt}~~~~~~~~~~~I_C=C\frac{dV_o}{dt}
VL=LdtdIL IC=CdtdVo
由此,可以建立平均模型(又称为大信号模型)下的微分方程:
d
I
L
d
t
=
D
V
i
L
−
V
o
L
\frac{dI_L}{dt}=\frac{DV_i}{L}-\frac{V_o}{L}
dtdIL=LDVi−LVo
d
V
o
d
t
=
I
L
C
−
V
o
R
C
\frac{dV_o}{dt}=\frac{I_L}{C}-\frac{V_o}{RC}
dtdVo=CIL−RCVo
\hspace{8em}
注:本文中大信号变量均采用大写,小信号变量采用小写
根据前文对状态空间的介绍,我们将
V
o
V_o
Vo电容电压(电能)和
I
L
I_L
IL电感电流(磁能)视为状态变量,将微分方程写成状态空间的矩阵形式:
d
d
t
[
I
L
V
o
]
=
[
0
−
1
L
1
C
−
1
R
C
]
[
I
L
V
o
]
+
[
1
L
0
]
D
V
i
\frac{d}{dt} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}= \begin{bmatrix} 0 & -\frac{1}{L} \\\\ \frac{1}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}DV_i
dtd
ILVo
=
0C1−L1−RC1
ILVo
+
L10
DVi
接下来,我们可以观察这个矩阵,这个矩阵由系数矩阵(R、L、C等系数)、状态变量矩阵、输入和控制量构成。为了求得传递函数,需要保证各变量之间是线性的,如何将大信号变量线性化?就是在大信号变量的附近(邻域)加上小信号扰动,根据泰勒展开定理,这些小信号变量可以被近似处理为线性变量,之后根据矩阵的加法运算,将小信号变量分离,构成小信号模型线性的状态空间矩阵。所以,对大信号变量施加小信号扰动:
d
d
t
[
I
L
+
i
L
(
t
)
V
o
+
v
o
(
t
)
]
=
[
0
−
1
L
1
C
−
1
R
C
]
[
I
L
+
i
L
(
t
)
V
o
+
v
o
(
t
)
]
+
[
1
L
0
]
(
D
+
d
(
t
)
)
(
V
i
+
v
i
(
t
)
)
\frac{d}{dt} \begin{bmatrix} I_L+i_L(t) \\\\ V_o+v_o(t) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{1}{L} \\\\ \frac{1}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} I_L+i_L(t) \\\\ V_o+v_o(t) \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}(D+d(t))(V_i+v_i(t))
dtd
IL+iL(t)Vo+vo(t)
=
0C1−L1−RC1
IL+iL(t)Vo+vo(t)
+
L10
(D+d(t))(Vi+vi(t))
在做小信号变量分离之前,还需注意忽略高阶小信号变量的问题:(近似处理,忽略高阶小项)
(
D
+
d
(
t
)
)
(
V
i
+
v
i
(
t
)
)
=
D
V
i
+
D
v
i
(
t
)
+
d
(
t
)
V
i
+
d
(
t
)
v
i
(
t
)
→
小信号分离
忽略高阶小信号变量
D
v
i
(
t
)
+
d
(
t
)
V
i
(D+d(t))(V_i+v_i(t))=DV_i+Dv_i(t)+d(t)V_i+d(t)v_i(t)\xrightarrow[小信号分离]{忽略高阶小信号变量} Dv_i(t)+d(t)V_i
(D+d(t))(Vi+vi(t))=DVi+Dvi(t)+d(t)Vi+d(t)vi(t)忽略高阶小信号变量小信号分离Dvi(t)+d(t)Vi
小信号变量分离,求得小信号模型的状态空间矩阵如下:
d
d
t
[
i
L
(
t
)
v
o
(
t
)
]
=
[
0
−
1
L
1
C
−
1
R
C
]
[
i
L
(
t
)
v
o
(
t
)
]
+
[
1
L
0
]
(
D
v
i
(
t
)
+
d
(
t
)
V
i
)
\frac{d}{dt} \begin{bmatrix} i_L(t) \\\\ v_o(t) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{1}{L} \\\\ \frac{1}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(t) \\\\ v_o(t) \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}(Dv_i(t)+d(t)V_i)
dtd
iL(t)vo(t)
=
0C1−L1−RC1
iL(t)vo(t)
+
L10
(Dvi(t)+d(t)Vi)
得到小信号模型之后,就可以使用拉普拉斯变换求解传递函数:(假设初始条件为0)
s
[
i
L
(
s
)
v
o
(
s
)
]
=
[
0
−
1
L
1
C
−
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
+
[
1
L
0
]
(
D
v
i
(
s
)
+
d
(
s
)
V
i
)
s \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{1}{L} \\\\ \frac{1}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}(Dv_i(s)+d(s)V_i)
s
iL(s)vo(s)
=
0C1−L1−RC1
iL(s)vo(s)
+
L10
(Dvi(s)+d(s)Vi)
这个等式里面,通常我们关心的是输入电压至输出电压的传递函数以及控制至输出电压的传递函数。当关注输入电压变化对输出电压的影响时,需将控制量置零
d
(
s
)
=
0
d(s)=0
d(s)=0进行观察,同理要想得到控制变化对输出电压的影响,则将输入电压置零
v
i
(
s
)
=
0
v_i(s)=0
vi(s)=0。由此可以得到下列两组不同变量的等式:
控制量置零:
s
[
i
L
(
s
)
v
o
(
s
)
]
=
[
0
−
1
L
1
C
−
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
+
[
1
L
0
]
D
v
i
(
s
)
s \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{1}{L} \\\\ \frac{1}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}Dv_i(s)
s
iL(s)vo(s)
=
0C1−L1−RC1
iL(s)vo(s)
+
L10
Dvi(s)
输入电压置零:
s
[
i
L
(
s
)
v
o
(
s
)
]
=
[
0
−
1
L
1
C
−
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
+
[
1
L
0
]
d
(
s
)
V
i
s \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{1}{L} \\\\ \frac{1}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}d(s)V_i
s
iL(s)vo(s)
=
0C1−L1−RC1
iL(s)vo(s)
+
L10
d(s)Vi
可以将等式左边的系数
s
s
s写成
s
s
s乘2阶单位矩阵的形式,然后将等式右边状态变量矩阵及其系数矩阵移项至等式左边进行合并同类项:
[
s
1
L
−
1
C
s
+
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
=
[
1
L
0
]
D
v
i
(
s
)
\begin{bmatrix} s & \frac{1}{L} \\\\ -\frac{1}{C} & s+\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}Dv_i(s)
s−C1L1s+RC1
iL(s)vo(s)
=
L10
Dvi(s)
[
s
1
L
−
1
C
s
+
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
=
[
1
L
0
]
d
(
s
)
V
i
\begin{bmatrix} s & \frac{1}{L} \\\\ -\frac{1}{C} & s+\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}d(s)V_i
s−C1L1s+RC1
iL(s)vo(s)
=
L10
d(s)Vi
将等式左边的系数矩阵令为
A
A
A,可以左乘逆矩阵
A
−
1
A^{-1}
A−1,根据逆矩阵的求解方法可得:(
A
∗
A^\ast
A∗为伴随矩阵)
A
−
1
=
A
∗
∣
A
∣
=
[
s
+
1
R
C
−
1
L
1
C
s
]
s
(
s
+
1
R
C
)
+
1
L
C
A^{-1}=\frac{A^\ast}{|A|}=\frac{\begin{bmatrix} s+\frac{1}{RC} & -\frac{1}{L} \\\\ \frac{1}{C} & s \end{bmatrix}}{s(s+\frac{1}{RC})+\frac{1}{LC}}
A−1=∣A∣A∗=s(s+RC1)+LC1
s+RC1C1−L1s
由此可得:
[
i
L
(
s
)
v
o
(
s
)
]
=
[
s
+
1
R
C
−
1
L
1
C
s
]
[
1
L
0
]
D
v
i
(
s
)
∣
A
∣
\begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} s+\frac{1}{RC} & -\frac{1}{L} \\\\ \frac{1}{C} & s \end{bmatrix} \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}\frac{Dv_i(s)}{|A|}
iL(s)vo(s)
=
s+RC1C1−L1s
L10
∣A∣Dvi(s)
[
i
L
(
s
)
v
o
(
s
)
]
=
[
s
+
1
R
C
−
1
L
1
C
s
]
[
1
L
0
]
d
(
s
)
V
i
∣
A
∣
\begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} s+\frac{1}{RC} & -\frac{1}{L} \\\\ \frac{1}{C} & s \end{bmatrix} \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}\frac{d(s)V_i}{|A|}
iL(s)vo(s)
=
s+RC1C1−L1s
L10
∣A∣d(s)Vi
最终根据矩阵方程的输出电压项,即可导出Buck电路的传递函数:
v
o
(
s
)
v
i
(
s
)
=
D
L
C
∣
A
∣
=
D
1
+
s
L
R
+
s
2
L
C
\frac{v_o(s)}{v_i(s)}=\frac{D}{LC|A|}=\frac{D}{1+s\frac{L}{R}+s^2LC}
vi(s)vo(s)=LC∣A∣D=1+sRL+s2LCD
v
o
(
s
)
d
(
s
)
=
V
i
L
C
∣
A
∣
=
V
i
1
+
s
L
R
+
s
2
L
C
\frac{v_o(s)}{d(s)}=\frac{V_i}{LC|A|}=\frac{V_i}{1+s\frac{L}{R}+s^2LC}
d(s)vo(s)=LC∣A∣Vi=1+sRL+s2LCVi
Buck-Boost
\hspace{2em}
Buck-Boost是一种可以实现升降压功能的电路,前几期文章并没有详细开展这个电路的稳态分析与仿真计算。不过,相信读者只要阅读掌握之前文章中开关模型状态分析的思路,就可以自行完成分析与仿真计算的工作。这里我们要推导其传递函数,同样也会列写平均模型的微分方程,然后以同样的思路建立状态空间矩阵完成最终推导。
由于之前没有开展详细的分析,这里给出Bcuk-Boost的电路拓扑以及开关状态电路:

注意,我们这里Buck-Boost的输出标记为
−
V
o
-V_o
−Vo ,这关系到后面的推导结论是否存在负号的问题。 这里为什么输出为负?简单分析一下开关模型状态电路,不难发现,Buck-Boost的一个特点是这个拓扑的能量传递路径,在整个开关周期转换的过程中只有电感参与。即状态一电感存储输入传递的能量,然后在状态二电感进行释放能量(输入和输出之间没有直接的能量流通路径),根据楞次定律此时电感感应电压的极性为下正上负,因此电流从电阻下端流入,上端流出,进而转换为上端电压相对于地电势为负极性的电压。在实际许多小功率的应用场合与Buck-Boost变换器工作原理一致的就是Flyback(反激式变换器)。Flyback同样在开关导通期间,变压器原边存储输入传递的能量,在开关断开时,将能量释放至变压器的副边,由于有些电源应用场合必需保证输出为正,因此Flyback将变压器原副边线圈的同名端进行反向,从而保证输出为正。
\hspace{2em}
接下来我们就开始正式推导传递函数,首先建立平均方程:(令D’=1-D)
<
v
L
>
=
V
L
=
D
V
i
+
(
1
−
D
)
(
−
V
o
)
=
D
V
i
−
D
′
V
o
<v_L>=V_L=DV_i+(1-D)(-V_o)=D V_i-D'V_o
<vL>=VL=DVi+(1−D)(−Vo)=DVi−D′Vo
<
i
C
>
=
I
C
=
D
(
−
V
o
)
R
+
(
1
−
D
)
(
I
L
−
V
o
R
)
=
D
′
I
L
−
V
o
R
<i_C>=I_C=D\frac{(-V_o)}{R}+(1-D)(I_L-\frac{V_o}{R})=D'I_L-\frac{V_o}{R}
<iC>=IC=DR(−Vo)+(1−D)(IL−RVo)=D′IL−RVo
由于之前的文章没有详细分析Buck-Boost,这里插入一段题外话。根据电感电压平均方程以及伏秒平衡可以得到Buck-Boost变换器稳态下的直流传递函数;根据电容电流平均方程以及安秒平衡可以得到稳态下电感电流和输出电流直流分量之间的关系:
<
v
L
>
=
D
V
i
−
D
′
V
o
=
0
→
V
o
V
i
=
D
1
−
D
<v_L>=DV_i-D'V_o=0\rightarrow \frac{V_o}{V_i}=\frac{D}{1-D}
<vL>=DVi−D′Vo=0→ViVo=1−DD
<
i
C
>
=
D
′
I
L
−
V
o
R
=
0
→
I
L
=
V
o
D
′
R
<i_C>=D'I_L-\frac{V_o}{R}=0\rightarrow I_L=\frac{V_o}{D'R}
<iC>=D′IL−RVo=0→IL=D′RVo
有部分读者可能会感到困惑,这里的直流传递函数无论如何计算都不会为负,为什么实际输出为负?注意前文强调了,输出电压已经标记为
−
V
o
-V_o
−Vo,所以这里算出来的
V
o
V_o
Vo只是数值大小,因此计算结果为正。如果想得到体现负压的直流传递函数,可以将输出电压标记为
V
o
p
V_{op}
Vop, 重新推导直流传递函数:
<
v
L
>
=
D
V
i
+
D
′
V
o
p
=
0
→
V
o
p
V
i
=
−
D
1
−
D
<v_L>=DV_i+D'V_{op}=0\rightarrow \frac{V_{op}}{V_i}=-\frac{D}{1-D}
<vL>=DVi+D′Vop=0→ViVop=−1−DD
回到正题,将平均方程写成微分方程的形式:
d
I
L
d
t
=
D
V
i
L
−
D
′
V
o
L
\frac{dI_L}{dt}=\frac{DV_i}{L}-\frac{D'V_o}{L}
dtdIL=LDVi−LD′Vo
d
V
o
d
t
=
D
′
I
L
C
−
V
o
R
C
\frac{dV_o}{dt}=\frac{D'I_L}{C}-\frac{V_o}{RC}
dtdVo=CD′IL−RCVo
将微分方程写成状态空间的矩阵形式:
d
d
t
[
I
L
V
o
]
=
[
0
−
D
′
L
D
′
C
−
1
R
C
]
[
I
L
V
o
]
+
[
1
L
0
]
D
V
i
\frac{d}{dt} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}= \begin{bmatrix} 0 & -\frac{D'}{L} \\\\ \frac{D'}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}DV_i
dtd
ILVo
=
0CD′−LD′−RC1
ILVo
+
L10
DVi
施加小信号扰动并进行小信号变量分离:注意
D
′
D'
D′的小信号扰动
1
−
(
D
+
d
(
t
)
)
=
D
′
−
d
(
t
)
1-(D+d(t))=D'-d(t)
1−(D+d(t))=D′−d(t)
d
d
t
[
i
L
(
t
)
v
o
(
t
)
]
=
[
0
−
D
′
L
D
′
C
−
1
R
C
]
[
i
L
(
t
)
v
o
(
t
)
]
+
[
0
d
(
t
)
L
−
d
(
t
)
C
0
]
[
I
L
V
o
]
+
[
1
L
0
]
(
D
v
i
(
t
)
+
d
(
t
)
V
i
)
\frac{d}{dt} \begin{bmatrix} i_L(t) \\\\ v_o(t) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{D'}{L} \\\\ \frac{D'}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(t) \\\\ v_o(t) \end{bmatrix}+ \begin{bmatrix} 0 & \frac{d(t)}{L} \\\\ -\frac{d(t)}{C} & 0 \end{bmatrix} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}(Dv_i(t)+d(t)V_i)
dtd
iL(t)vo(t)
=
0CD′−LD′−RC1
iL(t)vo(t)
+
0−Cd(t)Ld(t)0
ILVo
+
L10
(Dvi(t)+d(t)Vi)
进行拉普拉斯变换并将状态变量矩阵进行合并同类项:
[
s
D
′
L
−
D
′
C
s
+
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
=
[
V
o
L
−
I
L
C
]
d
(
s
)
+
[
1
L
0
]
(
D
v
i
(
s
)
+
d
(
s
)
V
i
)
\begin{bmatrix} s & \frac{D'}{L} \\\\ -\frac{D'}{C} & s+\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} \frac{V_o}{L} \\\\ -\frac{I_L}{C} \end{bmatrix}d(s)+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}(Dv_i(s)+d(s)V_i)
s−CD′LD′s+RC1
iL(s)vo(s)
=
LVo−CIL
d(s)+
L10
(Dvi(s)+d(s)Vi)
将等式左边的系数矩阵令为
A
A
A,可以左乘逆矩阵
A
−
1
A^{-1}
A−1,根据逆矩阵的求解方法可得:
A
−
1
=
A
∗
∣
A
∣
=
[
s
+
1
R
C
−
D
′
L
D
′
C
s
]
s
(
s
+
1
R
C
)
+
D
′
2
L
C
A^{-1}=\frac{A^\ast}{|A|}=\frac{\begin{bmatrix} s+\frac{1}{RC} & -\frac{D'}{L} \\\\ \frac{D'}{C} & s \end{bmatrix}}{s(s+\frac{1}{RC})+\frac{D'^2}{LC}}
A−1=∣A∣A∗=s(s+RC1)+LCD′2
s+RC1CD′−LD′s
分别将控制量小信号置零、输入电压小信号置零,得到对应的状态空间矩阵:
[
i
L
(
s
)
v
o
(
s
)
]
=
[
s
+
1
R
C
−
D
′
L
D
′
C
s
]
[
1
L
0
]
D
v
i
(
s
)
∣
A
∣
\begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} s+\frac{1}{RC} & -\frac{D'}{L} \\\\ \frac{D'}{C} & s \end{bmatrix} \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}\frac{Dv_i(s)}{|A|}
iL(s)vo(s)
=
s+RC1CD′−LD′s
L10
∣A∣Dvi(s)
[
i
L
(
s
)
v
o
(
s
)
]
=
[
s
+
1
R
C
−
D
′
L
D
′
C
s
]
[
V
o
+
V
i
L
−
I
L
C
]
d
(
s
)
∣
A
∣
\begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} s+\frac{1}{RC} & -\frac{D'}{L} \\\\ \frac{D'}{C} & s \end{bmatrix} \begin{bmatrix} \frac{V_o+V_i}{L} \\\\ -\frac{I_L}{C} \end{bmatrix}\frac{d(s)}{|A|}
iL(s)vo(s)
=
s+RC1CD′−LD′s
LVo+Vi−CIL
∣A∣d(s)
最终根据矩阵方程的输出电压项,即可导出Buck-Boost电路的传递函数:
v
o
(
s
)
v
i
(
s
)
=
D
′
D
L
C
∣
A
∣
=
D
′
D
D
′
2
+
s
L
R
+
s
2
L
C
\frac{v_o(s)}{v_i(s)}=\frac{D'D}{LC|A|}=\frac{D'D}{D'^2+s\frac{L}{R}+s^2LC}
vi(s)vo(s)=LC∣A∣D′D=D′2+sRL+s2LCD′D
v
o
(
s
)
d
(
s
)
=
D
′
(
V
i
+
V
o
)
−
s
L
I
L
L
C
∣
A
∣
=
V
i
(
1
−
s
D
L
D
′
2
R
)
D
′
2
+
s
L
R
+
s
2
L
C
\frac{v_o(s)}{d(s)}=\frac{D'(V_i+V_o)-sLI_L}{LC|A|}=\frac{V_i(1-s\frac{DL}{D'^2R})}{D'^2+s\frac{L}{R}+s^2LC}
d(s)vo(s)=LC∣A∣D′(Vi+Vo)−sLIL=D′2+sRL+s2LCVi(1−sD′2RDL)
有些资料给出的Buck-Boost传递函数会多一个负号,因为其输出电位标注为
V
o
V_o
Vo而非本文标注的
−
V
o
-V_o
−Vo,读者需注意这个细节,明确输出电压的极性才能保证最终推导的结果正确。当然,这里也只需稍加修改,就可以得到负压形式的传递函数表达式,假设输出电压标记为
V
o
p
=
−
V
o
V_{op}=-V_o
Vop=−Vo:
v
o
p
(
s
)
v
i
(
s
)
=
−
v
o
(
s
)
v
i
(
s
)
=
−
D
′
D
D
′
2
+
s
L
R
+
s
2
L
C
\frac{v_{op}(s)}{v_i(s)}=-\frac{v_o(s)}{v_i(s)}=-\frac{D'D}{D'^2+s\frac{L}{R}+s^2LC}
vi(s)vop(s)=−vi(s)vo(s)=−D′2+sRL+s2LCD′D
v
o
p
(
s
)
d
(
s
)
=
−
V
i
(
1
−
s
D
L
D
′
2
R
)
D
′
2
+
s
L
R
+
s
2
L
C
=
V
o
p
(
D
′
D
−
s
L
D
′
R
)
D
′
2
+
s
L
R
+
s
2
L
C
\frac{v_{op}(s)}{d(s)}=-\frac{V_i(1-s\frac{DL}{D'^2R})}{D'^2+s\frac{L}{R}+s^2LC}=\frac{V_{op}(\frac{D'}{D}-\frac{sL}{D'R})}{D'^2+s\frac{L}{R}+s^2LC}
d(s)vop(s)=−D′2+sRL+s2LCVi(1−sD′2RDL)=D′2+sRL+s2LCVop(DD′−D′RsL)
Boost
\hspace{2em}
Boost电路的推导方法也是如法炮制,其开关状态如下图所示:

根据开关状态列写平均方程:
<
v
L
>
=
V
L
=
D
V
i
+
(
1
−
D
)
(
V
i
−
V
o
)
=
V
i
−
D
′
V
o
<v_L>=V_L=DV_i+(1-D)(V_i-V_o)=V_i-D'V_o
<vL>=VL=DVi+(1−D)(Vi−Vo)=Vi−D′Vo
<
i
C
>
=
I
C
=
D
(
−
V
o
)
R
+
(
1
−
D
)
(
I
L
−
V
o
R
)
=
D
′
I
L
−
V
o
R
<i_C>=I_C=D\frac{(-V_o)}{R}+(1-D)(I_L-\frac{V_o}{R})=D'I_L-\frac{V_o}{R}
<iC>=IC=DR(−Vo)+(1−D)(IL−RVo)=D′IL−RVo
由这里电容电流的平均方程可以得知,Boost电路电感电流和输出电流直流分量之间的关系与Buck-Boost电路是一致的。
将平均方程写成微分方程的形式:
d
I
L
d
t
=
V
i
L
−
D
′
V
o
L
\frac{dI_L}{dt}=\frac{V_i}{L}-\frac{D'V_o}{L}
dtdIL=LVi−LD′Vo
d
V
o
d
t
=
D
′
I
L
C
−
V
o
R
C
\frac{dV_o}{dt}=\frac{D'I_L}{C}-\frac{V_o}{RC}
dtdVo=CD′IL−RCVo
将微分方程写成状态空间的矩阵形式:
d
d
t
[
I
L
V
o
]
=
[
0
−
D
′
L
D
′
C
−
1
R
C
]
[
I
L
V
o
]
+
[
1
L
0
]
V
i
\frac{d}{dt} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}= \begin{bmatrix} 0 & -\frac{D'}{L} \\\\ \frac{D'}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}V_i
dtd
ILVo
=
0CD′−LD′−RC1
ILVo
+
L10
Vi
施加小信号扰动并进行小信号变量分离:注意
D
′
D'
D′的小信号扰动
1
−
(
D
+
d
(
t
)
)
=
D
′
−
d
(
t
)
1-(D+d(t))=D'-d(t)
1−(D+d(t))=D′−d(t)
d
d
t
[
i
L
(
t
)
v
o
(
t
)
]
=
[
0
−
D
′
L
D
′
C
−
1
R
C
]
[
i
L
(
t
)
v
o
(
t
)
]
+
[
0
d
(
t
)
L
−
d
(
t
)
C
0
]
[
I
L
V
o
]
+
[
1
L
0
]
v
i
(
t
)
\frac{d}{dt} \begin{bmatrix} i_L(t) \\\\ v_o(t) \end{bmatrix}= \begin{bmatrix} 0 & -\frac{D'}{L} \\\\ \frac{D'}{C} & -\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(t) \\\\ v_o(t) \end{bmatrix}+ \begin{bmatrix} 0 & \frac{d(t)}{L} \\\\ -\frac{d(t)}{C} & 0 \end{bmatrix} \begin{bmatrix} I_L \\\\ V_o \end{bmatrix}+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}v_i(t)
dtd
iL(t)vo(t)
=
0CD′−LD′−RC1
iL(t)vo(t)
+
0−Cd(t)Ld(t)0
ILVo
+
L10
vi(t)
进行拉普拉斯变换并将状态变量矩阵进行合并同类项:
[
s
D
′
L
−
D
′
C
s
+
1
R
C
]
[
i
L
(
s
)
v
o
(
s
)
]
=
[
V
o
L
−
I
L
C
]
d
(
s
)
+
[
1
L
0
]
v
i
(
s
)
\begin{bmatrix} s & \frac{D'}{L} \\\\ -\frac{D'}{C} & s+\frac{1}{RC} \end{bmatrix} \begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} \frac{V_o}{L} \\\\ -\frac{I_L}{C} \end{bmatrix}d(s)+ \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}v_i(s)
s−CD′LD′s+RC1
iL(s)vo(s)
=
LVo−CIL
d(s)+
L10
vi(s)
将等式左边的系数矩阵令为
A
A
A,可以左乘逆矩阵
A
−
1
A^{-1}
A−1,根据逆矩阵的求解方法可得:
A
−
1
=
A
∗
∣
A
∣
=
[
s
+
1
R
C
−
D
′
L
D
′
C
s
]
s
(
s
+
1
R
C
)
+
D
′
2
L
C
A^{-1}=\frac{A^\ast}{|A|}=\frac{\begin{bmatrix} s+\frac{1}{RC} & -\frac{D'}{L} \\\\ \frac{D'}{C} & s \end{bmatrix}}{s(s+\frac{1}{RC})+\frac{D'^2}{LC}}
A−1=∣A∣A∗=s(s+RC1)+LCD′2
s+RC1CD′−LD′s
分别将控制量小信号置零、输入电压小信号置零,得到对应的状态空间矩阵:
[
i
L
(
s
)
v
o
(
s
)
]
=
[
s
+
1
R
C
−
D
′
L
D
′
C
s
]
[
1
L
0
]
v
i
(
s
)
∣
A
∣
\begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} s+\frac{1}{RC} & -\frac{D'}{L} \\\\ \frac{D'}{C} & s \end{bmatrix} \begin{bmatrix} \frac{1}{L} \\\\ 0 \end{bmatrix}\frac{v_i(s)}{|A|}
iL(s)vo(s)
=
s+RC1CD′−LD′s
L10
∣A∣vi(s)
[
i
L
(
s
)
v
o
(
s
)
]
=
[
s
+
1
R
C
−
D
′
L
D
′
C
s
]
[
V
o
L
−
I
L
C
]
d
(
s
)
∣
A
∣
\begin{bmatrix} i_L(s) \\\\ v_o(s) \end{bmatrix}= \begin{bmatrix} s+\frac{1}{RC} & -\frac{D'}{L} \\\\ \frac{D'}{C} & s \end{bmatrix} \begin{bmatrix} \frac{V_o}{L} \\\\ -\frac{I_L}{C} \end{bmatrix}\frac{d(s)}{|A|}
iL(s)vo(s)
=
s+RC1CD′−LD′s
LVo−CIL
∣A∣d(s)
最终根据矩阵方程的输出电压项,即可导出Boost电路的传递函数:
v
o
(
s
)
v
i
(
s
)
=
D
′
L
C
∣
A
∣
=
D
′
D
′
2
+
s
L
R
+
s
2
L
C
\frac{v_o(s)}{v_i(s)}=\frac{D'}{LC|A|}=\frac{D'}{D'^2+s\frac{L}{R}+s^2LC}
vi(s)vo(s)=LC∣A∣D′=D′2+sRL+s2LCD′
v
o
(
s
)
d
(
s
)
=
D
′
V
o
−
s
L
I
L
L
C
∣
A
∣
=
D
′
V
o
(
1
−
s
L
D
′
2
R
)
D
′
2
+
s
L
R
+
s
2
L
C
\frac{v_o(s)}{d(s)}=\frac{D'V_o-sLI_L}{LC|A|}=\frac{D'V_o(1-\frac{sL}{D'^2R})}{D'^2+s\frac{L}{R}+s^2LC}
d(s)vo(s)=LC∣A∣D′Vo−sLIL=D′2+sRL+s2LCD′Vo(1−D′2RsL)
\hspace{2em}
至此,关于DC-DC三大基本拓扑的传递函数,已经推导完毕。掌握状态空间平均法加小信号扰动的计算方法是非常重要的,这可以有助于分析其他开关电源的电路拓扑。同时,得到的传递函数结论对于做闭环控制有着重要理论基础依据,后续计划会更新闭环控制的相关分析,届时读者就会看到传递函数对于稳定性分析的重要性。
Simulink仿真建模
\hspace{2em}
最后,我们以Buck电路为例子,在Simulink里面搭建Buck电路传递函数的控制框图,将其输出的结果与Buck电路器件仿真的输出结果进行对比。

其中仿真的器件参数,采用第一期Buck电路的参数。将传递函数写成积分器形式,通过梅森公式即可将其转换为控制框图的形式,其中需要计算的系数已经在Mathcad中给出。
v
o
(
s
)
v
i
(
s
)
=
D
/
L
C
s
2
1
+
1
/
R
C
s
+
1
/
L
C
s
2
\frac{v_o(s)}{v_i(s)}=\frac{\frac{D/LC}{s^2}}{1+\frac{1/RC}{s}+\frac{1/LC}{s^2}}
vi(s)vo(s)=1+s1/RC+s21/LCs2D/LC

输出结果对比:

可以看到两者稳态的输出结果完全一致。暂态部分,过冲的轮廓基本相同,但是数值有些不一样。第一个过冲两者基本一致,之后从下冲开始,明显状态空间平均法建立的传递函数过冲较大,一方面误差来源于电路中非线性器件,如MOSFET和二极管的参数设置,另一方面则是状态空间平均法的局限性,这种方法推导的传递函数无法精确预测电路在大信号瞬态工作条件下的非线性行为。
\hspace{2em}
不过,读者需要记住,模型的精确度和简易度是矛盾的,在工程应用中,需要具体视应用场合而决定采用什么模型。有些模型非常的精确,但是模型复杂度很高,很难用于工程设计,不具有实用性,而有些模型虽然简单,但精确度又无法反映实际的物理现象,因此根据变换器在特定应用场景下选择合理的模型,是完成变换器控制设计重要步骤之一。本文的分析就到此结束了,希望对各位读者能够有所帮助和提升。由于作者水平有限,所阅读的资料有限,文章中难免有疏漏和不妥之处,望各位读者批评指正!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)