电机驱动(二)——SVPWM
version : v1.0 「2022.7.28」 最后补充
author: Y.Z.T.
摘要: 简要介绍FOC驱动从坐标变换到SVPWM 各个部分在MATLAB仿真和硬件平台实现的学习过程
备注: ❗️面向自己的笔记 , 有的地方可能说的不是很清晰
⭐️ 目录
文章目录
3️⃣ SVPWM 控制流程
S V P W M { 输 入 V α 和 V β 输 出 三 相 定 时 器 的 p w m SVPWM \begin{cases} 输入V_\alpha 和 V_\beta\\ 输出三相定时器的pwm \end{cases} SVPWM{输入Vα和Vβ输出三相定时器的pwm
控制流程:
①获取 V α V_\alpha Vα 和 V β V_\beta Vβ
②根据 V α V_\alpha Vα 和 V β V_\beta Vβ 判断当前扇区
③计算相邻两个矢量 , 每个矢量的作用时长
④通过矢量作用时长计算出定时器的高电平时间
⑤通过定时器每个高电平时间计算出每个通道的CCR值
3.1 引入
- 首先我们需要在三相线圈里面产生正弦的交流电流 ,来产生旋转的磁场 , 进而控制转子的转动 ;
- 而三相正弦电流 由三相正弦电压产生 , 但是我们的供电是直流供电的方式
- 通过mos管控制 , 只有 通和不通两种状态 , 所以通过平均值等效的方式, 将正弦波转换为pwm波
- 最终实现 , 通过直流mos管的开关 , 来模拟正弦的电压信号
正弦波转换成pwm波
用上面坐标系中的正弦波和三角波的交点投影到下面的坐标轴,以此确定PWM的占空比变化规律,这样合成的PWM波,经过低通滤波器之后,其实就等效为了一个正弦波
3.2 空间电压矢量
- 前面提到了6步换向的驱动方式 , 通过ABC三个桥臂的组合 , 总共有8个状态.
- 即有8个矢量方向, 通过相邻两个矢量的合成 , 就可以合成任意方向的矢量
3.2.1 等效电路
示例: 以(110) 和 (011)为例
3.2.2 八个矢量对应的电压关系
3.3.3合成矢量 U U U
三相电压矢量 U a 、 U b 、 U c U_a 、U_b、U_c Ua、Ub、Uc 合成矢量 U U U

补充:
- 可以看到合成后的矢量的模是 U d c U_{dc} Udc , 但六个方向矢量的模却是 2 3 U d c \frac{2}{3}U_{dc} 32Udc
- 这是因为, 在从***
x - y
坐标系*** 等幅变换到*** α − β \alpha - \beta α−β 坐标系***的过程中 , 进行了缩放 (即矢量长度缩小了1.5倍) - 但是这种缩放 , 并不影响最后的占空比结果
3.3.4 小结
小结:
- 八个电压矢量中,
000
和111
是零矢量 ; - 其他6个矢量将整个空间划分成了6个扇区
- 为了减少管子在开关过程中的损耗 , 要保证每次都只改动一个桥臂的动作
- 所以六个矢量的大小都是 2 3 V d c \frac{2}{3}V_{dc} 32Vdc
3.3 怎么合成任意向量
通过合理配置六个基向量 , 在一个PWM周期中的作用的时间 , 就能合成出任意的空间电压矢量

其中 :
- U r e f U_{ref} Uref 表示合成的空间电压矢量;
- T s T_s Ts 表示一个PWM的作用周期;
- T x T_x Tx 和 T y T_y Ty 分别表示 X 方 向 矢 量 X方向矢量 X方向矢量 和 Y 方 向 矢 量 Y方向矢量 Y方向矢量的作用时长
小结:
-
T x T_x Tx 和 T y T_y Ty 的比值决定合成矢量的方向 ;
-
空矢量决定了力矩的大小;
-
当空矢量作用时间长的时候 , 合成矢量就小 , 电压就小 ; 电压小,电流也小 , 电机的扭矩就变小;
3.4 扇区判断
前面提到 , SVPWM的输入是 V α V_\alpha Vα 和 V β V_\beta Vβ , 我们需要通过 V α V_\alpha Vα 和 V β V_\beta Vβ 来获取角度信息, 进行扇区判断。
3.4.1 由 V α V_\alpha Vα 和 V β V_\beta Vβ 获取角度信息
ABC三相电压
{
V
a
=
V
m
×
cos
θ
V
b
=
V
m
×
cos
(
θ
−
2
3
π
)
V
b
=
V
m
×
cos
(
θ
+
2
3
π
)
\begin{cases} V_a = V_m\ \times \ \cos{\theta} \\ V_b = V_m\ \times \ \cos{(\theta\ - \frac{2}{3}\pi)}\\ V_b = V_m\ \times \ \cos{(\theta\ + \frac{2}{3}\pi)} \end{cases}
⎩⎪⎨⎪⎧Va=Vm × cosθVb=Vm × cos(θ −32π)Vb=Vm × cos(θ +32π)
- 其中 V m V_m Vm 为相电压有效值
α
\alpha
α -
β
\beta
β 坐标系中
V
α
V_\alpha
Vα 和
V
β
V_\beta
Vβ 表达式
{
V
α
=
V
a
⋅
cos
0
∘
−
V
b
⋅
cos
π
3
−
V
c
⋅
cos
π
3
V
β
=
V
a
⋅
cos
9
0
∘
+
V
b
⋅
cos
π
6
−
V
c
⋅
cos
π
6
\begin{cases} V_\alpha =V_a\cdot\cos{0^{\circ}} -\ V_b \cdot\cos{\frac{\pi}{3}}\ -\ V_c\cdot\cos{\frac{\pi}{3} }\\ V_\beta\ =\ V_a\cdot\cos{90^{\circ}} +\ V_b \cdot\cos{\frac{\pi}{6}}\ -\ V_c\cdot\cos{\frac{\pi}{6} } \end{cases}
{Vα=Va⋅cos0∘− Vb⋅cos3π − Vc⋅cos3πVβ = Va⋅cos90∘+ Vb⋅cos6π − Vc⋅cos6π
将ABC三相电压代入得
{
V
α
=
2
3
V
m
⋅
(
c
o
s
θ
−
1
2
⋅
cos
(
θ
−
2
3
π
)
−
1
2
⋅
cos
(
θ
+
2
3
π
)
V
α
=
2
3
V
m
⋅
(
3
2
⋅
cos
(
θ
−
2
3
π
)
−
3
2
⋅
cos
(
θ
+
2
3
π
)
\begin{cases} V_\alpha =\frac{2}{3}V_m\cdot(cos{\theta} -\ \frac{1}{2} \cdot\cos({\theta-\frac{2}{3}\pi})\ -\ \frac{1}{2} \cdot\cos({\theta+\frac{2}{3}\pi})\\ V_\alpha =\frac{2}{3}V_m\cdot(\frac{\sqrt{3}}{2} \cdot\cos({\theta-\frac{2}{3}\pi})\ -\ \frac{\sqrt{3}}{2} \cdot\cos({\theta+\frac{2}{3}\pi})\\ \end{cases}
{Vα=32Vm⋅(cosθ− 21⋅cos(θ−32π) − 21⋅cos(θ+32π)Vα=32Vm⋅(23⋅cos(θ−32π) − 23⋅cos(θ+32π)
化简得
{
V
α
=
V
m
⋅
cos
θ
V
β
=
V
m
⋅
sin
θ
\begin{cases} V_\alpha = V_m \cdot\cos{\theta}\\ V_\beta = V_m \cdot\sin{\theta} \end{cases}
{Vα=Vm⋅cosθVβ=Vm⋅sinθ
提取出角度信息
θ
=
arctan
(
V
β
V
α
)
\theta = \arctan{(\frac{V_\beta}{V_\alpha})}
θ=arctan(VαVβ)
3.4.2 扇区判断原理
扇区判断的原理是根据**矢量的角位置 θ \theta θ**确定矢量在哪个区间
六个扇区对应的角度
扇区 | 角度 | 消除 arctan \arctan arctan |
---|---|---|
I | 0 < arctan ( V β V α ) < 6 0 ∘ 0\ <\arctan{(\frac{V_\beta}{V_\alpha})}<\ 60^{\circ} 0 <arctan(VαVβ)< 60∘ | 0 < V β V α < 3 0 < \frac{V_\beta}{V_\alpha}< \sqrt{3} 0<VαVβ<3 |
II | 6 0 ∘ < arctan ( V β V α ) < 12 0 ∘ 60^{\circ}\ <\arctan{(\frac{V_\beta}{V_\alpha})}<\ 120^{\circ} 60∘ <arctan(VαVβ)< 120∘ | ∣ V β V α ∣ > 3 | \frac{V_\beta}{V_\alpha} |> \sqrt{3} ∣VαVβ∣>3 |
III | 12 0 ∘ < arctan ( V β V α ) < 18 0 ∘ 120^{\circ}\ <\arctan{(\frac{V_\beta}{V_\alpha})}<\ 180^{\circ} 120∘ <arctan(VαVβ)< 180∘ | − 3 < V β V α < 0 -\sqrt{3} < \frac{V_\beta}{V_\alpha}< 0 −3<VαVβ<0 |
IV | 18 0 ∘ < arctan ( V β V α ) < 24 0 ∘ 180^{\circ}\ <\arctan{(\frac{V_\beta}{V_\alpha})}<\ 240^{\circ} 180∘ <arctan(VαVβ)< 240∘ | 0 < V β V α < 3 0 < \frac{V_\beta}{V_\alpha}< \sqrt{3} 0<VαVβ<3 |
V | 24 0 ∘ < arctan ( V β V α ) < 27 0 ∘ 240^{\circ}\ <\arctan{(\frac{V_\beta}{V_\alpha})}<\ 270^{\circ} 240∘ <arctan(VαVβ)< 270∘ | ∣ V β V α ∣ > 3 | \frac{V_\beta}{V_\alpha}| > \sqrt{3} ∣VαVβ∣>3 |
VI | 27 0 ∘ < arctan ( V β V α ) < 36 0 ∘ 270^{\circ}\ <\arctan{(\frac{V_\beta}{V_\alpha})}<\ 360^{\circ} 270∘ <arctan(VαVβ)< 360∘ | − 3 < V β V α < 0 -\sqrt{3} < \frac{V_\beta}{V_\alpha}< 0 −3<VαVβ<0 |
由波形图像可获取 V α V_\alpha Vα 和 V β V_\beta Vβ 在各个扇区的值

汇总得
扇区 | V β V_\beta Vβ值 | V α V_\alpha Vα值 | 代入 V α V_\alpha Vα和 V β V_\beta Vβ , 化简 V β V α \frac{V_\beta}{V_\alpha} VαVβ |
---|---|---|---|
I | V β V_\beta Vβ > 0 | V α V_\alpha Vα > 0 | V β V α < 3 \frac{V_\beta}{V_\alpha}< \sqrt{3} VαVβ<3 |
II | V β V_\beta Vβ > 0 | V α V_\alpha Vα > 0 | V β ∣ V α ∣ > 3 \frac{V_\beta}{|V_\alpha |}> \sqrt{3} ∣Vα∣Vβ>3 |
III | V β V_\beta Vβ > 0 | V α V_\alpha Vα < 0 | V β − V α < 3 \frac{V_\beta}{-V_\alpha}< \sqrt{3} −VαVβ<3 |
IV | V β V_\beta Vβ < 0 | V α V_\alpha Vα < 0 | V β V α < 3 \frac{V_\beta}{V_\alpha}< \sqrt{3} VαVβ<3 |
V | V β V_\beta Vβ < 0 | V α V_\alpha Vα < 0 | V β ∣ V α ∣ > 3 \frac{V_\beta}{|V_\alpha |}> \sqrt{3} ∣Vα∣Vβ>3 |
VI | V β V_\beta Vβ < 0 | V α V_\alpha Vα > 0 | − V β V α < 3 \frac{-V_\beta}{V_\alpha}< \sqrt{3} Vα−Vβ<3 |
进行不等式展开
扇区 | V β V_\beta Vβ值(A相) | 原不等式 | 展开 (B相) | (C相) |
---|---|---|---|---|
I | V β V_\beta Vβ > 0 | V β V α < 3 \frac{V_\beta}{V_\alpha}< \sqrt{3} VαVβ<3 | 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta 23Vα−21Vβ > 0 | − 3 2 V α − 1 2 V β -\frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta −23Vα−21Vβ < 0 |
II | V β V_\beta Vβ > 0 | V β ∣ V α ∣ > 3 \frac{V_\beta}{|V_\alpha|}> \sqrt{3} ∣Vα∣Vβ>3 | 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta 23Vα−21Vβ < 0 | − 3 2 V α − 1 2 V β -\frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta −23Vα−21Vβ < 0 |
III | V β V_\beta Vβ > 0 | V β V α < 3 \frac{V_\beta}{V_\alpha}< \sqrt{3} VαVβ<3 | 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta 23Vα−21Vβ < 0 | − 3 2 V α − 1 2 V β -\frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta −23Vα−21Vβ > 0 |
IV | V β V_\beta Vβ < 0 | V β V α < 3 \frac{V_\beta}{V_\alpha}< \sqrt{3} VαVβ<3 | 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta 23Vα−21Vβ < 0 | − 3 2 V α − 1 2 V β -\frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta −23Vα−21Vβ > 0 |
V | V β V_\beta Vβ < 0 | V β ∣ V α ∣ > 3 \frac{V_\beta}{| V_\alpha |}> \sqrt{3} ∣Vα∣Vβ>3 | 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta 23Vα−21Vβ > 0 | − 3 2 V α − 1 2 V β -\frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta −23Vα−21Vβ > 0 |
VI | V β V_\beta Vβ < 0 | − V β V α < 3 \frac{-V_\beta}{V_\alpha}< \sqrt{3} Vα−Vβ<3 | 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta 23Vα−21Vβ > 0 | − 3 2 V α − 1 2 V β -\frac{\sqrt{3}}{2}V_\alpha -\frac{1}{2}V_\beta −23Vα−21Vβ < 0 |
如上所示:
将ABC三相在α-β
坐标系下 , 建立以 V β V_\beta Vβ轴为参考的坐标系![]()
新的坐标系在MATLAB
中的仿真
如上所示:
- 可以观察到 , 在每一个扇区都存在 两条曲线在 其中一侧 , 一条曲线在另一侧
- 通过判断这三条曲线 与 0的关系即可确定当前所在的扇区.
3.4.3 小结
通过以上的计算结论 , 可以通过以下三个数值来判断扇区。
{ V a = V β V b = 3 2 V α − 1 2 V β V c = − 3 2 V a − 1 2 V β \begin{cases} V_a = V_\beta \\ V_b = \frac{\sqrt{3}}{2}V_\alpha - \frac{1}{2}V_\beta\\ V_c = -\frac{\sqrt{3}}{2}V_a - \frac{1}{2}V_\beta \end{cases} ⎩⎪⎨⎪⎧Va=VβVb=23Vα−21VβVc=−23Va−21Vβ
- 当 V a V_a Va > 0时, 令 A = 1; else A = 0;
- 当 V b V_b Vb > 0时 , 令B = 1; else B = 0;
- 当 V c V_c Vc > 0 时, 令C = 1; else C = 0;
- 且
N = 4C + 2B + A
,- 通过N , 与各个扇区进行唯一的对应 , 且对ABC 三相利用一个二进制数字进行表示
扇区 | − 3 2 V a − 1 2 V β -\frac{\sqrt{3}}{2}V_a - \frac{1}{2}V_\beta −23Va−21Vβ ( C) | \ 3 2 V α − 1 2 V β \frac{\sqrt{3}}{2}V_\alpha - \frac{1}{2}V_\beta 23Vα−21Vβ (B) | V β V_\beta Vβ (A) | N=4C+2B+A |
---|---|---|---|---|
I | 0 | 1 | 1 | 3 |
II | 0 | 0 | 1 | 1 |
III | 1 | 0 | 1 | 5 |
IV | 1 | 0 | 0 | 4 |
V | 1 | 1 | 0 | 6 |
VI | 0 | 1 | 0 | 2 |
3.5 电压利用率
结论放前面: SVPWM的电压利用率是100%
3.5.1 公式与结论
首先电压利用率的公式:
直
流
母
线
电
压
利
用
率
=
输
出
线
电
压
幅
值
直
流
母
线
电
压
(公式1)
直流母线电压利用率 = \frac{输出线电压幅值}{直流母线电压} \tag{公式1}
直流母线电压利用率=直流母线电压输出线电压幅值(公式1)
前面提到ABC三相电压空间矢量
{
U
a
=
U
m
×
cos
θ
U
b
=
U
m
×
cos
(
θ
−
2
3
π
)
U
b
=
U
m
×
cos
(
θ
+
2
3
π
)
\begin{cases} U_a = U_m\ \times \ \cos{\theta} \\ U_b = U_m\ \times \ \cos{(\theta\ - \frac{2}{3}\pi)}\\ U_b = U_m\ \times \ \cos{(\theta\ + \frac{2}{3}\pi)} \end{cases}
⎩⎪⎨⎪⎧Ua=Um × cosθUb=Um × cos(θ −32π)Ub=Um × cos(θ +32π)
三相电压合成的空间矢量(即输出电压)
U
=
U
a
+
U
b
⋅
e
j
2
π
3
+
U
c
⋅
e
−
j
2
π
3
=
3
2
U
m
⋅
e
j
θ
(结论1)
U = U_a \ +U_b\cdot e^{j\frac{2\pi}{3}} \ +U_c\cdot e^{-j\frac{2\pi}{3}}\ = \frac{3}{2}U_m\cdot e^{j\theta}\tag{结论1}
U=Ua +Ub⋅ej32π +Uc⋅e−j32π =23Um⋅ejθ(结论1)
小结:
- 可以看到 , U U U 是一个幅值为相电压峰值1.5倍的旋转空间矢量
- 且空间矢量 U U U在三相坐标轴 (a , b , c)上投影是对称的三相正弦量
合成空间矢量 U U U的推导过程 (记住结论就行 , 过程随便看看)

3.5.2 小结
-
三相正弦电压合成的空间矢量的幅值是相电压幅值的 3 2 \frac{3}{2} 23倍
-
三相的相电压幅值最高为 2 U d c 3 \frac{2U_{dc}}{3} 32Udc (怎么来的可以看前面提到的这个表格)
-
所以合成矢量电压幅值 U = 2 U d c 3 × 3 2 = U d c U =\frac{2U_{dc}}{3}\ \times\ \frac{3}{2}\ = U_{dc} U=32Udc × 23 =Udc
-
代入**(公式1)**得 , 直 流 母 线 电 压 利 用 率 = U d c U d c = 100 % 直流母线电压利用率 = \frac{U_{dc}}{U_{dc}} = 100\% 直流母线电压利用率=UdcUdc=100%
3.6 矢量作用时间计算
3.6.1 第一扇区

- 已知条件
{ ∣ U 4 ∣ = ∣ U 6 ∣ = 2 3 ∣ U d c ∣ U r e f ⋅ T s = U 4 ⋅ T 4 + U 6 ⋅ T 6 + U 0 ⋅ T 0 U r e f × cos θ = U α U r e f × sin θ = U β \begin{cases} \left |U_4 \right | = \left | U_6\right | = \frac{2}{3}\left | U_{dc}\right | \\ \ \\ U_{ref}\cdot T_s \ = \ U_4\cdot T_4\ +\ U_6\cdot T_6\ +\ U_0\cdot T_0 \\ \\ U_{ref}\times \cos{\theta} = U_\alpha \\ \\ U_{ref}\times \sin{\theta} = U_\beta \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∣U4∣=∣U6∣=32∣Udc∣ Uref⋅Ts = U4⋅T4 + U6⋅T6 + U0⋅T0Uref×cosθ=UαUref×sinθ=Uβ
- 将目标矢量 U r e f U_{ref} Uref 投影到相邻两个矢量 U 4 和 U 6 U_4和U_6 U4和U6上
{ U r e f × cos θ = ∣ U 4 ∣ × T 4 T s + ∣ U 6 ∣ × T 6 T s × cos π 3 U r e f × sin θ = ∣ U 6 ∣ × T 6 T s × sin π 3 \begin{cases} U_{ref}\times \cos{\theta} = \left | U_4\right | \times \frac{T_4}{T_s} + \left | U_6\right | \times \frac{T_6}{T_s}\times\cos{\frac{\pi}{3}}\\ \ \\ U_{ref} \times \sin{\theta} = \left | U_6\right | \times \frac{T_6}{T_s}\times\sin{\frac{\pi}{3}} \end{cases} ⎩⎪⎨⎪⎧Uref×cosθ=∣U4∣×TsT4+∣U6∣×TsT6×cos3π Uref×sinθ=∣U6∣×TsT6×sin3π
- 代入已知条件得
{ U α ⋅ T s = 2 3 ⋅ U d c ( T 4 + T 6 ⋅ 1 2 ) U β ⋅ T s = 2 3 ⋅ U d c ⋅ T 6 ⋅ 3 2 \begin{cases} U_\alpha\ \cdot T_s= \ \frac{2}{3}\cdot U_{dc}(T_4\ +\ T_6\cdot\frac{1}{2})\\ \\ U_\beta\ \cdot T_s=\ \frac{2}{3}\cdot U_{dc}\cdot T_6\cdot \frac{\sqrt{3}}{2} \end{cases} ⎩⎪⎨⎪⎧Uα ⋅Ts= 32⋅Udc(T4 + T6⋅21)Uβ ⋅Ts= 32⋅Udc⋅T6⋅23
- 整理解得
{ T 6 = 3 ⋅ T s U d c ⋅ U β T 4 = 3 ⋅ T s U d c ( 3 2 U α − 1 2 U β ) T 0 = T s − T 6 − T 4 \begin{cases} T_6\ = \ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta\\ \\ T_4\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_\alpha\ -\ \frac{1}{2}U_\beta)\\ \\ T_0\ =\ T_s\ -\ T_6\ -\ T_4 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧T6 = Udc3⋅Ts⋅UβT4 = Udc3⋅Ts(23Uα − 21Uβ)T0 = Ts − T6 − T4
3.6.2 第二扇区

注意此时的角度定义
- 将目标矢量 U r e f U_{ref} Uref 投影到相邻两个矢量$U_6 $ 和 U 2 U_2 U2上
{ U r e f × cos ( θ − π 3 ) = ∣ U 6 ∣ × T 6 T s + ∣ U 2 ∣ × T 2 T s × cos π 3 U r e f × sin ( θ − π 3 ) = ∣ U 2 ∣ × T 2 T s × sin π 3 \begin{cases} U_{ref}\times \cos({\theta}\ -\ \frac{\pi}{3}) = \left | U_6\right | \times \frac{T_6}{T_s} + \left | U_2\right | \times \frac{T_2}{T_s}\times\cos{\frac{\pi}{3}}\\ \\ U_{ref}\times \sin({\theta}\ -\ \frac{\pi}{3})\ =\ |U_2|\ \times\ \frac{T_2}{T_s}\ \times\ \sin{\frac{\pi}{3}} \end{cases} ⎩⎪⎨⎪⎧Uref×cos(θ − 3π)=∣U6∣×TsT6+∣U2∣×TsT2×cos3πUref×sin(θ − 3π) = ∣U2∣ × TsT2 × sin3π
- 最终整理解得
{ T 2 = 3 ⋅ T s U d c ⋅ ( − 3 2 U α + 1 2 U β ) T 6 = 3 ⋅ T s U d c ( 3 2 U α + 1 2 U β ) T 0 = T s − T 2 − T 6 \begin{cases} T_2\ = \ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(-\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) \\ \\ T_6\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta)\\ \\ T_0\ =\ T_s\ -\ T_2\ -\ T_6 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧T2 = Udc3⋅Ts⋅(−23Uα + 21Uβ)T6 = Udc3⋅Ts(23Uα + 21Uβ)T0 = Ts − T2 − T6
3.6.3 第三到第六扇区
计算方法与上面都是一样的, 直接给出最终结果
- 第三扇区
{ T 3 = − 3 ⋅ T s U d c ⋅ ( 3 2 U α + 1 2 U β ) T 2 = 3 ⋅ T s U d c ⋅ U β T 0 = T s − T 2 − T 3 \begin{cases} T_3\ =\ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) \\ \\ T_2\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta\\ \\ T_0\ = \ T_s-\ T_2\ -\ T_3 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧T3 = −Udc3⋅Ts⋅(23Uα + 21Uβ)T2 = Udc3⋅Ts⋅UβT0 = Ts− T2 − T3
- 第四扇区
{ T 1 = − 3 ⋅ T s U d c ⋅ U β T 3 = 3 ⋅ T s U d c ⋅ ( − 3 2 U α + 1 2 U β ) T 0 = T s − T 1 − T 3 \begin{cases} T_1\ =\ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta \\ \\ T_3\ = \ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(-\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) \\ \\ T_0\ = \ T_s-\ T_1\ -\ T_3 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧T1 = −Udc3⋅Ts⋅UβT3 = Udc3⋅Ts⋅(−23Uα + 21Uβ)T0 = Ts− T1 − T3
- 第五扇区
{ T 5 = − 3 ⋅ T s U d c ⋅ ( − 3 2 U α + 1 2 U β ) T 1 = − 3 ⋅ T s U d c ⋅ ( 3 2 U α + 1 2 U β ) T 0 = T s − T 1 − T 5 \begin{cases} T_5\ =\ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot (-\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) \\ \\ T_1\ = \ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) \\ \\ T_0\ = \ T_s-\ T_1\ -\ T_5 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧T5 = −Udc3⋅Ts⋅(−23Uα + 21Uβ)T1 = −Udc3⋅Ts⋅(23Uα + 21Uβ)T0 = Ts− T1 − T5
- 第六扇区
{ T 4 = 3 ⋅ T s U d c ⋅ ( 3 2 U α + 1 2 U β ) T 5 = − 3 ⋅ T s U d c ⋅ U β T 0 = T s − T 4 − T 5 \begin{cases} T_4\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot (\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) \\ \\ T_5\ = \ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta \\ \\ T_0\ = \ T_s-\ T_4\ -\ T_5 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧T4 = Udc3⋅Ts⋅(23Uα + 21Uβ)T5 = −Udc3⋅Ts⋅UβT0 = Ts− T4 − T5
3.6.4 小结
设每个扇区中先作用的矢量为Tx , 后作用的矢量为Ty
扇区 | N | T x T_x Tx | T y T_y Ty |
---|---|---|---|
I | N = 3 | T 4 = 3 ⋅ T s U d c ( 3 2 U α − 1 2 U β ) T_4\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_\alpha-\frac{1}{2}U_\beta) T4 = Udc3⋅Ts(23Uα−21Uβ) | T 6 = 3 ⋅ T s U d c ⋅ U β T_6\ = \ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta T6 = Udc3⋅Ts⋅Uβ |
II | N = 1 | T 2 = 3 ⋅ T s U d c ⋅ ( − 3 2 U α + 1 2 U β ) T_2\ = \ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(-\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T2 = Udc3⋅Ts⋅(−23Uα + 21Uβ) | T 6 = 3 ⋅ T s U d c ( 3 2 U α + 1 2 U β ) T_6\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T6 = Udc3⋅Ts(23Uα + 21Uβ) |
III | N = 5 | T 2 = 3 ⋅ T s U d c ⋅ U β T_2\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta T2 = Udc3⋅Ts⋅Uβ | T 3 = − 3 ⋅ T s U d c ⋅ ( 3 2 U α + 1 2 U β ) T_3\ =\ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T3 = −Udc3⋅Ts⋅(23Uα + 21Uβ) |
IV | N = 4 | T 1 = − 3 ⋅ T s U d c ⋅ U β T_1\ =\ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta T1 = −Udc3⋅Ts⋅Uβ | T 3 = 3 ⋅ T s U d c ⋅ ( − 3 2 U α + 1 2 U β ) T_3\ = \ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(-\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T3 = Udc3⋅Ts⋅(−23Uα + 21Uβ) |
V | N = 6 | T 1 = − 3 ⋅ T s U d c ⋅ ( 3 2 U α + 1 2 U β ) T_1\ = \ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot(\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T1 = −Udc3⋅Ts⋅(23Uα + 21Uβ) | T 5 = − 3 ⋅ T s U d c ⋅ ( − 3 2 U α + 1 2 U β ) T_5\ =\ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot (-\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T5 = −Udc3⋅Ts⋅(−23Uα + 21Uβ) |
VI | N = 2 | T 4 = 3 ⋅ T s U d c ⋅ ( 3 2 U α + 1 2 U β ) T_4\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot (\frac{\sqrt{3}}{2}U_\alpha\ +\ \frac{1}{2}U_\beta) T4 = Udc3⋅Ts⋅(23Uα + 21Uβ) | T 5 = − 3 ⋅ T s U d c ⋅ U β T_5\ = \ -\frac{\sqrt{3}\cdot T_s}{U_{dc}}\cdot U_\beta T5 = −Udc3⋅Ts⋅Uβ |
T 4 = 3 ⋅ T s U d c ( 3 2 U α − 1 2 U β ) T_4\ =\ \frac{\sqrt{3}\cdot T_s}{U_{dc}}(\frac{\sqrt{3}}{2}U_\alpha-\frac{1}{2}U_\beta) T4 = Udc3⋅Ts(23Uα−21Uβ)
补充:
可以看到 , 整理出来的作用时间的表达式 与 之前扇区判断中三相电压表达式类似
可以进一步整理 , 方便后续与代码中的部分对应起来
假设 K = 3 ⋅ T s U d c K= \frac{\sqrt{3}\cdot T_s}{U_{dc}} K=Udc3⋅Ts
{ U a = U β U b = 3 2 U α − 1 2 U β U c = − 3 2 U a − 1 2 U β K = 3 ⋅ T s U d c \begin{cases} U_a = U_\beta \\ U_b = \frac{\sqrt{3}}{2}U_\alpha - \frac{1}{2}U_\beta\\ U_c = -\frac{\sqrt{3}}{2}U_a - \frac{1}{2}U_\beta\\ K= \frac{\sqrt{3}\cdot T_s}{U_{dc}} \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧Ua=UβUb=23Uα−21UβUc=−23Ua−21UβK=Udc3⋅Ts
进一步整理出下表
扇区 | T 0 T_0 T0 | T 1 T_1 T1 | T 2 T_2 T2 | T 3 T_3 T3 | T 4 T_4 T4 | T 5 T_5 T5 | T 6 T_6 T6 | T 7 T_7 T7 |
---|---|---|---|---|---|---|---|---|
I | ( T s − T 4 − T 6 ) / 2 (T_s-T_4-T_6)/2 (Ts−T4−T6)/2 | 0 | 0 | 0 | K ⋅ U b K\cdot U_b K⋅Ub | 0 | K ⋅ U a K\cdot U_a K⋅Ua | ( T s − T 4 − T 6 ) / 2 (T_s-T_4-T_6)/2 (Ts−T4−T6)/2 |
II | ( T s − T 2 − T 6 ) / 2 (T_s-T_2-T_6)/2 (Ts−T2−T6)/2 | 0 | − K ⋅ U b -K\cdot U_b −K⋅Ub | 0 | 0 | 0 | − K ⋅ U c -K\cdot U_c −K⋅Uc | ( T s − T 2 − T 6 ) / 2 (T_s-T_2-T_6)/2 (Ts−T2−T6)/2 |
III | ( T s − T 2 − T 3 ) / 2 (T_s-T_2-T_3)/2 (Ts−T2−T3)/2 | 0 | K ⋅ U a K\cdot U_a K⋅Ua | K ⋅ U c K\cdot U_c K⋅Uc | 0 | 0 | 0 | ( T s − T 2 − T 3 ) / 2 (T_s-T_2-T_3)/2 (Ts−T2−T3)/2 |
IV | ( T s − T 1 − T 3 ) / 2 (T_s-T_1-T_3)/2 (Ts−T1−T3)/2 | − K ⋅ U a -K\cdot U_a −K⋅Ua | 0 | − K ⋅ U b -K\cdot U_b −K⋅Ub | 0 | 0 | 0 | ( T s − T 1 − T 3 ) / 2 (T_s-T_1-T_3)/2 (Ts−T1−T3)/2 |
V | ( T s − T 1 − T 5 ) / 2 (T_s-T_1-T_5)/2 (Ts−T1−T5)/2 | K ⋅ U c K\cdot U_c K⋅Uc | 0 | 0 | 0 | K ⋅ U b K\cdot U_b K⋅Ub | 0 | ( T s − T 1 − T 5 ) / 2 (T_s-T_1-T_5)/2 (Ts−T1−T5)/2 |
VI | ( T s − T 4 − T 5 ) / 2 (T_s-T_4-T_5)/2 (Ts−T4−T5)/2 | 0 | 0 | 0 | − K ⋅ U c -K\cdot U_c −K⋅Uc | − K ⋅ U a -K\cdot U_a −K⋅Ua | 0 | ( T s − T 4 − T 5 ) / 2 (T_s-T_4-T_5)/2 (Ts−T4−T5)/2 |
3.7 七段式SVPWM
3.7.1矢量作用顺序
- 我们都知道一个任意方向和大小的矢量需要8个矢量的作用时长
- 为了确保每次在一个开关周期内, 只改变一个桥臂的开关 , 需要确定每个扇区内的矢量作用顺序
- 即矢量从起点到终点的路线 , 这里选用的是七段式的SVPWM
以第一扇区为例:

- 可以看到可以从 U 4 U_4 U4的方向开始***(0-4-6-7-6-4-0), 也可以从 U 6 U_6 U6的方向开始 (7-6-4-0-4-6-7)***
- 两种方式唯一的不同就是零向量的插入方式不同
注意: 不能直接先走完其中一个再走另一个 , 那样谐波比较大
同样的方法可以得到其他扇区矢量作用顺序
3.7.2 矢量切换时间
- 在知道了矢量的作用顺序之后 , 就可以把矢量的作用时间换成桥臂的开关时间
- 即可以确定A、B、C三相桥臂的切换时间点
3.7.2.1 第一扇区
还是以第一扇区为例:
简单计算确定,七段SVPWM每段的作用时长 ;
(0-4-6-7-6-4-0)矢量持续时间如下图所示
- 其中 S a S_a Sa、 S b S_b Sb、 S c S_c Sc 分别是三相桥臂的开关状态
- 各段的作用时间分别是( T s − T 4 − T 6 4 、 T 4 2 、 T 6 2 、 T s − T 4 − T 6 2 、 T 6 2 、 T 4 2 、 T s − T 4 − T 6 4 \frac{T_s-T_4-T_6}{4}、\frac{T_4}{2}、\frac{T_6}{2}、\frac{T_s-T_4-T_6}{2}、\frac{T_6}{2}、\frac{T_4}{2}、\frac{T_s-T_4-T_6}{4} 4Ts−T4−T6、2T4、2T6、2Ts−T4−T6、2T6、2T4、4Ts−T4−T6)
由上图可以看出, 三相桥臂的切换时间(送入定时器的比较值)
{
S
a
切
换
时
间
=
T
s
−
T
4
−
T
6
4
S
b
切
换
时
间
=
T
s
−
T
4
−
T
6
4
+
T
4
2
=
T
s
+
T
4
−
T
6
4
S
c
切
换
时
间
=
T
s
−
T
4
−
T
6
4
+
T
4
2
+
T
6
2
=
T
s
+
T
4
+
T
6
4
\begin{cases} S_a切换时间 = \frac{T_s-T_4-T_6}{4} \\ \\ S_b切换时间= \frac{T_s-T_4-T_6}{4}+\frac{T_4}{2}=\frac{T_s+T_4-T_6}{4}\\ \\ S_c切换时间=\frac{T_s-T_4-T_6}{4}+\frac{T_4}{2}+\frac{T_6}{2}=\frac{T_s+T_4+T_6}{4} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧Sa切换时间=4Ts−T4−T6Sb切换时间=4Ts−T4−T6+2T4=4Ts+T4−T6Sc切换时间=4Ts−T4−T6+2T4+2T6=4Ts+T4+T6
3.7.2.2 第二扇区
桥臂切换时间
{
S
a
切
换
时
间
=
T
s
+
T
2
−
T
6
4
S
b
切
换
时
间
=
T
s
−
T
2
−
T
6
4
S
c
切
换
时
间
=
T
s
+
T
2
+
T
6
4
\begin{cases} S_a切换时间 = \frac{T_s+T_2-T_6}{4} \\ \\ S_b切换时间= \frac{T_s-T_2-T_6}{4}\\ \\ S_c切换时间=\frac{T_s+T_2+T_6}{4} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧Sa切换时间=4Ts+T2−T6Sb切换时间=4Ts−T2−T6Sc切换时间=4Ts+T2+T6
3.7.2.3 第三扇区
桥臂切换时间
{
S
a
切
换
时
间
=
T
s
+
T
2
+
T
3
4
S
b
切
换
时
间
=
T
s
−
T
2
−
T
3
4
S
c
切
换
时
间
=
T
s
+
T
2
−
T
3
4
\begin{cases} S_a切换时间 = \frac{T_s+T_2+T_3}{4} \\ \\ S_b切换时间= \frac{T_s-T_2-T_3}{4}\\ \\ S_c切换时间=\frac{T_s+T_2-T_3}{4} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧Sa切换时间=4Ts+T2+T3Sb切换时间=4Ts−T2−T3Sc切换时间=4Ts+T2−T3
3.7.2.4 第四扇区
桥臂切换时间
{
S
a
切
换
时
间
=
T
s
+
T
1
+
T
3
4
S
b
切
换
时
间
=
T
s
+
T
1
−
T
3
4
S
c
切
换
时
间
=
T
s
−
T
1
−
T
3
4
\begin{cases} S_a切换时间 = \frac{T_s+T_1+T_3}{4} \\ \\ S_b切换时间= \frac{T_s+T_1-T_3}{4}\\ \\ S_c切换时间=\frac{T_s-T_1-T_3}{4} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧Sa切换时间=4Ts+T1+T3Sb切换时间=4Ts+T1−T3Sc切换时间=4Ts−T1−T3
3.7.2.5 第五扇区
(0-1-5-7-7-5-1-0)
桥臂切换时间
{
S
a
切
换
时
间
=
T
s
+
T
1
−
T
5
4
S
b
切
换
时
间
=
T
s
+
T
1
+
T
5
4
S
c
切
换
时
间
=
T
s
−
T
1
−
T
5
4
\begin{cases} S_a切换时间 = \frac{T_s+T_1-T_5}{4} \\ \\ S_b切换时间= \frac{T_s+T_1+T_5}{4}\\ \\ S_c切换时间=\frac{T_s-T_1-T_5}{4} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧Sa切换时间=4Ts+T1−T5Sb切换时间=4Ts+T1+T5Sc切换时间=4Ts−T1−T5
3.7.2.6 第六扇区
(0-4-5-7–7-5-4-0)
桥臂切换时间
{
S
a
切
换
时
间
=
T
s
−
T
4
−
T
5
4
S
b
切
换
时
间
=
T
s
+
T
4
+
T
5
4
S
c
切
换
时
间
=
T
s
+
T
4
−
T
5
4
\begin{cases} S_a切换时间 = \frac{T_s-T_4-T_5}{4} \\ \\ S_b切换时间= \frac{T_s+T_4+T_5}{4}\\ \\ S_c切换时间=\frac{T_s+T_4-T_5}{4} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧Sa切换时间=4Ts−T4−T5Sb切换时间=4Ts+T4+T5Sc切换时间=4Ts+T4−T5
3.8 MATLAB仿真
3.8.1 svpwm模块与函数代码
3.8.1.1 仿真框图
如图所示:
- 输入 V d 和 V q V_d和V_q Vd和Vq的期望以及角度信息
- 经过反park变换 和 svpwm运算模块后 输出三相桥臂的切换时间
3.8.1.2代码实现
将前面扇区判断, 矢量作用时长计算的公式结果写入代码即可
%输入输出
function [T_Sa,T_Sb,T_Sc,sector] = fsvpwm(V_alpha,V_beta,Udc,Tpwm)
%输出全部转换为单精度浮点型
sector = single(0); %扇区N值
T_Sa = single(0); %桥臂切换时间
T_Sb = single(0); %桥臂切换时间
T_Sc = single(0); %桥臂切换时间
%========中间变量(用于判断扇区与矢量作用时间)================
%用于判断扇区
Vref1 = V_beta; %A
Vref2 = (sqrt(3)*V_alpha - V_beta)/2; %B
Vref3 = (-sqrt(3)*V_alpha - V_beta)/2; %C
%用于计算矢量作用时长
K = sqrt(3)*Tpwm/Udc;
X = K*Vref1;
Y = K*Vref2;
Z = K*Vref3;
%==========扇区判断================
% N = 4C + 2B + A
if (Vref1>0)
sector = single(1);
end
if (Vref2>0)
sector = sector+single(2);
end
if (Vref3>0)
sector = sector+single(4);
end
%======== 矢量作用时间计算 ===================
% 设每个扇区中先作用的矢量为Tx , 后作用的矢量为Ty
switch (sector)
case 1
Tx = -Y; Ty = -Z; %第二扇区
case 2
Tx = -Z; Ty = -X; %第六扇区
case 3
Tx = Y; Ty = X; %第一扇区
case 4
Tx = -X; Ty = -Y; %第四扇区
case 5
Tx = X; Ty = Z; %第三扇区
otherwise
Tx = Z; Ty = Y; %第五扇区
end
%防止过调制,采用比例缩小的方法 (确保Tx + Ty 不超过Tpwm)
if Tx+Ty > Tpwm
Tx = Tx*Tpwm/(Tx+Ty);
Ty = Ty*Tpwm/(Tx+Ty);
else
Tx = Tx;
Ty = Ty;
end
%==========桥臂切换时间计算================
ta = (Tpwm-(Tx+Ty))/4.0;
tb = ta+Tx/2;
tc = tb+Ty/2;
switch (sector)
case 1 %第二扇区
T_Sa=tb;
T_Sb=ta;
T_Sc=tc;
case 2 %第六扇区
T_Sa=ta;
T_Sb=tc;
T_Sc=tb;
case 3 %第一扇区
T_Sa=ta;
T_Sb=tb;
T_Sc=tc;
case 4 %第四扇区
T_Sa=tc;
T_Sb=tb;
T_Sc=ta;
case 5 %第三扇区
T_Sa=tc;
T_Sb=ta;
T_Sc=tb;
case 6 %第五扇区
T_Sa=tb;
T_Sb=tc;
T_Sc=ta;
end
end
3.8.1.3 仿真结果

调制波形与扇区波形

如图所示
- 因为内部中点电位随零序波动,SVPWM模块调制后的波形是马鞍波
- 各个扇区对应的调制波形 , 符合之前的计算结果
3.8.2 开环电机驱动仿真
通过之前的坐标变换和svpwm模块 , 现在已经可以实现开环驱动电机转动
3.8.2.1 仿真框图
控制流程
- 输入期望值 U d 和 U q U_d和U_q Ud和Uq , 通过svpwm模块进行调制 , 输出三相桥臂切换时间
- 输入模拟的定时器, 输出三相互补的六路pwm
- 送入全桥, 驱动电机
控制框图
模拟定时器输出方波
3.8.2.2 仿真结果
三相电流波形与速度角度波形

- 三相定子电流呈现较好的正弦特性
- 在到达给定转速后, 转速稳定
三相互补六路pwm波形