• 大小: 45KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: Matlab
  • 标签: SVPWM  

资源简介

simulink中的SVPWM仿真模型文件及m代码,含有两个simulink模型及m文件,使用时注意存放路径,matlab版本应该无影响,具体使用说明及详解可见本人博文。

资源截图

代码片段和文件信息

%计时器比较法输出SVPWM
%输入变量:5个
%1.电压矢量幅值
%2.电压矢量相位
%3.电压矢量作用时间
%4.直流电压Ud
%5.三角载波(三角载波幅值等于Ud)

function y = SVPWM_TimeCounterCompare(u)

Ve = u(1);
Ph = u(2);
te = u(3);
Udc = u(4);
du = pi/3;
%定义每个矢量开关信号
u0 = [0 0 0];
u1 = [1 0 0];
u2 = [1 1 0];
u3 = [0 1 0];
u4 = [0 1 1];
u5 = [0 0 1];
u6 = [1 0 1];
u7 = [1 1 1];
%判断矢量位于哪个扇区,从而选择对应的ua、ub、Phe(为计算ta、tb、t0)
if Ph>0 && Ph<=du
    Phe = Ph;
    h = 1;
    ua = u1;
    ub = u2;
elseif Ph>du && Ph<=2*du
    Phe=2*du-Ph;
    h = 2;
    ua = u3;
    ub = u2;
elseif Ph>2*du && Ph<=3*du
    Phe = Ph-2*du;
    h = 3;
    ua = u3;
    ub = u4;
elseif Ph>-3*du && Ph<=-2*du
    Phe = -Ph-2*du;
    h = 4;
    ua = u5;
    ub = u4;
elseif Ph>-2*du && Ph<=-du
    Phe = Ph+2*du;
    h = 5;
    ua = u5;
    ub = u6;
else
    Phe = -Ph;
    h = 6;
    ua = u1;
    ub = u6;
end
%计算ta,tb,t0(ms)
A = Udc;
ta = 1.5*(cos(Phe)-1/sqrt(3)*sin(Phe))*Ve*te/A;
tb = sqrt(3)*Ve*sin(Phe)*te/A;
t0 = te-ta-tb;
if t0<0
    ta = ta/(ta/tb)*te;
    tb = te-ta;
end
%时间折算成电压值
usw1 = Udc*t0/te/2;
usw2 = Udc*ta/te+usw1;
usw3 = Udc*tb/te+usw2;
%判断并输出
if u(5)>=0 && u(5)    y = u0;
elseif u(5)>=usw1 && u(5)    y = ua;
elseif u(5)>=usw2 && u(5)    y = ub;
else y = u7;
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      23208  2017-12-04 20:00  模型文件\SVPWM2Inverter_TimerCompare.slx

     文件       1389  2017-12-08 08:42  模型文件\SVPWM_TimeCounterCompare.m

     文件      22377  2017-12-07 19:36  模型文件\SVPWM_TimerCompare.slx

     文件        760  2017-12-07 19:36  模型文件\SVPW_TimeCounterCompare003.m

     文件       1994  2017-12-08 08:28  模型文件\SVPW_TimeCounterCompare004.m

     目录          0  2017-12-08 11:33  模型文件

----------- ---------  ---------- -----  ----

                49728                    6


评论

共有 条评论