目录CONTENTS

第1 章控制系统计算机辅助设计概述1
1.1 控制问题的计算机求解演示. . . . . . . . . . . . . . . . . . . . . . . 1
1.2 控制系统计算机辅助设计技术的发展综述. . . . . . . . . . . . . . . 5
1.3 控制系统计算机辅助设计语言环境综述. . . . . . . . . . . . . . . . . 6
1.4 仿真软件的发展概况. . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 MATLAB/Simulink 与CACSD 工具箱. . . . . . . . . . . . . . . . . 11
1.6 控制系统计算机辅助设计领域方法概述. . . . . . . . . . . . . . . . . 13
1.7 本书的基本结构和内容. . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7.1 本书的基本内容. . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7.2 MATLAB 的联机帮助系统. . . . . . . . . . . . . . . . . . . . 17
1.8 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
第2 章MATLAB 语言程序设计基础23
2.1 MATLAB 程序设计语言基础. . . . . . . . . . . . . . . . . . . . . . . 24
2.1.1 MATLAB 语言的变量与常量. . . . . . . . . . . . . . . . . . 24
2.1.2 数据结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.3 MATLAB 的基本语句结构. . . . . . . . . . . . . . . . . . . . 27
2.1.4 冒号表达式. . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.5 子矩阵提取. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 基本数学运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.1 矩阵的代数运算. . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.2 矩阵的逻辑运算. . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.3 矩阵的比较运算. . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.4 超越函数计算. . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.5 符号运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.6 基本数论运算. . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3 MATLAB 语言的流程结构. . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.1 循环结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.2 条件转移结构. . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.3.3 开关结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.4 试探结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 函数编写与调试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.1 MATLAB 语言函数的基本结构. . . . . . . . . . . . . . . . . 41
2.4.2 可变输入输出个数的处理. . . . . . . . . . . . . . . . . . . . 44
2.4.3 匿名函数与inline 函数. . . . . . . . . . . . . . . . . . . . . . 44
2.4.4 伪代码与代码保密处理. . . . . . . . . . . . . . . . . . . . . . 45
2.4.5 MATLAB 程序的实时编辑器. . . . . . . . . . . . . . . . . . 45
2.5 二维图形绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.1 二维图形绘制基本语句. . . . . . . . . . . . . . . . . . . . . . 47
2.5.2 其他二维图形绘制语句. . . . . . . . . . . . . . . . . . . . . . 50
2.5.3 隐函数绘制及应用. . . . . . . . . . . . . . . . . . . . . . . . 52
2.5.4 图形修饰. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.5.5 数据文件与Excel 文件的读写. . . . . . . . . . . . . . . . . . 54
2.6 三维图形表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6.1 三维曲线绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6.2 三维曲面绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6.3 三维条带图. . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.4 三维图形视角设置. . . . . . . . . . . . . . . . . . . . . . . . 60
2.7 MATLAB 应用程序设计技术. . . . . . . . . . . . . . . . . . . . . . . 61
2.7.1 应用程序设计工具App Designer . . . . . . . . . . . . . . . . 61
2.7.2 句柄图形学及句柄对象属性. . . . . . . . . . . . . . . . . . . 63
2.7.3 界面设计举例与技巧. . . . . . . . . . . . . . . . . . . . . . . 66
2.8 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
第3 章科学运算问题的MATLAB 求解73
3.1 线性代数问题的MATLAB 求解. . . . . . . . . . . . . . . . . . . . . 74
3.1.1 矩阵的基本分析. . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.1.2 矩阵的分解. . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.1.3 矩阵指数eA 和指数函数eAt . . . . . . . . . . . . . . . . . . . 78
3.1.4 矩阵的任意函数计算. . . . . . . . . . . . . . . . . . . . . . . 79
3.2 代数方程的MATLAB 求解. . . . . . . . . . . . . . . . . . . . . . . . 79
3.2.1 线性方程求解问题及MATLAB 实现. . . . . . . . . . . . . . 79
3.2.2 一般非线性方程的求解. . . . . . . . . . . . . . . . . . . . . . 83
3.2.3 非线性矩阵方程的MATLAB 求解. . . . . . . . . . . . . . . . 85
3.3 常微分方程问题的MATLAB 求解. . . . . . . . . . . . . . . . . . . . 89
3.3.1 一阶常微分方程组的数值解法. . . . . . . . . . . . . . . . . . 89
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .? 目 录XIII
3.3.2 常微分方程的转换. . . . . . . . . . . . . . . . . . . . . . . . 91
3.3.3 微分方程数值解的验证. . . . . . . . . . . . . . . . . . . . . . 93
3.3.4 线性常微分方程的解析求解. . . . . . . . . . . . . . . . . . . 94
3.4 最优化问题的MATLAB 求解. . . . . . . . . . . . . . . . . . . . . . 95
3.4.1 无约束最优化问题求解. . . . . . . . . . . . . . . . . . . . . . 95
3.4.2 有约束最优化问题求解. . . . . . . . . . . . . . . . . . . . . . 96
3.4.3 全局最优解的尝试. . . . . . . . . . . . . . . . . . . . . . . . 97
3.4.4 最优曲线拟合方法. . . . . . . . . . . . . . . . . . . . . . . . 99
3.5 Laplace 变换与z 变换问题的MATLAB 求解. . . . . . . . . . . . . . 101
3.5.1 Laplace 变换. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.5.2 数值Laplace 变换. . . . . . . . . . . . . . . . . . . . . . . . . 102
3.5.3 z 变换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.6 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
第4 章线性控制系统的数学模型113
4.1 线性连续系统模型及MATLAB 表示. . . . . . . . . . . . . . . . . . 114
4.1.1 简单电路的数学建模. . . . . . . . . . . . . . . . . . . . . . . 114
4.1.2 线性系统的传递函数模型. . . . . . . . . . . . . . . . . . . . 115
4.1.3 线性系统的状态方程模型. . . . . . . . . . . . . . . . . . . . 117
4.1.4 带有内部延迟的状态方程模型. . . . . . . . . . . . . . . . . . 119
4.1.5 线性系统的零极点模型. . . . . . . . . . . . . . . . . . . . . . 120
4.1.6 多变量系统的传递函数矩阵模型. . . . . . . . . . . . . . . . . 121
4.2 线性离散时间系统的数学模型. . . . . . . . . . . . . . . . . . . . . . 122
4.2.1 离散传递函数模型. . . . . . . . . . . . . . . . . . . . . . . . 122
4.2.2 离散状态方程模型. . . . . . . . . . . . . . . . . . . . . . . . 123
4.3 系统模型的相互转换. . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.3.1 连续模型和离散模型的相互转换. . . . . . . . . . . . . . . . . 124
4.3.2 系统传递函数的获取. . . . . . . . . . . . . . . . . . . . . . . 126
4.3.3 控制系统的状态方程实现. . . . . . . . . . . . . . . . . . . . 127
4.3.4 状态方程的均衡实现. . . . . . . . . . . . . . . . . . . . . . . 129
4.3.5 状态方程的最小实现. . . . . . . . . . . . . . . . . . . . . . . 129
4.3.6 传递函数与符号表达式的相互转换. . . . . . . . . . . . . . . 131
4.4 方框图描述系统的化简. . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.4.1 控制系统的典型连接结构. . . . . . . . . . . . . . . . . . . . 132
4.4.2 节点移动时的等效变换. . . . . . . . . . . . . . . . . . . . . . 137
4.4.3 复杂系统模型的简化. . . . . . . . . . . . . . . . . . . . . . . 138
4.4.4 方框图化简的代数方法. . . . . . . . . . . . . . . . . . . . . . 139

