Simulink中S-Function Builder的使用
关于S-Function Builder
S-Function Builder模块在Simulink→User-Defined Functions中,在其中可通过C语言编写程序实现自定义功能(与MATLAB Function不同的是,MATLAB Function需要使用MATLAB语言实现自定义功能)。
S-Function Builder的使用
双击拖入的S-Function Builder模块,可进入S-Function Builder编辑界面。在界面上方Parameters栏中的S-function name框里可设置模块名称(名称需符合MATLAB命名规则);界面左侧Port/Parameter一栏以树状目录结构显示模块的输入、输出及参数;右侧选项卡中为具体设置。
Data Properties
在Data Properties选项卡中,包括Input ports、Output ports、Parameters等多个选项卡,于其中可分别设置模块的输入、输出及模块使用到的参数,选项卡左侧的按钮可以引入或删除一条数据,数据可设置维度(行数和列数)、数据类型等。当引入一条Paramerters数据后,在S-function parameters中会显示相应的记录,通过将记录中Value的数值修改为模块外部变量名称(或模块Mask中变量名称),可实现该条Parameters数据与模块外部变量的实时联动。
如S-Function Builder外部模块的Mask中存在变量mode,则在S-Function Builder模块中添加名称为mode的Parameters且Value为mode(重点为Value中内容需与Mask中的外部变量名相同),此时S-Function Builder中的代码若使用mode,则此mode与Mask中的外部变量mode保持联动。
Libraries
在Libraries选项卡中可以添加S-Function Builder中C语言代码所使用的库及其头文件。
Outputs
在Outputs选项卡中输入C语言编写的程序以实现模块功能。需要注意的是,模块的输入、输出及参数的数据类型均对应C语言中数组,因此,若输入、输入及参数等需要使用“[]”来索引以获得其值。
Build Info
代码输入完成后,点击右上角Build,可对代码进行编译。编译结果在Build Info中显示。
MATLAB R2020b中的S-Function Builder
在较新版本的MATLAB中,S-Function Builder做出了一定的更改,代码编辑、输入输出的设置、以及库的路径等均集成到了同一界面上。
- 在Editor中编辑C代码,完成主要功能的代码在Outputs_wrapper段白色可编辑区域中完成;
-
在PORTS AND PARAMETERS中设置模块的输入与输出;
- 在LIBRARIES中设置模块所引用的库或源文件及其头文件。
右键点击Tag按钮,可以出现添加路径、添加项、删除等内容,而双击添加的Tag标签,则可修改Tag的具体内容,如源文件路径、库路径、包含文件路径等。
注:此处的LIBRARIES似乎只能是源文件,而封装成lib的库不可用。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)