Simulink中S-Function和MATLAB-Function的区别

本文探讨了Simulink中S-Function与MATLABFunction的区别。S-Function模块提供了对Simulink模块运行机制的深度定制能力,而MATLABFunction则允许用户使用类似MATLAB的编程方式编写复杂算法。尽管后者易于上手,但可能会影响仿真效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问一个比较大的问题,在Simulink中,如果没有现成的模块调用,我们倾向于建S-Function模块,但是其实Simulink里面还有MATLAB Function。

前段时间做仿真,有一个复杂的计算公式,两个输入变量,一个输出变量,使用的是MATLAB Function,发现也蛮好用的。

那么问题来了,究竟MATLAB Function和S-Function有什么区别呢?本人接触MATLAB还不算很深入,不知道版里面的大神有没有自己的理解?

S函数模块是描述Simulink模块运行机制和细节动作最深刻的模块,它提供对模型运行时模块动作的所有流程定义,包括初始化多少个输入输出口,多少个状态变量;包括微分,状态变量更新计算,包括输出计算和终止时的动作定义。
Matlab -function是提供类似Matlab编程的编辑器,在有限制的情况下去编写M语言程序,每次仿真都调用Matlab解释器去翻译程序生成C代码,再编译为mex文件执行,费时费力,而且不能反映Simulink的本质。
很多Matlab熟悉的人初学Simulink都喜欢用这个,我个人到是不喜欢,因为它不锻炼Simulink整体设计和功能设计的能力,依靠的还是传统的Matlab。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值