4.4.5 连接矩阵的另一种生成方法. . . . . . . . . . . . . . . . . . . 142
4.5 线性系统的模型降阶. . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.5.1 Padé 降阶算法与Routh 降阶算法. . . . . . . . . . . . . . . . 143
4.5.2 时间延迟模型的Padé 近似. . . . . . . . . . . . . . . . . . . . 147
4.5.3 带有时间延迟系统的次最优降阶算法. . . . . . . . . . . . . . 148
4.5.4 状态方程模型的降阶算法. . . . . . . . . . . . . . . . . . . . 152
4.6 线性系统的模型辨识. . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.6.1 离散系统的模型辨识. . . . . . . . . . . . . . . . . . . . . . . 155
4.6.2 系统辨识的图形用户界面. . . . . . . . . . . . . . . . . . . . 158
4.6.3 辨识模型的阶次选择. . . . . . . . . . . . . . . . . . . . . . . 158
4.6.4 离散系统辨识信号的生成. . . . . . . . . . . . . . . . . . . . 161
4.6.5 连续系统的辨识. . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.6.6 多变量离散系统的辨识. . . . . . . . . . . . . . . . . . . . . . 163
4.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
第5 章线性控制系统的计算机辅助分析171
5.1 线性系统性质分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.1.1 线性系统稳定性的直接判定. . . . . . . . . . . . . . . . . . . 172
5.1.2 内部延迟系统的稳定性分析. . . . . . . . . . . . . . . . . . . 175
5.1.3 线性反馈系统的内部稳定性分析. . . . . . . . . . . . . . . . . 176
5.1.4 线性系统的线性相似变换. . . . . . . . . . . . . . . . . . . . 177
5.1.5 线性系统的可控性分析. . . . . . . . . . . . . . . . . . . . . . 178
5.1.6 线性系统的可观测性分析. . . . . . . . . . . . . . . . . . . . 181
5.1.7 Kalman 规范分解. . . . . . . . . . . . . . . . . . . . . . . . . 181
5.1.8 系统状态方程标准型的MATLAB 求解. . . . . . . . . . . . . 182
5.1.9 系统的范数测度及求解. . . . . . . . . . . . . . . . . . . . . . 185
5.2 线性系统时域响应解析解法. . . . . . . . . . . . . . . . . . . . . . . 186
5.2.1 直接积分解析解方法. . . . . . . . . . . . . . . . . . . . . . . 186
5.2.2 基于增广矩阵的解析解方法. . . . . . . . . . . . . . . . . . . 187
5.2.3 基于Laplace 变换、z 变换的解析解方法. . . . . . . . . . . . . 189
5.2.4 阶跃响应指标. . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.3 线性系统的数值仿真分析. . . . . . . . . . . . . . . . . . . . . . . . 192
5.3.1 线性系统的阶跃响应与脉冲响应. . . . . . . . . . . . . . . . . 192
5.3.2 任意输入下系统的响应. . . . . . . . . . . . . . . . . . . . . . 197
5.3.3 非零初始状态下系统的时域响应. . . . . . . . . . . . . . . . . 199
5.3.4 非正则系统的时域响应. . . . . . . . . . . . . . . . . . . . . . 200
5.3.5 面向对象的时域响应曲线绘制. . . . . . . . . . . . . . . . . . 200
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .? 目 录XV
5.4 根轨迹分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
5.4.1 一般系统的根轨迹分析. . . . . . . . . . . . . . . . . . . . . . 201
5.4.2 正反馈系统的根轨迹. . . . . . . . . . . . . . . . . . . . . . . 204
5.4.3 延迟系统的根轨迹. . . . . . . . . . . . . . . . . . . . . . . . 205
5.4.4 系统对参数的根轨迹. . . . . . . . . . . . . . . . . . . . . . . 207
5.5 线性系统频域分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
5.5.1 单变量系统的频域分析. . . . . . . . . . . . . . . . . . . . . . 208
5.5.2 带有内部延迟模型的频域响应分析. . . . . . . . . . . . . . . 212
5.5.3 利用频率特性分析系统的稳定性. . . . . . . . . . . . . . . . . 213
5.5.4 系统的幅值裕度和相位裕度. . . . . . . . . . . . . . . . . . . 214
5.6 多变量系统的频域分析. . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.6.1 多变量系统频域分析概述. . . . . . . . . . . . . . . . . . . . 215
5.6.2 多变量系统对角占优分析. . . . . . . . . . . . . . . . . . . . 217
5.6.3 多变量系统的奇异值曲线绘制. . . . . . . . . . . . . . . . . . 221
5.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
第6 章非线性控制系统的建模与仿真227
6.1 Simulink 建模的基础知识. . . . . . . . . . . . . . . . . . . . . . . . 228
6.1.1 Simulink 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.1.2 Simulink 下常用模块简介. . . . . . . . . . . . . . . . . . . . 229
6.1.3 Simulink 下其他工具箱的模块组. . . . . . . . . . . . . . . . . 234
6.2 Simulink 建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . . 235
6.2.1 Simulink 建模方法简介. . . . . . . . . . . . . . . . . . . . . . 235
6.2.2 仿真算法与控制参数选择. . . . . . . . . . . . . . . . . . . . 239
6.2.3 Simulink 仿真举例. . . . . . . . . . . . . . . . . . . . . . . . 242
6.3 控制系统的Simulink 建模与仿真实例. . . . . . . . . . . . . . . . . . 244
6.4 非线性系统分析与仿真. . . . . . . . . . . . . . . . . . . . . . . . . . 252
6.4.1 分段线性的非线性环节. . . . . . . . . . . . . . . . . . . . . . 252
6.4.2 非线性系统的极限环研究. . . . . . . . . . . . . . . . . . . . 255
6.4.3 非线性系统的线性化. . . . . . . . . . . . . . . . . . . . . . . 256
6.4.4 非线性系统的稳定性分析. . . . . . . . . . . . . . . . . . . . 260
6.5 子系统与模块封装技术. . . . . . . . . . . . . . . . . . . . . . . . . . 261
6.5.1 子系统概念及构成方法. . . . . . . . . . . . . . . . . . . . . . 261
6.5.2 模块封装方法. . . . . . . . . . . . . . . . . . . . . . . . . . . 262
6.5.3 模块集构造. . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
6.6 S-函数编写及其应用. . . . . . . . . . . . . . . . . . . . . . . . . . . 267
6.6.1 M-函数模块的基本结构. . . . . . . . . . . . . . . . . . . . . 267

