MATLAB工程仿真与应用30例(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-12 11:47:29

点击下载

作者:施梨

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

MATLAB工程仿真与应用30例

MATLAB工程仿真与应用30例试读:

前言

MATLAB是由美国Mathworks公司发布的主要面对科学计算、可视化及交互式程序设计的仿真计算环境。它将数值分析、矩阵计算、科学数据可视化及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究尤其是工程设计提供了一种全面的解决方案。本书精心挑选了30个工程仿真实例,用于展示MATLAB在工程仿真中的广泛应用和解决能力。

在编写本书时,我们努力遵循如下5点准则:(1)精心选择、安排实例内容。在工程实例选取时,主要选取船舶、飞机、汽车和卫星4个具有典型代表的工程对象。这4个工程对象系统复杂,代表了现代工程中多学科、多领域融合的方向。(2)难度由浅入深,易于理解。本书从MATLAB基础知识开始到各种工具箱介绍,使读者逐渐掌握MATLAB在工程实践中的多项应用。(3)涉及范围广、实例集中。书中介绍了MATLAB在控制、通信、电力电子、结构、热、图像和逻辑等多个工程领域的应用,但是实例主要集中在船舶、飞机、汽车和卫星4个工程对象,从多个方面展示工程对象的特征,更易于读者理解和掌握。(4)理论和实践相结合。书中的每一部分都是由理论基础到工程实际应用,读者既可以全面地了解理论知识,又可以掌握在工程中的使用方法。(5)目标和任务明确。每一个实例都介绍本例学习目标及本例小结,使读者在阅读时带着明确的任务,效率更高。

本书内容安排大致如下:

第一部分(第1例至第4例)为控制工程仿真,在介绍MATLAB编程基础和Simulink建模基础后,介绍基于MATLAB设计控制器的方法,并通过船舶、飞机、汽车和卫星4个实例予以介绍。

第二部分(第5例至第8例)为通信工程仿真,基础知识部分介绍了MATLAB通信工具箱、MATLAB文件操作、串口操作和S函数第一部分。在实例部分以车载数字电视调制解调、舰载雷达通信系统、机载GPS信号接收及处理建模和GPS的C/A码及导航电文建模为例,介绍通信工程部分的仿真。

第三部分(第9例至第12例)为电力电子工程仿真,基础知识部分介绍了SimPowerSystems工具箱、Simdriveline工具箱、RF工具箱、Simscape工具箱和SimElectronics工具箱基础知识。在实例部分介绍了燃料电池汽车仿真、雷达射频前端电路仿真、飞机供电系统仿真和重力场卫星加速度计读取电路仿真。

第四部分(第13例至第16例)为结构工程仿真,基础知识部分介绍了SimMechanics工具箱和基于M语言的GUI设计。实例部分介绍了汽车stewart平台仿真、舰载四杆机构仿真、基于SolidWorks的stewart平台三维模型转换和卫星三维建模与有限元仿真。

第五部分(第17例至第20例)为热工程仿真,基础知识部分介绍了Simscape语言、Level-2S函数和基于C语言S函数的使用方法。工程实例部分介绍了汽车温度调节系统仿真、船舶温度调节系统和卫星温度调节系统等仿真。

第六部分(第21例至第24例)为图像工程仿真,基础知识介绍了图像处理工具箱和地图工具箱,工程实例部分介绍了基于图像处理的交通车辆辨识、大型飞机航拍图处理、基于地图工具箱的船舶定位研究和卫星星下点轨迹图生成等仿真。

第七部分(第25例至第30例)为逻辑系统仿真,基础知识介绍了Stateflow工具箱基础知识,工程实例部分介绍了发射终止系统、月球登陆器自动驾驶仪、飞机俯仰轴容错控制、汽车电动车窗升降控制、汽车传动系统和导弹制导系统等仿真。

本书主要由施梨编著,此外,参与编写、修改工作的还有李龙、魏勇、王华、李辉、刘峰、徐浩、李建国、马建军、唐爱华、苏小平、朱丽云、马淑娟、周毅、张玉兰等。

本书编著者在编写过程中一直从读者的角度出发,力求通俗易懂,并充分考虑了当前工程实践的需求,其内容和难度符合广大学生和科研工作者在学习和生产实践中的使用需求。由于编著者水平有限,书中缺点和疏漏在所难免,恳请读者批评指正。

编著者

2015年2月于上海松江第一部分 控制工程仿真实例引言——控制工程建模与分析方法

控制工程是处理自动控制系统各种工程实现问题的综合性工程技术。包括对自动控制系统提出要求、进行设计、构造、运行、分析、检验等过程。

它普遍使用频域法和状态空间法。其理论和处理方法涉及多方面,从线性控制到非线性控制,从单变量控制到多变量控制,从连续系统控制到离散系统控制,从定常系统控制到随机系统控制等。控制工程的应用范围早期主要是工业生产过程,如化工、电子、冶金、电气、武器系统和火箭、卫星等,后来扩展到企业管理、城市规划、交通管制、生物控制、社会经济规划等领域。

第一部分选取船舶运动控制、F-14俯仰轴控制、汽车悬架系统控制和卫星姿态控制为例介绍基于MATLAB如何对控制工程进行设计与仿真。其中MATLAB提供的控制工程工具箱能为控制工程仿真提供建模和分析提供有力的支持,因此在介绍实例之前首先对其进行介绍。

控制工程工具箱按照功能可分为两部分:建模和分析。

一、建模

为对控制系统进行设计与仿真,首先需要建立控制系统的模型,控制工程工具箱提供了四种建模方式。

1.状态方程形式

状态方程形式如式(A1)所示,该种形式在多变量线性系统中使用较多,便于控制器设计。

式中x是状态变量,u和y分别为输入和输出变量,A,B,C和D具有适当的维数。

控制工程工具箱中建立状态方程的命令是ss,下列程序给出一个建模实例。

在MATLAB命令行输入上述程序(读者可在免费提供下载的配书资源中找到相应程序,下同)并运行后,得到:

2.传递函数形式

传递函数形如式(A2)所示。传递函数在单变量系统中使用较多,是经典控制主要采用的形式。

式中s为拉普拉斯变换算子,关于其定义可参见复变函数相关书籍。

控制工程工具箱中建立状态方程的命令是tf,在MATLAB命令行中输入:

即可得到:

3.零极点增益形式

零极点增益形式如式(A3)所示。零极点增益形式便于了解系统的零极点分布,便于了解系统性能。

控制工程工具箱中建立状态方程的命令是zpk,在MATLAB命令行中输入:

即可得到:

4.频域响应数据形式

该种方式通过对系统频域响应进行采样得到模型的信息。频域响应数据形式在模型未知或系统辨识中应用较多。如图 A1 所示,通过在系统G (ω)施加输入sinω t,测得对应的输出y (t)并保存即得ii到频域相应的数据形式。图A1 频域响应测量方法

注意:四种形式可互换,如sys_tf=tf(sys_dc)即将状态方程形式转换为传递函数形式。

二、分析

控制工程工具箱提供了LTI观测器来进行对系统特性分析。LTI观测器是一个观测线性系统响应及其他特性的GUI工具。LTI观测器观测的对象为LTI对象,LTI对象可利用前面介绍的建模工具来建立。通过LTI观测器可进行以下几方面工作。

● 阶跃响应、脉冲响应、初始状态响应和任意状态响应。

● 伯德图(Bode)、奈奎斯特图(Nyquist)和Nichols图(对数幅相图)。

● 频域相应的极点值。

● 系统零极点图。

通过在MATLAB命令行中输入“ltiview”即可打开LTI观测器,如图A2所示。基于LTI观测器分析系统性能可分为以下几步。(1)通过单击“File|Import…”即可打开LTI对象输入界面,如图A3所示。(2)在LTI对象输入界面中单击要分析的LTI对象,这里存在一个LTI对象sys_dc,是之前在建模阶段建立的对象,然后单击“OK”即出现sys_dc阶跃响应图,如图A4所示。(3)在图A4中单击右键选择“Characteristics|Rise Time”可得到sys_dc阶跃响应上升时间,如图A5所示。(4)同样在图A4中单击右键选择“Plot Types|Bode”可得sys_dc伯德图,如图A6所示。图A2 LTI观测器图A3 LTI对象输入界面图A4 sys_dc阶跃响应图图A5 sys_dc阶跃响应上升时间图A6 sys_dc伯德图

除LTI观测器外,MATLAB控制工程工具箱还提供了相关函数,用来帮助对系统进行建模分析,表A1列出了这方面的部分函数。表A1 MATLAB控制工程工具箱函数命令续表

注意:其中ss、tf和zpk也可以建立控制对象离散形式。第1例 船舶运动控制仿真

船舶运动控制一直是国内外研究的热点。一方面,船舶运动控制系统表现出时变和非线性的特点;另一方面,控制性能要求节能、安全和强鲁棒性,控制目标由航向控制到航迹控制,以实现复杂环境下的自动航行和自动靠泊等。

本例基于MATLAB和采用PD算法对船舶运动设计控制器,并进行仿真。在设计之前,为使读者熟悉基于MATLAB语言的设计与仿真过程,首先对MATLAB编程基础进行简单介绍,其次介绍船舶运动动力学与控制器设计。

通过本例学习应了解和掌握以下几部分:

● MATLAB编程基础。

● 船舶动力学基础。

● 船舶控制器。1.1 MATLAB编程基础

构成MATLAB编程的基本要素有变量、运算符、函数及文件四类。其中变量是构成MATLAB语言的最基本单位之一,用于表示自定义对象和特殊对象等;运算符用于连接变量,通过组合表示更为复杂的对象;函数具有输入变量和输出变量,通过一定的算法将输入变量与输出变量联系起来;文件是MATLAB保存程序和数据的载体,当程序较大时,需要通过一个或多个文件保存。下面对这四类要素分别予以介绍。1.1.1 变量

变量可以表示程序中用到的数值和矩阵变量及字符变量等。为使用变量,首先需要利用标识符将变量表示出来。本小节分别介绍变量名标识符表示准则、矩阵建立和字符变量建立方法。

1.变量名标识符表示准则

变量名利用标识符表示。标识符是标志变量名、常量名、函数名和文件名的字符串的总称。标识符表示变量等需要遵循以下一些准则:

● 变量和常量的标识符长度不超过31(6.5版本以后为63)个字符。

● 标识符中的第一个字符必须是英文字母,不能有汉字。

● 标识符可以包含下划线、数字,但不能为空格符、标点。

● 大小写敏感。

● 变量无需事先定义即可使用。

变量名标识符例子:boat,car_tv,satellite1等。

注意:标识符不能占用MATLAB专用常量及变量名,表1-1列出了MATLAB部分特殊变量和常数标识符。此外为便于理解,如果习惯用英文,则都用英文,如果习惯用拼音,则都用拼音。表1-1 MATLAB部分特殊变量和常数

2.矩阵变量建立

使用矩阵是MATLAB数值计算的一大特点,通过建立矩阵变量能采用一些基于矩阵的快捷数值算法,从而能有效地提高计算效率。建立矩阵分为直接输入法、步长生成法和部分输入法三种,此外如果矩阵元素为复数,也有相应的输入方法,而MATLAB自身也提供了部分特殊矩阵建立及矩阵信息查询的函数。下面对这五部分内容分别予以介绍。

1)直接输入法

