MATLAB/Simulink系统仿真超级学习手册 第2版

978-7-115-51943-6
作者: 石良臣
译者:
编辑: 王峰松
分类: Matlab

图书目录:

详情

本书基于MATLAB R2018a,由浅入深,全面讲解了MATLAB/Simulink的知识。本书涉及面广,涵盖了一般用户需要使用的各种功能,并详细介绍了MATLAB/Simulink的使用。本书自始至终采用实例描述;内容完整且每章相对独立,是一本详细的MATLAB/Simulink参考书。 全书共分为13章,首先介绍MATLAB的基础知识,随后重点介绍Simulink的使用,包括Simulink仿真基础、Simulink的仿真技术,以及Simulink的仿真应用。其中,Simulink仿真基础主要介绍Simulink模块库、Simulink基本操作以及Simulink系统的建模与仿真。同时,本书也对各种动态系统,如简单系统、离散系统、连续系统、混合系统的Simulink仿真进行了介绍。而Simulink子系统、命令行方式仿真以及S-function的运用则是Simulink仿真技术的内容。最后6章为Simulink在工程上的应用,包括通信系统仿真、电力系统仿真、控制系统仿真、模糊控制仿真、神经网络仿真和图像处理仿真。本书从这些系统的基本概念出发,对其仿真的方法及应用加以说明。 本书以实用为目标,用实例引导,深入浅出,讲解翔实,既适合作为理工科高等院校研究生、本科生的教学用书,也可作为广大科研工程技术人员的参考用书。

图书摘要

版权信息

书名:MATLAB/Simulink系统仿真超级学习手册(第2版)

ISBN:978-7-115-51943-6

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

编  著 石良臣

责任编辑 王峰松

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

本书基于MATLAB R2018a,由浅入深,全面讲解了MATLAB/Simulink的知识。本书涉及面广,涵盖了一般用户需要使用的各种功能,并详细介绍了MATLAB/Simulink的使用。本书自始至终采用实例描述;内容完整且每章相对独立,是一本详细的MATLAB/Simulink参考书。

全书共分为13章,首先介绍MATLAB的基础知识,随后重点介绍Simulink的使用,包括Simulink仿真基础、Simulink的高级仿真技术,以及Simulink的仿真应用。其中,Simulink仿真基础主要介绍Simulink模块库、Simulink基本操作以及Simulink系统的建模与仿真。同时,本书也对各种动态系统,如简单系统、离散系统、连续系统、混合系统的Simulink仿真进行了介绍。而Simulink子系统、命令行方式仿真以及S-function的运用则是Simulink高级仿真技术的内容。最后6章为Simulink在工程上的应用,包括通信系统仿真、电力系统仿真、控制系统仿真、模糊控制仿真、神经网络仿真和图像处理仿真。本书从这些系统的基本概念出发,对其仿真的方法及应用加以说明。

本书以实用为目标,用实例引导,深入浅出,讲解翔实,既适合作为理工科高等院校研究生、本科生的教学用书,也可作为广大科研工程技术人员的参考用书。

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB在以商品形式出现后的短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包被纷纷淘汰,而改在MATLAB平台上重建。

Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模、仿真和综合分析的集成环境。Simulink具有适应面广、结构和流程清晰、仿真精细、贴近实际、效率高以及灵活等优点,基于以上优点,Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计,同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink环境。

本书基于MATLAB R2018a,由浅入深,全面讲解了MATLAB/Simulink的相关知识,以帮助读者尽快掌握MATLAB/Simulink的应用。

1.本书特点

由浅入深,循序渐进:本书以MATLAB/Simulink初、中级读者为对象,首先从MATLAB/ Simulink的使用基础讲起,再对Simulink的高级使用方法进行介绍,并通过Simulink在几个专业领域中的仿真应用帮助读者尽快掌握Simulink的仿真方法。

步骤详尽,内容新颖:本书结合作者多年MATLAB/Simulink使用经验与实际工程应用案例,详细地为读者讲解软件的使用方法与技巧。讲解过程中辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中所讲内容。

实例典型,轻松易学:学习实际工程应用案例的具体操作是掌握MATLAB/Simulink最直接有效的方式。本书通过综合应用案例,透彻详尽地讲解了MATLAB/Simulink在各方面的应用。

2.本书内容

