[已答复] S函数运行总显示“输入参数的数目不足”哪位大神指点一下

[复制链接]
今晚接着打老虎 发表于 2018-2-9 16:07:30
function [sys,x0,str,ts] = wuchahanshu(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
case 9,
sys=mdlTerminate(t,x,u);
otherwise
DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [];
str = [];
ts = [0 0];
function sys=mdlDerivatives(t,x,u)
sys = [];
function sys=mdlUpdate(t,x,u)
sys = [];
function sys=mdlOutputs(t,x,u)
A=0.1;
B=0.7;
e(k)=u;
x(1)=1;
x(2)=(A+B-abs(e(k)))/A;
x(3)=0;
if abs(e(k))<=B
   sys=x(1);
else if abs(e(k))>B &&abs(e(k))<=A+B
    sys=x(2);
else
    sys=x(3);
    end
end
function sys=mdlGetTimeOfNextVarHit(t,x,u)

sampleTime = 1;   
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = [];

2 条回复


halleyhit 发表于 2018-2-14 14:34:35
你是如何运行这个函数的?命令行吗?

wx_hs74hfwZ 发表于 2019-7-25 15:02:03
这怎么命令啊,我也是遇到这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表