1.前言
SVPWM(Space Vector Pulse Width Modulation,空间矢量脉宽调制)是近年发展的一种比较新颖的电机控制方法,是 由三相功率逆变器的六个功率开关元件组成的特定开关模式以产生的脉宽调制波 ,能够使输出电流波形尽可能接近于理想的正弦波形。SVPWM与传统的正弦PWM不同,它是从三相输出电压的整体效果出发,着眼于如何使电机获得理想圆形磁链轨迹。
为什么要使用SVPWM策略?为电机控制所需,SVPWM可以依据电机磁链和电压的关系,从而实现对电动机恒磁通变压变频调速,并且SVPWM比SPWM的直流母线的电压利用率高15%,更易于实现数字化。
2.SVPWM的输入输出分别是什么?
输入:
1.旋转坐标系dq轴电压、自然坐标系下的ABC三相电压等等载波信号
2.1输入从何而来
2.2输出用去做什么
作为永磁同步电机等被控对象的输入:输出的三相PWM信号可分别加在空间上互差120°的三相静止坐标系上,可等效为幅度、频率、相位的三相交流电,输入信号含有的信息在这个三相交流电的幅度、频率、相位中体现。由此可作为PMSM等被控对象的输入,因为PMSM的转速取决于该三相电压的频率。
3.理论基础和结构组成
平均值等效原理:在一个开关周期内通过对基本电压矢量加以组合,使其平均值与给定电压矢量相等。通过改变计算机(数字控制器)输出PWM波的占空比等效所需要的三相电压。
3.1电路:三相逆变器
三相逆变器的电路图和工作流程图解如图所示,
逆变器的开关电路有如下八种开合状态
八种开合状态的相电压和线电压的对应关系为:
3.2开关逻辑:如何为三相电路的开关赋值?
以减少开关次数为目标,将基本矢量作用顺序的分配原则选定为:在每次开关状态转换时,只改变其中一相的开关状态。并且对零矢量在时间上进行了平均分配,以使产生的PWM 对称,从而有效地降低PWM的谐波分量。开关顺序的选取有七段式序列。
下面动态展示工作流程(图中是以三角波为例,正弦波与之类似)
4.Simulink仿真和程序讲解
总体仿真模型(代码来源见图中备注)
4.1三相逆变电路部分由总体模型所示
4.2开关逻辑的实现如下图所示
function pwm = fcn(Fs,Mag,ang,Sec,Vdc,clk)
% Time synchronization with the simulink clock.
t=clk;
% Vdc at workspace
% General expression for the calculation of T1, T2 and T0.
T1=(sqrt(3)*(Mag/Vdc))*sin(Sec*pi/3 -ang)/Fs;
T2=(sqrt(3)*(Mag/Vdc))*sin(ang - ((Sec-1)*pi/3))/Fs;
T0= (1/Fs -T1- T2)/2;
% Change of sectors
sec_ant=mod(floor(Sec),2);
if(sec_ant~=1) % detection sector exchange
T1=(sqrt(3)*(Mag/Vdc))*sin(ang - ((Sec-1)*pi/3))/Fs;
T2=(sqrt(3)*(Mag/Vdc))*sin(Sec*pi/3 -ang)/Fs;
end
% Sawtooth
ref= 1/Fs * rem(t,1/Fs)/(1/Fs);
% Time intervals
int1=T0/4;
int2=int1+T1/2;
int3=int2+T2/2;
int4=int3+T0/2;
int5=int4+T2/2;
int6=int5+T1/2;
timet=1+(ref >=int1)+(ref >=int2)+(ref >=int3)+(ref >=int4)+(ref >=int5)+(ref >=int6);
sw_array=zeros(3,7,6); %Initialize table of key states - > 3 rows (arms), 7 columns (times) and 6 vectors (sectors).
% ------Arm A -------- -------Arm B -------- -------Arm C --------
sw_array(:,:,1)=[0 1 1 1 1 1 0;0 0 1 1 1 0 0; 0 0 0 1 0 0 0]; %setor 1
sw_array(:,:,2)=[0 0 1 1 1 0 0;0 1 1 1 1 1 0; 0 0 0 1 0 0 0]; %setor 2
sw_array(:,:,3)=[0 0 0 1 0 0 0;0 1 1 1 1 1 0; 0 0 1