本书基于MATLAB R2018a讲解了MATLAB/Simulink的基础知识和核心内容。本书 主要分为两个部分:基础知识和专业系统仿真,其中基础知识部分包括第1章~第7章,专业系统仿真部分包括第8章~第13章。

第1章 简单介绍系统仿真技术的一些基本概念,并对本书所用的仿真软件MATLAB做简单介绍,初步领略MATLAB的强大功能。

第2章 较全面地介绍MATLAB正常运行的基本流程以及编程基础与技巧,帮助读 者在领略MATLAB非凡能力的同时比较轻松地跨过MATLAB门槛,为后面学习MATLAB工具箱Simulink打下坚实的基础。

第3章 介绍Simulink的仿真基础,包括Simulink仿真环境、Simulink模块库、 Simulink基本操作和Simulink系统建模,并通过实例介绍Simulink仿真的相关技术。

第4章 通过对简单系统、离散系统、连续系统和混合系统等进行动态仿真分析,详细介绍Simulink的仿真技术,并对必要的Simulink调试技术进行讲解。

第5章 介绍Simulink子系统技术,包括Simulink简单子系统、高级子系统,以及Simulink子系统的封装和模块库技术。

第6章 除了介绍Simulink框图方式,还讲解了可以使用命令行方式对Simulink模型进行仿真。本章主要介绍如何使用命令行建立系统模型、Simulink与MATLAB的接口以及使用命令行方式进行动态系统仿真的方法。

第7章 介绍S-function。S-function是Simulink最具魅力的地方,它结合了Simulink框图简洁的特点和编程灵活的优点,提供了增强和扩展Simulink能力的强大机制。本章将介绍S-function的基本概念、工作原理,以及如何使用和编写S-function。

第 8 章 简单介绍通信系统的概念,并通过系统仿真实例来详细说明如何使用MATLAB/Simulink进行各种通信系统的仿真。

第9章 主要介绍在MATLAB环境下如何进行电力系统仿真,需要哪些模块、哪些命令,并通过仿真实例进行说明。

第10章 简单介绍控制系统的一些基本概念,详细说明控制系统仿真所需要的Simulink模块、仿真命令等,并通过仿真实例说明控制系统的仿真方法。

第11章 简单介绍模糊理论的基本概念,着重说明模糊理论在控制领域的应用,并介绍模糊控制在MATLAB平台上的仿真应用。

第12章 首先介绍神经网络的一些基本概念,然后详细介绍MATLAB提供的神经网络工具箱,最后简单介绍自定义网络的建立方法。

第13章 介绍MATLAB提供的图像处理仿真工具箱,并通过图像处理仿真经典案例来做简单介绍。

注:本书中用到的部分程序代码和数据,请到异步社区下载。

3.读者对象

本书结构合理、叙述详细、算例丰富,适合MATLAB/Simulink初、中级读者,以及期望学习Simulink高级仿真技术的读者,具体包括:

4.本书作者

本书由石良臣编著。虽然作者在本书的编写过程中力求叙述准确、表达完善,但由于水平有限,书中欠妥之处在所难免,希望读者和同仁能够及时指出,共同促进本书质量的提高。

5.读者服务

如果读者在学习过程中遇到与本书有关的技术问题,可以发邮件到邮箱book_hai@126.com,或者访问异步社区,编者会尽快给予解答。

本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书提供如下资源:

要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可,如下图所示。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业用户,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、人工智能、软件测试、前端、网络技术等。

异步社区

微信服务号

系统仿真是根据被研究的真实系统的数学模型研究系统性能的一门学科,现在尤指利用计算机去研究数学模型行为的方法。计算机仿真的基本内容包括系统、模型、算法,以及计算机程序设计与仿真结果显示、分析与验证等环节。

本章将介绍系统仿真技术的一些基本概念,并对本书所用的仿真软件MATLAB做简单介绍,初步领略MATLAB的强大功能。

学习目标:

(1)了解系统仿真技术的基本概念;

(2)初步了解MATLAB。

系统只指客观世界中具有某些特定功能、相互联系、相互作用的元素的集合。这里的系统是指广义上的系统,泛指自然界的一切现象与过程。

系统的分类方法是多种多样的,习惯上依照其应用范围可以将其分为工程系统和非工程系统:工程系统是指由相互关联的部件组成的一个整体,用于实现特定的目标,例如控制系统、通信系统等;非工程系统涵盖的范围更加广泛,大至宇宙,小至微观世界,都存在着相互关联、相互制约的关系,形成一个整体,实现某种目的,均可以认为是系统。

