本教材严格参照教育部《普通高等学校本科专业目录》、教育部高等学校电子电气基础课程教学指导分委员会《电子电气基础课程教学基本要求》,以及新工科和工程教育专业认证理念编写。本书是以当今流行的MATLAB R2020a和Simulink 10.1为平台编写的,是不同专业作者十余年在高校从事MATLAB课程教学、课程改革、毕业设计指导和利用MATLAB进行科学研究基础上编著而成。本书具有以下特色:
? 融合新工科和工程教育专业认证理念 以学生为中心,案例式教学为手段,培养学生用MATLAB/Simulink解决复杂工程问题的能力。
? 知识体系编排科学,符合认知学习规律 按照先基础后案例,先理论后实验,由浅入深,循序渐进的原则进行编排,便于读者从入门开始学习MATLAB/Simulink。
? 内容简单全面,例题与实例丰富实用 详细介绍MATLAB/Simulink的基本内容,列举丰富的例题和案例,便于读者充分掌握MATLAB/Simulink的各种函数和命令。
? 理论教学与动手实践结合紧密 本书提供配套的教学课件、程序代码、习题解答及全书插图,便于教师教学;同时,也提供配套的11个MATLAB/Simulink实验内容,便于学生上机实践。
教学资源
? 教学课件
? 程序代码
? 习题解答
? 全书插图
? 教学大纲
? 授课计划
MATLAB是由MathWorks公司开发的,目前已经发展成为国际上流行、应用广泛的科学计算软件之一。在全球5000所大学中,MATLAB被广泛应用于工程、科学、经济和金融等领域的教学、科研以及学生项目开发。MATLAB软件具有强大的矩阵计算、数值计算、符号计算、数据可视化和系统仿真分析等功能,广泛应用于科学计算、人工智能与数据科学、电子电气与信息技术、机械能动与控制、工业工程与智能制造、金融、经济与管理等领域,也成为线性代数、高等数学、概率论与数理统计、信号与系统、数字信号处理、数字图像处理、时间序列分析、自动控制原理、动态系统仿真等课程的基本教学工具。近年来,MATLAB成为国内外众多高校本科生和研究生的课程,成为学生必须掌握的基本编程语言之一,也成为教师、科研人员和工程师进行教学、科学研究和生产实践的一个基本工具。
本书以当今流行的MATLAB R2020a和Simulink 10.1为平台,由不同专业作者在高校从事十余年MATLAB课程教学、课程改革、毕业设计指导和利用MATLAB进行科学研究的基础上编著而成,具有以下特点:
(1) 体现新工科和工程教育专业认证理念。以学生为中心,案例式教学为手段,培养学生用MATLAB解决复杂工程问题的能力。
(2) 内容编排科学、合理。本书按先基础后案例,先理论后实验,由浅入深、循序渐进的原则进行编排,便于读者学习MATLAB和Simulink。
(3) 内容全面,案例丰富。本书详细介绍MATLAB和Simulink的基本内容,提供丰富的例题和案例,便于读者更好地掌握MATLAB和Simulink的各种函数和命令。
(4) 理论教学与上机实验相配套。 为了便于教师教学,本书提供配套的电子教案、例题和案例的源代码、习题答案以及所有图片; 为了便于读者上机做实验,本书提供
11个MATLAB/Simulink基本实验。
本书分三篇: MATLAB/Simulink基础篇、MATLAB/Simulink案例篇和MATLAB/Simulink实验篇。MATLAB/Simulink基础篇包括: 第1章MATLAB语言概述,主要介绍MATLAB语言的发展、特点、环境、帮助系统、数据类型和运算符; 第2章MATLAB矩阵及其运算,主要介绍矩阵的创建、矩阵的修改、矩阵基本运算和矩阵分析; 第3章MATLAB字符串和数组,主要介绍字符串、多维数组、结构数组和元胞数组; 第4章MATLAB程序结构和M文件,主要介绍MATLAB程序结构、M脚本文件、M函数文件和程序调试; 第5章MATLAB数值计算,主要介绍多项式运算、数据插值、数据拟合、数据统计和数值计算; 第6章MATLAB符号运算,主要介绍符号定义、符号运算、符号极限、符号微分和积分; 第7章MATLAB数据可视化,主要介绍MATLAB二维曲线绘制、二维特殊图形绘制、三维曲线和曲线绘制; 第8章MATLAB图形用户界面,主要介绍图形用户界面、控制框常用对象及功能、GUI菜单的设计; 第9章Simulink仿真基础,主要介绍Simulink、常用模块、模块编辑和Simulink仿真。MATLAB/Simulink案例篇主要介绍本书前9章MATLAB/Simulink基础内容的66个典型案例。MATLAB/Simulink实验篇介绍11个基本的MATLAB/Simulink实验。
本书适合作为高等院校理工科各专业的教学用书,也可以作为研究生、科研与工程技术人员的参考用书。建议授课学时为40或48学时。对于短课时(如32学时,低年级开的课程),可以讲授第1~7章和第9章
内容以及第11章实验部分,第8章MATLAB图形用户界面和第10章MATLAB/Simulink案例应用部分可以留给学生自学。
本书第1~5章、第8章、第11章由广东海洋大学徐国保编写,第10章由广东海洋大学刘雯景编写,第7章由广东海洋大学赵桂艳编写,第9章由北京林业大学陈锋军编写,第6章由广东海洋大学黄江编写。为了确保本书的质量,各部分的应用案例由教学经验丰富的相关专业任课教师编写。本书的编写思路与内容选择由编者集体讨论确定,全书的代码更新和调试运行由刘雯景负责,
全书例题的微课视频录制由徐国保和赵桂艳负责,
全书由徐国保负责统稿、校稿和定稿。
在本书的编写过程中,参考和引用了相关教材和资料,在此一并向教材和资料的作者表示诚挚的谢意。
为了便于学生学习,全书附有习题(84道习题)的参考答案和所有例题的源代码及微课视频(419分钟)。为了方便教师教学,本书配有完整的教学课件(10章PPT)、所有例题(172个例题)的源代码、全书图片(259张图)素材、实验内容(11个实验)电子版、课程大纲、授课计划表以及课后习题答案等内容,欢迎选用本书作为教材的老师联系作者索取。
由于编者的水平有限,书中难免存在不妥之处,欢迎使用本书的教师、学生和科技人员批评指正,以便再版时改进和提高。
编者2021年7月
MATLAB/Simulink基础篇
第1章MATLAB语言概述
1.1MATLAB语言的发展
1.2MATLAB语言的特点
1.3MATLAB语言的环境
1.3.1MATLAB语言的安装
1.3.2MATLAB语言的界面简介
1.4MATLAB帮助系统
1.4.1help查询帮助函数
1.4.2lookfor查询帮助函数
1.4.3联机帮助系统
1.5MATLAB数据类型
1.5.1常量和变量
1.5.2整数和浮点数
1.5.3复数
1.6MATLAB运算符
1.6.1算术运算符
1.6.2关系运算符
1.6.3逻辑运算符
1.6.4优先级
习题
第2章MATLAB矩阵及其运算
2.1矩阵的创建
2.1.1直接输入矩阵
2.1.2冒号生成矩阵
2.1.3利用函数生成矩阵
2.1.4利用文本文件生成矩阵
2.1.5利用M文件生成矩阵
2.1.6特殊矩阵的生成
2.2矩阵的修改
2.2.1矩阵部分替换
2.2.2矩阵部分删除
2.2.3矩阵部分扩展
2.2.4矩阵结构变换
2.3矩阵的基本运算
2.3.1矩阵的加减运算
2.3.2矩阵的乘法运算
2.3.3矩阵的除法运算
2.3.4矩阵的乘方运算
2.3.5矩阵的点运算
2.4矩阵的分析
2.4.1方阵的行列式
2.4.2矩阵的秩和迹
2.4.3矩阵的逆和伪逆
2.4.4线性方程组的解
2.4.5矩阵的特征值和特征向量
2.4.6矩阵的分解
2.4.7矩阵的信息获取函数
习题
第3章MATLAB字符串和数组
3.1字符串
3.1.1字符串的创建
3.1.2字符串的操作
3.1.3字符串转换
3.2多维数组
3.2.1多维数组的创建
3.2.2多维数组的操作
3.3结构数组
3.3.1结构数组的创建
3.3.2结构体内部数据的获取
3.3.3结构体的操作函数
3.4元胞数组
3.4.1元胞数组的创建
3.4.2元胞数组的操作
习题
第4章MATLAB程序结构和M文件
4.1程序结构
4.1.1顺序结构
4.1.2选择结构
4.1.3循环结构
4.1.4程序控制命令
4.2M文件
4.2.1M文件的分类和特点
4.2.2M文件的创建和打开
4.3M函数文件
4.3.1M函数文件的格式
4.3.2M函数文件的调用
4.3.3主函数和子函数
4.3.4函数的参数
4.3.5函数的变量
4.4程序调试
4.4.1命令窗口调试
4.4.2MATLAB菜单调试
4.4.3MATLAB调试函数
习题
第5章MATLAB数值计算
5.1多项式
5.1.1多项式的创建
5.1.2多项式的值和根
5.1.3多项式的四则运算
5.1.4多项式的微积分运算
5.1.5多项式的部分分式展开
5.2数据插值
5.2.1一维插值
5.2.2二维插值
5.2.3多维插值
5.3数据拟合
5.4数据统计
5.4.1矩阵元素的值和小值
5.4.2矩阵元素的平均值和中值
5.4.3矩阵元素的排序
5.4.4矩阵元素求和与求积
5.4.5矩阵元素的累加和与累乘积
5.4.6标准方差和相关系数
5.5数值计算
5.5.1函数极值
5.5.2函数零点
5.5.3数值差分
5.5.4数值积分
5.5.5常微分方程求解
习题
第6章MATLAB符号运算
6.1MATLAB符号运算的特点
6.2MATLAB符号对象的创建和使用
6.3符号多项式函数运算
6.3.1多项式函数的符号表达形式及相互转换
6.3.2符号多项式的向量表示形式及其计算
6.3.3反函数和复合函数求解
6.4符号微积分运算
6.4.1函数的极限和级数运算
6.4.2符号微分运算
6.4.3符号积分运算
6.5符号方程求解
6.5.1符号代数方程求解
6.5.2符号常微分方程求解
6.5.3一维偏微分方程求解
习题
第7章MATLAB数据可视化
7.1概述
7.2二维曲线的绘制
7.2.1绘图基本函数
7.2.2线性图格式设置
7.2.3图形修饰
7.2.4图形保持
7.2.5多个图形绘制
7.3二维特殊图形的绘制
7.3.1柱状图
7.3.2饼形图
7.3.3直方图
7.3.4离散数据图
7.3.5向量图
7.3.6极坐标图
7.3.7对数坐标图
7.3.8双纵坐标图
7.3.9函数绘图
7.4三维曲线和曲面的绘制
7.4.1绘制三维曲线图
7.4.2绘制三维曲面图
7.4.3绘制三维特殊图形
7.4.4绘制动画图形
7.5MATLAB图形窗口
习题
第8章MATLAB图形用户界面
8.1图形用户界面简介
8.1.1GUI的设计原则及步骤
8.1.2GUI设计窗口的打开、关闭和保存
8.1.3GUI的模板
8.2控制框常用对象及功能
8.2.1GUI按钮
8.2.2GUI滑块
8.2.3GUI单选按钮
8.2.4GUI复选框
8.2.5GUI可编辑文本和静态文本
8.2.6GUI弹出式菜单
8.2.7GUI列表框
8.2.8GUI切换按钮
8.2.9GUI轴
8.3GUI菜单的设计
8.3.1使用菜单编辑器创建菜单
8.3.2使用句柄对象创建菜单
习题
第9章Simulink仿真基础
9.1Simulink概述
9.1.1Simulink的基本概念
9.1.2Simulink模块的组成
9.1.3Simulink中的数据类型
9.2Simulink的使用
9.2.1Simulink的启动和退出
9.2.2在Simulink的窗口创建一个新模型
9.2.3Simulink模块的操作
9.2.4Simulink的建模和仿真
9.3Simulink的模块库及模块
9.3.1Commonly Used Blocks子模块库
9.3.2Continuous子模块库
9.3.3Dashboard子模块库
9.3.4Discontinuities子模块库
9.3.5Discrete子模块库
9.3.6Logic and Bit Operations子模块库
9.3.7Lookup Tables子模块库
9.3.8Math Operations子模块库
9.3.9Message & Events子模块库
9.3.10Model Verification子模块库
9.3.11ModelWide Utilities子模块库
9.3.12Ports & Subsystems子模块库
9.3.13Signal Attributes子模块库
9.3.14Signal Routing子模块库
9.3.15Sinks子模块库
9.3.16Sources子模块库
9.3.17String子模块库
9.3.18UserDefined Functions子模块库
9.4Simulink模块操作及建模
9.4.1Simulink模型
9.4.2Simulink模块的基本操作
9.4.3系统模型注释与信号标签设置
9.4.4Simulink建模
9.5Simulink模块及仿真参数设置
9.5.1模块参数设置
9.5.2Simulink仿真参数设置
9.6过零检测和代数环
9.6.1过零检测
9.6.2代数环
习题
MATLAB/Simulink案例篇
第10章MATLAB/Simulink案例
10.1MATLAB运算基础案例
10.1.1三角函数运算案例
10.1.2指数和对数运算案例
10.1.3面积和周长案例
10.1.4关系和逻辑运算案例
10.2MATLAB矩阵运算案例
10.2.1等差矩阵生成案例
10.2.2特殊矩阵生成案例
10.2.3矩阵修改案例
10.2.4矩阵运算案例
10.2.5线性方程组求解案例
10.3MATLAB字符串及数组案例
10.3.1MATLAB字符串案例
10.3.2MATLAB多维数组案例
10.3.3MATLAB元胞数组和结构数组案例
10.4MATLAB程序结构案例
10.4.1MATLAB顺序结构案例
10.4.2MATLAB选择结构案例
10.4.3MATLAB循环结构案例
10.5MATLAB文件案例
10.5.1M脚本文件案例
10.5.2M函数文件案例
10.6MATLAB多项式案例
10.6.1多项式的值和根案例
10.6.2多项式的四则运算案例
10.6.3多项式的微积分运算案例
10.6.4多项式的部分分式展开案例
10.7MATLAB数据插值和拟合案例
10.7.1数据插值案例
10.7.2数据拟合案例
10.8MATLAB数据统计和数值计算案例
10.8.1数据统计案例
10.8.2数值计算案例
10.9MATLAB符号计算案例
10.9.1MATLAB符号多项式函数运算案例
10.9.2MATLAB符号微积分运算案例
10.9.3MATLAB符号方程求解案例
10.10MATLAB绘图案例
10.10.1二维曲线的绘制案例
10.10.2二维特殊图形的绘制案例
10.10.3三维曲线和曲面的绘制案例
10.11MATLAB图形用户界面案例
10.11.1曲线修饰演示系统案例
10.11.2图像预处理演示系统案例
10.12Simulink仿真案例
MATLAB/Simulink实验篇
第11章MATLAB/Simulink实验
11.1实验一MATLAB运算基础
11.2实验二向量和矩阵的运算
11.3实验三字符串及矩阵分析
11.4实验四M脚本文件和函数文件
11.5实验五程序结构设计
11.6实验六多项式运算及多项式插值和拟合
11.7实验七数据统计和数值计算
11.8实验八符号计算
11.9实验九MATLAB绘图
11.10实验十MATLAB图形用户界面
11.11实验十一Simulink仿真
附录A习题答案
参考文献