教我用下sfunction,可以吗,急,谢谢

教我用下sfunction,可以吗,急,谢谢,第1张

s-function使用方法:

1.在work文件夹下新建一个m文件,取个名字。然后打开它,将s-function内容输入。

2.在mdl仿真中拖入一个s-function模块,在模块属性里面输入其名字,点击edit看是否能直接进入你刚刚所建的m文件。如果不能,要么是因为你名字不一致,要么是因为你的工作文件夹没有选择正确。

s-function的编写:

1.首先你最好有个s-function的模板。

2.function的名字可以随便取。但是里面的变量不要改动。

3.flag是s-function的行进到什么地方的标志,其实就是利用它来依次调用相关的函数。比如:0:初始化。1:连续。2.离散。3.输出。4:步长。等等。

4.switch结束后,下面就是相关的函数了,首先是初始化,这个每个s-function都必须有。然后根据你所需的功能,添加相关的函数,最后用output函数输出。

5.函数之间的数据传递用sys变量,也就是说每个函数结束后,都会将计算结果输入给sys。

s-function使用方法略微复杂,由于时间有限,讲得很不详细。qq吧

simulink使用MATLAB function的端口多出入多输出,输入输出向量设置:

1.simulink中的MATLAB function如何实现多个输入输出端口

解决方案:双击MATLAB function模块,进入其编程界面,定义函数

函数名为fcn,有几个形参,simulink中的模块就会有几个端口,输出端口同样。在我的测试过程中发现如果函数名不用fcn,则无法实现多个输入输出端口。

2. simulink中的MATLAB function中输出端口设为向量

如上图所示,同样定义输出为一个变量sys,但是在下面用sys = [00],这样sys输出端口对应的就是一个两行一列的向量。效果为:输出为向量,但是只显示一个端口。

若改为

function [sys1 sys2] = fcn(ut, t, input)

 则就会显示两个端口,都是一维的。

3. simulink中的MATLAB function中输入端口设为向量(数组)

这种情况无须特殊处理,像上面一样同样定义,MATLAB没有C语言那样严格的参数类型限制,只需要在函数中使用时按照向量或数组使用就可以

input(:, n):就是表示input的第n列数据

input(m, :):就是表示input的第m行数据

input(m, n):就是表示input的第m行第n列数据


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

原文地址: http://outofmemory.cn/tougao/11277818.html

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

发表评论

登录后才能评论

评论列表(0条)

保存