系统模型是对实际系统的一种抽象,是对系统本质(或是系统的某种特性)的一种描述。模型具有与系统相似的特性。好的模型能够反映实际系统的主要特征和运动规律。模型可以分为实体模型和数学模型两类。

(1)实体模型又称物理效应模型,是根据系统之间的相似性而建立起来的物理模型,如建筑模型等。

(2)数学模型包括原始系统数学模型和仿真系统数学模型:原始系统数学模型是对系统的原始数学描述,是描述系统动态特性的数学表达式,用来表示系统运动过程中的各个量的关系,是分析、设计系统的依据;仿真系统数学模型是一种适合于在计算机上演算的模型,主要根据计算机的运算特点、仿真方式、计算方法和精度要求将原始系统数学模型转换为计算机程序。

常见的系统模型有连续系统、离散时间系统、离散事件系统和混杂系统等,还可以细分为线性系统、非线性系统、定常系统、时变系统、集中参数系统、分布参数系统、确定性系统和随机系统等。

仿真是以相似性原理、控制论、信息技术及相关领域的有关知识为基础,以计算机和各种专用物理设备为工具,借助系统模型对真实系统进行试验的一门综合性技术。仿真可分为实物仿真、数学仿真和半实物仿真。其中实物仿真是指研制某些实体模型,使之能够重现原系统的各种状态,早期仿真大多属于这一类;数学仿真是用数学语言去描述一个系统,并编制程序在计算机上对实际系统进行研究的过程;半实物仿真又称数学物理仿真或者混合仿真。

为了提高仿真的可信度或者针对一些难以建模的实体,在系统研究中往往把数学模型、物理模型和实体结合起来组成一个复杂的仿真系统,这种在仿真环节中存在实体的仿真称为半物理仿真,如飞机半实物仿真等。

计算机仿真是在研究系统的过程中根据相似性原理,利用计算机来逼真模拟研究系统。研究对象可以是实际的系统,也可以是设想中的系统。计算机仿真可以用于研制产品或设计系统的全过程,包括方案论证、技术指标确定、设计分析和故障处理等阶段。

MATLAB作为被国际公认的优秀的科技应用软件,其强大的功能、友善的交互界面、简单的语言、开放的编程,使其成为计算机仿真不可缺少的基础软件。

MATLAB是MATRIX LABORATORY的简称,它是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

本小节将介绍MATLAB的主要产品,包括Complier、Simulink、Stateflow、RTW、MATLAB和Coder,如图1-1所示。

图1-1 MATLAB产品

其中,Complier是编译工具,它将以MATLAB语言为基础的函数文件编译生成函数库、可执行文件COM组件等。Complier的存在使得MATLAB能够与其他高级编程语言(如C、C++语言)进行混合编程,提高了程序的运行效率,并丰富了程序的开发手段。

Simulink是MATLAB的一个工具箱,它主要用来实现对工程问题的模型化及动态仿真,其本身具有良好的图形交互界面。通过采用Simulink模块组合的方法,能够快速、准确地创建动态系统的计算机模型。

Stateflow是交互式设计工具,它基于有限状态机理论,用于对复杂的事件驱动系统进行建模和仿真。

RTW是Real-Time Workshop的简称,它与Coder都是代码自动生成工具,它们可以直接将Simulink模型框图和Stateflow状态图转换成高效优化的程序代码。

MATLAB是整个MATLAB产品体系的基座,它是一个语言编程型开发平台,它为其他工具提供所需要的集成环境。同时,其对矩阵和线性代数的支持使得它本身也具有强大的数学计算能力。

图1-2所示为MATLAB/Simulink的主要产品及其相互关系。

图1-2 MATLAB/Simulink的主要产品及其相互关系

1.MATLAB的特点

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的特点如下。

(1)便利的开发环境。MATLAB提供了一组具有GUI的工具,包括MATLAB主窗口、文件编辑器和帮助文档等。

(2)强大的数学计算能力。MATLAB可进行包括基本函数、复杂算法和高级矩阵运算等在内的非常强大的数学计算,特别适合矩阵代数领域的应用。

