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 用户手册》