S-Function 可以使用MATLAB®,C,C ,Ada,或Fortran 语言来编写。使用MEX 实用工具,将C,C ,Ada,和Fortran 语言的S-Function 编译成MEX-文件,在需要的时候,它们可与其它的MEX-文件一起动态地连接到MATLAB 中。
S-Function 使用一种特殊的调用格式让你可以与Simulink 方程求解器相互作用,这与发生在求解器和内置Simulink 块之间的相互作用非常相似。S-Function 的形式是非常通用的,且适用于连续、离散和混合系统。
S-function 为你提供了一种在Simulink 模型中增加自制块的手段,你可以使用MATLAB,C,C ,Ada,或Fortran 语言来创建自己的块。按照下面一套简单的规则,你可以在S-function 中实现自己的算法。在你编写一个S-Functin 函数,并将函数名放置在一个S-Functin 块中(在用户定义的函数块库中有效)之后,通过使用masking 定制用户界面。
目录
S-FUNCTION 概述.......... 1
什么是 S-FUNCTION...... 2
在模型中使用S-FUNCTION...... 3
向 S-Function 传递参数....... 3
何时使用 S-Function 4
S-FUNCTION 的工作原理.......... 5
Simulink 块的数学关系........ 5
仿真过程......... 5
S-Function 回调程序. 6
S-FUNCTION 的实现...... 8
M-文件的S-Function.......... 8
MEX 文件的S-function ....... 8
MEX 文件与M-文件的S-function 比较... 9
S-FUNCTION 的概念..... 10
直接馈通....... 10
动态维矩阵... 10
设置采样时间和偏移量.......11
S-FUNCTION 范例........ 14
M 文件S-function 范例...... 15
C S-Function 范例... 16
Fortran S-Function 范例.... 18
C S-Function 范例......... 18
Ada S-Function 范例......... 18
编写 M S-FUNCTION.... 19
概述........ 20
S-Function 参数...... 20
S-Function 的输出... 20
定义 S-FUNCTION 块特性....... 22
处理 S-FUNCTION 参数 22
M 文件的S-FUNCTION 范例... 23
范例 1——简单的M 文件S-Function ... 23
范例 2——连续状态S-Function . 25
范例 3——离散状态S-Function . 27
范例 4——混合系统S-Function . 28
范例 5——变步长S-Function ..... 31
ii
使用C 语言编写S-FUNCTION .......... 33
概述........ 34
创建 C MEX S-Function.... 35
自动生成 S-FUNCTION 36
配置生成的 S-Function...... 37
S-Function Builder 如何生成S-Function......... 37
设置 include 路径.... 37
S-FUNCTION BUILDER 的对话窗........ 39
Initialization 选卡..... 39
Data Properties 选卡......... 40
Libraries 选卡.......... 42
Outputs 选卡 43
Continuous Derivatives 选卡....... 45
Discrete Update 选卡........ 46
Build Info 选卡........ 47
一个基本的 C MEX S-FUNCTION 范例....... 48
定义与包含... 49
回调函数的实现...... 50
Simulink/Real-Time Workshop 接口..... 51
Building Timestwo 范例..... 51
C S-FUNCTION 模板..... 52
S-Function 源文件必需的内容..... 52
SimStruct...... 53
编译 C S-Function.. 5
1