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