电机控制理论学习---SVPWM
前言
本部分内容是对于三相电机控制理论中SVPWM的学习,旨在记录自己的学习过程以及对知识点的一些理解,每个章节参考的文章会附上链接。若有理解不到位的地方,希望各位大佬批评指正。
本部分内容参考文章有:
彻底吃透SVPWM如此简单
BLDC矢量控制基础知识:SVPWM原理
还有袁雷老师著作:现代永磁同步电机控制原理及MATLAB仿真
一、SVPWM基础向量
在上一篇文章 电机控制理论学习—Clarke与Park中已经提到当三相绕组输入幅值为Um,相位差为120°的正弦波时,绕组产生大小为 2 3 \frac{2}{3} 32Um 的旋转矢量,旋转周期与三相绕组通电周期相同,在实际的PMSM和BLDC电机控制中,当三相绕组产生的磁场与转子永磁体磁场有一定夹角时, 电机就可以丝滑地转起来了,转动过程中要保证绕组磁场旋转速度与转子速度同步,才能持续的旋转。问题来了,PMSM和BLDC电机供电电源都是直流电,怎么才能调制出驱动电机需要的相位差120°的正弦波呢,SVPWM调制技术应运而生。
1、三相逆变桥
图1为三相逆变桥的结构,每一相有两个开关管,分别负责将该相导通至电源或地,一般来讲,上下桥臂的开关管会设置成互补模式,例如开关管Sa 打开时,S’a 一定是关闭的状态,这样可以防止同一相上下管同时导通,导致短路发生。 图中Z为星型连接的负载,即电机绕组,由于电机三相对称,在简化分析过程中可以将其视作三个相同的电阻,N为星型连接的中性点。
2、SVPWM基础理论
将上半桥打开视作“1”,上半桥关断视作“0”,那么上半桥三个开关管可以组成8种状态,如表1所示。这块其实反应的是每一相的电平状态,前边提到过上下桥臂开关管互补,上半桥为1是下半桥必然为0,该相电平必然为高。
A相电平 | B相电平 | C相电平 |
---|---|---|
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
1 | 1 | 1 |
以Sa =1,Sb =0,Sc =0为例,此时A相接入电源,B\C相接入地,如图2所示,按照串联分压可以计算出A、B、C相相电压为:
V
A
N
=
2
U
d
c
3
V_{AN}=\frac{2U_{dc}}{3}
VAN=32Udc
V
B
N
=
−
U
d
c
3
V_{BN}=-\frac{U_{dc}}{3}
VBN=−3Udc
V
C
N
=
−
U
d
c
3
V_{CN}=-\frac{U_{dc}}{3}
VCN=−3Udc
在图3所示的三相坐标系中,A相流入,B、C相流出,合成矢量为橙色的F,大小为Udc ,方向与UA轴重合。也有一些资料描述的合成矢量大小为 2 3 \frac{2}{3} 32Udc ,这其实是参考坐标系不同产生的不同结果。在上一篇文章电机控制理论学习—Clarke与Park中提到,αβ坐标系矢量幅值比三相坐标系矢量幅值大1.5倍,而我们希望坐标变换不仅仅是数学表达,更能具有实际的物理意义,因此,设法让αβ坐标系矢量幅值以及合成矢量幅值与三相坐标系下矢量幅值相等,所以会在Udc 前边乘以 2 3 \frac{2}{3} 32,熟悉吧,没错,就是Clarke等幅值变换。所以,Sa =1,Sb =0,Sc =0情况下的合成矢量大小在三相坐标系下是Udc ,在αβ坐标系下是 2 3 \frac{2}{3} 32Udc 。以此类推,8种开关管状态下合成矢量如表2所示。由于SVPWM是在αβ坐标系下完成的(SVPWM的输入就是Uα 、Uβ),所以后边也采用αβ坐标系来表示矢量。
Vector | Sa | Sb | Sc | VAN | VBN | VCN | V ⃗ \vec{V} VOUT |
---|---|---|---|---|---|---|---|
U0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
U4 | 1 | 0 | 0 | 2 3 \frac{2}{3} 32Udc | - 1 3 \frac{1}{3} 31Udc | - 1 3 \frac{1}{3} 31Udc | 2 3 \frac{2}{3} 32Udc |
U6 | 1 | 1 | 0 | 1 3 \frac{1}{3} 31Udc | 1 3 \frac{1}{3} 31Udc | - 2 3 \frac{2}{3} 32Udc | 2 3 \frac{2}{3} 32Udc e j π 3 e^{j\frac{\pi}{3}} ej3π |
U2 | 0 | 1 | 0 | - 1 3 \frac{1}{3} 31Udc | 2 3 \frac{2}{3} 32Udc | - 1 3 \frac{1}{3} 31Udc | 2 3 \frac{2}{3} 32Udc e j 2 π 3 e^{j\frac{2\pi}{3}} ej32π |
U3 | 0 | 1 | 1 | - 2 3 \frac{2}{3} 32Udc | 1 3 \frac{1}{3} 31Udc | 1 3 \frac{1}{3} 31Udc | - 2 3 \frac{2}{3} 32Udc |
U1 | 0 | 0 | 1 | - 1 3 \frac{1}{3} 31Udc | - 1 3 \frac{1}{3} 31Udc | 2 3 \frac{2}{3} 32Udc | 2 3 \frac{2}{3} 32Udc e j 4 π 3 e^{j\frac{4\pi}{3}} ej34π |
U5 | 1 | 0 | 1 | 1 3 \frac{1}{3} 31Udc | - 2 3 \frac{2}{3} 32Udc | 1 3 \frac{1}{3} 31Udc | 2 3 \frac{2}{3} 32Udc e j 5 π 3 e^{j\frac{5\pi}{3}} ej35π |
U7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
表中矢量U0 和U7 表示零向量,其他非零向量作为SVPWM的基础向量,把表里的非零矢量画个图出来,如图4所示。六个基础向量顶点被外接圆包围,外接圆半径为 2 3 \frac{2}{3} 32Udc ,相邻向量相隔60°,其与外接圆弧构成矢量扇区,用罗马数字I-VI表示。
二、SVPWM矢量的合成原理
1、SVPWM合成
SVPWM通过控制某一扇区内两个基础向量的作用时间,可以达到合成该扇区内任意角度向量的目的。有点类似于PWM的工作过程,如图5所示,在不考虑开关管和灯泡内阻的情况下,占空比为25%时,流过灯泡电流为
U
d
c
4
R
\frac{U_dc}{4R}
4RUdc ,而占空比为100%时,流过灯泡电流为
U
d
c
R
\frac{U_dc}{R}
RUdc,随着周期内高电平导通时间变化,流过灯泡的电流也会线性变化,灯泡亮度随之变化。
而对于SVPWM合成调制来讲,若想要获得扇区Ⅰ中任意角度矢量,只需要控制基础向量U4 ,U6 的作用时间即可,若想要改变扇区Ⅰ中任意矢量的幅值,只需要在U4 ,U6 两个基础向量作用中间插入U0 或U7 零矢量即可。
2、SVPWM基础矢量作用时间计算
图6中Ts 为SVPWM载波周期,T4 为U4 向量导通时间,T6 为U6 向量导通时间,Um 为合成矢量,那么:
U
m
T
s
=
U
4
T
4
+
U
6
T
6
+
+
U
0
/
7
T
0
/
7
{U_m}{T_s}={U_4}{T_4}+{U_6}{T_6}++{U_{0/7}}{T_{0/7}}
UmTs=U4T4+U6T6++U0/7T0/7即:
U
m
=
U
4
T
4
T
s
+
U
6
T
6
T
s
+
U
0
/
7
T
0
/
7
T
s
{U_m}={U_4}\frac{{T_4}}{T_s}+{U_6}\frac{T_6}{{T_s}}+{U_{0/7}}\frac{T_{0/7}}{{T_s}}
Um=U4TsT4+U6TsT6+U0/7TsT0/7分别令
U
f
i
r
s
t
=
U
4
T
4
T
s
;
U
s
e
c
o
n
d
=
U
6
T
6
T
s
U_{first}={U_4}\frac{{T_4}}{T_s};U_{second}={U_6}\frac{{T_6}}{T_s}
Ufirst=U4TsT4;Usecond=U6TsT6
利用三角函数也可以得到Um 与U4 、U6 之间的关系:
{
∣
U
m
∣
s
i
n
θ
=
∣
U
s
e
c
o
n
d
∣
s
i
n
π
3
∣
U
f
i
r
s
t
∣
s
i
n
θ
=
∣
U
s
e
c
o
n
d
∣
s
i
n
(
π
3
−
θ
)
\left\{\begin{matrix} \begin{vmatrix} U_m\end{vmatrix}sin\theta =\begin{vmatrix} U_{second}\end{vmatrix}sin\frac{\pi }{3} \\ \\\begin{vmatrix} U_{first}\end{vmatrix}sin\theta=\begin{vmatrix} U_{second}\end{vmatrix}sin(\frac{\pi }{3}-\theta) \end{matrix}\right.
⎩
⎨
⎧
Um
sinθ=
Usecond
sin3π
Ufirst
sinθ=
Usecond
sin(3π−θ) 得到如下关系
∣
U
m
∣
s
i
n
π
3
=
∣
U
f
i
r
s
t
∣
s
i
n
(
π
3
−
θ
)
=
∣
U
s
e
c
o
n
d
∣
s
i
n
θ
\frac{\begin{vmatrix} U_m\end{vmatrix}}{sin\frac{\pi }{3}}=\frac{\begin{vmatrix} U_{first}\end{vmatrix}}{sin(\frac{\pi }{3}-\theta)}=\frac{\begin{vmatrix} U_{second}\end{vmatrix}}{sin\theta}
sin3π
Um
=sin(3π−θ)
Ufirst
=sinθ
Usecond
由于在αβ坐标系下,U4 、U6 幅值均为
2
3
\frac{2}{3}
32Udc ,可以计算出T4 、T6
{
T
4
=
3
U
m
U
d
c
T
s
s
i
n
(
π
3
−
θ
)
T
6
=
3
U
m
U
d
c
T
s
s
i
n
(
θ
)
T
0
/
7
=
T
s
−
T
4
−
T
6
\left\{\begin{matrix} T_4=\sqrt{3}\frac{U_m}{U_{dc}}T_ssin(\frac{\pi}{3}-\theta)\\ \\T_6=\sqrt{3}\frac{U_m}{U_{dc}}T_ssin(\theta)\\ \\T_{0/7}=T_s-T_4-T_6 \end{matrix}\right.
⎩
⎨
⎧T4=3UdcUmTssin(3π−θ)T6=3UdcUmTssin(θ)T0/7=Ts−T4−T6 引入调制比的概念
M
=
3
U
m
U
d
c
M=\sqrt{3}\frac{U_m}{U_{dc}}
M=3UdcUm
3、正六边形怎么来的
现在需要计算一下调制比最大是多少,很明显,当非零向量导通时间为0时,Um 可以达到最大值,调制比也最大,也就是说
T
s
=
T
4
+
T
6
T_s=T_4+T_6
Ts=T4+T6代入前边计算出的T4 、T6
M
T
s
s
i
n
(
π
3
−
θ
)
+
M
T
s
s
i
n
(
θ
)
−
T
s
=
0
MT_ssin(\frac{\pi}{3}-\theta)+MT_ssin(\theta)-T_s=0
MTssin(3π−θ)+MTssin(θ)−Ts=0
1
M
=
s
i
n
(
π
3
−
θ
)
+
s
i
n
(
θ
)
\frac{1}{M}=sin(\frac{\pi}{3}-\theta)+sin(\theta)
M1=sin(3π−θ)+sin(θ)令
y
=
1
M
y=\frac{1}{M}
y=M1,对
θ
\theta
θ求导,得到
d
y
d
θ
=
s
i
n
(
π
6
−
θ
)
\frac{dy}{d\theta}=sin(\frac{\pi}{6}-\theta)
dθdy=sin(6π−θ)
y
=
f
(
θ
)
y=f(\theta)
y=f(θ)在
0
<
θ
<
π
6
0<\theta<\frac{\pi}{6}
0<θ<6π范围内单调递减,在
θ
=
π
6
\theta=\frac{\pi}{6}
θ=6π时取到
1
M
\frac{1}{M}
M1的最大极值点,而M 为正整数,因此
θ
=
π
6
\theta=\frac{\pi}{6}
θ=6π是M 的最小极值点,求得M 的极小值为:
M
T
s
2
+
M
T
s
2
−
T
s
=
0
\frac{MT_s}{2}+\frac{MT_s}{2}-T_s=0
2MTs+2MTs−Ts=0求得当非零矢量不参与调制时,最小调制比为
M
m
i
n
=
1
M_{min}=1
Mmin=1最大调制比出现在
θ
=
0
\theta=0
θ=0和
θ
=
π
3
\theta=\frac{\pi}{3}
θ=3π处,那么,当非零矢量不参与调制时,最大调制比为
M
m
a
x
=
2
3
M_{max}=\frac{2}{\sqrt{3}}
Mmax=32相应地,也可以算出SVPWM调制过程中的最小合成矢量:
U
m
=
3
3
U
d
c
U_m=\frac{\sqrt{3}}{3}U_{dc}
Um=33Udc这也是SVPWM所能合成的最大不失真旋转矢量,木桶效应嘛,因此,我们就知道了,基本向量能够产生的合成矢量在其围成的正六边形内,最大旋转矢量为该六边形的内接圆,如图7所示
4、SVPWM调制
经过第三小节的计算,可以得到在扇区内零向量、基础矢量的导通时间,怎么根据导通时间调制出需要的矢量呢?一般是有两种调制方法,一种是7段式SVPWM调制,一种是5段式SVPWM调制,先说7段式调制。7段式调制从时间上对0矢量、基础矢量合理分配,在每次开关状态切换时,只改变其中一相的开关状态,从而达到降低谐波含量的目的。而五段式调制则是要将减小开关次数做到极致,以达到降低功耗的目的。仍然以第Ⅰ扇区为例,7段式和五段式的对比如表3所示。能看出来在一个载波周期内,5段式开关次数是明显少于7段式的,但当两个扇区过渡时,7段式有0向量过渡,过渡过程比较平滑,而5段式没有,导致在切换扇区时谐波分量大。不管是7段式还是5段式,都要保证基础向量的导通是从“1”最少到“1”最多,再到“1”最少,以七段式为例,在Ⅰ扇区,向量导通顺序是0-4-6-7-7-6-4-0,向量中含“1”的数量分别是0-1-2-3-3-2-1-0,在Ⅱ扇区,向量导通顺序是0-2-6-7-7-6-2-0,向量中含“1”的数量也是0-1-2-3-3-2-1-0,其他扇区同理,5段式同理。
Vector | 7段式开关 | 7段式波形图 | 5段式开关 | 5段式波形图 |
---|---|---|---|---|
Ⅰ | 0-4-6-7-7-6-4-0 | 4-6-7-7-6-4 |
三、SVPWM矢量扇区判断
1、扇区判断原理
假设我们有一些霍尔传感器,它可以识别磁场的方向,N极指向霍尔传感器传感器输出高电平“1”,S极指向霍尔传感器,传感器输出低电平“0”,现在我希望用这些霍尔传感器识别图7的6个扇区,需要几个霍尔传感器呢?显然,我们需要三个传感器,因为23 =8,即3个传感器可以组合成8个状态,能够覆盖6个扇区。那么,这些霍尔传感器又该怎么摆放呢?想要准确的检测到矢量切换扇区,那霍尔传感器与中点的连线必然要与扇区的基础矢量垂直,因为一个霍尔传感器分辨率只有180°,矢量指向霍尔传感器,传感器输出始终为“1”,再把三个霍尔传感器在圆周内均匀分布,如图8所示。把三个霍尔传感器按照HALL3<<2+HALL2<<1+HALL1组合计算,每个扇区将对应一个二进制表示的数,例如在扇区Ⅰ,HALL1=1,HALL2=1,HALL3=0,因此扇区Ⅰ对应的数为。
2、Uα 、Uβ扇区识别
实际应用中也不至于为了识别扇区专门整三个霍尔传感器,其实是可以根据αβ坐标系的Uα 、Uβ 进行判断的,Uα 、Uβ 是SVPWM的输入量,是已知的,只需要把Uα 、Uβ分解到HALL1、HALL2、HALL3对应的三个轴上,再来判断分解到每个轴上的矢量是正方向还是负方向,不就可以达到霍尔传感器一样的效果吗,如图9所示。
{
U
r
e
f
1
=
U
β
U
r
e
f
2
=
3
2
U
α
−
1
2
U
β
U
r
e
f
3
=
−
3
2
U
α
−
1
2
U
β
\left\{\begin{matrix} U_{ref1}=U_{\beta}\\ \\U_{ref2}=\frac{\sqrt{3}}{2}U_{\alpha}-\frac{1}{2}U_{\beta}\\ \\U_{ref3}=-\frac{\sqrt{3}}{2}U_{\alpha}-\frac{1}{2}U_{\beta} \end{matrix}\right.
⎩
⎨
⎧Uref1=UβUref2=23Uα−21UβUref3=−23Uα−21Uβ 现在,Uref1 、Uref2 、Uref3 的值就是HALL传感器的输出结果,令
N
=
(
(
(
U
r
e
f
3
>
0
)
?
1
:
0
)
<
<
2
)
+
(
(
(
U
r
e
f
2
>
0
)
?
1
:
0
)
<
<
1
)
+
(
(
U
r
e
f
1
>
0
)
?
1
:
0
)
N=(((U_{ref3}>0)?1:0)<<2)+(((U_{ref2}>0)?1:0)<<1)+((U_{ref1}>0)?1:0)
N=(((Uref3>0)?1:0)<<2)+(((Uref2>0)?1:0)<<1)+((Uref1>0)?1:0)可以得到表4中扇区与N的关系
N | 3 | 1 | 5 | 4 | 6 | 2 |
---|---|---|---|---|---|---|
vector | Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ |
Uα 、Uβ | Uref1 >0 Uref2 >0 Uref3 <0 | Uref1 >0 Uref2 <0 Uref3 <0 | Uref1 >0 Uref2 <0 Uref3 >0 | Uref1 <0 Uref2 <0 Uref3 >0 | Uref1 <0 Uref2 >0 Uref3 >0 | Uref1 <0 Uref2 >0 Uref3 <0 |
四、非零向量与零向量作用时间
为毛前边已经算过了,这块又来一遍?我的理解是,前边计算的作用时间是关于合成向量幅值Um 的函数,而SVPWM的输入是Uα 、Uβ ,但前边的计算并不是多余的,通过Um证实了SVPWM调制的可行性,计算了调制比,矢量合成范围等,在进行理论分析时,Um 只有一个未知参量,而Uα 、Uβ 有俩,用Um更容易分析些。回归正题,既然SVPWM的输入是Uα 、Uβ ,那就直接用Uα 、Uβ 表示时间好了。仍然以Ⅰ扇区为例。
利用三角函数不难列出:
{
U
α
=
∣
T
4
T
s
∣
U
4
+
∣
T
6
T
s
∣
U
6
c
o
s
(
π
3
)
∣
U
β
∣
=
∣
T
6
T
s
∣
U
6
s
i
n
(
π
3
)
\left\{\begin{matrix} U_{\alpha} =\begin{vmatrix} \frac{T_4}{T_s}\end{vmatrix}U_4+\begin{vmatrix} \frac{T_6}{T_s}\end{vmatrix}U_6cos(\frac{\pi}{3}) \\ \\\begin{vmatrix} U_{\beta}\end{vmatrix}=\begin{vmatrix} \frac{T_6}{T_s}\end{vmatrix}U_6sin(\frac{\pi}{3}) \end{matrix}\right.
⎩
⎨
⎧Uα=
TsT4
U4+
TsT6
U6cos(3π)
Uβ
=
TsT6
U6sin(3π) 在αβ坐标系下,U4 、U6 幅值均为
2
3
\frac{2}{3}
32Udc ,那么T4 、T6可以表示为
{
T
4
=
3
T
s
U
d
c
(
3
2
U
α
−
1
2
U
β
)
T
6
=
3
T
s
U
d
c
U
β
\left\{\begin{matrix} T_{4} =\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_{\alpha}-\frac{1}{2}U_{\beta}) \\ \\ T_{6}=\frac{\sqrt{3}T_s}{U_{dc}}U_{\beta} \end{matrix}\right.
⎩
⎨
⎧T4=Udc3Ts(23Uα−21Uβ)T6=Udc3TsUβ 同理可以计算出所有扇区内向量导通时间,如表5所示。
N | 扇区 | 导通时间 |
---|---|---|
3 | Ⅰ | T 4 = − 3 T s U d c ( − 3 2 U α + 1 2 U β ) T_{4} =-\frac{\sqrt{3}T_s}{U_{dc}}(-\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T4=−Udc3Ts(−23Uα+21Uβ); T 6 = 3 T s U d c U β T_{6}=\frac{\sqrt{3}T_s}{U_{dc}}U_{\beta} T6=Udc3TsUβ; T 0 / 7 = T s − T 4 − T 6 T_{0/7}=T_s -T_4 -T_6 T0/7=Ts−T4−T6 |
1 | Ⅱ | T 2 = 3 T s U d c ( − 3 2 U α + 1 2 U β ) T_{2} =\frac{\sqrt{3}T_s}{U_{dc}}(-\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T2=Udc3Ts(−23Uα+21Uβ); T 6 = 3 T s U d c ( 3 2 U α + 1 2 U β ) T_{6}=\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T6=Udc3Ts(23Uα+21Uβ); T 0 / 7 = T s − T 2 − T 6 T_{0/7}=T_s -T_2 -T_6 T0/7=Ts−T2−T6 |
5 | Ⅲ | T 2 = 3 T s U d c U β T_{2} =\frac{\sqrt{3}T_s}{U_{dc}}U_{\beta} T2=Udc3TsUβ; T 3 = − 3 T s U d c ( 3 2 U α + 1 2 U β ) T_{3}=-\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T3=−Udc3Ts(23Uα+21Uβ); T 0 / 7 = T s − T 2 − T 3 T_{0/7}=T_s -T_2 -T_3 T0/7=Ts−T2−T3 |
4 | Ⅳ | T 1 = − 3 T s U d c U β T_{1} =-\frac{\sqrt{3}T_s}{U_{dc}}U_{\beta} T1=−Udc3TsUβ; T 3 = 3 T s U d c ( − 3 2 U α + 1 2 U β ) T_{3}=\frac{\sqrt{3}T_s}{U_{dc}}(-\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T3=Udc3Ts(−23Uα+21Uβ); T 0 / 7 = T s − T 1 − T 3 T_{0/7}=T_s -T_1 -T_3 T0/7=Ts−T1−T3 |
6 | Ⅴ | T 1 = − 3 T s U d c ( 3 2 U α + 1 2 U β ) T_{1} =-\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T1=−Udc3Ts(23Uα+21Uβ); T 5 = − 3 T s U d c ( − 3 2 U α + 1 2 U β ) T_{5}=-\frac{\sqrt{3}T_s}{U_{dc}}(-\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T5=−Udc3Ts(−23Uα+21Uβ); T 0 / 7 = T s − T 1 − T 5 T_{0/7}=T_s -T_1 -T_5 T0/7=Ts−T1−T5 |
2 | Ⅵ | T 4 = 3 T s U d c ( 3 2 U α + 1 2 U β ) T_{4} =\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) T4=Udc3Ts(23Uα+21Uβ); T 5 = − 3 T s U d c U β T_{5}=-\frac{\sqrt{3}T_s}{U_{dc}}U_{\beta} T5=−Udc3TsUβ; T 0 / 7 = T s − T 4 − T 5 T_{0/7}=T_s -T_4 -T_5 T0/7=Ts−T4−T5 |
看起来一堆乱码,其实都是由三个根数据组成的,那就是
{
X
=
3
T
s
U
d
c
U
β
Y
=
3
T
s
U
d
c
(
3
2
U
α
+
1
2
U
β
)
Z
=
3
T
s
U
d
c
(
−
3
2
U
α
+
1
2
U
β
)
\left\{\begin{matrix} X =\frac{\sqrt{3}T_s}{U_{dc}}U_{\beta}\\ \\Y=\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) \\ \\Z=\frac{\sqrt{3}T_s}{U_{dc}}(-\frac{\sqrt{3}}{2}U_{\alpha}+\frac{1}{2}U_{\beta}) \end{matrix}\right.
⎩
⎨
⎧X=Udc3TsUβY=Udc3Ts(23Uα+21Uβ)Z=Udc3Ts(−23Uα+21Uβ) 再来一个表
N | 3 | 1 | 5 | 4 | 6 | 2 |
---|---|---|---|---|---|---|
vector | Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ |
Tfirst | Z | Y | -Z | -X | X | -Y |
Tsecond | Y | -X | X | Z | -Y | -Z |
表里的Tfirst 是当前扇区第一个导通的基础向量(非零的)的导通时间,比如在Ⅰ扇区,Tfirst 是T4 ,在第Ⅱ扇区,Tfirst 是T2 ,第一第二的原则上边也提到过,就是看“1”的数量嘛,“1”少的就是Tfirst ,“1”多的就是Tsecond ,本质上是要保证每次只有一个开关管状态发生变化。
为了防止过调制,两个基础向量作用时间之和不超过Ts ,否则要对Tfirst 、Tsecond 进行过调制处理
T
f
i
r
s
t
=
T
f
i
r
s
t
T
f
i
r
s
t
+
T
s
e
c
o
n
d
T
s
T_{first}=\frac{T_{first}}{T_{first}+T_{second}}T_s
Tfirst=Tfirst+TsecondTfirstTs
T
s
e
c
o
n
d
=
T
s
e
c
o
n
d
T
f
i
r
s
t
+
T
s
e
c
o
n
d
T
s
T_{second}=\frac{T_{second}}{T_{first}+T_{second}}T_s
Tsecond=Tfirst+TsecondTsecondTs
五、扇区矢量切换点
怎么把计算出来的导通时间对应到开关管上呢?参考图10首先定义三个时间点:
{
T
a
=
(
T
s
−
T
f
i
r
s
t
−
T
s
e
c
o
n
d
)
4
T
b
=
T
a
+
T
f
i
r
s
t
2
T
c
=
T
b
+
T
s
e
c
o
n
d
2
\left\{\begin{matrix} T_{a} =\frac{(T_s-T_{first}-T_{second})}{4} \\ \\T_{b} =T_a+\frac{T_{first}}{2} \\ \\T_{c} =T_b+\frac{T_{second}}{2} \end{matrix}\right.
⎩
⎨
⎧Ta=4(Ts−Tfirst−Tsecond)Tb=Ta+2TfirstTc=Tb+2Tsecond 不难理解,在中心对齐模式下,Ta 、Tb、Tc 就是TIM CCR寄存器的输入值,只不过在不同扇区,Ta 、Tb、Tc 对应着不同的TIM 通道。表7给它列出来。
N | 3 | 1 | 5 | 4 | 6 | 2 |
---|---|---|---|---|---|---|
vector | Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ |
pwmA_CCR | Ta | Tb | Tc | Tc | Tb | Ta |
pwmB_CCR | Tb | Ta | Ta | Tb | Tc | Tc |
pwmC_CCR | Tc | Tc | Tb | Ta | Ta | Tb |
整个SVPWM的过程就完事了,根据输入的Uα 、Uβ 计算要合成的矢量所处扇区,确定了基础向量后,再根据输入的Uα 、Uβ 计算0向量和非零向量导通时间,最后再根据Uα 、Uβ ,把计算出来的时间送到TIM定时器的对应的CCR寄存器中,这样,Uα 、Uβ 合成的矢量就会被6个开关管调制出来。
Uα 、Uβ 输入波形仿真波形如图11所示,pwmA_CCR、pwmB_CCR、pwmC_CCR输出仿真波形如图12所示,扇区输出仿真如图13所示。