前言
在前一篇中,以三相三线制的两电平电压型逆变器为被控对象,以数学形式推导了其在模型预测控制的可行性。实际上,由于逆变器的工作特性,每次的开关信号选择都是有限的。对于两电平的三相三桥臂逆变器而言,每次开关状态的切换只存在8种不同的开关状态,因此对于模型预测控制中代价函数的求解就可以摆脱二次规划求解问题的规程,直接回归以代价函数最小化为目标进行直接求解,从而得出最佳的开关状态。由此,我们可以跳过基于系统状态方程的复杂矩阵计算以及二次规划问题的计算形式的转化。
在大多情况下,分析二电平的三相三桥臂逆变器都是基于三相对称负载的情况下出发,默认三相平衡以简化分析过程,但这种情况显然过于理想。为保持三相平衡,通常需要额外引入中性点与接线,这其中有效的做法即多增加一个桥臂,将三相三桥臂变为三相四桥臂,本文以两电平三相四桥臂逆变器为对象,介绍基于MPC的电流控制策略。
一、两电平四桥臂逆变器(Four-leg two-level)
假设在三相电网中,三相三线制的逆变器接入负载不平衡时,产生零序电流无法通过其他回路流出,导致三相电流电压的不平衡。从并网的角度来讲,这种三相不平衡的状态会增加并网难度,也会导致稳定性隐患。为解决这种不平衡负载以及中性点缺失的情况,考虑在三桥臂逆变器中引入一条“中性线”,使得零序分量可以通过“中性线”流出,保证三相平衡。在这种情况下,实际的控制就需要考虑四条桥臂上器件的工作状态,因此共有2的4次方即16种开关状态。
二、数学建模
针对两电平四桥臂逆变器,其数学模型的建立与三桥臂逆变器类似。如果上图左侧逆变器部分正常工作,可以将其等效为一组三相电源,如下图所示。
其中,
v
u
N
v_{uN}
vuN、
v
v
N
v_{vN}
vvN、
v
w
N
v_{wN}
vwN、
v
n
N
v_{nN}
vnN根据逆变器的工作原理,可以以开关函数进行表示。设四组桥臂分别对应的开关函数为
S
u
S_{u}
Su、
S
v
S_{v}
Sv、
S
w
S_{w}
Sw、
S
n
S_{n}
Sn,当开关函数为1时表示上桥臂导通,下桥臂关断;当开关函数为0时表示上桥臂关断,下桥臂导通,由四桥臂逆变器的拓扑结构,个根据基尔霍夫定律,
v
u
N
v_{uN}
vuN、
v
v
N
v_{vN}
vvN、
v
w
N
v_{wN}
vwN、
v
n
N
v_{nN}
vnN就可以表示为
{
v
u
N
=
S
u
v
d
c
v
v
N
=
S
v
v
d
c
v
w
N
=
S
w
v
d
c
v
n
N
=
S
n
v
d
c
\left\{\begin{matrix}v_{uN}=S_u\,v_{dc}\\v_{vN}=S_v\,v_{dc}\\v_{wN}=S_w\,v_{dc}\\v_{nN}=S_n\,v_{dc}\end{matrix}\right.
⎩
⎨
⎧vuN=SuvdcvvN=SvvdcvwN=SwvdcvnN=Snvdc
{
v
u
n
=
(
S
u
−
S
n
)
v
d
c
v
v
n
=
(
S
v
−
S
n
)
v
d
c
v
w
n
=
(
S
w
−
S
n
)
v
d
c
\left\{\begin{matrix}v_{un}=(S_u-S_n)\,v_{dc}\\v_{vn}=(S_v-S_n)\,v_{dc}\\v_{wn}=(S_w-S_n)\,v_{dc}\end{matrix}\right.
⎩
⎨
⎧vun=(Su−Sn)vdcvvn=(Sv−Sn)vdcvwn=(Sw−Sn)vdc
由上图,根据基尔霍夫电压定律,可以得到
{
v
u
n
=
(
R
f
u
+
R
u
)
i
o
u
+
L
f
u
d
i
o
u
d
t
v
v
n
=
(
R
f
v
+
R
v
)
i
o
v
+
L
f
v
d
i
o
v
d
t
v
w
n
=
(
R
f
w
+
R
w
)
i
o
w
+
L
f
w
d
i
o
w
d
t
\left\{\begin{matrix}v_{un}=(R_{fu}+R_u)\,i_{ou}\,+\,L_{fu}\,\frac{\mathrm{d}i_{ou}}{\mathrm{d}t} \\v_{vn}=(R_{fv}+R_v)\,i_{ov}\,+\,L_{fv}\,\frac{\mathrm{d}i_{ov}}{\mathrm{d}t} \\v_{wn}=(R_{fw}+R_w)\,i_{ow}\,+\,L_{fw}\,\frac{\mathrm{d}i_{ow}}{\mathrm{d}t} \end{matrix}\right.
⎩
⎨
⎧vun=(Rfu+Ru)iou+Lfudtdiouvvn=(Rfv+Rv)iov+Lfvdtdiovvwn=(Rfw+Rw)iow+Lfwdtdiow
以矩阵形式进行简化表达可以得到:
d
i
o
d
t
=
1
L
f
[
v
o
−
(
R
f
+
R
)
i
o
]
\frac{\mathrm{d} i_o}{\mathrm{d}t} =\frac{1}{L_f} [v_o-(R_f+R)i_o]
dtdio=Lf1[vo−(Rf+R)io]
其中,
L
f
L_f
Lf和
R
f
R_f
Rf构成滤波电路,
R
R
R则为负载。开关函数与电压变量的关系如下表所示:
在上篇文章中已经讨论了逆变器的数学模型,但除了逆变器的拓扑结构之外,最大的问题是我们在时域状态下对状态函数进行变换,得到dq坐标系下的状态函数以及各矩阵参数,进而引入模型预测控制,虽然这个过程中有离散化的过程,但实际上是将逆变器这个被控对象的输入输出均视为“连续”的,并且由于控制过程中还包括SPWM过程,实际存在直流侧电压与输出电压之间的限制条件,因此仅仅讨论了模型预测控制在逆变器控制的可行性。经过上面的讨论过程,实际引入开关函数后,输出端的输出电压为与开关函数和直流侧电压相关联的“离散”值,只需要确定开关函数,即可得到期望的输出电压。
三、MPC电流控制策略
MPC电流控制策略的结构如下图所示:
首先依然需要对系统进行离散化,采用欧拉离散,将
d
i
o
d
t
=
i
o
(
k
)
−
i
o
(
k
−
1
)
T
s
\frac{\mathrm{d} i_o}{\mathrm{d}t} =\frac{i_o(k)-i_o(k-1)}{T_s}
dtdio=Tsio(k)−io(k−1)代入
d
i
o
d
t
=
1
L
f
[
v
o
−
(
R
f
+
R
)
i
o
]
\frac{\mathrm{d} i_o}{\mathrm{d}t} =\frac{1}{L_f} [v_o-(R_f+R)i_o]
dtdio=Lf1[vo−(Rf+R)io],得到
i
o
(
k
+
1
)
=
C
v
v
o
(
k
+
1
)
+
C
i
i
o
(
k
)
i_o(k+1)=C_v\,v_o(k+1)+C_i\,i_o(k)
io(k+1)=Cvvo(k+1)+Ciio(k)
C
v
=
T
s
L
f
+
(
R
f
+
R
)
T
s
C
i
=
L
f
L
f
+
(
R
f
+
R
)
T
s
}
\left.\begin{matrix} C_v=\frac{T_s}{L_f+(R_f+R)T_s} \\ C_i=\frac{L_f}{L_f+(R_f+R)T_s} \end{matrix}\right\}
Cv=Lf+(Rf+R)TsTsCi=Lf+(Rf+R)TsLf}
此外要确定控制系统的采样时间
T
s
T_s
Ts。当采样时间小于20微秒时,可以认为
i
o
∗
(
k
+
1
)
=
i
o
∗
(
k
)
i_{o}^{*} (k+1)=i_{o}^{*} (k)
io∗(k+1)=io∗(k),
i
o
∗
i_{o}^{*}
io∗即为输出电流的参考值;当采样时间大于20微秒时,可以使用拉格朗日差值法,令:
i
o
∗
(
k
+
1
)
=
4
i
o
∗
(
k
)
−
6
i
o
∗
(
k
−
1
)
+
4
i
o
∗
(
k
−
2
)
−
i
o
∗
(
k
−
3
)
i_{o}^{*} (k+1)=4\,i_{o}^{*} (k)-6\,i_{o}^{*} (k-1)+4\,i_{o}^{*} (k-2)-i_{o}^{*} (k-3)
io∗(k+1)=4io∗(k)−6io∗(k−1)+4io∗(k−2)−io∗(k−3)
由此,以
i
o
i_{o}
io为系统输出,通过采样的当前时刻的输出电流和预测的下一时刻的输出电压,就可以得到下一时刻期望的输出电流。而下一时刻的输出电压可以通过逆变器各桥臂的开关状态即开关函数计算得到,如果我们可以通过开关函数的计算得到最优的开关状态,那么通过下一时刻的输出电压和当前时刻的输出电流就可以使逆变器的输出电流达到预定制。
若要得到下一时刻的最优开关状态,需要构造代价函数并计算。不同于上一篇文章中的推导,这里才用绝对值形式的代价函数。令:
g
1
(
k
+
1
)
=
∥
i
o
∗
(
k
+
1
)
−
i
o
(
k
+
1
)
∥
g_1(k+1)=\left \| i_{o}^{*} (k+1)-i_{o}(k+1) \right \|
g1(k+1)=∥io∗(k+1)−io(k+1)∥
g
1
(
k
+
1
)
=
∥
i
o
u
∗
(
k
+
1
)
−
i
o
u
(
k
+
1
)
∥
+
∥
i
o
v
∗
(
k
+
1
)
−
i
o
v
(
k
+
1
)
∥
+
∥
i
o
w
∗
(
k
+
1
)
−
i
o
w
(
k
+
1
)
∥
g_1(k+1)=\left \| i_{ou}^{*} (k+1)-i_{ou}(k+1) \right \|+\left \| i_{ov}^{*} (k+1)-i_{ov}(k+1) \right \|+\left \| i_{ow}^{*} (k+1)-i_{ow}(k+1) \right \|
g1(k+1)=∥iou∗(k+1)−iou(k+1)∥+∥iov∗(k+1)−iov(k+1)∥+∥iow∗(k+1)−iow(k+1)∥
通过令
g
1
(
k
+
1
)
=
0
\,g_1(k+1)=0
g1(k+1)=0可以计算出最优的开关状态。
到此为止,我们已经可以使得逆变器的输出电流满足预定值,但从上面的代价函数中可以看到,
g
1
g_1
g1仅仅只引入了三相输出电流来得到最优的开关状态,而逆变器的拓扑结构为四桥臂,这就导致了控制中性线的桥臂的开关状态切换更加频繁,使得整体的开关损耗增大。于是针对减少逆变器的开关损耗,构造另一个代价函数:
g
2
(
k
+
1
)
=
λ
s
w
c
∗
s
w
c
n
g_2(k+1)=\lambda _{swc}*swc_{n}
g2(k+1)=λswc∗swcn
其中,
λ
s
w
c
\lambda _{swc}
λswc为大于0的权重系数,而
s
w
c
n
\,swc_{n}
swcn为第四桥臂开关函数的变化值,表示为:
s
w
c
n
=
∣
S
n
(
k
+
1
)
−
S
n
(
k
o
p
t
)
∣
swc_{n}=\left | S_n(k+1)-S_n(k_{opt}) \right |
swcn=∣Sn(k+1)−Sn(kopt)∣
S
n
(
k
+
1
)
S_n(k+1)
Sn(k+1)为k+1时刻预测的开关函数,
S
n
(
k
o
p
t
)
S_n(k_{opt})
Sn(kopt)为前一时刻的最佳开关函数,这样一来,整体的代价函数就为:
g
(
k
+
1
)
=
g
1
(
k
+
1
)
+
g
2
(
k
+
1
)
g(k+1)=g_1(k+1)+g_2(k+1)
g(k+1)=g1(k+1)+g2(k+1)
令
g
(
k
+
1
)
=
0
g(k+1)=0
g(k+1)=0即可得到最优开关状态。
四、总结
在上述所构建的代价函数中,单独引入了第四个桥臂的开关函数以降低逆变器的平均开关频率,其中通过调节权重系数
λ
s
w
c
\lambda _{swc}
λswc的大小就可以改变开关频率,权重系数越大,开关频率越低,逆变器的开关损耗也就越低,但是由于引入代价函数
g
2
\,g_2
g2实际上是减少第四桥臂的动作频率,因此势必会导致输出波形的THD的增大,因此需要合理配置权重系数,以平衡整体的开关损耗与THD,
λ
s
w
c
\lambda _{swc}
λswc的大小与各指标之间的大小关系如下图所示: