第1章 MATLAB简介 1
1.1 MATLAB的发展史 1
1.2 MATLAB的特点及应用领域 2
1.3 MATLAB R2012a的工作环境 4
1.3.1 操作界面简介 4
1.3.2 Command Window 5
1.3.3 Command History窗口 8
1.3.4 输入变量 9
1.3.5 Current Folder窗口和路径管理 10
1.3.6 搜索路径 11
1.3.7 Workspace和变量编辑器 12
1.3.8 存取数据文件 14
1.4 MATLAB R2012a的帮助系统 15
1.4.1 纯文本帮助 15
1.4.2 演示帮助 16
1.4.3 帮助文件目录 18
1.4.4 帮助文件索引 19
1.5 小结 19
第2章 Simulink简介 20
2.1 Simulink的基本介绍 20
2.1.1 功能 20
2.1.2 特点 21
2.2 Simulink的导引 22
2.2.1 Simulink的安装 22
2.2.2 Simulink的工作环境 23
2.2.3 Simulink模型实例 24
2.3 Simulink的工作原理 25
2.3.1 动态系统的计算机仿真 25
2.3.2 Simulink求解器 27
2.4 Simulink的组成 29
2.4.1 应用工具箱 29
2.4.2 扩展的模块库 30
2.5 Simulink环境的设置 31
2.5.1 Simulink Preferences对话框 31
2.5.2 Simulink环境设置 31
2.6 小结 32
第3章 Simulink基础 33
3.1 Simulink基本操作 33
3.1.1 Simulink的窗口和菜单 33
3.1.2 打开系统模型 34
3.1.3 输入Simulink命令 34
3.1.4 保存系统模型 37
3.1.5 打印模型框图及生成报告 38
3.1.6 常用鼠标和键盘操作 42
3.2 Simulink模块 43
3.2.1 Simulink模块库简介 43
3.2.2 连续模块库 43
3.2.3 离散模块库 44
3.2.4 查找表模块库 45
3.2.5 数学运算模块库 46
3.2.6 不连续模块库 47
3.2.7 信号布线模块库 47
3.2.8 信号输出模块库 48
3.2.9 源模块库 49
3.2.10 其他专业模块库 50
3.3 Simulink系统模型的构建 51
3.3.1 Simulink库浏览器的基本操作 51
3.3.2 模块的选择与连接 51
3.3.3 模块的参数设置 53
3.4 管理模型的版本 53
3.4.1 导引 53
3.4.2 管理模型属性 54
3.4.3 模型文件更改通知 54
3.4.4 指定当前用户 55
3.4.5 查看和编辑模型的信息与历史 56
3.4.6 修改模型的历史 56
3.5 小结 57
第4章 Simulink模块操作 58
4.1 模块操作 58
4.1.1 Simulink模块类型 58
4.1.2 自动连接模块 59
4.1.3 手动连接模块 60
4.2 改变模块外观 61
4.2.1 改变模块方向 61
4.2.2 改变模块名称 62
4.2.3 指定方块图颜色 63
4.3 设置模块参数 63
4.3.1 设置模块特定参数 64
4.3.2 来自工作区的模块参数 64
4.4 标注方块图 65
4.4.1 编辑标注 65
4.4.2 在标注中使用TeX格式命令 66
4.5 Block Properties对话框 67
4.6 显示模块输出 69
4.6.1 设置输出提示 69
4.6.2 模块输出提示选项 71
4.7 控制和显示模块的执行顺序 71
4.7.1 指定模块优先级 71
4.7.2 显示模块执行顺序 72
4.8 查找表编辑器 72
4.8.1 编辑查询表数值 72
4.8.2 显示N-维表 75
4.8.3 绘制LUT表曲线 76
4.8.4 编辑自定义LUT模块 77
4.9 小结 78
第5章 Simulink信号操作 79
5.1 重要概念 79
5.1.1 信号 79
5.1.2 信号的采样时间 79
5.1.3 样本信号 80
5.1.4 帧信号 82
5.2 信号基础 82
5.2.1 信号属性分类 82
5.2.2 信号的线型 86
5.2.3 确定输出信号的维数 86
5.2.4 确定信号及参数维数的准则 87
5.2.5 输入和参数的标量扩展 87
5.2.6 设置信号属性 88
5.3 Scope模块的高级使用技术 91
5.3.1 Scope模块的使用 91
5.3.2 悬浮Scope模块的使用 95
5.4 显示信号 96
5.4.1 显示信号属性 96
5.4.2 信号标签 97
5.4.3 信号标签的传递 98
5.4.4 操作信号标签 98
5.5 多维数组信号的连接 99
5.6 信号组操作 101
5.6.1 创建信号组 101
5.6.2 编辑信号组 103
5.6.3 编辑信号 103
5.6.4 编辑波形 105
5.6.5 设置输入信号的时间范围 108
5.6.6 输出信号组数据及波形 109
5.6.7 用信号组仿真 109
5.6.8 仿真选项对话框 109
5.7 复合信号 111
5.7.1 混合信号 111
5.7.2 总线信号 112
5.7.3 总线对象 114
5.8 小结 116
第6章 创建Simulink模型 117
6.1 创建模型的要素 117
6.1.1 方块图 117
6.1.2 系统函数 118
6.1.3 状态 118
6.1.4 模块参数 120
6.1.5 模块采样时间 121
6.1.6 用户模块 121
6.1.7 系统和子系统 121
6.1.8 信号 122
6.1.9 模块方法和模型方法 122
6.1.10 仿真算法 123
6.2 Simulink开放式动态系统建模 124
6.3 动态系统数学模型分类 125
6.3.1 常微分方程 125
6.3.2 差分方程 126
6.3.3 组合系统 128
6.4 建立动态Simulink模型 129
6.4.1 简单系统的仿真分析 129
6.4.2 离散系统的仿真分析 133
6.4.3 线性系统仿真分析 138
6.4.4 混合系统设计分析 141
6.4.5 Simulink的调试技术 141
6.4.6 避免无效循环 143
6.4.7 建模提示 143
6.5 小结 144
第7章 Simulink仿真设置 145
7.1 仿真基础 145
7.1.1 设置仿真参数 145
7.1.2 控制仿真执行 146
7.1.3 交互运行仿真 147
7.2 设置仿真算法 148
7.2.1 设置仿真时间 148
7.2.2 设置仿真算法 148
7.2.3 设置仿真步长 154
7.2.4 计算仿真步长 157
7.2.5 设置误差容限 158
7.3 工作区输入/输出设置 159
7.3.1 从基本工作区中装载输入 161
7.3.2 把输出结果保存到工作区 164
7.3.3 装载和保存状态 166
7.3.4 设置输出选项 166
7.4 输出信号的显示 167
7.4.1 Scope模块和XY Graph模块的使用 168
7.4.2 悬浮Scope模块和Display模块的使用 169
7.4.3 返回变量的使用 171
7.4.4 To Workspace模块的使用 172
7.5 小结 173
第8章 系统过零检测及积分器使用 174
8.1 过零检测 174
8.1.1 过零检测的工作方式 174
8.1.2 过零检测的实现方式 176
8.1.3 使用过零检测 177
8.1.4 关闭过零检测 179
8.2 系统代数环的概念与解决方案 181
8.2.1 代数环概念 181
8.2.2 非代数的直接馈通环 182
8.2.3 切断代数环 183
8.2.4 消除代数环 184
8.2.5 高亮显示代数环 187
8.3 高级积分器 187
8.3.1 积分器模块参数对话框 188
8.3.2 创建自重置积分器 191
8.4 仿真诊断选项设置 193
8.4.1 仿真算法诊断设置 193
8.4.2 采样时间诊断设置 196
8.4.3 数据验证诊断设置 197
8.5 小结 201
第9章 Simulink子系统技术 202
9.1 子系统介绍 202
9.1.1 Simulink子系统定义 202
9.1.2 创建子系统 204
9.1.3 浏览层级子系统 205
9.2 高级子系统技术 207
9.2.1 使能子系统 207
9.2.2 触发子系统 214
9.2.3 触发使能子系统 218
9.2.4 创建交替执行子系统 219
9.3 控制流语句 221
9.3.1 If-else控制流语句 222
9.3.2 Switch控制流语句 224
9.3.3 While控制流语句 227
9.3.4 For控制流语句 229
9.3.5 Stateflow图和控制流语句的比较 231
9.4 小结 233
第10章 子系统封装 234
10.1 封装子系统概述 234
10.2 封装编辑器 239
10.2.1 Icon选项卡的设置 239
10.2.2 Parameters选项卡的设置 242
10.2.3 Initialization选项卡的设置 246
10.2.4 Documentation选项卡的设置 248
10.3 创建封装模块的动态对话框 249
10.3.1 设置封装模块对话框参数 249
10.3.2 预定义封装对话框参数 249
10.4 自定义库操作 253
10.4.1 建立和使用库 253
10.4.2 库连接状态 254
10.4.3 显示库关联及信息 256
10.4.4 把用户库添加到Simulink库浏览器中 257
10.5 小结 257
第11章 系统仿真过程 258
11.1 启动仿真过程 258
11.1.1 仿真入门 258
11.1.2 用菜单方式启动仿真 259
11.1.3 仿真过程诊断 259
11.2 仿真配置 260
11.2.1 求解器的概念 260
11.2.2 仿真的设置 261
11.2.3 诊断设置 265
11.3 优化仿真性能 266
11.3.1 提高仿真速度 266
11.3.2 提高仿真精度 267
11.4 小结 269
第12章 模型调试 270
12.1 模型调试 270
12.1.1 启动调试器 270
12.1.2 调试器的图形用户接口 271
12.1.3 调试器的命令行接口 272
12.1.4 调试器命令 273
12.2 调试器控制 274
12.2.1 连续运行仿真 274
12.2.2 继续仿真 274
12.2.3 单步运行仿真 275
12.3 设置断点 277
12.3.1 设置无条件断点 277
12.3.2 设置有条件断点 279
12.4 显示仿真信息 281
12.4.1 显示模块I/O 281
12.4.2 显示代数环信息 282
12.4.3 显示系统状态 282
12.4.4 显示求解器信息 283
12.5 显示模型信息 284
12.5.1 显示模型中模块的执行顺序 284
12.5.2 显示模块 285
12.6 小结 286
第13章 S-函数 287
13.1 S-函数概述 287
13.1.1 S-函数的定义 287
13.1.2 S-函数的工作方式 287
13.2 在模型中创建S-函数 290
13.2.1 在模型中使用S-函数 290
13.2.2 向S-函数中传递参数 290
13.2.3 何时使用S-函数 292
13.3 S-函数的概念 292
13.3.1 直接馈通 293
13.3.2 动态设置数组维数 293
13.3.3 设置采样时间和偏移量 294
13.4 编写M语言S-函数 295
13.4.1 M文件S-函数模板 295
13.4.2 定义S-Function模块特征 297
13.5 M文件S-函数范例 297
13.5.1 无状态M文件S-函数 297
13.5.2 连续状态S-函数 303
13.5.3 离散状态S-函数 304
13.6 小结 305
第14章 Stateflow建模与应用 306
14.1 有限状态机简介 306
14.1.1 Stateflow的定义 306
14.1.2 状态图编辑器 307
14.1.3 状态 310
14.1.4 迁移 313
14.1.5 数据与事件 316
14.1.6 对象的命名规则 318
14.2 Stateflow状态图 319
14.2.1 状态 319
14.2.2 迁移 320
14.2.3 计时器状态图 323
14.2.4 数据与事件 324
14.2.5 动作 326
14.2.6 自动创建对象 327
14.3 Stateflow流程图 330
14.3.1 流程图与节点 330
14.3.2 建立流程图 330
14.4 层次结构 334
14.4.1 层次的概念 334
14.4.2 迁移的层次 334
14.4.3 历史节点 336
14.4.4 子状态图 337
14.4.5 层次状态图中的流程图 337
14.5 并行机制 339
14.5.1 设置状态关系 339
14.5.2 并行状态活动顺序配置 339
14.5.3 本地事件广播 339
14.5.4 直接事件广播 341
14.5.5 隐含事件和条件 343
14.6 Stateflow其他对象 344
14.6.1 真值表 344
14.6.2 图形函数 344
14.6.3 图形盒 347
14.6.4 Simulink函数调用 348
14.6.5 目标 350
14.7 综合应用 353
14.7.1 计时器 353
14.7.2 交通灯 356
14.8 小结 366
第15章 控制仿真系统 367
15.1 Simulink仿真的参数设置 367
15.1.1 系统模型的实时操作与仿真参数设置 367
15.1.2 Solver选项卡的参数设置 368
15.1.3 Data Import/Export选项卡的参数设置 369
15.2 控制系统的Simulink仿真 369
15.2.1 利用Simulink系统仿真模型的仿真处理 369
15.2.2 利用Simulink动态结构图的仿真处理 374
15.3 控制系统的线性分析 378
15.3.1 滑艇动态方程及其线性化 379
15.3.2 Linear Analysis Tool 381
15.3.3 LTI系统对象 387
15.4 线性控制系统设计分析 388
15.4.1 控制系统工具箱简介 388
15.4.2 系统分析与设计简介 389
15.4.3 单输入单输出系统设计工具 390
15.5 非线性控制系统设计简介 395
15.6 小结 395
第16章 神经网络仿真系统 397
16.1 神经网络工具箱简介 397
16.1.1 神经元模型 398
16.1.2 神经网络结构 399
16.1.3 MATLAB神经网络工具箱的使用 400
16.2 感知器 406
16.2.1 感知器的网络结构 406
16.2.2 感知器的图形解释 407
16.3 BP神经网络 408
16.3.1 BP神经网络介绍 408
16.3.2 MATLAB中BP神经网络的重要函数和基本功能 410
16.4 RBF神经网络 411
16.4.1 RBF神经网络 411
16.4.2 RBF神经网络传递函数 412
16.4.3 RBF神经网络的创建与学习过程 413
16.5 自组织竞争神经网络 414
16.5.1 网络结构 414
16.5.2 竞争学习规则 416
16.5.3 竞争网络的训练过程 417
16.6 基于Simulink的神经网络模块 418
16.6.1 模块的设置 418
16.6.2 模块的生成 420
16.7 基于Simulink的神经网络控制系统 421
16.7.1 神经网络模型预测控制器 422
16.7.2 反馈线性化控制器 425
16.7.3 模型参考控制器 426
16.8 小结 430
第17章 电力仿真系统 431
17.1 同步发电机模型 431
17.1.1 同步发电机等效电路 431
17.1.2 简化同步电机模块 432
17.1.3 同步电机模块 437
17.2 电力变压器模型 444
17.2.1 三相变压器等效电路 444
17.2.2 双绕组三相变压器模块 444
17.2.3 互感线圈 451
17.2.4 其他 452
17.3 输电线路模型 453
17.3.1 输电线路等效电路 453
17.3.2 RLC串联支路模块 453
17.3.3 PI型等效电路模块 454
17.3.4 分布参数线路模块 456
17.4 负荷模型 460
17.4.1 静态负荷模块 460
17.4.2 三相动态负荷模块 461
17.4.3 异步电动机模块 462
17.5 小结 468
附录A Simulink基本模块的功能简介 469
参考文献 472