-
S-Function 的编写.rar下载
资源介绍
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.. 53
SIMULINK 如何与C S-FUNCTION 相互作用 54
进程层面....... 54
数据层面....... 56
编写回调函数... 59
将 LEVEL 1 C MEX S-FUNCTION 转换到LEVEL 2 . 60
创建 C S-FUNCTION 63
创建 ADA S-FUNCTION.......... 64
创建 FORTRAN S-FUNCTION 65
实现块特性 67
对话框参数....... 68
iii
可调参数....... 68
运行参数 70
创建运行参数.......... 70
更新运行参数.......... 71
创建输入和输出端口... 72
创建输入端口.......... 72
创建输出端口.......... 73
输入的标量扩展...... 74
掩码多端口 S-Function...... 75
自定义数据类型.......... 76
采样时间 77
基于块的采样时间... 77
指定基于端口的采样时间.. 79
基于块与基于端口的混合采样时间 ........ 81
多速率 S-Function 块......... 82
多速率 S-Function 块的同步........ 83
工作向量 84
工作向量与过零检测.......... 85
包括指针工作向量的范例.. 85
内存分配....... 86
FUNCTION-CALL 子系统.......... 87
错误处理 89
防超程代码... 89
SsSetErrorStatus 的终止条件..... 90
数组边界检查.......... 90
S-FUNCTION 范例........ 91
连续状态的 S-Function 范例........ 92
离散状态的 S-Function 范例........ 93
混合系统的S-Function 范例........ 93
变步长的 S-Function 范例. 94
过零检测的 S-Function 范例........ 94
时变连续传递函数的 S-Function 范例... 94