编辑推荐
这是一本面向零基础读者的MATLAB 2018经典教程书籍。 全书*的特点,是通过大量的典型实例,对MATLAB 2018在程序设计中常用的功能及命令进行了介绍,包括MATLAB的基础操作及主要应用工具箱的使用方法。在实例讲解中力求紧扣主题、语言简洁、形象直观,避免冗长的解释说明,使读者能够快速掌握利用MATLAB 2018软件进行程序设计的方法和技巧。 在本书的程序设计过程中,介绍了一些关于程序设计方面的技巧,这有助于读者在学习过程中熟练掌握程序设计的基本操作,而且能够对其中的一些设计思路有所了解,进而掌握更加高效的设计方法,设计出符合要求的程序或者得到准确的实验结果。 附赠全书源代码文件,可关注“职场研究社”公号,回复关键词“51944”,获取下载链接。
内容简介
本书基于MATLAB 2018版写作,在共15章的篇幅中分别介绍了MATLAB的基础操作、Simulink工具箱、MATLAB在自动控制中的应用、线性规划工具箱、数字信号处理工具箱、图像处理工具箱、系统辨识、模糊工具箱,以及MATLAB在自抗扰控制系统中的应用。本书各章通过典型实例操作和重点知识讲解相结合的方式,对MATLAB的基础知识、功能及命令函数进行全面的讲解。 本书具有操作性强、指导性强、语言简洁等特点,内容涵盖了MATLAB在当前工程应用中的主要应用领域。本书可作为MATLAB软件初学者入门和提高的学习教程,或者高等院校、培训机构的MATLAB教材,也可供相关工程应用人员参考。
作者简介
林炳强,硕士,华南理工大学机械与汽车工程学院,主要研究机器人技术及其相关应用,熟悉自动化控制技术及MATLAB仿真。 谢龙汉,博士,副教授,华南理工大学机械与汽车工程学院,主要研究能量补货相关课题,发表sci论文多篇。 周维维,硕士,华北电力大学经济及管理学院,主要研究能源利用,碳排放预测等相关课题。
目录
- 第 1章 基础入门 1
- 1.1 MATLAB的安装 1
- 1.2 MATLAB的启动及作界面 3
- 1.2.1 MATLAB的启动 3
- 1.2.2 MATLAB的作界面 3
- 1.3 M文件编辑器 4
- 1.3.1 M文件编辑器的启动 5
- 1.3.2 用M文件编写简单的程序 5
- 1.4 MATLAB帮助系统及其使用 6
- 1.4.1 帮助系统的类型 7
- 1.4.2 常用帮助指令 7
- 1.4.3 Help帮助浏览器 8
- 第 2章 符号计算 11
- 2.1 符号对象的创建 11
- 2.1.1 创建符号变量和表达式 11
- 2.1.2 符号与数值之间的转化 15
- 2.1.3 符号表达式的化简 17
- 2.2 符号微积分 20
- 2.2.1 极限和导数的符号计算 20
- 2.2.2 序列/级数的符号求和 22
- 2.2.3 符号积分 23
- 2.3 微分方程的符号解法 25
- 2.3.1 求微分方程符号解的一般指令 25
- 2.3.2 符号微分方程解法实例 25
- 2.4 符号矩阵分析和代数方程解 27
- 2.4.1 符号矩阵分析 27
- 2.4.2 线性方程组的符号解法 30
- 2.5 符号变换及反变换 32
- 2.5.1 傅里叶变换及其反变换 32
- 2.5.2 拉普拉斯变换及其反变换 33
- 2.5.3 Z变换及其反变换 36
- 2.6 代数状态方程求符号传递函数 38
- 2.6.1 结构框图的代数状态方程解法 39
- 2.6.2 信号流图的代数状态方程解法 41
- 2.7 符号计算的简易绘图函数 43
- 2.7.1 二维绘图函数 43
- 2.7.2 三维绘图函数 47
- 2.7.3 等高线绘图函数 48
- 2.7.4 三维曲面绘图函数 49
- 第3章 MATLAB数组和矩阵运算基础 53
- 3.1 数组的创建、运算及寻址 53
- 3.1.1 数组的创建 53
- 3.1.2 数组的运算规则 58
- 3.1.3 数组的作 59
- 3.1.4 数组的寻址 62
- 3.1.5 关系和逻辑作 64
- 3.2 矩阵分析 67
- 3.2.1 矩阵运算规则 67
- 3.2.2 矩阵分析计算 70
- 3.3 矩阵分解 77
- 3.3.1 特征值及特征向量 77
- 3.3.2 奇异值分解 82
- 3.3.3 LU分解 84
- 3.3.4 Cholesky分解 87
- 3.3.5 QR分解 89
- 3.4 特殊矩阵 92
- 3.4.1 常用特殊矩阵及其创建 93
- 3.4.2 其他特殊矩阵 95
- 第4章 数值计算 101
- 4.1 数理统计的MATLAB求解 101
- 4.1.1 常用的统计分布指令 102
- 4.1.2 概率函数、分布函数和随机数 105
- 4.2 多项式运算 112
- 4.2.1 多项式的运算及其函数表示 112
- 4.2.2 有限长序列的卷积 120
- 4.3 插值和拟合 124
- 4.3.1 插值 124
- 4.3.2 拟合 132
- 4.4 线性方程(组)的求解 140
- 4.4.1 线性方程的数值求解 140
- 4.4.2 线性方程组的数值求解 143
- 4.5 数值微积分 145
- 4.5.1 数值微分 145
- 4.5.2 数值积分 148
- 4.5.3 常微分方程的数值求解 153
- 第5章 MATLAB绘图处理 161
- 5.1 概述 161
- 5.1.1 离散数据图形的绘制 161
- 5.1.2 连续函数曲线的绘制 162
- 5.2 二维图形 163
- 5.2.1 基本绘图函数 163
- 5.2.2 坐标轴控制和图形标识命令 168
- 5.2.3 多重曲线绘图 172
- 5.2.4 ginput指令简介 175
- 5.3 三维曲线和曲面 177
- 5.3.1 三维绘图指令plot3 177
- 5.3.2 三维网格指令mesh 179
- 5.3.3 三维曲面指令surf 181
- 5.3.4 图形视角及透视控制 183
- 5.3.5 图形着色处理 189
- 5.3.6 图形光照处理 197
- 5.4 图能简介 202
- 5.4.1 图形窗口的创建 202
- 5.4.2 图形窗口的菜单 203
- 第6章 M文件程序设计基础 207
- 6.1 M文件 207
- 6.1.1 M脚本文件 207
- 6.1.2 M函数文件 209
- 6.1.3 局部变量和全局变量 210
- 6.1.4 M函数文件的一般结构 213
- 6.2 数据及数据文件 214
- 6.2.1 数据类型 214
- 6.2.2 数据的输入与输出 216
- 6.3 程序的流程控制 219
- 6.3.1 循环语句 219
- 6.3.2 if条件语句 224
- 6.3.3 switch-case语句 227
- 6.3.4 控制程序流的其他常用指令 229
- 6.4 程序的调试与优化 233
- 6.4.1 程序的直接调试法 233
- 6.4.2 调试器的使用 238
- 6.4.3 程序设计优化 239
- 6.5 MATLAB函数类别 242
- 6.5.1 主函数 242
- 6.5.2 子函数 242
- 6.5.3 匿名函数 243
- 6.5.4 嵌套函数 243
- 6.5.5 私有函数 245
- 6.6 函数句柄 245
- 6.6.1 函数句柄的创建和显示 245
- 6.6.2 函数句柄的基本作 246
- 第7章 图形用户界面 250
- 7.1 对象和句柄 250
- 7.1.1 句柄 250
- 7.1.2 对象 251
- 7.2 GUI图形简介 254
- 7.2.1 GUIDE的启动 254
- 7.2.2 GUI模板 255
- 7.2.3 图形用户界面的设计步骤 258
- 7.2.4 回调函数 259
- 7.3 GUI的底层代码实现 264
- 7.3.1 GUI底层代码实例 264
- 7.3.2 常用对象介绍 267
- 7.4 图形用户界面综合实例 273
- 第8章 Simulink交互仿真集成环境 277
- 8.1 Simulink运行方法及窗口 278
- 8.2 Simulink常用模块库 279
- 8.2.1 连续(Continuous)模块库 280
- 8.2.2 非连续(Discontinuous)模块库 281
- 8.2.3 离散(Discrete)模块库 282
- 8.2.4 数学运算(Math Operations)模块库 283
- 8.2.5 输出(Sinks)模块库 284
- 8.2.6 输入源(Sources)模块库 285
- 8.3 Simuli能模块的处理 286
- 8.3.1 Simulink模块参数设置 286
- 8.3.2 Simulink 模块间连线处理 287
- 8.3.3 Simulink 模块基本作 289
- 8.4 Simulink建模仿真实例 291
- 8.5 子系统模块封装技术 301
- 8.5.1 子系统 301
- 8.5.2 封装模块 305
- 8.6 S函数 307
- 8.6.1 S函数基本概念 307
- 8.6.2 S函数工作原理 307
- 8.6.3 用M文件编写S函数 308
- 第9章 MATLAB在自动控制中的应用 313
- 9.1 控制系统稳定性分析 313
- 9.1.1 代数稳定判据 313
- 9.1.2 根轨迹稳定性分析 317
- 9.1.3 频域稳定性分析 322
- 9.1.4 稳态误差的分析 330
- 9.2 控制系统的性能指标分析 335
- 9.2.1 控制系统的时域特性 335
- 9.2.2 控制系统的频域特性 339
- 9.3 控制系统校正设计的MATLAB实现 341
- 9.3.1 控制系统校正设计概述 341
- 9.3.2 控制系统伯德图校正设计方法 341
- 9.3.3 控制系统的根轨迹校正设计 352
- 9.3.4 单输入单输出系统设计工具 360
- 第 10章 化方法 365
- 10.1 线性规划基本内容及MATLAB应用 366
- 10.1.1 引例 366
- 10.1.2 线性规划的基本算法─单纯形法 367
- 10.2 无约束化 373
- 10.2.1 无约束化的基本算法 374
- 10.2.2 MATLAB解优化问题 377
- 10.3 非线性规划 385
- 10.3.1 非线性规划的基本概念 385
- 10.3.2 惩罚函数法 386
- 10.3.3 MBTLAB求解 387
- 第 11章 数字信号处理 394
- 11.1 数字信号处理与离散时间系统 394
- 11.1.1 数字信号处理概述 394
- 11.1.2 数字信号处理的基本概念 395
- 11.1.3 离散时间信号 396
- 11.1.4 常用信号生成函数 405
- 11.1.5 离散时间信号的相关性 406
- 11.2 序列的傅里叶变换的MATLAB实现 408
- 11.2.1 序列的傅里叶变换公式 408
- 11.2.2 周期序列离散傅里叶级数及傅里叶变换的MATLAB实现 411
- 11.3 利用Z变换分析信号和系统频域特性的MATLAB实现 412
- 11.3.1 Z变换的定义 412
- 11.3.2 Z变换的收敛域 413
- 11.3.3 Z变换的性质 414
- 11.3.4 Z变换的MATLAB求解 415
- 11.3.5 利用Z变换求解差分方程 417
- 11.3.6 利用Z变换分析系统频域特性 420
- 11.4 离散傅里叶变换(DFT)的MATLAB实现 424
- 11.4.1 DFT的定义和性质 425
- 11.4.2 DFT的MATLAB实现 426
- 11.4.3 离散傅里叶级数及其MATLAB实现 427
- 11.5 快速傅里叶变换及其应用的MATLAB实现 429
- 11.5.1 快速傅里叶变换的基本用法 429
- 11.5.2 快速傅里叶变换的应用举例 431
- 11.6 无限脉冲响应数字滤波器的设计及MATLAB实现 438
- 11.6.1 数字滤波器概述 439
- 11.6.2 IIR滤波器的设计方法 440
- 11.6.3 滤波器的性能指标及MATLAB函数 443
- 11.6.4 IIR数字滤波器设计常用的MATLAB函数 444
- 11.6.5 IIR数字滤波器的设计 446
- 11.6.6 MATLAB提供的IIR滤波器设计函数:设计法 452
- 11.6.7 IIR数字滤波器的直接设计法 455
- 11.7 FIR数字滤波器设计及MATLAB实现 458
- 11.7.1 FIR数字滤波器概述 458
- 11.7.2 窗函数设计FIR滤波器 460
- 11.7.3 MATLAB提供的窗函数及窗函数设计的MATLAB实现 461
- 11.7.4 FIR数字滤波器的化设计及MATLAB实现 474
- 第 12章 图像处理 480
- 12.1 数字图像的基本原理 481
- 12.1.1 数字图像的表示 481
- 12.1.2 数字图像的MATLAB作基础 481
- 12.1.3 数字图像的类型及其转换 485
- 12.2 图像增强 496
- 12.2.1 灰度变换增强 496
- 12.2.2 直方图增强 500
- 12.2.3 图滑 503
- 12.2.4 图像锐化 514
- 12.2.5 频域增强 518
- 12.3 图像复原 523
- 12.3.1 退化模型 523
- 12.3.2 无约束图像复原 525
- 12.3.3 有约束图像复原 525
- 12.4 二值形态学作 528
- 12.4.1 膨胀和腐蚀 528
- 12.4.2 开作和闭作 529
- 12.4.3 膨胀和腐蚀的MATLAB实现方法 529
- 12.4.4 一些基本的形态学算法 531
- 12.5 图像压缩编码 532
- 12.5.1 图像压缩编码概述 532
- 12.5.2 无损压缩技术 533
- 12.5.3 有损压缩技术 534
- 12.6 图像分割 534
- 12.6.1 边缘检测方法 534
- 12.6.2 阈值分割技术 537
- 12.6.3 区域分割技术 538
- 第 13章 系统辨识 540
- 13.1 系统辨识的基本理论 540
- 13.1.1 系统和模型 540
- 13.1.2 辨识问题 541
- 13.1.3 系统辨识的步骤 541
- 13.1.4 系统辨识的误差准则 542
- 13.2 二乘法参数辨识及其MATLAB仿真 544
- 13.2.1 二乘法的基本原理 544
- 13.2.2 加权二乘法的基本原理 546
- 13.2.3 二乘法的递推算法 550
- 13.2.4 增广二乘法及MATLAB实现 556
- 13.3 参数的梯度校正辨识 561
- 13.3.1 确定性问题的梯度校正参数辨识及MATLAB实现 561
- 13.3.2 随机问题的梯度校正参数辨识 568
- 13.3.3 随机法 570
- 13.4 极大似然估计参数辨识 573
- 13.4.1 极大似然参数辨识的基本概念 573
- 13.4.2 系统模型参数的极大似然估计 575
- 13.4.3 递推的极大似然参数估计 581
- 13.5 Bayes辨识方法及MATLAB实现 587
- 13.5.1 Bayes辨识方法的基本原理 587
- 13.5.2 二乘模型的Bayes参数辨识 588
- 13.5.3 MATLAB仿真实例 589
- 13.6 神经网络模型辨识方法及MATLAB实现 593
- 13.6.1 神经网络基本介绍 594
- 13.6.2 BP神经网络 597
- 13.6.3 RBF神经网络辨识 603
- 13.7 模糊系统辨识及MATLAB实现 607
- 13.7.1 模糊理论概述 608
- 13.7.2 基于T-S模型的模糊系统辨识 614
- 13.7.3 模糊 616
- 第 14章 自抗扰控制技术的MATLAB实现 621
- 14.1 经典PID控制器 621
- 14.1.1 经典PID控制律 621
- 14.1.2 经典PID的优势与不足 625
- 14.2 安排过渡过程仿真 626
- 14.3 微分跟踪器及其MATLAB仿真 633
- 14.3.1 经典微分环节的噪声放大效应 633
- 14.3.2 微分跟踪器 634
- 14.3.3 控制综合函数 641
- 14.4 误差反馈控制律 648
- 14.5 扩张状态观测器 654
- 14.5.1 状态观测器 654
- 14.5.2 扩张状态观测器 666
- 14.5.3 高增益状态观测器 673
- 14.6 自抗扰控制器 681
- 14.6.1 自抗扰控制器设计方法 681
- 14.6.2 的非线性PID控制器 682
- 14.6.3 自抗扰控制器 689
- 第 15章 模糊控制及其MATLAB应用 701
- 15.1 模糊控制的基本理论 701
- 15.1.1 概述 701
- 15.1.2 模糊集合的相关概念 702
- 15.1.3 模糊集合的基本运算 703
- 15.1.4 隶属函数 705
- 15.1.5 模糊推理规则 715
- 15.2 模糊控制系统的设计 718
- 15.2.1 模糊控制系统的组成 718
- 15.2.2 模糊控制系统的设计方法 718
- 15.3 MATLAB模糊逻辑工具箱 721
- 15.3.1 模糊推理系统编辑器 722
- 15.3.2 隶属度函数编辑器 723
- 15.3.3 模糊规则编辑器 724
- 15.3.4 模糊规则观察器 724
- 15.3.5 模糊推理输入/输出曲面观察器 725
- 15.3.6 使用MATLAB命令实现模糊逻辑系统 731
- 15.3.7 模糊逻辑工具箱命令函数简介 735
- 15.4 Sugeno型模糊推理系统 758
- 15.4.1 Sugeno型模糊推理系统简介 758
- 15.4.2 Sugeno型模糊推理系统实例 758
- 15.4.3 Mamdani系统与Sugeno系统的比较 761
- 15.5 模糊理论在控制工程中的应用 761
- 15.5.1 模糊控制 761
- 15.5.2 模糊建模 766
- 15.5.3 模糊控制与Simulink的结合应用 769