附程序:function [sys,x0,str,ts] = sys(t,x,u,flag)switch flag,case 0,[sys,x0,str,ts]=mdlInitializeSizes;case 3,sys=mdlOutputs(t,x,u);case{1,2,4}sys=[];case 9,sys=mdlTerminate(t,x,u);otherwiseerror(['Unhandled flag=',num2str(flag)]);endfunction [sys,x0,str,ts]=mdlInitializeSizessizes = simsizes;sizes.NumContStates =0;sizes.NumDiscStates =0;sizes.NumOutputs =3;sizes.NumInputs =1;sizes.DirFeedthrough =1;sizes.NumSampleTimes =1;sys= simsizes(sizes);x0 =[];str =[];ts =[0 0];function sys=mdlOutputs(t,x,u)if (u>=0&u<pi/3)sys=[1 -1 -u*6/pi+1];elseif (u>=pi/3&u<2*pi/3)sys=[1 u*6/pi-3 -1];elseif (u>=2*pi/3&u<pi)sys=[-u*6/pi+5 1 -1];elseif (u>=pi&u<4*pi/3)sys=[-1 1 u*6/pi-7];elseif (u>=4*pi/3&u<5*pi/3)sys=[-1 -u*6/pi+9 1];elseif (u>=5*pi/3&u<2*pi)sys=[u*6/pi-11 -1 1]; endfunction sys=mdlTerminate(t,x,u)sys=[];
1 回答

jeck猫
TA贡献1909条经验 获得超7个赞
One or more output arguments not assigned during call to是值输出变量有的没有赋值,从你给的函数上看,第一个函数中如果case不是等于0,那么这三个变量x0,str,ts是没有赋值的,同理第二个,你自己看一下,最起码要付一个值!
添加回答
举报
0/150
提交
取消