2023年12月7日发(作者:)

flag=0matlab,matlabs函数flag=3时,时间变0,求大神帮忙解

本帖最后由 暗—电气 于 2016-3-3 11:07 编辑

总是出现Error in 'matrixconverter70/sigal4/S-Function' while executing MATLAB S-function 'resource', flag = 3 (output), at

time 0.0.

function [sys,x0,str,ts] = resource(t,x,u,flag)

Output argument "sys" (and maybe others) not assigned during call to "D:MATLAB1resource.m>mdlOutputs".

switch flag,

%%%%%%%%%%%%%%%%%%

% Initialization %

%%%%%%%%%%%%%%%%%%

case 0,

[sys,x0,str,ts] = mdlInitializeSizes;

%%%%%%%%%%

% Update %

%%%%%%%%%%

%case 2,

% sys = mdlUpdate(t,x,u);

%%%%%%%%%%

% Output %

%%%%%%%%%%

case 3,

sys = mdlOutputs(t,x,u);

%%%%%%%%%%%%%

% Terminate %

%%%%%%%%%%%%%

case {1,2,4,9},

sys = [];

otherwise

error(['unhandled flag = ',num2str(flag)]);

end

function [sys,x0,str,ts] = mdlInitializeSizes

sizes = simsizes;

tStates = 0;cStates = 0;puts = 9;uts = 2;dthrough = 1;pleTimes = 1;sys = simsizes(sizes);x0=[];str=[];ts=[0,0];% end mdlInitializeSizes%=======================================================================% mdlUpdate% Handle discrete state updates, sample time hits, and major time step% requirements.%=======================================================================function sys = mdlOutputs(t,x,u)switch u(1)case 1switch u(2)case 1x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=0;x(9)=1;sys=x;case 2x(1)=1;x(2)=0;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;case 3x(1)=0;x(2)=0;x(3)=1;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;case 4x(1)=0;x(2)=0;x(3)=1;x(4)=1;x(5)=0;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 5x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=0;x(6)=1;x(7)=1;x(8)=0;x(9)=0;sys=x;case 6x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=1;x(8)=0;x(9)=0;sys=x;otherwiseendcase 2switch u(2)case 1x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=0;x(9)=1;sys=x;case 2x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;case 3x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;case 4x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 5x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;sys=x;case 6x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;sys=x;otherwiseendcase 3switch u(2)case 1x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 2x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 3x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 4x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 5x(1)=1;x(2)=0;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 6x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;otherwiseendcase 4switch u(2)case 1x(1)=0;x(2)=0;x(3)=1;x(4)=1;x(5)=0;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 2x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=0;x(6)=1;x(7)=1;x(8)=0;x(9)=0;sys=x;case 3x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=1;x(8)=0;x(9)=0;sys=x;case 4x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=0;x(9)=1;sys=x;case 5x(1)=1;x(2)=0;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;case 6x(1)=0;x(2)=0;x(3)=1;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;otherwiseendcase 5switch u(2)case 1x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 2x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;sys=x;case 3x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;sys=x;case 4x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=0;x(6)=1;x(7)=0;x(8)=0;x(9)=1;sys=x;case 5x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;case 6x(1)=0;x(2)=0;x(3)=1;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=0;x(9)=1;sys=x;otherwiseendcase 6switch u(2)case 1x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 2x(1)=1;x(2)=0;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 3x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=0;x(8)=1;x(9)=0;sys=x;case 4x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 5x(1)=0;x(2)=1;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;case 6x(1)=1;x(2)=0;x(3)=0;x(4)=0;x(5)=1;x(6)=0;x(7)=1;x(8)=0;x(9)=0;sys=x;otherwiseendotherwiseend%=======================================================================% mdlOutputs% Return the output vector for the S-function