关于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中显示。