《MATLAB及其应用概述.ppt》由会员分享,可在线阅读,更多相关《MATLAB及其应用概述.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、江江苏大学机械工程学院大学机械工程学院测控技控技术与与仪器系器系 潘海彬潘海彬MATLAB在电子信息课程中的应用在电子信息课程中的应用,陈怀琛陈怀琛,吴大正吴大正,高西全编著,电子工业出版社,高西全编著,电子工业出版社,2003年版。年版。精通精通版版,张志涌张志涌著,著,北京航空航天大学出版社北京航空航天大学出版社,2003年年3月第月第1版。版。MATLAB实用教程实用教程,郑阿奇主编,电子工业出版社,郑阿奇主编,电子工业出版社,2004年年5月第月第1版版MATLAB与科学计算与科学计算,王沫然编著,电子工业出版社,王沫然编著,电子工业出版社,2003年年9月第月第2版版基于基于MATL
2、AB/Simulink的系统仿真技术与应用的系统仿真技术与应用,薛定,薛定宇,陈阳泉编著,清华大学出版社,宇,陈阳泉编著,清华大学出版社,2002年年4月第月第1版。版。参考教材及文献参考教材及文献章章节目目录计划学划学时第第1章章 MATLAB概述及概述及MATLAB的开发环境的开发环境 2第第2章章 MATLAB的数值计算与符号计算的数值计算与符号计算 6第第3章章 MATLAB绘图及基本程序设计绘图及基本程序设计 2第第4章章 MATLAB在电路和信号与系统中的应用在电路和信号与系统中的应用 4第第5章章 MATLAB在自动控制理论中的应用在自动控制理论中的应用 2第第6章章 系统仿真系
3、统仿真(Simulink)工具箱与仿真技术工具箱与仿真技术 4课程内容课程内容讲讲 课课 20上上 机机 10共共 计计 30考核方式考核方式:平时上课情况:平时上课情况上机作业情况上机作业情况 考查或论文情况考查或论文情况教学课时安排教学课时安排The MathWorks公司官方网站公司官方网站MATLAB大观园大观园一些高校的一些高校的bbs清华大学、哈工大、上海交大、西安交大等清华大学、哈工大、上海交大、西安交大等本课程的互联网资源本课程的互联网资源本课程的互联网资源本课程的互联网资源熟练熟练MATLAB环境,并能借助于环境,并能借助于MATLAB的强大科学计的强大科学计算及数据处理能力
4、来解决一些基本科学及工程计算问题和算及数据处理能力来解决一些基本科学及工程计算问题和数学学科中许多问题数学学科中许多问题。掌握掌握MATLAB的数值计算与符号计算。的数值计算与符号计算。掌握一些基本的函数库,掌握基本的绘图方法和程序设计掌握一些基本的函数库,掌握基本的绘图方法和程序设计方法。方法。应用应用MATLAB/Simulink解决电路、信号与系统、自动控解决电路、信号与系统、自动控制以及系统仿真等实际问题。制以及系统仿真等实际问题。课程目标课程目标第一章第一章 MATLAB仿真技术概述及仿真技术概述及MATLAB的开发环境的开发环境 MATLAB是由美国是由美国MathWorks公司推
5、出的专门用于科学、公司推出的专门用于科学、工程计算和系统仿真的应用软件。它集成了工程计算和系统仿真的应用软件。它集成了计算计算、可视化可视化和和程序编制程序编制功能,作为一种强大的科学计算平台,它几乎满足功能,作为一种强大的科学计算平台,它几乎满足所有的计算需求。所有的计算需求。MATLAB是是Matrix Laboratory(矩阵实验室)的缩写,(矩阵实验室)的缩写,它是一种以它是一种以矩阵矩阵运算为基础的程序语言,与其它计算机语言运算为基础的程序语言,与其它计算机语言相比,其特点是简洁和智能化。相比,其特点是简洁和智能化。MATLAB概述概述MATLAB的产生的产生 70年代后期,身为美
6、国年代后期,身为美国New Mexico大学计算机系系主任的大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,发现学生用,在给学生讲授线性代数课程时,发现学生用FORTRAN解决特征值求解、解线性方程组等解决特征值求解、解线性方程组等与矩阵有关的数与矩阵有关的数学问题时学问题时的很费时间,于是利用业余时间为学生编写了的很费时间,于是利用业余时间为学生编写了专用于专用于矩阵的处理、运算的程序矩阵的处理、运算的程序。Cleve Moler给这个程序取名为给这个程序取名为MATLAB(MATrix LABoratory),即,即Matrix和和Laboratory的组的组合。在
7、以后的数年里,合。在以后的数年里,MATLAB在多所大学里作为教学辅助软在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。件使用,并作为面向大众的免费软件广为流传。1983年春天,年春天,Cleve Moler到到Standford大学讲学,大学讲学,MATLAB深深地吸引了工程师深深地吸引了工程师John Little。John Little敏锐敏锐地觉察到地觉察到MATLAB在工程领域的广阔前景。于是,他和在工程领域的广阔前景。于是,他和Cleve Moler、Steve Bangert一起,并改用一起,并改用C语言开发了第二语言开发了第二代代MATLAB专业版,也是专业
8、版,也是MATLAB第一个商用版,同时赋第一个商用版,同时赋予了它予了它数值计算数值计算和和数据图示化数据图示化的功能。自从第一版发行以来,的功能。自从第一版发行以来,已有众多的科技工作者加入到已有众多的科技工作者加入到MATLAB的开发队伍中,并为的开发队伍中,并为形成今天约形成今天约MATLAB系统做出了巨大的贡献。系统做出了巨大的贡献。1984年,年,Cleve Moler和和John Little成立了成立了MathWorks公公司,发行了司,发行了MATLAB第第1版版(DoS版本版本1.0)。此后,此后,MathWorks公司并继续进行公司并继续进行MATLAB的研究和开发,的研究
9、和开发,逐步将其发展成为一个集数值处理、图形处理、图像处理、符逐步将其发展成为一个集数值处理、图形处理、图像处理、符号计号计 算、文字处理、数学建模、实时控制、动态仿真、信号处算、文字处理、数学建模、实时控制、动态仿真、信号处理为一体的数学应用软件。理为一体的数学应用软件。MATLAB以商品形式出现后,仅短短几年,就以其良好的以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的(如英国的UMIST,瑞典的,瑞典的LUND和和SIMNON,德国的,德国的KEDDC)纷纷淘汰,而改以)纷纷淘汰,
10、而改以MATLAB为平台加以重建。为平台加以重建。1)20世纪世纪70年代后期,年代后期,Cleve Moler构思并开发;构思并开发;2)1984年成立年成立MathWorks公司,推出了第一个公司,推出了第一个MATLAB的商的商业版,它是版;业版,它是版;3)1990年推出的版是第一个第一个可以运行于年推出的版是第一个第一个可以运行于Microsoft Windows下的版本;下的版本;4)1993年推出版本。版在继承和发展其原有的数值计算和图形年推出版本。版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:可视能力的同时,出现了以下几个重要变化:a.推出了推出了
11、SIMULINK;b.推出了符号计算工具包(推出了符号计算工具包(Symbolic Math Toolbox 1.0)。MathWorks公司此举加快结束了国际上数公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。互补发展新时代。5)其后)其后MATLAB向着向着更丰富的数据类型和结构更丰富的数据类型和结构、更友善的面更友善的面向对象向对象、更加快速精良的图形可视更加快速精良的图形可视、更广博的数学和数据分析更广博的数学和数据分析资源资源、更多的应用开发工具更多的应用开发工具方向发展。方向发展。6)
12、到)到2008年年3月,月,MathWorks公司发布最新版本公司发布最新版本MATLAB R2008a版,其中的版,其中的,。在欧美大学里,诸如应用代数、数理统计、自动控制、数在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把等课程的教科书都把MATLAB作为内容。这几乎成了九十年代作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。教科书与旧版书籍的区别性标志。在国际学术界,在国际学术界,MATLAB已经被确认为准确、可靠的科学已经被确认为准确、可靠的科学计算
13、标准软件。在许多国际一流学术刊物上,(尤其是信息科计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到学刊物),都可以看到MATLAB的应用。的应用。由于由于MATLAB采用了开放式的开发思想,不断吸收各学科采用了开放式的开发思想,不断吸收各学科领域权威人士所编写的使用程序,如今的领域权威人士所编写的使用程序,如今的MATLAB已经全部用已经全部用C代码进行了全面改写,增添了丰富的图形图像和多媒体功能,代码进行了全面改写,增添了丰富的图形图像和多媒体功能,形成了一个规模庞大、覆盖面极广的工具箱(形成了一个规模庞大、覆盖面极广的工具箱(Toolbox)。)。MATLAB 的
14、典型应用的典型应用 如今如今MATLAB已应用于下列领域:已应用于下列领域:数值和符号计算数值和符号计算、工程与科学绘图、工程与科学绘图、数值分析、数值分析、建模和、建模和仿真、控制系统的设计与仿真仿真、控制系统的设计与仿真、数字图像处理、数字图像处理、数字信号处、数字信号处理理、通讯系统设计与仿真、通讯系统设计与仿真、财务与金融工程、财务与金融工程。具体表现为:。具体表现为:自动控制、航天工程、汽车工业、生物医学工程、语音处理、自动控制、航天工程、汽车工业、生物医学工程、语音处理、图像处理、雷达工程、信号分析、计算机技术等各行各业中。图像处理、雷达工程、信号分析、计算机技术等各行各业中。MA
15、TLAB具体应用领域详见恒润科技官方网站具体应用领域详见恒润科技官方网站 另外,在设计研究单位和工业部门,另外,在设计研究单位和工业部门,MATLAB被认作进被认作进行高效研究、开发的首选软件工具。行高效研究、开发的首选软件工具。如美国如美国National Instruments(简称(简称NI)公司的数据采集、)公司的数据采集、分析和控制软件分析和控制软件LabVIEW,Cadence公司的信号和通信分析公司的信号和通信分析设计软件设计软件SPW等,或者直接建筑在等,或者直接建筑在MATLAB之上,或者以之上,或者以MATLAB为主要支撑。为主要支撑。又如又如HP公司的公司的VXI硬件,硬
16、件,TM公司的公司的DSP,Gage公司的各公司的各种硬件板卡、仪器等都接受种硬件板卡、仪器等都接受MATLAB的支持。的支持。(1)友好的工作平台和编程环境)友好的工作平台和编程环境 Windows的标准界面,人机交互性更强,操作更简单。简的标准界面,人机交互性更强,操作更简单。简单的编程环境提供了比较完备的调试系统,程序不必经过编译单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。而且提供了完整的联机查询、帮助系统,极大的方原因分析。而且提供了完整的联机查询、帮助系统,
17、极大的方便了用户的使用。便了用户的使用。(2)以矩阵和数组为基础的运算以矩阵和数组为基础的运算 MATLAB 是以是以矩阵矩阵为基础的,不需要预先定义变量和矩为基础的,不需要预先定义变量和矩阵阵(包括数组包括数组)的维数,可以方便地进行矩阵的算术运算、关系的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。提供了丰富的矩阵运算处理功能。运算和逻辑运算等。提供了丰富的矩阵运算处理功能。MATLAB特点特点(3)简单易学,使用方便灵活;语法限制不严,程序设计自)简单易学,使用方便灵活;语法限制不严,程序设计自由度大由度大 MATLAB 中的函数名和表达式更接近我们书写计算公式中的函数名和表
18、达式更接近我们书写计算公式的思维表达方式,编写的思维表达方式,编写MATLAB程序犹如在草稿纸上排列公程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。式与求解问题,因此可以快速地验证工程技术人员的算法。MATLAB包含控制语句、函数、数据结构、输入和输出包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序行命令同步,也可以先编写好一个较大的复杂的应用程序(M文文件件)后再一起运行。后再一起运行。在在MATLAB里,用户无需
19、对矩阵预定义就可使用。有大里,用户无需对矩阵预定义就可使用。有大量事先定义的数学函数,并且有很强的用户自定义函数的能力。量事先定义的数学函数,并且有很强的用户自定义函数的能力。(4)强大的科学计算机数据处理能力)强大的科学计算机数据处理能力 MATLAB是一个包含大量计算算法的集合。其拥有是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。在通常情况下,可以用它来代替底层编需的各种计算功能。在通常情况下,可以用它来代替底层编程语言,如程语言,如C和和C+。在计算要求相同的情况下,使用
20、。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。的编程工作量会大大减少。MATLAB的这些函数所能解决的问题其大致包括矩阵运的这些函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。数学运算、多维数组操作以及建模动态仿真等。(5)强大的符号运
21、算功能)强大的符号运算功能p符号运算即用字符串进行数学分析符号运算即用字符串进行数学分析p允许变量不赋值而参与运算允许变量不赋值而参与运算p用于解代数方程、微积分、复合导数、积分、二重积分、有用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰乐级数展开、寻优等等,可求得解析理函数、微分方程、泰乐级数展开、寻优等等,可求得解析符号解符号解(6)丰富的库函数)丰富的库函数p 丰富的库函数,在进行复杂的数学运算时可以直接调用。丰富的库函数,在进行复杂的数学运算时可以直接调用。p 用户还可以根据需要方便地编写和扩充新的函数库。用户还可以根据需要方便地编写和扩充新的函数库。p 特别
22、是特别是MATLAB中面向特殊领域的专门的库函数,可以高中面向特殊领域的专门的库函数,可以高效地求解诸如小波分析、模糊逻辑、信号处理、图像处理、控效地求解诸如小波分析、模糊逻辑、信号处理、图像处理、控制等问题。制等问题。p利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。切不必要的编程工作。(7)丰富的绘图功能与计算结果的可视化)丰富的绘图功能与计算结果的可视化p具有高层绘图功能具有高层绘图功能两维、三维绘图两维、三维绘图p具有底层绘图功能具有底层绘图功能句柄绘图句柄绘图p使用使用plot函数可随时将计算结果可视化函数可
23、随时将计算结果可视化p还有一些其他软件所没有的功能(例如图形的光照处理、色还有一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等)度处理以及四维数据的表现等)(8)图形化程序编制功能)图形化程序编制功能p动态系统进行建模、仿真和分析的软件包动态系统进行建模、仿真和分析的软件包p用结构图编程,而不用程序编程用结构图编程,而不用程序编程p只需拖几个方块、连几条线,即可实现编程功能只需拖几个方块、连几条线,即可实现编程功能(9)丰富的)丰富的MATLAB工具箱(工具箱(Toolbox)p符号数学工具箱(符号数学工具箱(Symbolic Math)p动态仿真工具箱(动态仿真工具
24、箱(Simulink)p控制系统工具箱(控制系统工具箱(Control System)p信号处理工具箱信号处理工具箱(Signal Processing)p图象处理工具箱图象处理工具箱(Image Processing)p通讯工具箱(通讯工具箱(Communications)p模糊逻辑(模糊逻辑(Fuzzy Logic)p系统辨识工具箱系统辨识工具箱(System Identification)p神经元网络工具箱神经元网络工具箱(Neural Network)p统计工具箱统计工具箱(Statistics)许多学科,在许多学科,在MATLAB中都有专用工具箱,现已有中都有专用工具箱,现已有30多
25、多个工具箱,但个工具箱,但MATLAB语言的扩展开发还远远没有结束,各语言的扩展开发还远远没有结束,各学科的相互促进,将使得学科的相互促进,将使得MATLAB更加强大。更加强大。(10)MATLAB的开放式的开放式pmatlab 所有函数都是开放的所有函数都是开放的p用户可按自己意愿随意更改,如用户可以修改工具箱中的用户可按自己意愿随意更改,如用户可以修改工具箱中的函数,还可以通过编制函数,还可以通过编制M文件来任意地添加工具箱中原来文件来任意地添加工具箱中原来没有的工具函数没有的工具函数p正因为此功能,使得正因为此功能,使得matlab的应用越来越广泛的应用越来越广泛(11)可扩充性强,具有
26、方便的应用程序接口可扩充性强,具有方便的应用程序接口 用户可以方便地在用户可以方便地在MATLAB环境中调用其他用环境中调用其他用 Fortran 或或者者 C 语言编写的代码,也可以在语言编写的代码,也可以在 C 语言或者语言或者 Fortran 语言程序语言程序中调用中调用MATLAB 计算引擎来执行计算引擎来执行MATLAB代码。代码。新版本的新版本的MATLAB可以利用可以利用MATLAB编译器和编译器和C/C+数学数学库和图形库,将自己的库和图形库,将自己的MATLAB程序自动转换为独立于程序自动转换为独立于MATLAB运行的运行的C和和C+代码。允许用户编写可以和代码。允许用户编写
27、可以和MATLAB进行交互的进行交互的C或或C语言程序。语言程序。(12)强大的联机检索帮助系统)强大的联机检索帮助系统p可随时检索可随时检索matlab函数函数p可随时查询可随时查询matlab函数的使用方法函数的使用方法(13)MATLAB的容错功能的容错功能非法操作时,给出提示,并不影响其操作非法操作时,给出提示,并不影响其操作1/0Warning:Divide by zeroans=Inf(14)MATLAB也有其缺点也有其缺点 由于由于MATLAB的程序不用编译等预处理,也不生成可执的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。行文件,程序为解释执行,所以
28、速度较慢。由于由于MATLAB属于解释性语言,所以限制了属于解释性语言,所以限制了MATLAB在在大型数值计算以及一些大型数值计算以及一些实时控制系统中实时控制系统中的应用。的应用。这里将用几个例子来展示这里将用几个例子来展示MATLAB在系统仿真中在系统仿真中的应用,这里侧重于给出例子的概要和特色,更详细的应用,这里侧重于给出例子的概要和特色,更详细的内容将在后面的章节中介绍,希望通过这里的简单的内容将在后面的章节中介绍,希望通过这里的简单例子,读者能领略例子,读者能领略MATLAB的功能与特色。的功能与特色。MATLAB的几个应用实例的几个应用实例例例1.用一个简单命令求解线性系统用一个简
29、单命令求解线性系统 A=3 1-1;1 2 4;-1 4 5;b=3.6;2.1;-1.4;x=Abx=例例2、用简短命令计算并绘制在、用简短命令计算并绘制在0 x 6范围内的范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=sin(x.2),y3=(sin(x).2;plot(x,y1,x,y2,x,y3)例例3.当(当(-3x3,-3y 1+2+3 ans=6 1*10+2*20+3*30 ans=140 x=1+2+3 x=6 如果在上述的例子结尾加上如果在上述的例子结尾加上;,则计算结果不会显示在,则计算结果不会显示在指令视窗上
30、,要得知计算值只须键入该变数值即可指令视窗上,要得知计算值只须键入该变数值即可。x=1+2+3;x x=6MATLAB入门入门简易数学简易数学 MATLAB提供基本的算术运算有:提供基本的算术运算有:加加(+)、减减(-)、乘乘(*)、除除(/)、幂次方次方(),范例范例为:5+3,5-3,5*3,5/3,53 其它在计算常用的功能我们来看一个算式来说明。要计其它在计算常用的功能我们来看一个算式来说明。要计算面积算面积Area=,半径半径r=2,则可键入,则可键入 r=2;area=pi*r2;area=12.5664 我们也可以将上述指令打在同一行,以我们也可以将上述指令打在同一行,以,或是
31、或是;分开,分开,例如例如 r=2,area=pi*r2 r=2;area=pi*r2;请注意上述二式的差异,前者有计算值显示,而后者请注意上述二式的差异,前者有计算值显示,而后者则无。则无。如果一个指令过长可以在结尾加上如果一个指令过长可以在结尾加上.(代表此行指令(代表此行指令与下一行连续),例如与下一行连续),例如 r=2;area=pi.*r2 另外一个符号注解是由另外一个符号注解是由%起头,也就是说在起头,也就是说在%之后的任之后的任何文字都被视为程式的注解。何文字都被视为程式的注解。r=2;%键入半径入半径 area=pi*r2;%计算面算面积 简单的数学运算(例)简单的数学运算(
32、例)1、常用的数学运算符、常用的数学运算符,*(乘),(乘),(左除)(左除),/(右除)(右除),(幂)(幂)在运算式中,在运算式中,MATLAB通常不需要考虑空格;多条命令可以通常不需要考虑空格;多条命令可以放在一行中,它们之间需要用分号隔开;逗号告诉放在一行中,它们之间需要用分号隔开;逗号告诉MATLAB显示结果,而分号则禁止结果显示。显示结果,而分号则禁止结果显示。2、常用的数学函数、常用的数学函数abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real,sign,log,log10,conj(共扼复数)等等(共扼复数)等等 小小 结结一、初步了解一、初步了解matlab 二、熟悉二、熟悉matlab界面,进行简单操作。界面,进行简单操作。