首页 > 代码库 > SVPWM实现概述

SVPWM实现概述

SVPWM是FOC的基础,其实现流程大致如下所示:

1. 判断合成矢量所在扇区

2. 计算相邻矢量作用时间

3. 计算各桥臂导通时间

4. 得到各相PWM占空比

5. 更新相应寄存器值

 

 SVPWM目标矢量是根据其所在扇区选择非零矢量与零矢量合成而成,有五段式、七段式、混合式,七段式开关次数较多,但谐波较小;五段式开关次数是七段式的一半,但谐波较大,下面的计算过程以七段式为例

 

1. 判断合成矢量所在扇区

合成矢量${U_{{\rm{ref}}}}$在二相坐标系$\alpha $轴和$\beta $轴的分量分别为${U_\alpha }$、${U_\beta }$(在FOC中,由反Park变换得到),由合成矢量落在各扇区的充分必要条件分析可知,可按如下方法确定合成矢量所属扇区:

 ${U_1} = {U_\beta }$

${U_2} = \frac{{\sqrt 3 {U_\alpha } - {U_\beta }}}{2}$

${U_3} = \frac{{ - \sqrt 3 {U_\alpha } - {U_\beta }}}{2}$ 

若${U_1} > 0$,则A = 1,否则A=0;

若${U_2} > 0$,则B = 1,否则B=0;

若${U_3} > 0$,则C = 1,否则C=0;

令 N = 4C +2B+A

N值与扇区关系对应如下:

N

1

2

3

4

5

6

扇区

II

VI

I

IV

III

V

 

2. 计算各相邻矢量作用时间

$\left\{ \begin{array}{l}
X = A{U_\beta }\\
Y = \frac{A}{2}(\sqrt 3 {U_\alpha } + {U_\beta })\\
Z = \frac{A}{2}( - \sqrt 3 {U_\alpha } + {U_\beta })
\end{array} \right.$

$A = \frac{{\sqrt 3 T}}{{{U_{DC}}}}$,${U_{DC}}$为母线电压,$T$为合成矢量${U_{{\rm{out}}}}$作用时间

扇区

I

II

III

IV

V

VI

t1

-Z

Z

-X

X

-Y

Y

t2

X

Y

-Y

Z

-Z

-X

 

$\left\{ \begin{array}{l}
{T_a} = \frac{{T - {t_1} - {t_2}}}{4}\\
{T_b} = {T_a} + \frac{{{t_1}}}{2}\\
{T_c} = {T_b} + \frac{{{t_2}}}{2}
\end{array} \right.$

 

3. 计算各桥臂导通时间及占空比

 

扇区

I

II

III

IV

V

VI

 ${T_{CM1}}$

Ta

 Tb  Tc   Tc   Tb  Ta
 ${T_{CM2}}$

 Tb

 Ta  Ta   Tb  Tc  Tc

 ${T_{CM3}}$

 Tc   Tc Tb  Ta  Ta   Tb

4. 将上面计算出的${T_{CM1}}$, ${T_{CM2}}$, ${T_{CM3}}$送入单片机定时器寄存器即可产生SVPWM 

 

SVPWM实现概述