图书目录

第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