⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svpwm_sim_v2.m

📁 SVPWM应用
💻 M
字号:
function [PWM]=SVPWM_sim_v2(Freq,sin,cos,wt,t)
T_pwm=1/2000;
t_cycle=mod(t,T_pwm);

Uout=sqrt(1/2);
Ud=Uout*cos;
Uq=Uout*sin;

U=[  1 0 0; 
     1 1 0; 
     0 1 0;
     0 1 1;
     0 0 1;
     1 0 1;
     0 0 0;
     1 1 1]';

Decm=[   0    1.4142;
    1.2247   -0.7071;
   -1.2247    0.7071;
    1.2247    0.7071;
   -1.2247   -0.7071;
         0    1.4142;
         0   -1.4142;
   -1.2247    0.7071;
    1.2247   -0.7071;
   -1.2247   -0.7071;
    1.2247    0.7071;
         0   -1.4142];
Sector=fix(3*wt/pi)+1;

T=T_pwm.*(inv(Decm(2*Sector-1:2*Sector,:)))*[Ud Uq]';
if ((mod(t,T_pwm))==0)
sin
cos
T
end
if (Sector==1)
    if (((t_cycle>=0)&(t_cycle<=T(1)/2))|(t_cycle>=(T_pwm-T(1)/2)))
        PWM=U(:,1);
    elseif ((t_cycle<=(T(1)+T(2))/2)|(t_cycle>=(T_pwm-((T(1)+T(2))/2))))
            PWM=U(:,2);
        else
                PWM=U(:,8);    
    end
end

if (Sector==2)
    if (((t_cycle>=0)&(t_cycle<=T(1)/2))|(t_cycle>=(T_pwm-T(1)/2)))
        PWM=U(:,2);
    elseif ((t_cycle<=(T(1)+T(2))/2)|(t_cycle>=(T_pwm-((T(1)+T(2))/2))))
            PWM=U(:,3);
        else
                PWM=U(:,7);    
    end
end

if (Sector==3)
    if (((t_cycle>=0)&(t_cycle<=T(1)/2))|(t_cycle>=(T_pwm-T(1)/2)))
        PWM=U(:,3);
    elseif ((t_cycle<=(T(1)+T(2))/2)|(t_cycle>=(T_pwm-((T(1)+T(2))/2))))
            PWM=U(:,4);
        else
                PWM=U(:,8);    
    end
end

if (Sector==4)
    if (((t_cycle>=0)&(t_cycle<=T(1)/2))|(t_cycle>=(T_pwm-T(1)/2)))
        PWM=U(:,4);
    elseif ((t_cycle<=(T(1)+T(2))/2)|(t_cycle>=(T_pwm-((T(1)+T(2))/2))))
            PWM=U(:,5);
        else
                PWM=U(:,7);    
    end
end

if (Sector==5)
    if (((t_cycle>=0)&(t_cycle<=T(1)/2))|(t_cycle>=(T_pwm-T(1)/2)))
        PWM=U(:,5);
    elseif ((t_cycle<=(T(1)+T(2))/2)|(t_cycle>=(T_pwm-((T(1)+T(2))/2))))
            PWM=U(:,6);
        else
                PWM=U(:,8);    
    end
end

if (Sector==6)
    if (((t_cycle>=0)&(t_cycle<=T(1)/2))|(t_cycle>=(T_pwm-T(1)/2)))
        PWM=U(:,6);
    elseif ((t_cycle<=(T(1)+T(2))/2)|(t_cycle>=(T_pwm-((T(1)+T(2))/2))))
            PWM=U(:,1);
        else
                PWM=U(:,7);    
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -