图书目录

                                     目   录

第1章系统仿真技术与应用1

1.1 系统仿真技术概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 仿真软件的发展概况. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2.1 早期数学软件包的发展概况. . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.2 仿真软件的发展概况. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 MATLAB语言简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.1 MATLAB语言发展简史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.2 MATLAB语言的特色. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3.3 MATLAB版本选择和建议. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4 本书的结构和代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4.1 本书的结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4.2 代码下载和网上资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4.3 书中英文字体说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

第2章MATLAB语言程序设计基础11

2.1 MATLAB语言的基本使用环境. . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.1 MATLAB语言环境操作界面. . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.2 MATLAB的联机帮助与电子版手册. . . . . . . . . . . . . . . . . . . . . . . 11

2.2 MATLAB语言的数据结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 常量与变量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 赋值语句. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 矩阵的MATLAB表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 多维数组的定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3 MATLAB下矩阵的运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3.1 矩阵的代数运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3.2 矩阵的逻辑运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.3 矩阵的比较关系. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.4 矩阵元素的数据变换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4 流程控制结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.1 循环语句结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.2 条件转移语句结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.4.3 开关语句结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4.4 试探式语句结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.5 MATLAB函数编写与技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.1 MATLAB语言的函数的基本结构. . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.2 可变输入、输出个数的处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.5.3 MATLAB函数的跟踪调试. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.5.4 伪代码与代码保密处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.6 MATLAB语言下图形的绘制与技巧. . . . . . . . . . . . . . . . . . . . . . . 28

2.6.1 基本二维图形绘制语句. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.6.2 带有其他选项的绘图函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.6.3 二维曲线的标注方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.6.4 在MATLAB图形上添加文字标注. . . . . . . . . . . . . . . . . . . . . . . . 32

2.6.5 特殊图形绘制函数及举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.6.6 隐函数的曲线绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.7 三维图形的绘制方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.7.1 三维曲线的绘制方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.7.2 三维曲面的绘制方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.7.3 局部图形的剪切处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.8 MATLAB图形用户界面设计技术. . . . . . . . . . . . . . . . . . . . . . . . 38

2.8.1 图形界面设计工具Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.8.2 句柄图形学及句柄对象属性. . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.8.3 菜单系统设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.8.4 界面设计举例与技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.8.5 工具栏设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.9 提高MATLAB程序执行效率的技巧. . . . . . . . . . . . . . . . . . . . . . 51

2.9.1 测定程序执行时间和时间分配. . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.9.2 加快MATLAB程序执行速度的建议. . . . . . . . . . . . . . . . . . . . . . 51

2.9.3 Mex程序设计技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.10 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

第3章MATLAB语言在现代科学运算中的应用61

3.1 解析解与数值解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.2 数值线性代数问题及求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.2.1 特殊矩阵的MATLAB输入. . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.2.2 矩阵基本分析与运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.2.3 矩阵逆与广义逆运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.2.4 矩阵的相似变换与分解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.2.5 矩阵的特征值与特征向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.2.6 代数方程求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.2.7 矩阵的非线性运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.3 微积分问题的MATLAB求解. . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.3.1 微积分问题的解析解运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.3.2 数值差分与微分运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.3.3 数值积分运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.3.4 多重定积分的数值求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.4 常微分方程的数值解法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.4.1 常微分方程的数值解法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.4.2 MATLAB下的常微分方程求解函数. . . . . . . . . . . . . . . . . . . . . . . 87

3.4.3 微分方程组的变换和技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

3.4.4 微分方程数值解正确性的验证. . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.4.5 微分代数方程的数值解法. . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.4.6 线性随机微分方程的数值解法. . . . . . . . . . . . . . . . . . . . . . . . . . 98

3.4.7 常微分方程的解析求解方法. . . . . . . . . . . . . . . . . . . . . . . . . . . 101

3.5 非线性方程与最优化问题求解. . . . . . . . . . . . . . . . . . . . . . . . . . 101

3.5.1 非线性方程组求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

3.5.2 无约束最优化问题求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

3.5.3 线性规划问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

3.5.4 二次型规划问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

3.5.5 一般非线性规划问题求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

3.5.6 最优化问题的全局搜索解法. . . . . . . . . . . . . . . . . . . . . . . . . . . 108

3.6 动态规划及其在路径规划中的应用. . . . . . . . . . . . . . . . . . . . . . . 109

3.6.1 图的矩阵表示方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

3.6.2 有向图的路径寻优. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

3.6.3 无向图的路径最优搜索. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.7 数据插值与统计分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.7.1 一维数据的插值拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.7.2 二维数据的插值拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

3.7.3 最小二乘曲线拟合技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

3.7.4 数据简单排序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

3.7.5 快速Fourier 变换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

3.7.6 数据分析与统计处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

3.8 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

第4章Simulink 下数学模型的建立与仿真129

4.1 Simulink 模块库简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

4.1.1 信号源模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

4.1.2 连续模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

