这个该怎么弄啊?simulik问题
用simulink封装系统方程y=a*sin(b*x)exp(-c*x) 并通过对话框输入a,b,c 的值跪求大侠帮助!!!!!!!万分感谢,用s函数的 在线=了,多谢了~~~~~~~~~~~~~~~~~~~~~~ 看看是不是这个意思啊
function = ff(t,x,u,flag)
switch flag,
case 0,
=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
error(['Unhandled flag = ',num2str(flag)]);
end
function =mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 4;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0= [];
str = [];
ts= ;
function sys=mdlDerivatives(t,x,u)
sys = [];
function sys=mdlUpdate(t,x,u)
sys = [];
function sys=mdlOutputs(t,x,u)
sys = u(1)*sin(u(2)*u(4))*exp(-u(3)*u(4));
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1; %Example, set the next hit to be one second later.
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = [];
% end mdlTerminate :handshake 如何精简啊说实话simulink包括s函数我不是很了解,刚接触,请指教以下,谢谢 这个貌似s函数没编译通过啊... 什么貌似,这就是s函数
估计你是单独运行这个函数了,你应该大好模型后直接运行模型(在s函数的模型那里填上这个s函数名,这里是ff) 这是一个很简单的函数,直接用Fcn模块即可完成,如果想通过对话框输入参数,可在Fcn前后加in和out模块,然后封装即可! 楼上说的对,直接用函数Fcn就可以了 高手年年有,今年特别多
回复 #3 yf2002043227 的帖子
讲的好,又学会了一招,呵呵 原帖由 fandalei 于 2007-7-3 16:27 发表 http://www.chinavib.com/forum/images/common/back.gif楼上说的对,直接用函数Fcn就可以了
但fcn无法实时的实现abc等参数的实时变化 以前没用过S-function,问个没水准的问题。S-function的参数怎么设置才可以运行?我的总是出错。模型和m文件建立好了,就是运行模型的时候出错。
S-function name:ff
S-function parameters:
S-function modules:'?'
页:
[1]