那位大神帮我看看这个s函数有什么不对吗?
function [sys,x0,str,ts]=dianjibenti(t,x,u,flag)
switch flag
case 0
[sys,x0,str,ts]=mdlInitializeSizes();
case 3
sys=mdlOutputs(t,x,u);
case {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=3;
sizes.NumInputs=2;
sizes.DirFeedthrough=0;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[-1 0];
function sys= mdlOutputs(~,~,u,k)
if u(1) >= 0 && u(1) < (pi/3 )
sys(1) = k*u(1);
sys(2) = -k*u(1) ;
sys(3) = k*u(2)*(( -u(1))/(pi/6)+1) ;
else if u(1) >= (pi/3) && u(1) < (2 *pi/3)
sys(1) = k*u(2);
sys(2) = k*u(2)*(( u(1)-pi/3)/(pi/6)-1) ;
sys(3) = -k*u(2);
else if u(1) >= (2*pi/3) && u(1) < pi;
sys(1) = k*u(2)*(( 2*pi/3-u(1))/(pi/6)+1);
sys(2) = k*u(2) ;
sys(3) = -k*u(2);
else if u(1) >= pi && u(1) < (4*pi/3);
sys(1) = -k*u(2);
sys(2) = k*u(2) ;
sys(3) = k*u(2)*(( u(1)-pi)/(pi/6)-1) ;
else if u(1)>= (4*pi/3) && u(1) < (5*pi/3);
sys(1) = -k*u(2);
sys(2) = k*u(2)*(( (4*pi/3)-u(1))/(pi/6)+1) ;
sys(3) = k*u(2) ;
else
sys(1) = k*u(2)*(( (u(1)-5*pi/3)/(pi/6)-1));
sys(2) = -k*u(2) ;
sys(3) = k*u(2) ;
end
end
end
end
end
function [sys,x0,str,ts]=dianjibenti(t,x,u,flag)
switch flag
case 0
[sys,x0,str,ts]=mdlInitializeSizes();
case 3
sys=mdlOutputs(t,x,u);
case {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=3;
sizes.NumInputs=2;
sizes.DirFeedthrough=0;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[-1 0];
function sys= mdlOutputs(~,~,u,k)
if u(1) >= 0 && u(1) < (pi/3 )
sys(1) = k*u(1);
sys(2) = -k*u(1) ;
sys(3) = k*u(2)*(( -u(1))/(pi/6)+1) ;
else if u(1) >= (pi/3) && u(1) < (2 *pi/3)
sys(1) = k*u(2);
sys(2) = k*u(2)*(( u(1)-pi/3)/(pi/6)-1) ;
sys(3) = -k*u(2);
else if u(1) >= (2*pi/3) && u(1) < pi;
sys(1) = k*u(2)*(( 2*pi/3-u(1))/(pi/6)+1);
sys(2) = k*u(2) ;
sys(3) = -k*u(2);
else if u(1) >= pi && u(1) < (4*pi/3);
sys(1) = -k*u(2);
sys(2) = k*u(2) ;
sys(3) = k*u(2)*(( u(1)-pi)/(pi/6)-1) ;
else if u(1)>= (4*pi/3) && u(1) < (5*pi/3);
sys(1) = -k*u(2);
sys(2) = k*u(2)*(( (4*pi/3)-u(1))/(pi/6)+1) ;
sys(3) = k*u(2) ;
else
sys(1) = k*u(2)*(( (u(1)-5*pi/3)/(pi/6)-1));
sys(2) = -k*u(2) ;
sys(3) = k*u(2) ;
end
end
end
end
end