4.1.3 离散模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

4.1.4 查表模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

4.1.5 用户自定义函数模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

4.1.6 数学运算模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

4.1.7 非线性模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

4.1.8 输出池模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

4.1.9 信号与系统模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

4.1.10 子系统模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

4.1.11 常用模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

4.1.12 其他工具箱与模块集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

4.2 Simulink 模型的建立. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

4.2.1 模型窗口建立. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

4.2.2 模块的连接与简单处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

4.2.3 模块的参数修改. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

4.3 模型的处理与仿真分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

4.3.1 模型建立及建模技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

4.3.2 仿真模型的模块浏览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

4.3.3 Simulink 模块的联机帮助系统. . . . . . . . . . . . . . . . . . . . . . . . . . 147

4.3.4 Simulink 模型的输出与打印. . . . . . . . . . . . . . . . . . . . . . . . . . . 148

4.3.5 仿真环境的设置与启动. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

4.3.6 Simulink 模型的测试与调试工具. . . . . . . . . . . . . . . . . . . . . . . . . 152

4.4 Simulink 模型举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

4.5 线性系统建模、仿真与分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

4.5.1 线性系统模型的输入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

4.5.2 基于Simulink 的线性系统分析界面. . . . . . . . . . . . . . . . . . . . . . . 161

4.6 非线性随机系统的仿真方法. . . . . . . . . . . . . . . . . . . . . . . . . . . 163

4.6.1 Simulink 下的随机信号仿真方法. . . . . . . . . . . . . . . . . . . . . . . . . 163

4.6.2 仿真结果的统计分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

4.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

第5章Simulink 常用模块介绍与应用技巧171

5.1 常用模块应用技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

5.1.1 向量化模块举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

5.1.2 Simulink 模型的信号标识. . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

5.1.3 线性多变量系统建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . 175

5.1.4 Simulink 的代数环及消除方法. . . . . . . . . . . . . . . . . . . . . . . . . . 177

5.1.5 Simulink 的过零点检测与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . 180

5.2 非线性环节与查表环节构建. . . . . . . . . . . . . . . . . . . . . . . . . . . 182

5.2.1 单值非线性模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

5.2.2 多值非线性记忆模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

5.2.3 多维查表模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

5.2.4 静态非线性模块的代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . 188

5.3 微分方程的Simulink 框图求解. . . . . . . . . . . . . . . . . . . . . . . . . . 189

5.3.1 一般微分方程的Simulink 建模. . . . . . . . . . . . . . . . . . . . . . . . . . 189

5.3.2 微分代数方程的Simulink 建模与求解. . . . . . . . . . . . . . . . . . . . . . 190

5.3.3 延迟微分方程的Simulink 求解. . . . . . . . . . . . . . . . . . . . . . . . . . 192

5.3.4 切换微分方程的Simulink 求解. . . . . . . . . . . . . . . . . . . . . . . . . . 194

5.3.5 分数阶微分方程的Simulink 求解. . . . . . . . . . . . . . . . . . . . . . . . 195

5.4 输出模块库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

5.4.1 一般输出模块库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

5.4.2 模型参数显示与模型浏览器. . . . . . . . . . . . . . . . . . . . . . . . . . . 202

5.4.3 输出信号的表盘与量计显示. . . . . . . . . . . . . . . . . . . . . . . . . . . 203

5.4.4 输出的数字信号处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

5.5 MATLAB/Simulink 仿真结果的三维动画显示. . . . . . . . . . . . . . . . . 207

5.5.1 虚拟现实基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

5.5.2 VRealm 程序的配置与虚拟现实场景建模. . . . . . . . . . . . . . . . . . . . 209

5.5.3 在MATLAB下浏览虚拟现实场景. . . . . . . . . . . . . . . . . . . . . . . . 211

5.5.4 Simulink 下的三维动画场景驱动. . . . . . . . . . . . . . . . . . . . . . . . . 211

5.6 子系统与模块封装技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

5.6.1 子系统的处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

5.6.2 条件执行子系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

5.6.3 模块封装技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

5.6.4 组建自己的模块库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

5.6.5 子系统应用举例―― F14 战斗机仿真. . . . . . . . . . . . . . . . . . . . . . 224

5.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

第6章Simulink 仿真的高级技术231

6.1 Simulink 模型的语句修改. . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

6.1.1 Simulink 模型与文件的处理. . . . . . . . . . . . . . . . . . . . . . . . . . . 231

6.1.2 Simulink 模型与模型文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

6.1.3 用语句绘制方框图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

6.2 系统仿真与线性化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

6.2.1 仿真过程的命令化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

6.2.2 非线性模型的线性化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

6.2.3 纯时间延迟环节的Pad′e 近似. . . . . . . . . . . . . . . . . . . . . . . . . . 242

6.3 S-函数的编写及应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

6.3.1 用MATLAB语句编写S-函数. . . . . . . . . . . . . . . . . . . . . . . . . . 245

