目录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