Matlab 仿真实现TI Instaspin 的Foc 逆Clarke变换和SVPWM

一直没搞明白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');

仿真的波形:

原文地址:https://www.cnblogs.com/nixianmin/p/4791428.html