概述
1,在simulink中使用s-function模块,打开模块后进行编辑,s-function是一个在matlab中有模版的m文件,需要自己在其中的一些部分进行修改,s-fun有几个需要初始化的参数,分别是
NumContStates=;
连续状态的数量,如果在simulink中,你的这个模块的上一级给出了一个连续的变量,比方说正弦函数的输出值,那么这里就可以让该参数等于1;
sizes.NumDiscStates=;离散状态的数量,和上边一个参数的定义一样,只不过是离散的
sizes.NumOutputs=;
输出的个数,代表你这个模块将要输出几个结果,比方输入一个阶跃函
数,你想要看到阶跃函数本身和你设计的模块后的响应结果,这里就可以将他设为
2
;
sizes.DirFeedthtough=;
直接馈通的标志,这个用不到,直接写
0
;
sizes.NumSampleTimes=;
采样时间的数量,一般为
1
;
还有几个参数,
str
,
ts
和
x0
,
这三个参数,
str
是人家
公司自己设计留着将来用的,咱用的时候让
str=[]
,就可以了;
ts
是一个两列的矩阵,如果你想让
s-function
在每个时间步都运行,让他为
[0,0]
就可以,如
果你希望让他在仿真开始后的
1
秒每
0.5
秒运行,就可以把它设为
[0.5 1];
这样
mdlInitializeSizes
函数的基本设置就完成了,然后就是修改你要让
s-fun
模块完成的功
能了,如果你要完成连续的状态的微分,就再
case1
中把函数写清楚,如果是离散状态的微
分,
就在
case2
中完成,
如果你很简单的单纯计算输出,
在
case3
中把函数写清楚就行了,
sys
就是这个模块的输出;
2
,
当你的
s-fun
模块都完成编辑了,
在
simulink
中双击打开,
然后在
s-function name
中输入
刚刚写好的文件的名字,如果没有额外的参数,即没有除了
t,x,u,flag,
外的参数,那么在这
个对话框中的
s-function
parameters
中就不要写东西了,到这个时候,基本上所有的工作就
完成了,点击
ok
3
,运行
simulink
,观察结果
最后
以上就是大方便当为你收集整理的simulink调用自定义函数S-Function的全部内容,希望文章能够帮你解决simulink调用自定义函数S-Function所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复