直接输入法例子:

在MATLAB命令行中输入a=[1 2 3;4 5 6;7 8 9]并回车,得到:

可见a为一个三行三列的矩阵。

注意:矩阵的值放在方括号[]中,矩阵列间用空格或逗号“,”分隔,而行间用分号“;”分隔。另外输入时需在英文输入法格式下输入。

2)步长生成法

步长生成法例子:

在MATLAB命令行中输入t=0:1:10并回车,得到:

可见t为一个1行11列的矩阵(同时为向量)。

注意:步长生成法的格式为:初值:步长:终值,中间的数值为步长,可以为正也可以为负。如果为正,则终值需大于初值,反之则终值需小于初值。

3)部分输入法

部分输入法例子:

在MATLAB命令行中输入a=[1 2 3;4 5 6;7 8 9]、t=0:1:10、c=[a;t(1,1:3)],并回车,得到:

可见c为一个3行4列的矩阵。而且可以看出c矩阵的前三行是由a得到,而最后一行是由t的前三个元素组成。这就说明可以在已有矩阵的基础上通过组合得到更为复杂的矩阵,从而能够提高效率。

提示:如果不想在命令行中看到变量的具体展开形式,则在命令的后面加上“;”即可,如“t=0:1:10;”后面加上“;”,则在命令行中就不会显示t的展开形式。

