
一直没搞明白TI 的Instaspin的SVPWM实现原理,最后只能在Matlab里仿真看看输出波形是不是和普通的SVPWM实现输出的波形一样,用M文件实现,下面是代码:
clear all; theta = 0:1:360;
vd = 0.0;
vq = 1.15;
Valpha = zeros(size(theta));
Vbeta = zeros(size(theta));
Vx = zeros(size(theta));
Vy = zeros(size(theta));
Vz = zeros(size(theta)); N = length(theta); for i=1:N
Valpha(i) = vd*cos(i/180*pi)-vq*sin(i/180*pi);
Vbeta(i) = vq*cos(i/180*pi)+vd*sin(i/180*pi);
va = Valpha(i);
vb = -0.5*Valpha(i) +sqrt(3)/2*Vbeta(i);
vc = -0.5*Valpha(i) -sqrt(3)/2*Vbeta(i);
vmax = 0;
vmin = 0;
if (va > vb)
vmax = va;
vmin = vb;
else
vmax = vb;
vmin = va;
end if(vc > vmax)
vmax = vc;
elseif (vc < vmin)
vmin = vc;
end vcom = (vmax+vmin)/2;
Vx(i) = vcom - va;
Vy(i) = vcom - vb;
Vz(i) = vcom - vc; end plot(theta, Valpha);
hold on
plot(theta, Vbeta);
hold on plot(theta, Vx,'Color','red');
hold on
plot(theta, Vy,'Color','yellow'); hold on
plot(theta, Vz,'Color','green');
仿真的波形: