为什么要使用SVPWM策略?SVPWM调制策略要点讲解

工业控制

1091人已加入

描述

1.前言

SVPWM(Space Vector Pulse Width Modulation,空间矢量脉宽调制)是近年发展的一种比较新颖的电机控制方法,是 由三相功率逆变器的六个功率开关元件组成的特定开关模式以产生的脉宽调制波 ,能够使输出电流波形尽可能接近于理想的正弦波形。SVPWM与传统的正弦PWM不同,它是从三相输出电压的整体效果出发,着眼于如何使电机获得理想圆形磁链轨迹。

为什么要使用SVPWM策略?为电机控制所需,SVPWM可以依据电机磁链和电压的关系,从而实现对电动机恒磁通变压变频调速,并且SVPWM比SPWM的直流母线的电压利用率高15%,更易于实现数字化。

2.SVPWM的输入输出分别是什么?

输入:

1.旋转坐标系dq轴电压、自然坐标系下的ABC三相电压等等载波信号

IGBT

2.1输入从何而来

控制器输出的控制电压、参考电压等带有所需信息的电压信号

2.2输出用去做什么

作为永磁同步电机等被控对象的输入:输出的三相PWM信号可分别加在空间上互差120°的三相静止坐标系上,可等效为幅度、频率、相位的三相交流电,输入信号含有的信息在这个三相交流电的幅度、频率、相位中体现。由此可作为PMSM等被控对象的输入,因为PMSM的转速取决于该三相电压的频率。

3.理论基础和结构组成

平均值等效原理:在一个开关周期内通过对基本电压矢量加以组合,使其平均值与给定电压矢量相等。通过改变计算机(数字控制器)输出PWM波的占空比等效所需要的三相电压。

IGBT

3.1电路:三相逆变器

三相逆变器的电路图和工作流程图解如图所示,

IGBT

逆变器的开关电路有如下八种开合状态

IGBT

八种开合状态的相电压和线电压的对应关系为:

IGBT

3.2开关逻辑:如何为三相电路的开关赋值?

IGBT

以减少开关次数为目标,将基本矢量作用顺序的分配原则选定为:在每次开关状态转换时,只改变其中一相的开关状态。并且对零矢量在时间上进行了平均分配,以使产生的PWM 对称,从而有效地降低PWM的谐波分量。开关顺序的选取有七段式序列。

IGBT

下面动态展示工作流程(图中是以三角波为例,正弦波与之类似)

IGBT

4.Simulink仿真和程序讲解

总体仿真模型(代码来源见图中备注)

IGBT

4.1三相逆变电路部分由总体模型所示

4.2开关逻辑的实现如下图所示

IGBT

IGBT

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 1 1 0 0]; %setor 3
sw_array(:,:,4)=[0 0 0 1 0 0 0;0  0 1 1 1 0 0; 0 1 1 1 1 1 0]; %setor 4
sw_array(:,:,5)=[0 0 1 1 1 0 0;0  0 0 1 0 0 0; 0 1 1 1 1 1 0]; %setor 5
sw_array(:,:,6)=[0 1 1 1 1 1 0;0  0 0 1 0 0 0; 0 0 1 1 1 0 0]; %setor 6
 

if t< 1e-6
Sec=1;
end;
   
S1=sw_array(1,timet,Sec);
S2= ~S1;
S3=sw_array(2,timet,Sec);
S4= ~S3;
S5=sw_array(3,timet,Sec);
S6= ~S5;
% SVPWM
pwm= [S1 S2 S3 S4 S5 S6];
end

开关量输出至IGBT处,然后三相逆变电路产生PWM波

IGBT

IGBT

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分