MATLAB的S 编程语言
Simulink 基于模型与基于系统的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
n 建模 n 仿真 n 实现S-Function 的编写
Version 5 目录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 ...........................................................................................
2——连续状态 23 范例
S-Function .................................................................................................... 25 范例 3——离散状态
S-Function .................................................................................................... 27 范例 4——混合系统
S-Function .................................................................................................... 28 范例5——变步长
S-Function ........................................................................................................ 31 i使用 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 ii 可调参
数............................................................................................................................................ 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 内存分
配............................................................................................................................................ 86FUNCTION-CALL 子系
统........................................................................................................................ 87错误处
理................................................................................................................................................ 89 防超程代
码........................................................................................................................................ 89 SsSetErrorStatus 的终止条
件 ........................................................................................................ 90 数组边界检查.................................................................................................................................... 90S-FUNCTION 范
例.................................................................................................................................. 91 连续状态的 S-Function 范
例........................................................................................................... 92 离散状态的 S-Function 范例........................................................................................................... 93
混合系统的 S-Function 范
例........................................................................................................... 93 变步长的 S-Function 范例............................................................................................................... 94
过零检测的 S-Function 范
例........................................................................................................... 94 时变连续传递函数的 S-Function 范例........................................................................................... 94 iii
第一章 S-Function 概述 S-Function(系统函数)为扩展 Simulink的性能提供了一个有力的工具。以下下节阐述了什么是S-Function,为什么可以使用 S-Function,以及怎样编写自己的 S-Function。 1 Simulink——S-Function 的编写 什么是
MATLAB,C,C,Ada,或 Fortran 语言来编写。S-Function S-Function 可以使用
使用 MEX 实用工具, 将 C,C,Ada,和 Fortran 语言的 S-Function 编译成 MEX-文件,在需要的时候,它们可与其它的 MEX-文件一起动态地连接到 MATLAB 中。 S-Function 使用一种特殊的调用格式让你可以与 Simulink 方程求解器相互作用,这与发生在求解 器和内置 Simulink 块之间的相互作用非常相似。S-Funct.