网络上已有不少相关内容的具体讲解,本文为SVPWM调制策略的要点讲解,重点在于SIMULINK仿真。
1.前言
SVPWM(Space Vector Pulse Width Modulation,空间矢量脉宽调制)是近年发展的一种比较新颖的电机控制方法,是 由三相功率逆变器的六个功率开关元件组成的特定开关模式以产生的脉宽调制波 ,能够使输出电流波形尽可能接近于理想的正弦波形。SVPWM与传统的正弦PWM不同,它是从三相输出电压的整体效果出发,着眼于如何使电机获得理想圆形磁链轨迹。
为什么要使用SVPWM策略?为电机控制所需,SVPWM可以依据电机磁链和电压的关系,从而实现对电动机恒磁通变压变频调速,并且SVPWM比SPWM的直流母线的电压利用率高15%,更易于实现数字化。
2.SVPWM的输入输出分别是什么?
输入:
1.旋转坐标系dq轴电压、自然坐标系下的ABC三相电压等等载波信号
2.供电
输出:
三相PWM信号
2.1输入从何而来
2.2输出用去做什么
作为永磁同步电机等被控对象的输入:输出的三相PWM信号可分别加在空间上互差120°的三相静止坐标系上,可等效为幅度、频率、相位的三相交流电,输入信号含有的信息在这个三相交流电的幅度、频率、相位中体现。由此可作为PMSM等被控对象的输入,因为PMSM的转速取决于该三相电压的频率。
3.理论基础和结构组成
平均值等效原理:在一个开关周期内通过对基本电压矢量加以组合,使其平均值与给定电压矢量相等。通过改变计算机(数字控制器)输出PWM波的占空比等效所需要的三相电压。
3.1电路:三相逆变器
三相逆变器的电路图和工作流程图解如图所示,
逆变器的开关电路有如下八种开合状态
八种开合状态的相电压和线电压的对应关系为:
3.2开关逻辑:如何为三相电路的开关赋值?
八个基本电压空间矢量的大小和位置:其中非零矢量的幅值(相电压幅值)相同(模长为),相邻的矢量间隔为60°,而两个零矢量幅值为零,位于中心。在每一个扇区,选择相邻的两个电压矢量以及零矢量,按照伏秒平衡的原则来合成每个扇区内的任意电压矢量。满足如下数学表达式:
其中,为期望电压矢量; 为采样周期; 分别为对应两个非零电压矢量和零电压矢量在一个采样周期内的作用时间;其中包括了 和 两个零矢量。上式的意义是,矢量在 时间内所产生的积分效果值和分别在时间内产生的积分效果相加总和值相同。
至此,问题转换为如何选取8种开关以及其对应的持续时间.
通过空间矢量的计算可以得出各开关状态持续时间(以第一扇区为例):
以减少开关次数为目标,将基本矢量作用顺序的分配原则选定为:在每次开关状态转换时,只改变其中一相的开关状态。并且对零矢量在时间上进行了平均分配,以使产生的PWM 对称,从而有效地降低PWM的谐波分量。开关顺序的选取有七段式序列。详细图解可参考:https://zhuanlan.zhihu.com/p/115067276
下面动态展示工作流程(图中是以三角波为例,正弦波与之类似)
本图来源于:Space Vector PWM Intro—Switchcraft
4.Simulink仿真和程序讲解
总体仿真模型(代码来源见图中备注)
4.1三相逆变电路部分由总体模型所示
4.2开关逻辑的实现如下图所示
本代码输入为旋转坐标系下的轴电压,首先对扇区的选取进行判断(图中Selec.Setor)
通过将轴电压转换为坐标系下,对矢量分解至各坐标轴,并结合角度进行判断。
function [Mag,ang,Sec] = fcn(u)
complexo=u(2)+ i* u(3);
Mag=abs(complexo);
ang=atan2(imag(complexo),real(complexo));
alpha=ang*180/pi;
Sec = (alpha>0 & alpha<=60)*1+ (alpha>60 & alpha<=120)*2 + (alpha>120 & alpha<=180)*3 ...
+(alpha>-180 & alpha<-120)*4+ (alpha>-120 & alpha<=-60)*5 + (alpha>-60 & alpha<=0)*6;
接下来进行开关量的实时选取,采用七段式的选取方法
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波
-
电流
+关注
关注
40文章
6757浏览量
131878 -
逆变器
+关注
关注
283文章
4690浏览量
206303 -
脉宽调制
+关注
关注
3文章
215浏览量
38284 -
SVPWM
+关注
关注
14文章
614浏览量
90583
发布评论请先 登录
相关推荐
评论