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

📄 e3_phase.m

📁 永磁无刷电机MATLAB仿真模型
💻 M
字号:
function [sys,x0,str,ts] = e3_phase(t,x,u,flag)
% The following outlines the pwminput S-function.
switch flag,  
    
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes; 
  case 3,
    sys=mdlOutputs(t,x,u);  
  case {1,2,4,9},
    sys=[];
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);    
end

function [sys,x0,str,ts]=mdlInitializeSizes     
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 6;
sizes.NumInputs      = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed
set_param(gcb,'UserData',[-1,-1,0]);
sys = simsizes(sizes);

x0  = [];
str = [];
ts  = [0 0];

function sys=mdlOutputs(t,x,u)     
g=get_param(gcb,'UserData');
m1=g(3);
if u(1)>g(1)
    m1=0;
end
if (u(2)~=g(2))&(abs(u(2))==1)
    m1=m1+1
end
set_param(gcb,'UserData',[u(1),u(2),m1]);
if m1==1 
    sys=[1 ; 0 ; 0 ; 1 ; 0 ; 0 ] ;
elseif m1==2
    sys=[1 ; 0 ; 0 ; 0 ; 0 ; 1] ;
elseif m1==3
    sys=[0 ; 0 ; 1 ; 0 ; 0 ; 1] ;
elseif m1==4
    sys=[0 ; 1 ; 1 ; 0 ; 0 ; 0] ;
elseif m1==5
    sys=[ 0 ; 1 ; 0 ; 0 ; 1 ; 0] ;
else
    sys=[ 0 ; 0 ; 0 ; 1 ; 1 ; 0] ;
end

⌨️ 快捷键说明

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