6.6.2 复杂系统的Simulink 建模演示. . . . . . . . . . . . . . . . . . 268
6.6.3 S-函数的基本结构. . . . . . . . . . . . . . . . . . . . . . . . 268
6.6.4 用MATLAB 编写S-函数举例. . . . . . . . . . . . . . . . . . 270
6.6.5 S-函数的封装. . . . . . . . . . . . . . . . . . . . . . . . . . . 273
6.7 多领域物理建模入门. . . . . . . . . . . . . . . . . . . . . . . . . . . 273
6.7.1 数学建模的局限性. . . . . . . . . . . . . . . . . . . . . . . . 274
6.7.2 Simscape 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.7.3 电气系统的建模与仿真. . . . . . . . . . . . . . . . . . . . . . 276
6.7.4 机械系统的建模与仿真. . . . . . . . . . . . . . . . . . . . . . 277
6.8 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
第7 章控制系统的经典设计方法287
7.1 超前滞后校正器设计方法. . . . . . . . . . . . . . . . . . . . . . . . 288
7.1.1 串联超前滞后校正器. . . . . . . . . . . . . . . . . . . . . . . 288
7.1.2 超前滞后校正器的设计方法. . . . . . . . . . . . . . . . . . . 289
7.2 基于状态空间模型的控制器设计方法. . . . . . . . . . . . . . . . . . 293
7.2.1 状态反馈控制. . . . . . . . . . . . . . . . . . . . . . . . . . . 293
7.2.2 线性二次型指标最优调节器. . . . . . . . . . . . . . . . . . . 294
7.2.3 极点配置控制器设计. . . . . . . . . . . . . . . . . . . . . . . 296
7.2.4 观测器设计及基于观测器的调节器设计. . . . . . . . . . . . . 299
7.3 最优控制器设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
7.3.1 最优控制的概念. . . . . . . . . . . . . . . . . . . . . . . . . . 303
7.3.2 传统最优控制可能存在的误区. . . . . . . . . . . . . . . . . . 303
7.3.3 基于数值最优化与Simulink 的最优控制器设计. . . . . . . . . 305
7.3.4 快速重启与优化过程的实时显示. . . . . . . . . . . . . . . . . 306
7.3.5 非线性系统的最优控制器设计. . . . . . . . . . . . . . . . . . 307
7.3.6 性能指标的合理性. . . . . . . . . . . . . . . . . . . . . . . . 308
7.3.7 终止仿真时间的选择. . . . . . . . . . . . . . . . . . . . . . . 310
7.4 最优控制应用程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
7.4.1 基于MATLAB/Simulink 的最优控制程序及其应用. . . . . . 311
7.4.2 最优控制程序的其他应用. . . . . . . . . . . . . . . . . . . . 313
7.4.3 开放的程序框架. . . . . . . . . . . . . . . . . . . . . . . . . . 314
7.4.4 PID 型控制器最好的二阶控制器结构. . . . . . . . . . . . 315
7.5 多变量系统的频域设计方法. . . . . . . . . . . . . . . . . . . . . . . 316
7.5.1 对角占优系统与伪对角化. . . . . . . . . . . . . . . . . . . . 317
7.5.2 多变量系统的参数最优化设计. . . . . . . . . . . . . . . . . . 321
7.5.3 基于OCD 的多变量系统最优设计. . . . . . . . . . . . . . . . 327
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .? 目 录XVII
7.6 多变量系统的解耦控制. . . . . . . . . . . . . . . . . . . . . . . . . . 328
7.6.1 状态反馈解耦控制. . . . . . . . . . . . . . . . . . . . . . . . 329
7.6.2 状态反馈的极点配置解耦系统. . . . . . . . . . . . . . . . . . 330
7.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
第8 章PID 控制器的参数整定339
8.1 PID 控制器设计概述. . . . . . . . . . . . . . . . . . . . . . . . . . . 340
8.1.1 连续PID 控制器. . . . . . . . . . . . . . . . . . . . . . . . . 340
8.1.2 离散PID 控制器. . . . . . . . . . . . . . . . . . . . . . . . . 342
8.1.3 PID 控制器的变形. . . . . . . . . . . . . . . . . . . . . . . . 343
8.2 过程受控对象的一阶延迟模型近似. . . . . . . . . . . . . . . . . . . 344
8.2.1 由响应曲线识别一阶模型. . . . . . . . . . . . . . . . . . . . 344
8.2.2 基于频域响应的近似方法. . . . . . . . . . . . . . . . . . . . 346
8.2.3 基于传递函数的辨识方法. . . . . . . . . . . . . . . . . . . . 347
8.2.4 最优降阶方法. . . . . . . . . . . . . . . . . . . . . . . . . . . 347
8.3 FOPDT 模型的PID 控制器参数整定. . . . . . . . . . . . . . . . . . 348
8.3.1 Ziegler–Nichols 经验公式. . . . . . . . . . . . . . . . . . . . . 348
8.3.2 改进的Ziegler–Nichols 算法. . . . . . . . . . . . . . . . . . . 350
8.3.3 改进PID 控制结构与算法. . . . . . . . . . . . . . . . . . . . 352
8.3.4 Chien–Hrones–Reswick 参数整定算法. . . . . . . . . . . . . . 355
8.3.5 最优PID 整定经验公式. . . . . . . . . . . . . . . . . . . . . . 356
8.4 其他受控对象模型的控制器参数整定. . . . . . . . . . . . . . . . . . 359
8.4.1 IPD 模型的PD 和PID 参数整定. . . . . . . . . . . . . . . . . 359
8.4.2 FOLIPD 模型的PD 和PID 参数整定. . . . . . . . . . . . . . 359
8.4.3 不稳定FOPDT 模型的PID 参数整定. . . . . . . . . . . . . . 361
8.4.4 交互式PID 类控制器整定程序界面. . . . . . . . . . . . . . . 361
8.5 OptimPID 最优PID 控制器设计程序. . . . . . . . . . . . . . . . 365
8.5.1 控制系统的底层仿真模型. . . . . . . . . . . . . . . . . . . . 365
8.5.2 OptimPID 程序举例. . . . . . . . . . . . . . . . . . . . . . . 366
8.5.3 开放框架与程序扩展. . . . . . . . . . . . . . . . . . . . . . . 369
8.6 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
第9 章鲁棒控制与鲁棒控制器设计373
9.1 线性二次型Gauss 控制. . . . . . . . . . . . . . . . . . . . . . . . . . 374
9.1.1 线性二次型Gauss 问题. . . . . . . . . . . . . . . . . . . . . . 374
9.1.2 使用MATLAB 求解LQG 问题. . . . . . . . . . . . . . . . . . 374