部分输入法中涉及矩阵下标的概念。如t(1,1:3),其中t括号里面的1以及1:3都为下标,前面的1表示第1行,后面的1:3表示第1列至第3列。利用下标,矩阵可以迅速地定位矩阵元素信息。如t(1,1:3)即表示t矩阵中第1行中的第1列至第3列这三个元素,而t(1,1)则表示t矩阵中第1行第1列这个元素。

提示:矩阵下标也可以运用步长生成格式,如t(1,1:2:5)表示t矩阵中第1行中的第1列、第3列以及第5列这三个元素。

4)复数矩阵建立

复数矩阵例子:

在MATLAB命令行中输入以下内容:

则可得到:

例子中存在三种复数输入方式:第一种是数值直接置于“i”左边,第二种是数值通过“*”号与“i”连接起来,第三种是“i”在前面,通过“*”号与数值连接。三种方式都是可行,且具有相同的效果。

提示:在MATLAB中“%”后的内容为注释。

5)常用与矩阵相关的函数命令

MATLAB部分特殊矩阵建立及矩阵信息查询的函数命令,如表1-2所示。表1-2 MATLAB部分特殊矩阵建立及矩阵信息查询的函数命令

提示:函数的具体用法可通过MATLAB的帮助文档详细了解。

3.字符变量建立

字符变量建立例子:

在MATLAB命令行中输入以下内容:

则可得到:

由上面的例子可以看出:

● 通过两个单引号组合可建立字符变量。

● 字符变量也可以作为矩阵元素,即变量也可以表示字符矩阵。

● 大括号包含的整体为元胞矩阵,里面的元素为元胞。元胞是MATLAB中一种数据类型,可以为字符、数值等多种类型。详细内容可“doc cell”命令进行了解。

为便于字符变量的操作,MATLAB提供了部分涉及字符变量操作的函数命令,如表1-3所示。表1-3 MATLAB部分字符变量操作函数1.1.2 运算符

运算符是MATLAB数值运算以及连接变量的基本符号,MATLAB提供了丰富的运算符号,如表1-4所示。表1-4 MATLAB常用运算符

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载