本资源包含关于如何使用MATLAB软件编写和应用S函数(系统函数)的基础知识与实践技巧,适用于控制系统设计的学习者和工程师。
S-Function 可以使用MATLAB®、C、Ada 或Fortran 语言编写。通过MEX 实用工具将这些语言编写的S-Function 编译成MEX文件,从而可以在需要时动态地连接到MATLAB 中。
S-Function 使用一种特殊的调用格式来与Simulink 方程求解器交互,这种方式类似于内置的Simulink 块之间的相互作用。其形式非常通用,适用于连续、离散和混合系统。
使用S-function 可以在Simulink 模型中添加自定义块,并且可以利用MATLAB、C、Ada 或Fortran 语言创建这些块。遵循一套简单的规则即可实现自己的算法,在编写好一个S-Function 并将其名称放在模型中的用户定义函数库内之后,可以通过masking 定制用户界面。
目录
1. S-FUNCTION 概述
2. 什么是 S-FUNCTION
3. 在模型中使用S-FUNCTION
4. 向 S-Function 传递参数
5. 何时使用 S-Function
6. S-FUNCTION 的工作原理
7. Simulink 块的数学关系
8. 仿真过程
9. S-Function 回调程序
10. S-FUNCTION 的实现
11. M文件的S-Function
12. MEX 文件的S-function
13. MEX 文件与M-文件的S-function 比较
14. S-FUNCTION 的概念
14.1 直接馈通
14.2 动态维矩阵
14.3 设置采样时间和偏移量
15. S-FUNCTION 范例
16. M 文件S-function 范例
17. C S-Function 范例
18. Fortran S-Function 范例
19. Ada S-Function 范例
20. 编写 M S-FUNCTION
20.1 概述
20.2 S-Function 参数
20.3 S-Function 的输出
20.4 定义S-function块特性
20.5 处理S-function参数
20.6 M 文件的S-FUNCTION 范例
21. 范例1——简单的M文件S-Function
22. 范例2——连续状态S-Function
23. 范例3——离散状态S-Function
24. 范例4——混合系统S-Function
25. 范例5——变步长的 S-Function
19. 使用C语言实现S-function
16.1 创建运行参数
17. 更新运行参数
18. 创建输入和输出端口
18.1 创建输入端口
18.2 创建输出端口
19 输入的标量扩展
20 掩码多端口 S-Function
21 自定义数据类型
22采样时间
23 基于块的采样时间
24 指定基于端口的采样时间
25 多速率S-function 块同步
67 工作向量
18.1工作向量与过零检测
19 包含指针的工作向量范例
30 内存分配
40 FUNCTION-CALL 子系统
50 错误处理
27 防止溢出代码
28 SsSetErrorStatus 的终止条件
19 数组边界检查
60 S-FUNCTION 范例
30 连续状态的S-Function范例
40 离散状态的S-Function范例
50 混合系统的S-function 范例
70 变步长的 S-Function 范例
80 过零检测的 S-Function 范例
90时变连续传递函数的 S-Function 范例