9.1.3 带有回路传输恢复的LQG 控制. . . . . . . . . . . . . . . . . 378
9.2 鲁棒控制问题的一般描述. . . . . . . . . . . . . . . . . . . . . . . . 382
9.2.1 小增益定理. . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
9.2.2 鲁棒控制器的结构. . . . . . . . . . . . . . . . . . . . . . . . 383
9.2.3 回路成型的一般描述. . . . . . . . . . . . . . . . . . . . . . . 385
9.2.4 鲁棒控制系统的MATLAB 描述. . . . . . . . . . . . . . . . . 386
9.3 基于范数的鲁棒控制器设计. . . . . . . . . . . . . . . . . . . . . . . 389
9.3.1 H∞、H2 鲁棒控制器设计方法. . . . . . . . . . . . . . . . . . 389
9.3.2 其他鲁棒控制器设计函数. . . . . . . . . . . . . . . . . . . . 394
9.4 线性矩阵不等式理论与求解. . . . . . . . . . . . . . . . . . . . . . . 398
9.4.1 线性矩阵不等式的一般描述. . . . . . . . . . . . . . . . . . . 398
9.4.2 线性矩阵不等式问题的MATLAB 求解. . . . . . . . . . . . . 402
9.4.3 基于YALMIP 工具箱的最优化求解方法. . . . . . . . . . . . 404
9.4.4 多线性模型的同时镇定问题. . . . . . . . . . . . . . . . . . . 405
9.4.5 基于LMI 的鲁棒最优控制器设计. . . . . . . . . . . . . . . . 406
9.5 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
第10 章自适应与智能控制系统设计411
10.1 自适应控制系统设计. . . . . . . . . . . . . . . . . . . . . . . . . . . 412
10.1.1 模型参考自适应系统的设计与仿真. . . . . . . . . . . . . . . 412
10.1.2 自校正控制器设计与仿真. . . . . . . . . . . . . . . . . . . . 417
10.2 自抗扰控制器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
10.2.1 扩张状态观测器的建模. . . . . . . . . . . . . . . . . . . . . . 422
10.2.2 自抗扰控制器的建模. . . . . . . . . . . . . . . . . . . . . . . 423
10.2.3 自抗扰控制系统的仿真. . . . . . . . . . . . . . . . . . . . . . 424
10.3 模型预测控制系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
10.3.1 动态矩阵控制. . . . . . . . . . . . . . . . . . . . . . . . . . . 427
10.3.2 基于MATLAB 的模型预测控制实现. . . . . . . . . . . . . . 429
10.3.3 预测控制的Simulink 仿真. . . . . . . . . . . . . . . . . . . . 434
10.3.4 广义预测控制系统与仿真. . . . . . . . . . . . . . . . . . . . 436
10.4 模糊控制及模糊控制器设计. . . . . . . . . . . . . . . . . . . . . . . 438
10.4.1 模糊逻辑与模糊推理. . . . . . . . . . . . . . . . . . . . . . . 439
10.4.2 模糊PD 控制器设计. . . . . . . . . . . . . . . . . . . . . . . 440
10.4.3 模糊PID 控制器设计. . . . . . . . . . . . . . . . . . . . . . . 444
10.5 神经网络及神经网络控制器设计. . . . . . . . . . . . . . . . . . . . . 447
10.5.1 神经网络简介. . . . . . . . . . . . . . . . . . . . . . . . . . . 448
10.5.2 基于单个神经元的PID 控制器设计. . . . . . . . . . . . . . . 449
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .? 目 录XIX
10.5.3 基于反向传播神经网络的PID 控制器. . . . . . . . . . . . . . 451
10.5.4 基于径向基函数的神经网络PID 控制器. . . . . . . . . . . . . 453
10.6 迭代学习控制系统仿真. . . . . . . . . . . . . . . . . . . . . . . . . . 455
10.6.1 迭代学习控制原理. . . . . . . . . . . . . . . . . . . . . . . . 456
10.6.2 迭代学习控制算法. . . . . . . . . . . . . . . . . . . . . . . . 458
10.7 全局最优控制器设计. . . . . . . . . . . . . . . . . . . . . . . . . . . 462
10.7.1 遗传算法简介. . . . . . . . . . . . . . . . . . . . . . . . . . . 462
10.7.2 基于遗传算法的最优化问题求解. . . . . . . . . . . . . . . . . 463
10.7.3 粒子群算法与其他全局最优化方法. . . . . . . . . . . . . . . 465
10.7.4 基于全局优化算法的最优控制问题求解. . . . . . . . . . . . . 465
10.8 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
第11 章分数阶控制系统的分析与设计473
11.1 分数阶微积分定义与性质. . . . . . . . . . . . . . . . . . . . . . . . 475
11.1.1 分数阶微积分的定义. . . . . . . . . . . . . . . . . . . . . . . 475
11.1.2 分数阶微积分的性质. . . . . . . . . . . . . . . . . . . . . . . 476
11.1.3 Mittag-Leffler 函数与计算. . . . . . . . . . . . . . . . . . . . 477
11.2 分数阶微积分的数值计算. . . . . . . . . . . . . . . . . . . . . . . . 478
11.2.1 用Grünwald–Letnikov 定义求解分数阶微分. . . . . . . . . . 479
11.2.2 Caputo 微积分定义的数值计算. . . . . . . . . . . . . . . . . 481
11.2.3 Oustaloup 滤波算法及其应用. . . . . . . . . . . . . . . . . . 482
11.2.4 Caputo 导数的滤波器近似. . . . . . . . . . . . . . . . . . . . 485
11.3 线性分数阶微分方程的解析解方法. . . . . . . . . . . . . . . . . . . 485
11.3.1 一类分数阶线性系统时域响应解析解方法. . . . . . . . . . . 486
11.3.2 一些重要的Laplace 变换公式. . . . . . . . . . . . . . . . . . 486
11.3.3 成比例分数阶线性微分方程的解析解法. . . . . . . . . . . . . 487
11.4 分数阶微分方程的数值方法. . . . . . . . . . . . . . . . . . . . . . . 488
11.4.1 零初值分数阶线性微分方程的解法. . . . . . . . . . . . . . . 488
11.4.2 非零初值Caputo 微分方程的数值求解. . . . . . . . . . . . . 490
11.4.3 非零初值非线性Caputo 微分方程的数值求解. . . . . . . . . 491
11.4.4 基于框图的非线性分数阶微分方程近似解法. . . . . . . . . . 493
11.5 分数阶传递函数建模与分析. . . . . . . . . . . . . . . . . . . . . . . 497
11.5.1 分数阶传递函数的数学模型. . . . . . . . . . . . . . . . . . . 498
11.5.2 类的定义与输入. . . . . . . . . . . . . . . . . . . . . . . . . . 498
11.5.3 分数阶状态方程的处理. . . . . . . . . . . . . . . . . . . . . . 501
11.5.4 系统建模的重载函数. . . . . . . . . . . . . . . . . . . . . . . 501
11.5.5 分数阶系统分析. . . . . . . . . . . . . . . . . . . . . . . . . . 502

