前者比较复杂,通常是这样的
function[sys,x0,str,ts]=emf01(t,x,u,flag)
switch flag
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 3,
sys=mdlOutputs(t,x,u);
case 2,
sys=[];
case 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=3;
sizes.NumInputs=2;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[-1 0];
function sys=mdlOutputs(t,x,u)
global k;
global Pos;
global w;
k=0.060; %V/(r/min)反电动势系数
w=u(1); %转速(rad/s)
Pos=u(2); %角度(rad)
if Pos>=0& Pos<=pi/3
sys=[kw,-kw,kw((-Pos)/(pi/6)+1)];<
simulink中的S-Fun与simulink fun
最新推荐文章于 2024-07-06 01:40:18 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)