6.3.2 S-函数设计与应用举例―― 自抗扰控制器仿真. . . . . . . . . . . . . . . . . 248

6.3.3 二级S-函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

6.3.4 用C语句编写S-函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

6.3.5 S-函数模块的封装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

6.4 仿真优化举例―― 控制系统最优控制器设计. . . . . . . . . . . . . . . . . . 261

6.4.1 伺服控制的最优性能指标选择. . . . . . . . . . . . . . . . . . . . . . . . . . 262

6.4.2 目标函数编写及最优控制器设计. . . . . . . . . . . . . . . . . . . . . . . . 263

6.4.3 全局最优化方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

6.5 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

第7章工程系统建模与仿真271

7.1 物理系统建模仿真模块集Simscape 简介. . . . . . . . . . . . . . . . . . . . 271

7.1.1 传统框图建模方法的局限性. . . . . . . . . . . . . . . . . . . . . . . . . . . 271

7.1.2 Simscape 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

7.1.3 Simscape 基础模块库简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

7.1.4 两类信号及其相互转换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

7.1.5 Simscape 模块定义语言入门. . . . . . . . . . . . . . . . . . . . . . . . . . . 278

7.1.6 复杂电路网络建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

7.2 电气系统模块集简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

7.3 电子线路及其仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

7.3.1 SimElectronics 模块集简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

7.3.2 模拟电子线路仿真举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

7.3.3 数字电子线路仿真举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

7.3.4 电力电子系统仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

7.3.5 将Spice 模块嵌入Simulink 仿真模型. . . . . . . . . . . . . . . . . . . . . . 295

7.4 电机拖动系统仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

7.4.1 直流电机拖动系统仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

7.4.2 交流电机拖动仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

7.5 机械系统建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

7.5.1 简单力学系统的仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

7.5.2 SimMechanics 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

7.5.3 机构系统仿真举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

7.5.4 Simulink 与其他CAD软件的接口. . . . . . . . . . . . . . . . . . . . . . . . 315

7.6 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

第8章非工程系统的建模与仿真319

8.1 药物动力学系统建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . 319

8.1.1 药物动力学系统简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

8.1.2 药物动力学系统的舱室模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 320

8.1.3 基于生理的药物动力学建模及Simulink 仿真. . . . . . . . . . . . . . . . . . 322

8.1.4 药效学建模. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

8.1.5 麻醉过程的非线性广义预测控制. . . . . . . . . . . . . . . . . . . . . . . . 329

8.2 影像与图像处理系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

8.2.1 图像与影像读取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

8.2.2 图像与影像的显示与输出. . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

8.2.3 图像处理基本模块介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

8.2.4 图像与影像的处理入门. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336

8.2.5 图像影像的实时处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

8.3 有限状态机仿真及Stateflow应用. . . . . . . . . . . . . . . . . . . . . . . . 342

8.3.1 有限状态机简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

8.3.2 Stateflow应用基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

8.3.3 Stateflow的常用命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

8.3.4 Stateflow应用举例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

8.3.5 用Stateflow描述流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

8.4 基于SimEvents 的离散事件系统仿真方法. . . . . . . . . . . . . . . . . . . . 359

8.4.1 离散事件动态系统基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . . 359

8.4.2 SimEvents 模块集简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

8.4.3 排队服务模型建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

8.5 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

第9章半实物仿真与实时控制367

9.1 Simulink 仿真的实时工具RTW . . . . . . . . . . . . . . . . . . . . . . . . . 367

9.1.1 半实物仿真简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

9.1.2 独立程序的自动生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369

9.1.3 实时仿真与目标计算机仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . 370

9.1.4 基于xPC Target 的半实物仿真方法. . . . . . . . . . . . . . . . . . . . . . . 374

9.2 dSPACE简介与常用模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

9.2.1 dSPACE简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

9.2.2 dSPACE模块组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

9.3 Quanser 简介与常用模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

9.3.1 Quanser 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

9.3.2 Quanser 常用模块介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

9.3.3 Quanser 旋转运动控制系列实验受控对象简介. . . . . . . . . . . . . . . . . 381

9.4 半实物仿真与实时控制实例. . . . . . . . . . . . . . . . . . . . . . . . . . . 382

9.4.1 受控对象的数学描述与仿真研究. . . . . . . . . . . . . . . . . . . . . . . . 382

9.4.2 Quanser 实时控制实验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384

9.4.3 dSPACE实时控制实验. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

9.5 基于NIAT的低成本半实物仿真简介. . . . . . . . . . . . . . . . . . . . . . 387

9.5.1 NIAT模块集常用模块简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

9.5.2 Pendubot 系统的数学模型、控制与仿真. . . . . . . . . . . . . . . . . . . . . 388

9.5.3 Pendubot 控制系统的半实物仿真实验. . . . . . . . . . . . . . . . . . . . . 392

9.6 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

参考文献395

附录A MATLAB函数索引399

附录B 关键词索引405