(3)简单高效的编程语言。MATLAB的运算符使得程序变得简短,灵活使用它们会让编程变得轻松且高效。MATLAB程序书写格式自由,库函数的使用可以避开繁杂的子程序编写任务,自定义函数也大大提高了程序设计的自由度。

(4)强大的图形功能。MATLAB提供了丰富的绘图函数命令,并且具有较强的编辑图形界面的能力,对于图形的编辑和设置完全可以在可视化环境下进行。

(5)强大的工具箱。MATLAB工具箱分为功能性工具箱和学科性工具箱两类。

功能性工具箱:主要用于扩充符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。

学科性工具箱:由相关专业领域内的专家编写,专业性强。

(6)方便的应用程序接口功能。MATLAB提供了应用程序接口,可以使用C、C++或Fortran等其他高级编程语言进行编程,实现与MATLAB程序的混合编程。

2.Simulink的特点

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无须书写大量程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有如下特点。

(1)动态系统的建模与仿真。因为Simulink支持线性、非线性、连续、离散、多变量和混合式系统结构,所以Simulink能胜任几乎任何一种类型的真实动态系统。

(2)建模方式直观。Simulink是一种图形化的仿真工具,利用其可视化的建模方式,可迅速地建立动态系统的框图模型。

(3)模块可定制。Simulink允许自定义模块的使用,可以对模块的图标、对话框等进行自定义编辑。Simulink也允许将C、Fortran、Ada代码直接移植到Simulink模型当中。

(4)仿真模拟快速、精准。Simulink先进的求解器提高了非线性系统仿真精度,它能确保连续系统或离散系统的仿真高速、精准地进行。图形化调试工具让系统的开发设计过程产生的错误无处遁形。

(5)复杂系统的层次性。Simulink利用子系统模块,使得庞杂的系统模型的构建变得简单易行。整个系统可以按照自上而下或自下而上的方式进行分层构建,子系统的嵌套使用不受限制。

(6)仿真分析的交互性。Simulink提供示波器等观察器,用于显示动画或图形。仿真过程中,利用这些观察器可以监视仿真结果。这种交互式特性能让开发者快速进行算法评估以及参数优化。

本节将介绍几个例子来展示MATLAB/Simulink在系统仿真中的应用,希望读者通过这些例子对MATLB/Simulink有一个初步的认识。

例1-1】微分方程求解。一个非线性刚体系统可用如下方程进行描述:

试求出在初始条件y1(0)=0、y2(0)=1、y3(0)=1下系统的解。

编写如下MATLAB程序:

function ep1_1
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);
[T,Y] = ode45(@rigid,[0 12],[0 1 1],options);
plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
function dy = rigid(t,y)
dy = zeros(3,1);    
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.5 * y(1) * y(2);

程序运行结果如图1-3所示。

图1-3 微分方程的解

例1-2】三维图形绘制。编写如下MATLAB程序:

figure;
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(Z);

程序运行结果如图1-4所示。

图1-4 三维图形绘制

例1-3】Simulink模型建立与仿真。

建立图1-5所示的Simulink模型。

图1-5 Simulink模型框图

这是一个利用S-function建立的系统模型,通过Scope模块可以观察仿真结果。运行仿真,双击Scope模块,得到图1-6所示的仿真结果。

图1-6 仿真结果

本章简要介绍了系统仿真的基本概念和MATLAB的一些基础知识,目的是让读者对 其有一定的认识,为后面MATLAB/Simulink的学习做好准备。

本书所讲的系统仿真只针对计算机仿真,即在研究系统过程中根据相似性原理,利用计算机来近似模拟研究对象。研究对象可以是实际的系统,也可以是设想中的系统。MATLAB是计算机仿真不可或缺的基础软件,它经过多年的发展与扩充,成了当今世界上应用最广泛、最受人们欢迎的系统仿真与科学计算软件工具之一。

相关图书

MATLAB完全自学教程
MATLAB完全自学教程
精通MATLAB数字图像处理与识别(第2版)
精通MATLAB数字图像处理与识别(第2版)
MATLAB App Designer从入门到实践
MATLAB App Designer从入门到实践
MATLAB 2020中文版从入门到精通
MATLAB 2020中文版从入门到精通
MATLAB机器学习
MATLAB机器学习
MATLAB 2018从入门到精通
MATLAB 2018从入门到精通

相关文章

相关课程