Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

用 MATLAB 仿真 SVPWM 模块,给出程序和输出波形?

1 SVPWM 仿真原理
SVPWM 是确定三相逆变电源电力电子器件开断时刻的一种方式。三相桥
式逆变电路每个桥臂有两个开关管,其开关信号互补。三相桥式逆变电路各桥臂
通断状态的组合为 6 个有效的空间矢量 V4(100)、V6(110)、V2(010)、V
3(011)、V1(001)、V5(101)和 2 个零矢量 V0(000)、V7(111)。为了得
到旋转空间矢量 V,在不降低直流电压利用率情况下能调控三相逆变器输出的
基波电压和消除低次谐波,可用矢量 V 所在扇区边界的两个相邻特定矢量 Vx
和 Vy 及零矢量 Vz 合成一个等效的电压矢量 V,调控 V 的大小和相位。则在时
间很短的一个开关周期 Ts 中,矢量存在时间就由组成这个区域的两个相邻的非
零矢量 Vx 存在 Tx 时间、Vy 存在 Ty 时间以及零矢量 Vz 存在 T0 时间来等效,

VxTx+VyTy+VzT0=VTs=V(Tx+Ty+T0)(1)
将 Vx=2/3VD、Vy=2/3VDej600、Vz=0 代入上式,得

(2)

(3)

(4)

通过矢量 V 所在的二维静止坐标系 α 轴和 β 轴的分量 uα、uβ 来计算电压矢


量所在的扇区(我们把圆周分成 6 个扇区,扇区序号用 N 表示)。若 uβ>0,则
A=1,否则 A=0;若 uα-uβ>0,则 B=1,否则 B=0;若- uα-uβ>0,则

C=1,否则 C=0。扇区 N=A+2B+4C。每个扇区内的矢量有扇区所在的两个边界矢


量和零矢量共同合成,其作用时间如上所说。利用 MATLAB/SIMULINK 仿真,
其仿真框图如下
图 3.1 基于 SVPWM 逆变器仿真框图
图 3.1 中 SVPWM 模块为根据空间矢量控制方法确定电力电子器件开关时
刻模块。

图 3.2 确定开关管开断时刻模块

图 3.2 中的 svpwm 为 MATLAB 的 S 函数,其程序如下:


/*u[4]={ uα、uβ,Tz,Vdc}*/
int A,B,C,N;
double X,Y,Z,Tx,Ty,T0,Tl,Tm,Th;
if (u[1]>0) A = 1;
else A=0;
if ((1.732051*u[0]-u[1])>0) B = 1;
else B=0;
if ((-1.732051*u[0]-u[1])>0) C = 1;
else C=0;
N=A+2*B+4*C;
X=1.732051*u[1]*u[2]/u[3];
Y=(0.8660*u[1]+1.5*u[0])*u[2]/u[3];
Z=(-0.8660*u[1]+1.5*u[0])*u[2]/u[3];
switch (N)
{
case 1: Tx= Y;Ty=-Z;break;
case 2: Tx=-X;Ty= Y;break;
case 3: Tx= Z;Ty= X;break;
case 4: Tx=-Z;Ty=-X;break;
case 5: Tx= X;Ty=-Y;break;
default: Tx=-Y;Ty= Z;
}
if ((Tx+Ty)>u[2])
{
Tx=Tx*u[2]/(Tx+Ty);
Ty=Ty*u[2]/(Tx+Ty);
}

T0=(u[2]-(Tx+Ty))/4;
Tl=(u[2]+Tx-Ty)/4;/*Tl=T0/4+Tx/2*/
Tm=(u[2]-Tx+Ty)/4;/*Tm=T0/4+Ty/2*/
Th=(u[2]+Tx+Ty)/4;/*Th=T0/4+Ty/2+Ty/2*/

switch (N)
{
case 1 :y[0]=Tm;y[1]=T0;y[2]=Th;break;
case 2 :y[0]=T0;y[1]=Th;y[2]=Tm;break;
case 3 :y[0]=T0;y[1]=Tl;y[2]=Th;break;
case 4 :y[0]=Th;y[1]=Tm;y[2]=T0;break;
case 5 :y[0]=Th;y[1]=T0;y[2]=Tl;break;
default :y[0]=Tl;y[1]=Th;y[2]=T0;
}
2 SVPWM 仿真波形

图 3.3 开关函数 Sa 的波形

图 3.4 开关函数 Sb 的波形

图 3.5 开关函数 Sc 的波形

图 3.6 逆变器 A 相波形

You might also like