simulink中sfunction的例程如何打开

simulink中sfunction的例程如何打开,第1张

Function Builder”拖动到工程当中。注意,不要选择s-function,那个是不能添加C文件的。

2. 双击新添加的S-Function Builder实例,在其属下对话框选择“Data Properties”,配置好输入输出端口。以输入端口为例,Input ports为输入端口,点击左侧的箭头符号可添加端口。

3. 双击端口名“Port name”可修改端口名称,同时还可修改端口

可以直接用polyval([1 0 3 4],0),

由于你这个是多项式,很好处理的

如果是不能写成矩阵系数的非线性函数,相对就麻烦一点了

比如y=sin(x)+x^2,要求x=0处的值,可以这样求,

f=inline('sin(x)+x^2','x')%表示符号函数

y=f(0)%将x=0带入符号函数中,求符号函数的值

如果你要问的只是function的用法,那么需要另外建立一个单独的文件,相对来说不如上述方法简单。

function的用法是

1新建一个m文件

function f=f(x)

f(1)=x^3+3*x+4%f(1)表示第一个方程,如果还有可以追加f(2),一次类推,当然只有一个时f(1)可以简写成f。

2将其保存为f_x.m

2在matlab命令窗口中直接调用f_x(0)就可以了

>>f_x(0)

ans =

4

S-Function是system-function的缩写。

S-Function就是用MATLAB所提供的模型不能完全满足用户,而提供给用户自己编写程序来满足自己要求模型的接口。

MEX函数与M文件的区别

第一

MEX 函数能实现的回调函数比M-文件能实现的回调函数要多得多;

第二

MEX 函数直接访问内部数据结构SimStruct,SimStruct 是Simulink 用来保存关于S-function 信息的一个数据结构;

第三

MEX 函数也可使用MATLAB MEX 文件API 直接来访问MATLAB 的工作空间。

如果一个C MEX文件与一个M文件具有相同的名字,则C MEX文件被优先使用,即在S-Function块中使用的是C MEX文件。

例如要创建一个有1输入(2维),2输出(1维),3个参数,还有全局变量的S-Function。

过程如下:

打开simulink,点击User-Defined Functions里面的S-Function Examples。这个里面有多个语言版本的模板,有C,C++,Ada,Fortran和M语言的版本,其实都大同小异,只要了解几个函数就很容易使用了。 选择C语言的版本:从S-function模块中选择C-file S-functions里面的Basic C-MEX template。打开后,另存为自己的模块名字,如test.c 。然后分析代码

b编译在matlab的command window里面输入“mex test.c”,即可将test.c编译为mex文件。

c.调用sfunction在simulink空间里面拉入sfunction,在s-function name里面填入test,参数里面填入要设定的参数,然后仿真即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11747798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存