SPWM原理及其MATLAB模型
- 一、SPWM原理
- 二、基于零序分量注入的SPWM
- 三、MATLAB模型
一、SPWM原理
SPWM其实是相电压的控制方式,定义三相正弦相电压的表达式:
{
V
a
m
=
V
m
sin
ω
t
V
b
m
=
V
m
sin
(
ω
t
−
2
3
π
)
V
c
m
=
V
m
sin
(
ω
t
+
2
3
π
)
\left\{\begin{matrix} V_{am}=&V_m\sin\omega t \\ V_{bm}=&V_m\sin(\omega t-\frac{2}{3}\pi) \\ V_{cm}=&V_m\sin(\omega t+\frac{2}{3}\pi) \end{matrix}\right.
⎩
⎨
⎧Vam=Vbm=Vcm=VmsinωtVmsin(ωt−32π)Vmsin(ωt+32π)
载波比(载波信号频率
f
c
f_c
fc与调制信号频率
f
f
f之比):
m
f
=
f
c
f
m_f=\frac{f_c}{f}
mf=ffc
调制深度(调制信号幅值
V
m
V_m
Vm与载波信号幅值
V
s
m
V_{sm}
Vsm之比):
m
m
=
V
m
V
s
m
m_m=\frac{V_m}{V_{sm}}
mm=VsmVm
当载波频率远大于输出电压基波频率 且调制深度
m
m
≤
1
m_m\le1
mm≤1 时,处于线性调制区域,三相SPWM逆变器相电压的基波幅值满足:
V
m
=
1
2
m
m
U
d
c
V_m=\frac{1}{2}m_mU_{dc}
Vm=21mmUdc
二、基于零序分量注入的SPWM
- 只介绍均值零序信号
为了提高直流电压的利用率,在调制波信号中注入零序分量:
{
V
a
m
=
V
m
sin
ω
t
+
V
0
V
b
m
=
V
m
sin
(
ω
t
−
2
3
π
)
+
V
0
V
c
m
=
V
m
sin
(
ω
t
+
2
3
π
)
+
V
0
\left\{\begin{matrix} V_{am}=&V_m\sin\omega t +V_0\\ V_{bm}=&V_m\sin(\omega t-\frac{2}{3}\pi) +V_0 \\ V_{cm}=&V_m\sin(\omega t+\frac{2}{3}\pi)+V_0 \end{matrix}\right.
⎩
⎨
⎧Vam=Vbm=Vcm=Vmsinωt+V0Vmsin(ωt−32π)+V0Vmsin(ωt+32π)+V0
V
0
V_0
V0 的取值范围:
−
1
−
V
m
i
n
≤
V
0
≤
1
−
V
m
a
x
-1-V_{min}\le V_0\le 1-V_{max}
−1−Vmin≤V0≤1−Vmax
均值零序信号:
V
0
=
−
1
2
(
V
m
a
x
+
V
m
i
n
)
V_0=-\frac{1}{2}(V_{max}+V_{min})
V0=−21(Vmax+Vmin)
注入了一定的高次谐波信号,波顶被削平,因此提高了线性调节范围。
三、MATLAB模型
均值零序信号:
基于零序分量注入的SPWM:
仿真环境模型(模拟MCU的timer输出PWM信号):
Scope1输出结果与Scope输出结果对应:
主要学习书籍:《现代永磁同步电机控制原理及MATLAB仿真》(部分图片来源)
MATLAB仿真参考资料:《欧拉电子 FOC 用户手册》