第一章 MATLAB基础 1
1.1 MATLAB简介 1
1.1.1 MATLAB的发展历程 1
1.1.2 MATLAB平台的组成 2
1.1.3 MATLAB语言的特点 3
1.2 MATLAB的安装和使用 4
1.2.1 MATLAB的安装 4
1.2.2 MATLAB操作界面 5
1.3 MATLAB的工作空间 8
1.3.1 工作空间 8
1.3.2 内存变量的查阅和删除 8
1.3.3 数组编辑器 9
1.3.4 数据文件的操作 10
1.4 MATLAB的帮助系统 11
1.4.1 普通文本帮助 11
1.4.2 超文本帮助 12
1.5 MATLAB平台的系统设置 13
1.5.1 路径设置 13
1.5.2 个性选项 14
1.6 MATLAB编程基础 14
1.6.1 变量 15
1.6.2 基本数据类型 15
1.6.3 基本语句 15
1.6.4 关于程序编辑 16
小结 16
习题 16
第二章 数据结构及其运算 17
2.1 数据类型 17
2.2 一维数组 18
2.2.1 一维数组的创建 18
2.2.2 一维数组的访问 19
2.3 二维数组 20
2.3.1 二维数组的创建 20
2.3.2 二维数组的访问 20
2.4 多维数组 23
2.4.1 多维数组的创建 23
2.4.2 多维数组的访问 24
2.5 数组操作 25
2.5.1 标准数组的生成 25
2.5.2 数组操作 27
2.6 数组运算与矩阵运算 30
2.6.1 数组运算 30
2.6.2 矩阵运算 31
2.6.3 特殊的运算结果 33
2.7 多项式 33
2.7.1 多项式的创建 34
2.7.2 多项式的运算 34
2.8 关系运算、逻辑运算和运算符 36
2.8.1 逻辑值 36
2.8.2 关系运算符 36
2.8.3 逻辑运算符 37
2.8.4 逻辑函数 37
2.8.5 运算符及其优先级 39
2.9 字符串数组 40
2.9.1 字符与字符串 40
2.9.2 字符串数组的访问 41
2.9.3 字符串转换函数 41
2.9.4 字符串操作函数 41
2.10 细胞数组 42
2.10.1 细胞数组的数据结构 42
2.10.2 细胞数组的访问 42
2.11 结构体数组 44
2.11.1 结构体数组的数据结构 44
2.11.2 结构体数据的访问 44
2.11.3 结构体数组的创建 44
小结 46
习题 46
第三章 数据的可视化 48
3.1 数据可视化基础 48
3.1.1 图形窗口 48
3.1.2 离散数据的准备 49
3.1.3 数据可视化的基本步骤 50
3.2 二维图形 50
3.2.1 基本二维图形 51
3.2.2 绘图属性控制 52
3.2.3 绘图窗口的属性控制 53
3.2.4 图形标注 54
3.2.5 图形交互命令 56
3.3 三维图形 56
3.3.1 基本三维图形 56
3.3.2 三维网线和曲面 57
3.4 常用函数的绘图 58
3.4.1 一元函数的绘图 58
3.4.2 二元函数的绘图 59
3.5 数据可视化的其他方面 60
3.5.1 特殊图形 60
3.5.2 三维图形的精细控制 60
3.5.3 图像 61
小结 61
习题 61
第四章 M文件和程序设计 63
4.1 程序控制语句 63
4.1.1 分支控制 63
4.1.2 循环控制 65
4.1.3 异常检测 66
4.1.4 人机交互控制 67
4.1.5 其他程序流控制语句 67
4.2 命令文件和函数文件 68
4.2.1 命令文件 68
4.2.2 函数文件 69
4.2.3 函数文件的组成 69
4.2.4 函数的输入和输出变量 70
4.2.5 有关工作空间 73
4.2.6 子函数和私有函数 74
4.3 字符串的求值 75
4.3.1 字符串表达式计算 75
4.3.2 字符串函数计算 76
4.3.3 内联函数 76
4.4 程序性能优化 79
4.4.1 源代码级的优化 79
4.4.2 程序加速器 80
4.5 面向对象编程 80
4.5.1 类和对象 81
4.5.2 属性和方法 81
4.5.3 构造函数 81
4.5.4 重载 81
4.5.5 继承 82
4.5.6 创建新类 82
小结 82
习题 82
第五章 数值计算 84
5.1 线性代数 84
5.1.1 LU分解 84
5.1.2 特征值和特征向量 85
5.1.3 奇异值分解 86
5.1.4 线性方程组的解 86
5.2 函数分析 88
5.2.1 函数的零点 88
5.2.2 函数的极值点 90
5.2.3 数值微分 91
5.2.4 数值积分 91
5.3 数据拟合 93
5.3.1 多项式拟合 93
5.3.2 最小二乘拟合 94
5.4 插值和样条 96
5.4.1 插值 96
5.4.2 样条 97
5.5 常微分方程的数值解 99
5.5.1 ODE文件的编写 99
5.5.2 solver解算指令 99
小结 101
习题 102
第六章 符号计算 103
6.1 符号对象的创建 103
6.1.1 符号对象的生成 103
6.1.2 符号常量 103
6.1.3 符号变量与符号表达式 104
6.1.4 符号数学函数 105
6.1.5 符号数值计算的精度 106
6.1.6 符号对象与其他数据类型之间的转换 107
6.2 符号对象的代数运算 108
6.2.1 符号对象的运算 108
6.2.2 符号表达式分解、展开与化简 109
6.2.3 符号表达式的置换操作 110
6.2.4 符号函数的反函数 111
6.2.5 符号函数的复合函数 111
6.3 符号微积分 112
6.3.1 符号微分和雅可比矩阵 112
6.3.2 函数极限 113
6.3.3 符号积分 113
6.3.4 符号序列求和 114
6.4 符号方程求解 115
6.4.1 符号代数方程组的解 115
6.4.2 符号微分方程 116
6.5 积分变换 117
6.5.1 博里叶变换及其反变换 117
6.5.2 拉普拉斯变换及其反变换 118
6.5.3 z变换及其反变换 118
6.6 Maple的应用 119
6.6.1 经典特殊函数的调用 119
6.6.2 Maple函数的调用 120
6.6.3 Maple工具的帮助系统 120
小结 121
习题 121
第七章 Simulink基础 122
7.1 Simulnk简介 122
7.2 Simulink的基本操作 123
7.2.1 Simulink的运行 123
7.2.2 常用的标准模块 123
7.2.3 模块的操作 124
7.3 系统仿真及参数设置 127
7.3.1 算法设置 127
7.3.2 工作空间设置 128
7.4 Simulink模块库 130
7.4.1 信号源模块库 130
7.4.2 连续系统模块库 131
7.4.3 离散系统模块库 132
7.4.4 数学运算模块库 133
7.4.5 输出模块库 134
7.4.6 非线性系统模块库 135
7.5 Simulink子系统 135
7.5.1 Simulink子系统简介 135
7.5.2 Simulink高级子系统应用 138
7.5.3 封装子系统 138
7.6 S函数的建立 146
7.6.1 S函数的调用格式 146
7.6.2 S函数的模板格式 147
小结 150
习题 150
第八章 控制系统的数学模型 152
8.1 线性定常系统的数学模型 152
8.1.1 传递函数模型 152
8.1.2 零极点模型 153
8.1.3 状态空间模型 155
8.1.4 频率响应数据模型 156
8.1.5 离散系统的数学模型 156
8.1.6 随机生成稳定的控制系统 157
8.2 LTI模型的属性 157
8.2.1 LTI模型的属性描述 157
8.2.2 访问LTI模型的属性 161
8.3 数学模型之间的转换 162
8.3.1 LTI对象之间的转换 162
8.3.2 LIT对象属性之间的转换 162
8.3.3 连续系统和离散系统之间的转换 163
8.4 系统模型的运算 165
8.4.1 子系统 165
8.4.2 数学运算符 165
8.4.3 系统组合 166
8.5 数学模型的分析函数 171
8.5.1 模型分析函数 171
8.5.2 模型分析举例 172
小结 175
习题 175
第九章 控制系统的分析 177
9.1 线性系统的时域响应 177
9.1.1 单位阶跃响应 177
9.1.2 理想单位脉冲响应 182
9.1.3 零输入响应 183
9.1.4 任意输入响应 184
9.2 线性系统的根轨迹 186
9.2.1 根轨迹绘制 186
9.2.2 计算根轨迹增益 186
9.3 线性系统的频域响应 188
9.3.1 奈奎斯特(Nyquist)图 188
9.3.2 伯德(Bode)图 189
9.3.3 幅值和相角裕度计算 190
9.3.4 尼柯尔斯(Nichols)图 194
9.4 线性系统的稳定性分析 194
9.4.1 直接判定方法 194
9.4.2 间接判定方法 195
9.5 离散系统的分析 197
小结 199
习题 199
第十章 基于传递函数模型的控制系统设计 200
10.1 概述 200
10.2 根轨迹法 201
10.2.1 串联超前校正 201
10.2.2 串联滞后校正 207
10.3 伯德图法 211
10.3.1 串联超前校正 211
10.3.2 串联滞后校正 215
10.3.3 串联超前-滞后校正 221
10.3.4 反馈校正 223
10.4 PID控制 228
10.4.1 比例、积分、微分控制作用的分析 228
10.4.2 齐格勒-尼柯尔斯(Ziegler-Nichols)整定法则 235
小结 240
习题 241
第十一章 基于状态空间模型的控制系统设计 242
11.1 概述 242
11.2 极点配置 243
11.2.1 单输入系统的极点配置 244
11.2.2 多输入系统的极点配置 244
11.2.3 用极点配置设计调节系统 246
11.2.4 用极点配置设计伺服系统 248
11.3 线性二次型最优控制 255
11.3.1 无限时间LQ状态调节问题 255
11.3.2 无限时间LQ输出调节问题 258
11.3.3 最优跟踪问题 259
11.4 解耦控制 261
11.4.1 输入-输出动态解耦 262
11.4.2 输入-输出静态解耦 263
11.5 状态观测器设计 264
11.5.1 全维状态观测器设计 265
11.5.2 降维状态观测器设计 267
11.6 包含状态观测器的状态反馈控制系统 270
11.6.1 基于全维状态观测器的控制器 271
11.6.2 基于全维状态观测器的调节器 273
小结 278
习题 278
第十二章 控制系统仿真 280
12.1 状态空间法仿真 280
12.1.1 四阶龙格-库塔法 280
12.1.2 闭环模型的建立 281
12.2 非线性环节的仿真 284
12.2.1 饱和非线性环节仿真 284
12.2.2 死区非线性环节仿真 285
12.2.3 间隙非线性环节仿真 285
12.3 离散系统仿真 287
12.3.1 差分方程法 287
12.3.2 z变换法 289
12.4 典型环节的Simulink仿真 291
12.4.1 带延迟环节系统的Simulink仿真 291
12.4.2 含非线性环节系统的Simulink仿真 292
12.4.3 离散系统的Simulink仿真 295
小结 296
习题 297
第十三章 控制系统工具箱 299
13.1 线性时不变系统浏览器—LTI Viewer 299
13.1.1 LTI Viewer简介 299
13.1.2 LTI Viewer命令菜单及窗口设置 299
13.1.3 LTI Viewer对象模型 302
13.1.4 LTI Viewer属性设置 302
13.2 单输入、单输出系统设计工具—SISO Design Tool 305
13.2.1 SISO Design Tool简介 305
13.2.2 SISO Design Tool命令菜单简介 306
小结 317
习题 317
第十四章 控制系统建模与仿真的应用 318
14.1 数字PID控制器的仿真 318
14.2 一级倒立摆系统的控制与仿真 320
14.2.1 系统建模 320
14.2.2 模型仿真 321
14.2.3 PID控制器设计及仿真 325
14.2.4 LQR控制器设计及仿真 328
14.3 二级倒立摆系统的控制与仿真 332
14.3.1 系统建模 332
14.3.2 LQR控制器设计及仿真 336
14.3.3 数字再设计 339
14.4 双闭环调速系统的设计与仿真 348
14.4.1 系统建模 348
14.4.2 控制器设计 349
14.4.3 系统仿真 349
14.5 过程控制系统的仿真 352
14.5.1 系统建模 353
14.5.2 控制器参数整定 354
14.5.3 系统仿真 358
小结 359
习题 359
附录A MATLAB常用命令 361
附录B 控制系统工具箱 367
附录C Simulink仿真系统模块库 370
附录D 部分源程序清单 373
参考文献 383