• 大小: 2.04MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-11
  • 语言: Matlab
  • 标签: PMSM  矢量控制  simuli  

资源简介

基于Matlab simulink关于PMSM矢量控制的仿真模型多个,部分文件是基于plecs制作

资源截图

代码片段和文件信息

%==========================================================================
%确定比较器切换点Tcm1Tcm2Tcm3
%September 17 2009
%Southeast University Zhou Mingming
%==========================================================================
function [sysx0strts] =switch_time(txuflag)
switch flag
  case 0
    [sysx0strts]=mdlInitializeSizes;
  case 2
    sys=mdlUpdate(txu);
  case 3
    sys=mdlOutputs(txu); 
  case 4
    sys=mdlGetTimeOfNextVarHit(txu);%Return next time hit for variable step sample time in SYS
                                      %计算下一次的采样时间(Just only for 离散系统)
  case {19}
    sys=[];
  otherwise
    DAStudio.error(‘Simulink:blocks:unhandledFlag‘ num2str(flag));
end
%=============================================================================
% mdlInitializeSizes
% Return the sizes initial conditions and sample times for the S-function.
%=============================================================================
function [sysx0strts]=mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates  = 0;
sizes.NumDiscStates  = 1;  %离散状态变量的个数
sizes.NumOutputs     = 3;
sizes.NumInputs       =3;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;   

sys = simsizes(sizes);
x0  = [0];
str = [];
ts  = [-2 0];

%=============================================================================
%更新状态变量
% 其中:u(1)为Ualfa电压矢量
%       u(2)为Ubeta电压矢量
%       u(3)为检测到的直流母线电压。    
%       x(1)指6个扇区:123456 
%       x(3)指合成的空间电压矢量在一个扇区的相对角度(θ-k*60)为角度值。运算时要变换为弧度值(θ-k*60)*pi/180

function sys=mdlUpdate(txu)  
if  u(2)>0
    A=1;
else
    A=0;
end
if (0.8660*u(1)-0.5*u(2))>0
    B=1;
else
    B=0;
end
if (-0.8660*u(1)-0.5*u(2))>0
    C=1;
else
    C=0;
end
x(1) = A+2*B+4*C;             %扇区号N=A+2B+4C                
sys=x;
 
 
%=============================================================================
% 计算输出时间
function sys=mdlOutputs(txu)
T=0.0001;    %SVPWM波的开关周期
X=1.7321*u(2)*T/u(3);
Y=(0.8660*u(2)+1.5*u(1))*T/u(3);
Z=(-0.8660*u(2)-1.5*u(1))*T/u(3);
switch x(1)
    case 1
        T1 = ZT2=Y;
    case 2
        T1 = YT2=-X;
    case 3
        T1 = -ZT2=X;
    case 4
        T1 = -XT2=Z;
    case 5
        T1 = XT2=-Y;
    case 6
        T1 = -YT2=-Z;
end

if T<(T1+T2)
    T1=T1*T/(T1+T2);
    T2=T2*T/(T1+T2);
end

Ta=(T-T1-T2)/4;
Tb=Ta+T1/2;
Tc=Tb+T2/2;

switch x(1) 
    case 1
         state=[TbTaTc];      
    case 2
         state=[TaTcTb];  
    case 3
         state=[TaTbTc]; 
    case 4
         state=[TcTbTa];
    case 5
         state=[TcTaTb];
    case 6
         state=[TbTcTa];   
end
         sys=state;
         
 %=============================================================================
 %计算下一采样时间点
 function sys=mdlGetTimeOfNextVarHit(txu)
 sampletime=0.0001;
 sys=t+sampletime;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\1\
     文件      116188  2009-02-23 10:46  PMSM多个仿真文件\1\tongbu.mdl
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\10\
     文件       37918  2009-09-18 20:06  PMSM多个仿真文件\10\SVPWM.mdl
     文件        3049  2009-09-17 12:13  PMSM多个仿真文件\10\switch_time.m
     文件      367421  2009-09-13 15:29  PMSM多个仿真文件\10\电压空间矢量脉宽调制SVPWM算法仿真实现及分析.pdf
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\11\
     文件      132501  2006-03-15 15:13  PMSM多个仿真文件\11\空间矢量PWM的SIMUlink仿真.PDF
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\12\
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\12\MATLAB_SMUlink_PMSM_mdl\
     文件       94836  2007-03-13 09:58  PMSM多个仿真文件\12\MATLAB_SMUlink_PMSM_mdl\pmsm_spwm.mdl
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\13\
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\13\三相整流控制\
     文件      118547  2012-10-19 20:30  PMSM多个仿真文件\13\三相整流控制\dsy.mdl
     文件      124734  2012-10-04 20:16  PMSM多个仿真文件\13\三相整流控制\dsy.mdl.original
     文件      110292  2012-05-09 15:15  PMSM多个仿真文件\13\三相整流控制\fxx.mdl
     文件        8243  2012-04-19 09:44  PMSM多个仿真文件\13\三相整流控制\svpwm.c
     文件       17920  2009-05-03 19:09  PMSM多个仿真文件\13\三相整流控制\svpwm.dll
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\14\
     文件       21065  2012-01-02 20:39  PMSM多个仿真文件\14\svpwm.c
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\15\
     文件      339092  2009-10-01 11:57  PMSM多个仿真文件\15\svpwm.pdf
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\16\
     文件      154142  2009-04-13 10:06  PMSM多个仿真文件\16\SVPWM.mdl
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\17\
     文件      351542  2011-02-01 15:51  PMSM多个仿真文件\17\Plecs_svm.pdf
     文件       38156  2011-02-01 16:03  PMSM多个仿真文件\17\SpaceVectorControl.mdl
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\18\
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\18\raccel\
     目录           0  2016-02-05 15:42  PMSM多个仿真文件\18\raccel\_sharedutils\
     目录           0  2016-02-13 12:53  PMSM多个仿真文件\18\raccel\SVPWM\
............此处省略151个文件信息

评论

共有 条评论