11.6 分数阶PID 控制器设计. . . . . . . . . . . . . . . . . . . . . . . . . . 506
11.6.1 分数阶PID 控制器的数学描述. . . . . . . . . . . . . . . . . . 507
11.6.2 无延迟受控对象的控制器设计. . . . . . . . . . . . . . . . . . 507
11.6.3 有延迟受控对象的控制器设计. . . . . . . . . . . . . . . . . . 508
11.6.4 最优分数阶PID 控制器的设计界面. . . . . . . . . . . . . . . 510
11.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
第12 章半实物仿真与实时控制517
12.1 dSPACE 简介与常用模块. . . . . . . . . . . . . . . . . . . . . . . . 518
12.2 Quanser 简介与常用模块. . . . . . . . . . . . . . . . . . . . . . . . . 519
12.2.1 Quanser 常用模块简介. . . . . . . . . . . . . . . . . . . . . . 519
12.2.2 Quanser 旋转运动控制系列实验受控对象简介. . . . . . . . . 521
12.3 半实物仿真与实时控制实例. . . . . . . . . . . . . . . . . . . . . . . 522
12.3.1 受控对象的数学描述与仿真研究. . . . . . . . . . . . . . . . . 522
12.3.2 Quanser 实时控制实验. . . . . . . . . . . . . . . . . . . . . . 524
12.3.3 dSPACE 实时控制实验. . . . . . . . . . . . . . . . . . . . . . 526
12.4 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
附录A 常用受控对象的实际系统模型529
A.1 著名的基准测试问题. . . . . . . . . . . . . . . . . . . . . . . . . . . 529
A.1.1 F-14 战斗机中的控制问题. . . . . . . . . . . . . . . . . . . . 529
A.1.2 ACC 基准测试模型. . . . . . . . . . . . . . . . . . . . . . . . 530
A.2 其他工程控制问题的数学模型. . . . . . . . . . . . . . . . . . . . . . 531
A.2.1 伺服控制系统模型. . . . . . . . . . . . . . . . . . . . . . . . 531
A.2.2 倒立摆问题的数学模型. . . . . . . . . . . . . . . . . . . . . . 532
A.2.3 AIRC 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
A.3 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
附录B 本书设计的控制器模块集535
术语索引537
函数名索引549