第1章 控制系统计算机辅助设计概述 1
1.1 控制系统计算机辅助设计技术的发展综述. . . . . . . . . . . . . 1
1.2 控制系统计算机辅助设计语言环境综述. . . . . . . . . . . . . . . 2
1.3 仿真软件的发展概况. . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 MATLAB/Simulink与CACSD工具箱. . . . . . . . . . . . . . 7
1.5 控制系统计算机辅助设计领域的新方法. . . . . . . . . . . . . . . 9
1.6 本书的基本结构和内容. . . . . . . . . . . . . . . . . . . . . . . 10
1.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
第2章 MATLAB语言程序设计基础17
2.1 MATLAB程序设计语言基础. . . . . . . . . . . . . . . . . . . . 18
2.1.1 MATLAB语言的变量与常量. . . . . . . . . . . . . . . . . . . 18
2.1.2 数据结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3 MATLAB的基本语句结构. . . . . . . . . . . . . . . . . . . . . 20
2.1.4 冒号表达式与子矩阵提取. . . . . . . . . . . . . . . . . . . . . 22
2.2 基本数学运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 矩阵的代数运算. . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 矩阵的逻辑运算. . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 矩阵的比较运算. . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.4 解析结果的化简与变换. . . . . . . . . . . . . . . . . . . . . . . 26
2.2.5 基本数论运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 MATLAB语言的流程结构. . . . . . . . . . . . . . . . . . . . . 29
2.3.1 循环结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2 条件转移结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.3 开关结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.4 试探结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4 函数编写与调试. . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.1 MATLAB语言函数的基本结构. . . . . . . . . . . . . . . . . . 34
2.4.2 可变输入输出个数的处理. . . . . . . . . . . . . . . . . . . . . 38
2.4.3 inline函数与匿名函数. . . . . . . . . . . . . . . . . . . . . . . 38
2.5 二维图形绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.1 二维图形绘制基本语句. . . . . . . . . . . . . . . . . . . . . . . 39
2.5.2 其他二维图形绘制语句. . . . . . . . . . . . . . . . . . . . . . . 42
2.5.3 隐函数绘制及应用. . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.4 图形修饰. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6 三维图形表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.6.1 三维曲线绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.6.2 三维曲面绘制. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6.3 三维图形视角设置. . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7 MATLAB语言与现代科学运算. . . . . . . . . . . . . . . . . . . 52
2.7.1 线性代数问题的MATLAB求解. . . . . . . . . . . . . . . . . . 52
2.7.2 常微分方程问题的MATLAB求解. . . . . . . . . . . . . . . . 58
2.7.3 最优化问题的MATLAB求解. . . . . . . . . . . . . . . . . . . 63
2.8 本章要点简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.9 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
第3章 线性控制系统的数学模型73
3.1 线性连续系统模型及MATLAB表示. . . . . . . . . . . . . . . . 74
3.1.1 线性系统的传递函数模型. . . . . . . . . . . . . . . . . . . . . 74
3.1.2 线性系统的状态方程模型. . . . . . . . . . . . . . . . . . . . . 77
3.1.3 线性系统的零极点模型. . . . . . . . . . . . . . . . . . . . . . . 78
3.1.4 多变量系统的传递函数矩阵模型. . . . . . . . . . . . . . . . . 79
3.2 线性离散时间系统的数学模型. . . . . . . . . . . . . . . . . . . . 80
3.2.1 离散传递函数模型. . . . . . . . . . . . . . . . . . . . . . . . . 80
3.2.2 离散状态方程模型. . . . . . . . . . . . . . . . . . . . . . . . . 82
3.3 方框图描述系统的化简. . . . . . . . . . . . . . . . . . . . . . . 83
3.3.1 控制系统的典型连接结构. . . . . . . . . . . . . . . . . . . . . 83
3.3.2 节点移动时的等效变换. . . . . . . . . . . . . . . . . . . . . . . 86
3.3.3 复杂系统模型的简化. . . . . . . . . . . . . . . . . . . . . . . . 87
3.4 系统模型的相互转换. . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4.1 连续模型和离散模型的相互转换. . . . . . . . . . . . . . . . . 89
3.4.2 系统传递函数的获取. . . . . . . . . . . . . . . . . . . . . . . . 92
3.4.3 控制系统的状态方程实现. . . . . . . . . . . . . . . . . . . . . 93
3.4.4 状态方程的最小实现. . . . . . . . . . . . . . . . . . . . . . . . 94
3.4.5 传递函数与符号表达式的相互转换. . . . . . . . . . . . . . . . 95
3.5 线性系统的模型降阶. . . . . . . . . . . . . . . . . . . . . . . . . 96
3.5.1 Padé降阶算法与Routh降阶算法. . . . . . . . . . . . . . . . . 96
3.5.2 时间延迟模型的Padé近似. . . . . . . . . . . . . . . . . . . . . 99
3.5.3 带有时间延迟系统的次最优降阶算法. . . . . . . . . . . . . . . 100
3.5.4 状态方程模型的降阶算法. . . . . . . . . . . . . . . . . . . . . 103
3.6 线性系统的模型辨识. . . . . . . . . . . . . . . . . . . . . . . . . 105
3.6.1 离散系统的模型辨识. . . . . . . . . . . . . . . . . . . . . . . . 105
3.6.2 离散系统辨识信号的生成. . . . . . . . . . . . . . . . . . . . . 110
3.6.3 多变量离散系统的辨识. . . . . . . . . . . . . . . . . . . . . . . 112
3.6.4 离散系统的递推最小二乘辨识. . . . . . . . . . . . . . . . . . . 113
3.7 本章要点小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.8 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
第4章 线性控制系统的计算机辅助分析123
4.1 线性系统性质分析. . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.1.1 线性系统稳定性分析. . . . . . . . . . . . . . . . . . . . . . . . 124
4.1.2 线性系统的内部稳定性分析. . . . . . . . . . . . . . . . . . . . 127
4.1.3 线性系统的线性相似变换. . . . . . . . . . . . . . . . . . . . . 128
4.1.4 线性系统的可控性分析. . . . . . . . . . . . . . . . . . . . . . . 129
4.1.5 线性系统的可观测性分析. . . . . . . . . . . . . . . . . . . . . 132
4.1.6 Kalman规范分解. . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.1.7 系统状态方程标准型的MATLAB求解. . . . . . . . . . . . . . 133
4.1.8 系统的范数测度及求解. . . . . . . . . . . . . . . . . . . . . . . 137
4.2 线性系统时域响应解析解法. . . . . . . . . . . . . . . . . . . . . 138
4.2.1 基于状态方程的解析解方法. . . . . . . . . . . . . . . . . . . . 138
4.2.2 基于部分分式展开方法求解. . . . . . . . . . . . . . . . . . . . 140
4.2.3 二阶系统的阶跃响应及阶跃响应指标. . . . . . . . . . . . . . . 145
4.3 线性系统的数字仿真分析. . . . . . . . . . . . . . . . . . . . . . 148
4.3.1 线性系统的阶跃响应与脉冲响应. . . . . . . . . . . . . . . . . 148
4.3.2 任意输入下系统的响应. . . . . . . . . . . . . . . . . . . . . . . 152
4.3.3 降阶模型的时域分析及比较. . . . . . . . . . . . . . . . . . . . 154
4.4 根轨迹分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.5 线性系统频域分析. . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.5.1 单变量系统的频域分析. . . . . . . . . . . . . . . . . . . . . . . 161
4.5.2 利用频率特性分析系统的稳定性. . . . . . . . . . . . . . . . . 165
4.5.3 系统的幅值裕度和相位裕度. . . . . . . . . . . . . . . . . . . . 167
4.5.4 多变量系统的频域分析. . . . . . . . . . . . . . . . . . . . . . . 168
4.5.5 降阶模型的频域分析及比较. . . . . . . . . . . . . . . . . . . . 175
4.6 本章要点小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
4.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
第5章 Simulink在系统仿真中的应用183
5.1 Simulink建模的基础知识. . . . . . . . . . . . . . . . . . . . . . 183
5.1.1 Simulink简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
5.1.2 Simulink下常用模块简介. . . . . . . . . . . . . . . . . . . . . 185
5.1.3 Simulink下其他工具箱的模块组. . . . . . . . . . . . . . . . . 190
5.2 Simulink建模与仿真. . . . . . . . . . . . . . . . . . . . . . . . 191
5.2.1 Simulink建模方法简介. . . . . . . . . . . . . . . . . . . . . . . 191
5.2.2 仿真算法与控制参数选择. . . . . . . . . . . . . . . . . . . . . 196
5.2.3 Simulink在控制系统仿真研究中的应用举例. . . . . . . . . . . 198
5.3 非线性系统分析与仿真. . . . . . . . . . . . . . . . . . . . . . . 208
5.3.1 分段线性的非线性环节. . . . . . . . . . . . . . . . . . . . . . . 208
5.3.2 非线性系统的极限环研究. . . . . . . . . . . . . . . . . . . . . 211
5.3.3 非线性系统的线性化. . . . . . . . . . . . . . . . . . . . . . . . 212
5.4 子系统与模块封装技术. . . . . . . . . . . . . . . . . . . . . . . 216
5.4.1 子系统概念及构成方法. . . . . . . . . . . . . . . . . . . . . . . 216
5.4.2 模块封装方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
5.4.3 模块集构造. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.5 M-函数、S-函数编写及其应用. . . . . . . . . . . . . . . . . . . . 223
5.5.1 M-函数模块的基本结构. . . . . . . . . . . . . . . . . . . . . . 224
5.5.2 S-函数的基本结构. . . . . . . . . . . . . . . . . . . . . . . . . 224
5.5.3 用MATLAB编写S-函数举例. . . . . . . . . . . . . . . . . . . 225
5.5.4 S-函数的封装. . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.6 本章要点小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
第6章 控制系统计算机辅助设计237
6.1 超前滞后校正器设计方法. . . . . . . . . . . . . . . . . . . . . . 238
6.1.1 串联超前滞后校正器. . . . . . . . . . . . . . . . . . . . . . . . 238
6.1.2 超前滞后校正器的设计方法. . . . . . . . . . . . . . . . . . . . 240
6.1.3 控制系统工具箱中的设计界面. . . . . . . . . . . . . . . . . . . 246
6.2 基于状态空间模型的控制器设计方法. . . . . . . . . . . . . . . . 249
6.2.1 状态反馈控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6.2.2 线性二次型指标最优调节器. . . . . . . . . . . . . . . . . . . . 250
6.2.3 极点配置控制器设计. . . . . . . . . . . . . . . . . . . . . . . . 252
6.2.4 观测器设计及基于观测器的调节器设计. . . . . . . . . . . . . . 255
6.3 过程控制系统的PID控制器设计. . . . . . . . . . . . . . . . . . 260
6.3.1 PID控制器概述. . . . . . . . . . . . . . . . . . . . . . . . . . 260
6.3.2 过程系统的一阶延迟模型近似. . . . . . . . . . . . . . . . . . . 263
6.3.3 Ziegler-Nichols参数整定方法. . . . . . . . . . . . . . . . . . . 268
6.3.4 最优PID整定算法. . . . . . . . . . . . . . . . . . . . . . . . . 275
6.3.5 其他模型的PID控制器参数整定算法. . . . . . . . . . . . . . . 278
6.3.6 基于FOLPD的PID控制器设计程序. . . . . . . . . . . . . . . 281
6.4 最优控制器设计. . . . . . . . . . . . . . . . . . . . . . . . . . . 284
6.4.1 最优控制的概念. . . . . . . . . . . . . . . . . . . . . . . . . . 284
6.4.2 基于MATLAB/Simulink的最优控制程序及其应用. . . . . . . 288
6.4.3 最优控制程序的其他应用. . . . . . . . . . . . . . . . . . . . . 291
6.5 多变量系统的频域设计方法. . . . . . . . . . . . . . . . . . . . . 293
6.5.1 对角占优系统与伪对角化. . . . . . . . . . . . . . . . . . . . . 293
6.5.2 多变量系统的参数最优化设计. . . . . . . . . . . . . . . . . . . 299
6.5.3 基于OCD的多变量系统最优设计. . . . . . . . . . . . . . . . . 304
6.6 本章要点小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
6.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
第7章 鲁棒控制与鲁棒控制器设计313
7.1 线性二次型Gauss控制. . . . . . . . . . . . . . . . . . . . . . . 314
7.1.1 线性二次型Gauss问题. . . . . . . . . . . . . . . . . . . . . . 314
7.1.2 使用MATLAB 求解LQG问题. . . . . . . . . . . . . . . . . . 314
7.1.3 带有回路传输恢复的LQG控制. . . . . . . . . . . . . . . . . . 318
7.2 鲁棒控制问题的一般描述. . . . . . . . . . . . . . . . . . . . . . 323
7.2.1 小增益定理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
7.2.2 鲁棒控制器的结构. . . . . . . . . . . . . . . . . . . . . . . . . 323
7.2.3 鲁棒控制系统的MATLAB描述. . . . . . . . . . . . . . . . . . 326
7.3 H1/H2 鲁棒控制器计算机辅助设计. . . . . . . . . . . . . . . . 329
7.3.1 鲁棒控制工具箱的设计方法. . . . . . . . . . . . . . . . . . . . 329
7.3.2 基于线性矩阵不等式工具箱的设计方法. . . . . . . . . . . . . . 335
7.3.3 基于1分析与综合工具箱的H1控制器设计. . . . . . . . . . . 335
7.3.4 基于回路成型技术的鲁棒控制器设计. . . . . . . . . . . . . . . 337
7.4 新鲁棒控制工具箱及应用. . . . . . . . . . . . . . . . . . . . . . 338
7.4.1 不确定系统的描述. . . . . . . . . . . . . . . . . . . . . . . . . 338
7.4.2 灵敏度问题的鲁棒控制器设计. . . . . . . . . . . . . . . . . . . 339
7.4.3 混合灵敏度问题的鲁棒控制器设计. . . . . . . . . . . . . . . . 341
7.5 分数阶控制系统分析与设计. . . . . . . . . . . . . . . . . . . . . 342
7.5.1 分数阶微积分学与数值计算. . . . . . . . . . . . . . . . . . . . 343
7.5.2 分数阶线性系统频域与时域分析. . . . . . . . . . . . . . . . . 345
7.5.3 分数阶微分的滤波器近似及应用. . . . . . . . . . . . . . . . . 347
7.5.4 分数阶系统的模型降阶技术. . . . . . . . . . . . . . . . . . . . 351
7.5.5 分数阶系统的控制器设计. . . . . . . . . . . . . . . . . . . . . 352
7.6 本章要点简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
7.7 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
第8章 自适应与智能控制系统设计361
8.1 自适应控制系统设计. . . . . . . . . . . . . . . . . . . . . . . . . 361
8.1.1 模型参考自适应系统的设计与仿真. . . . . . . . . . . . . . . . 362
8.1.2 自校正控制器设计与仿真. . . . . . . . . . . . . . . . . . . . . 364
8.1.3 广义预测控制系统与仿真. . . . . . . . . . . . . . . . . . . . . 369
8.2 模糊控制及模糊控制器设计. . . . . . . . . . . . . . . . . . . . . 372
8.2.1 模糊逻辑与模糊推理. . . . . . . . . . . . . . . . . . . . . . . . 372
8.2.2 模糊PD控制器设计. . . . . . . . . . . . . . . . . . . . . . . . 374
8.2.3 模糊PID控制器设计. . . . . . . . . . . . . . . . . . . . . . . . 379
8.3 神经网络及神经网络控制器设计. . . . . . . . . . . . . . . . . . 383
8.3.1 神经网络简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
8.3.2 基于单个神经元的PID控制器设计. . . . . . . . . . . . . . . . 384
8.3.3 基于反向传播神经网络的PID控制器. . . . . . . . . . . . . . . 387
8.3.4 基于径向基函数的神经网络的PID控制器. . . . . . . . . . . . 389
8.4 基于遗传算法的最优控制器设计. . . . . . . . . . . . . . . . . . 391
8.4.1 遗传算法简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
8.4.2 基于遗传算法的最优化问题求解. . . . . . . . . . . . . . . . . 393
8.4.3 基于遗传算法的最优控制问题求解. . . . . . . . . . . . . . . . 397
8.5 本章要点简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
8.6 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
第9章 半实物仿真与实时控制405
9.1 dSPACE简介与常用模块. . . . . . . . . . . . . . . . . . . . . . 406
9.1.1 dSPACE简介. . . . . . . . . . . . . . . . . . . . . . . . . . 406
9.1.2 dSPACE模块组. . . . . . . . . . . . . . . . . . . . . . . . . . 406
9.2 Quanser简介与常用模块. . . . . . . . . . . . . . . . . . . . . . 407
9.2.1 Quanser简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
9.2.2 Quanser常用模块介绍. . . . . . . . . . . . . . . . . . . . . . . 408
9.2.3 Quanser旋转运动控制系列实验受控对象简介. . . . . . . . . . 409
9.3 半实物仿真与实时控制实例. . . . . . . . . . . . . . . . . . . . . 410
9.3.1 受控对象的数学描述与仿真研究. . . . . . . . . . . . . . . . . 410
9.3.2 Quanser 实时控制实验. . . . . . . . . . . . . . . . . . . . . . . 412
9.3.3 dSPACE 实时控制实验. . . . . . . . . . . . . . . . . . . . . . . 414
9.4 本章要点简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
9.5 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
附录A 积分变换问题MATLAB 求解419
A.1 Laplace 变换及其反变换. . . . . . . . . . . . . . . . . . . . . . 419
A.2 Z变换及其反变换. . . . . . . . . . . . . . . . . . . . . . . . . . 420
A.3 Laplace变换和Z变换计算机求解. . . . . . . . . . . . . . . . . 421
A.4 本附录要点小结. . . . . . . . . . . . . . . . . . . . . . . . . . . 425
A.5 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
附录B 常用受控对象的实际系统模型427
B.1 著名的基准测试问题. . . . . . . . . . . . . . . . . . . . . . . . . 427
B.1.1 F-14战斗机中的控制问题. . . . . . . . . . . . . . . . . . . . . 427
B.1.2 ACC测试模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 428
B.2 其他工程控制问题的数学模型. . . . . . . . . . . . . . . . . . . . 429
B.2.1 伺服控制系统模型. . . . . . . . . . . . . . . . . . . . . . . . . 429
B.2.2 倒立摆问题的数学模型. . . . . . . . . . . . . . . . . . . . . . . 430
B.2.3 AIRC模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
B.3 思考与练习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
附录C 反馈系统程序CtrlLAB简介435
C.1 CtrlLAB的安装与运行. . . . . . . . . . . . . . . . . . . . . . . 436
C.2 控制系统模型的输入与处理. . . . . . . . . . . . . . . . . . . . . 436
C.3 反馈控制系统的分析. . . . . . . . . . . . . . . . . . . . . . . . . 437
C.4 反馈控制系统计算机辅助设计. . . . . . . . . . . . . . . . . . . . 438
C.5 本附录要点小结. . . . . . . . . . . . . . . . . . . . . . . . . . . 439
C.6 习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
函数名索引441
索引445
