计算机仿真课件:前言 自动控制系统仿真概述

上传人:鲁** 文档编号:568781968 上传时间:2024-07-26 格式:PPT 页数:113 大小:877KB
返回 下载 相关 举报
计算机仿真课件:前言 自动控制系统仿真概述_第1页
第1页 / 共113页
计算机仿真课件:前言 自动控制系统仿真概述_第2页
第2页 / 共113页
计算机仿真课件:前言 自动控制系统仿真概述_第3页
第3页 / 共113页
计算机仿真课件:前言 自动控制系统仿真概述_第4页
第4页 / 共113页
计算机仿真课件:前言 自动控制系统仿真概述_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《计算机仿真课件:前言 自动控制系统仿真概述》由会员分享,可在线阅读,更多相关《计算机仿真课件:前言 自动控制系统仿真概述(113页珍藏版)》请在金锄头文库上搜索。

1、计算机仿真前言前言 自动控制系统仿真概述自动控制系统仿真概述自动控制系统仿真是一门新兴的技术学科。它是对自动自动控制系统仿真是一门新兴的技术学科。它是对自动控制系统进行分析、设计与综合研究的一种重要手段。控制系统进行分析、设计与综合研究的一种重要手段。目前,目前,MATLABMATLAB为全世界自动控制领域最为流行的设计为全世界自动控制领域最为流行的设计与仿真软件。与仿真软件。自动控制系统仿真已经成为从事控制领域以及相关行业自动控制系统仿真已经成为从事控制领域以及相关行业的工程技术及科研人员所必须掌握的一门技术。的工程技术及科研人员所必须掌握的一门技术。1 1 自动控制系统简介自动控制系统简介

2、在控制工程中,在控制工程中,系统的定义系统的定义为:一个系统是由相互联为:一个系统是由相互联系、相互作用的物体所形成的具有特定功能和运动规系、相互作用的物体所形成的具有特定功能和运动规律的有机整体。律的有机整体。 自动控制系统的定义自动控制系统的定义:在没有人直接参与的情况下,:在没有人直接参与的情况下,利用外加的设备或装置(控制器),使机器、设备或利用外加的设备或装置(控制器),使机器、设备或生产过程(被控对象)的工作状态和参数(被控量)生产过程(被控对象)的工作状态和参数(被控量)自动地按照预定的规律运行。自动地按照预定的规律运行。 例如,一个电动机的转速控制系统使转速保持在设定例如,一个

3、电动机的转速控制系统使转速保持在设定值上而不受负载波动的影响,就是一个自动控制系统。值上而不受负载波动的影响,就是一个自动控制系统。 自动控制系统的模型自动控制系统的模型是对该控制系统的特征与变化规律是对该控制系统的特征与变化规律的一种定量抽象表示,是人们为了认识事物所采用的一的一种定量抽象表示,是人们为了认识事物所采用的一种手段。通常有以下几种模型:种手段。通常有以下几种模型:(1 1)物理模型:根据相似原理,把真实系统按比例放大)物理模型:根据相似原理,把真实系统按比例放大或缩小制成的模型。或缩小制成的模型。(2 2)数学模型:用数学方程、结构图来描述系统特性的)数学模型:用数学方程、结构

4、图来描述系统特性的模型。模型。 (3 3)数学模型和物理模型相结合的模型(半实物模型)数学模型和物理模型相结合的模型(半实物模型) 自动控制系统建模的步骤自动控制系统建模的步骤通常如下:通常如下:(1 1)确定控制系统模型的结构,建立系统的约束条件,)确定控制系统模型的结构,建立系统的约束条件,确定系统的属性与运动;确定系统的属性与运动;(2 2)测取模型数据)测取模型数据;(3 3)运用相关领域的理论建立系统的数学描述;)运用相关领域的理论建立系统的数学描述; 由于自动控制系统的数字仿真是以该系统的数学模型由于自动控制系统的数字仿真是以该系统的数学模型为基础的,仿真结果的可信度在很大程度上取

5、决于系为基础的,仿真结果的可信度在很大程度上取决于系统建模的准确程度。可见,系统建模至关重要,它在统建模的准确程度。可见,系统建模至关重要,它在很大程度上决定了数字仿真实验的成败。很大程度上决定了数字仿真实验的成败。 在在MATLAB/SimulinkMATLAB/Simulink环境下,通常建模的过程会变得环境下,通常建模的过程会变得十分方便快捷和真实准确。仿真结果也更加可信。十分方便快捷和真实准确。仿真结果也更加可信。 (4 4)检验所建立的数学模型的准确性。)检验所建立的数学模型的准确性。2 2 自动控制系统仿真的基本概念自动控制系统仿真的基本概念2.1 2.1 仿真的定义仿真的定义自动

6、控制系统的计算机仿真自动控制系统的计算机仿真是指以数字计算机为主要工是指以数字计算机为主要工具,编写并且运行反映真实的自动控制系统运行状况的具,编写并且运行反映真实的自动控制系统运行状况的程序。对计算机输出的信息进行分析和研究,程序。对计算机输出的信息进行分析和研究, 从而对从而对系统性能进行评价。系统性能进行评价。系统仿真所依据的理论是相似性原理。即:真实系统系统仿真所依据的理论是相似性原理。即:真实系统与它的数学模型和仿真模型在某种意义上是相似的。与它的数学模型和仿真模型在某种意义上是相似的。 2.2 2.2 自动控制系统仿真的分类自动控制系统仿真的分类1. 1.按照仿真模型的属性分类:按

7、照仿真模型的属性分类: 物理仿真、数学仿真、数学物理仿真、数学仿真、数学- -物理仿真物理仿真2. 2.按系统状态的时间连续性分类:按系统状态的时间连续性分类: 连续系统、离散事件系统连续系统、离散事件系统2.3 2.3 自动控制系统仿真的过程自动控制系统仿真的过程1. 1.建立控制系统的数学模型建立控制系统的数学模型 根据系统的实际结构与系统各变量之间所遵循的物理、根据系统的实际结构与系统各变量之间所遵循的物理、化学基本定律,列写变量间的数学表达式以建立系统的化学基本定律,列写变量间的数学表达式以建立系统的数学模型。数学模型。2. 2.建立自动控制系统的仿真模型建立自动控制系统的仿真模型 为

8、自动控制系统所建立的数学模型,通常是用微分方程、为自动控制系统所建立的数学模型,通常是用微分方程、差分方程、传递函数、状态方程,或者是差分方程、传递函数、状态方程,或者是Simulink 模型。模型。3. 3.在计算机上进行仿真实验并输出仿真结果在计算机上进行仿真实验并输出仿真结果参考教材:u 自动控制系统计算机仿真自动控制系统计算机仿真张晓江等张晓江等 机械工业出版社机械工业出版社u MATLAB程序设计与工程应用程序设计与工程应用张德丰编著清华大学出版社张德丰编著清华大学出版社u MATLAB程序设计与应用程序设计与应用肖伟等肖伟等 清华大学出版社清华大学出版社u控制系统设计与仿真控制系统

9、设计与仿真李宜达李宜达 清华大学出版社清华大学出版社u MATLAB语言与控制系统仿真语言与控制系统仿真 孙亮主编,北京工业大学出版社孙亮主编,北京工业大学出版社u MATLAB语言即学即会语言即学即会 陆宁编著陆宁编著 机械工业出版社机械工业出版社u基于基于MATLAB的控制系统计算机仿真的控制系统计算机仿真翟亮翟亮 主编清华大学出版社北方交通大学出版社主编清华大学出版社北方交通大学出版社 关于考试上机占30%上机表现和实验报告(包括预习报告)各占上机成绩的50%考试占70%二、主要功能二、主要功能 1.数值计算功能 2.符号计算功能 3.数据分析和可视化功能 4.SIMULINK动态仿真功

10、能 SIMULINK是为模拟动态系统而提供的一个交互式程序。 允许用户在屏幕上绘制框图来模拟一个系统,并动态地控制该系统。第一章第一章 MATLAB概述概述一、一、Matlab简介简介Matrix Laboratory Cleve Moler三、初识三、初识MATLAB例例1-1 绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲线。x=0:0.5:360*pi/180; plot(x,sin(x),x,cos(x)例例1-2 求方程求方程 3x4+7x3 +9x2-23=0的全部根。的全部根。p=3,7,9,0,-23; %建立多项式系数向量建立多项式系数向量x=roots(p) %求根求根例例1

11、-3 求积分求积分quad(x.*log(1+x),0,1)例例1-4 求解线性方程组。求解线性方程组。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17;x=inv(a)*b四、四、MATLAB的操作界面的操作界面I 命令窗口命令窗口(Command Window)II 历史命令窗口历史命令窗口(Command History)III工作空间窗口工作空间窗口(Workspace) IV 当前目录窗口当前目录窗口(Current Directory)文本编辑窗口文本编辑窗口 图形窗口图形窗口 演示窗口演示窗口1菜单栏菜单栏在在MATLAB 6.5主窗口的菜单栏,共包含主窗口的菜单

12、栏,共包含File、Edit、View、Web、Window和和Help 6个菜单项。个菜单项。2工具栏工具栏MATLAB 6.5主窗口的工具栏共提供了主窗口的工具栏共提供了10个命令按钮。个命令按钮。这些命令这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。I MATLAB命令窗口命令窗口命令编辑区命令编辑区功能功能 :命令窗口是命令窗口是MATLAB的主要交互窗口的主要交互窗口,用于输,用于输入命令并显示除图形以外的所有执行结果。入命令并显示除图形以外的所有执行结果。 “”为命令提示符,为命令提示符,表示表示MATLA

13、B正在处于准备状态正在处于准备状态。语句形式:语句形式:变量变量=表达式表达式 在命令提示符后键入命令并按下回车键后,在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算就会解释执行所输入的命令,并在命令后面给出计算结果。结果。一般来说,一个命令行输入一条命令,命令行以一般来说,一个命令行输入一条命令,命令行以回车键结束。但一个命令行也可以输入若干条命回车键结束。但一个命令行也可以输入若干条命令,各令,各命令之间以逗号或分号分隔。例如例如a=5,b=6a=5;b=6显示结果有区别。显示结果有区别。 a=1+2+3+4+5+6+. 7+8+9+10II

14、 工作空间窗口工作空间窗口工作空间是工作空间是MATLAB用于用于存储各种变量和结果的内存储各种变量和结果的内存空间存空间。在该窗口中显示工作空间中所有变量的名。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。观察、编辑、保存和删除。who,whos,clearIII 当前目录窗口当前目录窗口 当前目录是指当前目录是指MATLAB运行文件时的工作目录,运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被只有在当前目录或搜索路径下的文件、函数可以被运行或调用运行或调用。 在当前目录窗

15、口中可以显示或改变当前目录,还在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。可以显示当前目录下的文件并提供搜索功能。 将用户目录设置成当前目录也可使用将用户目录设置成当前目录也可使用cd命令。例命令。例如,将用户目录如,将用户目录c:mydir设置为当前目录,可在命令设置为当前目录,可在命令窗口输入命令:窗口输入命令: cd c:mydirIV 命令历史记录窗口命令历史记录窗口 在默认设置下,历史记录窗口中会自动保留自安在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录装起所有用过的命令的历史记录,并且还标明了使,并且还标明了使用时间,从

16、而方便用户查询。而且,用时间,从而方便用户查询。而且,通过双击命令通过双击命令可进行历史命令的再运行可进行历史命令的再运行。如果要清除这些历史记。如果要清除这些历史记录,可以选择录,可以选择Edit菜单中的菜单中的Clear Command History命令。命令。五五、 MATLAB帮助系统帮助系统 1、帮助窗口、帮助窗口 打开帮助窗口可以通过以下打开帮助窗口可以通过以下3 3种方法:种方法:(1)选择选择Help菜单中的菜单中的“MATLAB Help”选项。选项。 (2)单击单击MATLAB主窗口工具栏中的主窗口工具栏中的Help按钮。按钮。(3)在命令窗口中输入在命令窗口中输入hel

17、pwin、helpdesk或或docy以打开以打开Help窗口。窗口。2、帮助命令、帮助命令MATLAB帮助命令包括帮助命令包括help、lookfor以及模糊查询。以及模糊查询。1) help命令命令在命令窗口中直接输入在命令窗口中直接输入help命令将会显示当前帮助系统中所包命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。含的所有项目,即搜索路径中所有的目录名称。 help加函数名加函数名 显示该函数的帮助说明显示该函数的帮助说明。 如:如: help sin2) lookfor命令命令 help命令只搜索出那些关键字完全匹配的结果,命令只搜索出那些关键字完全匹配的

18、结果,lookfor命令命令对搜索范围内的对搜索范围内的M文件进行关键字搜索文件进行关键字搜索,条件比较宽松。,条件比较宽松。Lookfor命令只对命令只对M文件的第一行进行关键字搜索。若在文件的第一行进行关键字搜索。若在lookfor命令加上命令加上-all选项,则可对选项,则可对M文件进行全文搜索。文件进行全文搜索。3) 模糊查询模糊查询MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查以上的版本提供了一种类似模糊查询的命令查询方法,询方法,用户只需要输入命令的前几个字母,然后按用户只需要输入命令的前几个字母,然后按Tab键,系键,系统就会列出所有以这几个字母开头的命令统就会列出

19、所有以这几个字母开头的命令。六、六、MATLAB功能演示功能演示 打开方法打开方法 :1)选择主窗口)选择主窗口Help菜单中的菜单中的Demos子菜单,打开演示子菜单,打开演示系统。系统。2)在工具栏选择帮助,然后选择)在工具栏选择帮助,然后选择Demos选项卡,然后选项卡,然后在其中选择相应的演示模块。在其中选择相应的演示模块。3)在)在命令窗口输入命令窗口输入Demos。第二章第二章 MATLAB程序设计程序设计2.1 变量变量一一、变量的命名n命名规则命名规则(1)以字母开头)以字母开头(2)后接字母、数字或下划线等字符序列。)后接字母、数字或下划线等字符序列。(3)长度不大于)长度不

20、大于63个字符。个字符。(4)变量名区分字母的大小写。)变量名区分字母的大小写。 MATLAB提供的标准函数名以及命令名必须用小写字母。提供的标准函数名以及命令名必须用小写字母。例如,例如, size(A), 不能写成不能写成Size(A)或者或者SIZE(A)。赋值语句赋值语句 变量变量=表达式表达式变量名变量名意义意义ans如果用户没有定义变量名,系统用于如果用户没有定义变量名,系统用于计算结果存储的默认变量名。计算结果存储的默认变量名。pi圆周率圆周率(=3.1415926)inf无穷大无穷大值,如值,如1/0eps浮点数的精度,也是系统运算时所确浮点数的精度,也是系统运算时所确定的极小

21、值(定的极小值(=2.2204e-16)NaN或或nan不定量,如不定量,如0/0或或inf/infi或或j虚数虚数i=j=sqrt(-1)固定变量固定变量 MATLAB变量分为自定义和固定变量;变量分为自定义和固定变量;MATLAB变量分为局部变量、全局变量和永久变量;变量分为局部变量、全局变量和永久变量;全局变量在使用前用全局变量在使用前用global命令声明,且应尽量用命令声明,且应尽量用大写大写字母字母书写全局变量。书写全局变量。定义永久变量,用定义永久变量,用persistent语句。只能在语句。只能在M文件函数中文件函数中定义和使用。定义和使用。二二、内存变量的管理内存变量的管理1

22、内存变量的显示、删除与修改内存变量的显示、删除与修改MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口专门用于内存变量的管理。在工作空间工作空间窗口中窗口中可以显示所有内存变量的属性。可以显示所有内存变量的属性。当选中某些变量后,再单击当选中某些变量后,再单击Delete按钮,就能删除这些变量。按钮,就能删除这些变量。当选中某些变量后,再单击当选中某些变量后,再单击Open按钮,将进入变量编辑器。通按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。中的具体元素。clear命令用于删除命

23、令用于删除MATLAB工作空间中的变量工作空间中的变量。who和和whos这两个命令用于这两个命令用于显示显示在在MATLAB工作空间中已经驻工作空间中已经驻留的变量名清单。留的变量名清单。who命令只显示出驻留变量的名称,命令只显示出驻留变量的名称,whos在在给出变量名的同时,还给出它们的大小给出变量名的同时,还给出它们的大小、所占字节数及数据类所占字节数及数据类型等信息。型等信息。2内存变量文件内存变量文件 利用利用MAT文件可以把当前文件可以把当前MATLAB工作空间中的一些有工作空间中的一些有用变量长久地保留下来用变量长久地保留下来,扩展名是,扩展名是.mat。MAT文件的文件的生成

24、生成和和装入装入由由save和和load命令来完成。常命令来完成。常用格式为:用格式为:save 文件名文件名 变量名变量名 -append-asciiload 文件名文件名 变量名变量名 -ascii其中,文件名可以带路径,但不需带扩展名其中,文件名可以带路径,但不需带扩展名.mat。变量名表。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名省略时,保存或装入全部变量。间以空格分隔。当变量名省略时,保存或装入全部变量。 -ascii选项使文件以选项使文件以ASCII格式处理,省略该选项时文件将以格式处理,省

25、略该选项时文件将以二进制格式处理。二进制格式处理。save命令中的命令中的-append选项控制将变量追加选项控制将变量追加到到MAT文件中。文件中。save mydata a b load mydata三、矩阵变量的建立1直接输入法直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。需遵循以下规则需遵循以下规则: 用中括号用中括号 把所有矩阵元素括起来。把所有矩阵元素括起来。同一行的不同元素之间用同一行的不同元素之间用空格或逗号空格或逗号间隔。间隔。用分号用分号( ; )指定一行结束指定一行结束;也可分成几行输入,用也可分成几行输入,

26、用回车回车代替分号代替分号。矩阵元素矩阵元素可是表达式可是表达式,系统将自动计算。,系统将自动计算。方法方法1:直接输入直接输入A=1,2,3,4;5 6 7 8;9 10 11 12;13 14 15 16A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16注意逗号、分号和空格注意逗号、分号和空格的用法。的用法。方法方法2:利用表达式输入:利用表达式输入B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154 abs(-8) 12 16B = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16注意注意

27、回车键回车键的用法。的用法。例:例: 在矩阵在矩阵A后面再补一行后面再补一行 A=1 2 3;4 5 6;7 8 9 A1=A; 1 3 5A1= 1 2 3 4 5 6 7 8 9 1 3 52利用利用M文件建立矩阵文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一对于比较大且比较复杂的矩阵,可以为它专门建立一个个M文件。文件。例例 利用利用M文件建立文件建立matrix矩阵。矩阵。(1) 启动有关编辑程序或启动有关编辑程序或MATLAB文本编辑器,并文本编辑器,并输输入入待建矩阵;待建矩阵; A=1,2,3,4;5 6 7 8;9 10 11 12;13 14 15 16 (2)

28、把输入的内容以纯文本方式把输入的内容以纯文本方式存盘存盘(设文件名为设文件名为matrix.m)。 (3) 在在MATLAB命令窗口中输入命令窗口中输入matrix,即运行该,即运行该M文件,就会自动建立一个名为文件,就会自动建立一个名为matrix的矩阵,可供的矩阵,可供以后使用。以后使用。3利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:冒号表达式可以产生一个行向量,一般格式是: A=J:D:K 其中其中J为初始值为初始值, D为步长(增量)为步长(增量), K为终止值。为终止值。 D省略时省略时, 增量为增量为1。 在在MATLAB中,还可

29、以用中,还可以用linspace函数产生行向函数产生行向量。其调用格式为:量。其调用格式为: linspace(a,b,n) 其中其中a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元素总数是元素总数。显然,显然,linspace(a,b,n)与与a:(b-a)/(n-1):b等价。等价。 x=0:0.1:1 x=linspace(0,1,11)x = Columns 1 through 4 0 0.1000 0.2000 0.3000 Columns 5 through 8 0.4000 0.5000 0.6000 0.7000 Columns 9 throu

30、gh 11 0.8000 0.9000 1.00004扩充小矩阵建立大矩阵扩充小矩阵建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。大矩阵可由方括号中的小矩阵或向量建立起来。A=2 4 8 3 6;9 2 7 1 0;C=zeros(3,2);B=eye(3);D=A;B C5.通过通过MATLAB函数产生矩阵函数产生矩阵u常用的产生特殊矩阵的函数有:常用的产生特殊矩阵的函数有:zeros:产生全:产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全:产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩阵。:产生单位矩阵。rand:产生:产生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。r

31、andn:产生均值为:产生均值为0,方差为,方差为1的标准正态分布随机矩阵。的标准正态分布随机矩阵。 diag:获取某一矩阵的对角线元素。:获取某一矩阵的对角线元素。 triu:获取某一矩阵的上三角矩阵。:获取某一矩阵的上三角矩阵。 tril:获取某一矩阵的下三角矩阵。:获取某一矩阵的下三角矩阵。 size:获取指定矩阵的行数和列数。:获取指定矩阵的行数和列数。 diagonal(对角线对角线) triangle(三角形三角形)例例 (1) 建立一个建立一个33零矩阵。零矩阵。zeros(3) (2) 建立一个建立一个32零矩阵。零矩阵。zeros(3,2) (3) 设设A为为23矩阵,则可以

32、用矩阵,则可以用zeros(size(A)建立建立一个与矩阵一个与矩阵A同维的零矩阵。同维的零矩阵。A=1 2 3;4 5 6; %产生一个产生一个23阶矩阵阶矩阵Azeros(size(A) %产生一个与矩阵产生一个与矩阵A同样大小的零矩阵同样大小的零矩阵 ans = 0 0 0 0 0 0四、四、矩阵的拆分矩阵的拆分1矩阵元素的标识矩阵元素的标识 1)通过全下标标识矩阵的元素,通过全下标标识矩阵的元素,例如例如 A=1 2 3;4 5 6;A(2,1) ans = 4 2)采用矩阵元素的序号来标识矩阵元素采用矩阵元素的序号来标识矩阵元素。矩阵元素的序号。矩阵元素的序号就是相应元素在内存中的

33、排列顺序。就是相应元素在内存中的排列顺序。 在在MATLAB中,矩阵元素中,矩阵元素按列存储按列存储,先存第一列,再存第二,先存第一列,再存第二列,依次类推。例如列,依次类推。例如A=1,2,3;4,5,6;A(4) ans = 5显然,序号显然,序号(Index)与下标与下标(Subscript )是一一对应的,以是一一对应的,以 mn矩阵矩阵A为例,为例,矩阵元素矩阵元素A(i,j)的序号为的序号为(j-1)*(m+i)。2矩阵拆分矩阵拆分 (1) 利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A( :, j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素; A( i, :)表

34、示表示A矩阵第矩阵第i行的全部元素;行的全部元素; A( i, j)表示取表示取A矩阵第矩阵第i行、第行、第j列的元素。列的元素。 A( i: i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元素;行的全部元素; A(:, k: k+m)表示取表示取A矩阵第矩阵第kk+m列的全部元素,列的全部元素, A( i: i+m, k: k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第kk+m列中的所有元素。列中的所有元素。A=1,2,3,4;5 6 7 8;9 10 11 12;13 14 15 161 1、求出这两个矩阵的乘积、求出这两个矩阵的乘积C C;2 2、将、将C C

35、矩阵的右下角矩阵的右下角2 23 3子矩阵赋给子矩阵赋给D D矩阵。矩阵。例:已知矩阵例:已知矩阵 a=1 2 3 32 3 5 71 3 5 73 2 3 91 8 9 4; b=1+4i 4 3 6 7 82 3 3 5 5 4+2i2 6+7i 5 3 4 21 8 9 5 4 3; c=a*b; d1=c(;,4:6); d=d1(4:5,:) d=c(4:5,4:6)(2) 利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素定义定义 为空矩阵为空矩阵。给变量。给变量X赋空矩阵的语句为赋空矩阵的语句为X= 。注意,注意,X= 与与clear X不同,不同,clear是将是将X从工作空间中

36、从工作空间中删除,而空矩阵则仍存在于工作空间中,只是维数删除,而空矩阵则仍存在于工作空间中,只是维数为为0。 利用空矩阵删除矩阵的行或列利用空矩阵删除矩阵的行或列: A=magic(5) A(:,4)= A = 17 24 1 15 23 5 7 16 4 6 13 22 10 12 19 3 11 18 25 9A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9五五、用于专门学科的特殊矩阵用于专门学科的特殊矩阵 (1) 魔方矩阵魔方矩阵 特点:其每行、每列及两条对角线上的元素和都特点:其每行、每列及两条对

37、角线上的元素和都相等。对于相等。对于n阶魔方阵,其元素由阶魔方阵,其元素由互异的互异的n2个整数个整数组成。组成。求魔方矩阵的函数为求魔方矩阵的函数为magic(n),其功能是生成一个,其功能是生成一个n阶阶魔方阵。魔方阵。例例 将将101125等等25个数填入一个个数填入一个5行行5列的表格中,使列的表格中,使其每行每列及对角线的和均为其每行每列及对角线的和均为565。 M=100+magic(5)M = 117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 10

38、2 109(2) 范得蒙矩阵范得蒙矩阵 范得蒙范得蒙(Vandermonde)矩阵最后一列全为矩阵最后一列全为1,倒数,倒数第二列为一个指定的向量,倒数第第二列为一个指定的向量,倒数第i列为倒数第二列的列为倒数第二列的(i-1)次方。可以用一个指定向量生成一个范得蒙矩阵。次方。可以用一个指定向量生成一个范得蒙矩阵。函数函数vander(V)生成以向量生成以向量V为基础向量的范得蒙矩阵为基础向量的范得蒙矩阵。A=vander(1;2;3;5)A = 1 1 1 1 8 4 2 1 27 9 3 1 125 25 5 1(3) 伴随矩阵伴随矩阵 MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是

39、compan(p), 其中其中p是一个多项式的系数向量是一个多项式的系数向量,高次幂系数排在前,高次幂系数排在前,低次幂排在后低次幂排在后。例,为了求多项式的例,为了求多项式的x3-7x+6的伴随矩阵,可使用命令:的伴随矩阵,可使用命令:p=1,0,-7,6;compan(p)ans = 0 7 -6 1 0 0 0 1 0 2.2 MATLAB运算运算2.2.1、算术运算MATLABMATLAB对矩阵的运算类似于线性代数对矩阵的运算类似于线性代数。1基本算术运算基本算术运算 MATLAB的基本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/ (右除右除)、 (左除左除)、(乘

40、方乘方)。注意,运算是在注意,运算是在矩阵矩阵意义下进行的,单个数据的算术意义下进行的,单个数据的算术运算只是一种特例。运算只是一种特例。矩阵加减运算矩阵加减运算1.运算符2.对应元素的加减3.适用于两矩阵同阶或其一是标量的情况。如果如果A与与B的维数不相同,则的维数不相同,则MATLAB将给出错误信息,提示将给出错误信息,提示用户两个矩阵的维数不匹配用户两个矩阵的维数不匹配.矩阵除法1.1.运算符运算符 左除左除/ /右除右除2.2.若若A A矩阵是非奇异方阵,则矩阵是非奇异方阵,则ABAB和和B/AB/A运算均运算均可以实现,且左除和右除一般不同,这是因可以实现,且左除和右除一般不同,这是

41、因为:为:AB = inv(A)*BB/ /A = B*inv(A)其中其中invinv函数用来求某一个矩阵的逆阵函数用来求某一个矩阵的逆阵。例:矩阵例:矩阵A和和B同上例,试求同上例,试求CAB和和DA3。C=A*BC = 298 583 526 341 496 304 202 265 113矩阵乘法矩阵乘法1.运算符运算符2.适用于适用于前一矩阵的列数和后一矩阵行数相前一矩阵的列数和后一矩阵行数相同同或者或者其一为标量其一为标量的情况。的情况。D=A*3D = 63 6 12 21 39 57 3 24 51例:已知矩阵例:已知矩阵A和和B,计算,计算CAB,DAB和和EA3。A=21,2

42、,4;7,13,19;1,8,17;A=21,2,4;7,13,19;1,8,17;B=12 25 24;11 13 9;6 8 1;B=12 25 24;11 13 9;6 8 1;C=A+BC=A+BC =C = 33 27 28 33 27 28 18 26 28 18 26 28 7 16 18 7 16 18D=A-BD=A-BD =D = 9 -23 -20 9 -23 -20 -4 0 10 -4 0 10 -5 0 16 -5 0 16E=A+3E = 24 5 7 10 16 22 4 11 20例:已知矩阵例:已知矩阵A和和B,试计算,试计算AB和和A/B。ABans =

43、0.5081 1.1168 1.1429 0.3216 -0.6186 0.2857 0.1717 0.6960 -0.1429A/Bans = -1.8336 5.6985 -3.2801 0.5535 0.7891 -1.3871 0.7496 0.0478 -1.4201矩阵的乘方矩阵的乘方运算符:运算符:一个矩阵的乘方运算可以表示成一个矩阵的乘方运算可以表示成AxAx,其中,其中A A为方阵,为方阵,x x为标量。为标量。例:已知例:已知A是一方阵,是一方阵,P是一个正整数,则是一个正整数,则AP表示表示A自乘自乘P次次。 A=1 2 3 4;5 6 7 8;9 10 11 12;13

44、 14 15 16; A2ans = 90 100 110 120 202 228 254 280 314 356 398 440 426 484 542 600矩阵的点运算矩阵的点运算1.为实现与矩阵相关的标量运算而设计的。为实现与矩阵相关的标量运算而设计的。2.运算符:运算符:.3.与矩阵的常规运算不同,是与矩阵的常规运算不同,是针对于矩阵中的元素针对于矩阵中的元素定义的定义的。分类:分类:点乘点乘.点乘方点乘方.点除点除. /例:已知矩阵例:已知矩阵A和和B,试求,试求AB,A.B和和A.3.A=1 2;3 4;B=5 6;7 8;A = 1 2 3 4B = 5 6 7 8C=A*BC

45、 = 19 22 43 50D=A.*BD = 5 12 21 32E= A.3E= 1 8 27 642.2.2、关系运算、关系运算 MATLAB提供了提供了6种关系运算符:种关系运算符: (小于小于)、= (大于或于大于或于)、 (大于大于)、= = (等于等于)、= (不等于不等于)。 它们的含义不难理解,但要注意其它们的含义不难理解,但要注意其书写方法书写方法与数学中的不等式符号与数学中的不等式符号不尽相同。不尽相同。关系运算符的运算法则为:关系运算符的运算法则为: (1) (1) 当两个比较量是标量时,直接比较两数当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为

46、的大小。若关系成立,关系表达式结果为1 1,否则,否则为为0 0。 (2) (2) 当参与比较的量是两个维数相同的矩阵当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由阵,它的元素由0 0或或1 1组成。组成。(3) 当参与比较的一个是标量,而另一个是矩阵时,则当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐

47、把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由结果是一个维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。例例 建立矩阵建立矩阵A,然后找出大于,然后找出大于4的元素的位置。的元素的位置。(1) 建立矩阵建立矩阵A。A=4,-65,-54,0,6;56,0,67,-45,0 (2) 找出大于找出大于4的元素的位置。的元素的位置。find(A4)A = 4 -65 -54 0 6 56 0 67 -45 0 find(A4)ans = 2 6 9 A=1 2;3

48、4,B=5 6;7 8A = 1 2 3 4B = 5 6 7 8 ABans = 0 0 0 0 AP= 5=AP = 1 1 1 12.2.3、逻辑运算、逻辑运算 MATLAB提供了提供了3种逻辑运算符:种逻辑运算符: & (与与)、| (或或)、 (非非)。逻辑运算的运算法则为:逻辑运算的运算法则为: (1) 在逻辑运算中,确认在逻辑运算中,确认非零元素为真,用非零元素为真,用1表示,表示,零元素为假,用零元素为假,用0表示表示。 (2) 设参与逻辑运算的是两个标量设参与逻辑运算的是两个标量a和和b,那么,那么, a&b a,b全为非零时,运算结果为全为非零时,运算结果为1,否则为,否则

49、为0。 a|b a,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1。 a 当当a是零时,运算结果为是零时,运算结果为1;当;当a非零时,运算非零时,运算结果为结果为0。(3) 若参与逻辑运算的是两个若参与逻辑运算的是两个同维矩阵同维矩阵,那么运算将,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元最终运算结果是一个与原矩阵同维的矩阵,其元素由素由1或或0组成。组成。(4) 若参与逻辑运算的一个是若参与逻辑运算的一个是标量标量,一个是,一个是矩阵矩阵,那,那么运算将在标量与矩阵中的每个元素之间按

50、标量么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由的矩阵,其元素由1或或0组成组成。(5) 逻辑非是单目运算符,也服从矩阵运算规则。逻辑非是单目运算符,也服从矩阵运算规则。(6) 在算术、关系、逻辑运算中,算术运算优先级最高,在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低逻辑运算优先级最低。 A=1 0;3 4,B=5 6;7 8A = 1 0 3 4B = 5 6 7 8 A&Bans = 1 0 1 1 Aans = 0 1 0 02.2.4 操作符操作符标标 点点标点说明标点

51、说明标标 点点标点说明标点说明;分号,区分行或者取分号,区分行或者取消运行显示消运行显示.小数点,小数点或者小数点,小数点或者域访问符域访问符,逗号,区分列或者函逗号,区分列或者函数参数分格符数参数分格符省略号,续行符省略号,续行符( )括号,指定运算过程括号,指定运算过程的先后次序的先后次序%百分号,注释标记百分号,注释标记 方括号,矩阵定义的方括号,矩阵定义的标识标识!感叹号,调用操作系感叹号,调用操作系统运算统运算 大括号,单元数组的大括号,单元数组的构成构成=等号,赋值符等号,赋值符:冒号,具有多种应用冒号,具有多种应用单引号,字符串标识单引号,字符串标识符,矩阵转置符,矩阵转置(1)

52、冒号冒号(:)构造行向量构造行向量能够从向量、矩阵或数组中挑选出指定的行列元素。能够从向量、矩阵或数组中挑选出指定的行列元素。(2)分号分号(;)在矩阵中分隔行。在矩阵中分隔行。在命令窗口内输入多行语句。在命令窗口内输入多行语句。(3)方括号方括号( )输入矩阵。输入矩阵。删除矩阵的行或列。删除矩阵的行或列。(4)续行符续行符()2.2.5 常用函数常用函数MATLAB提供了许多数学函数,提供了许多数学函数,函数的自变量规定为函数的自变量规定为矩阵变量矩阵变量,运算法则是将函数逐项作用于矩阵的元素,运算法则是将函数逐项作用于矩阵的元素上,因而上,因而运算的结果是一个与自变量同维数的矩阵运算的结

53、果是一个与自变量同维数的矩阵。常用数学函数常用数学函数fix朝零方向取整朝零方向取整ceil朝正无穷大取整朝正无穷大取整floor朝负无穷大取整朝负无穷大取整 rem除后取余数除后取余数round四舍五入四舍五入abs绝对值绝对值angle复数相角复数相角image复数虚部复数虚部 real复数实部复数实部conj复数共轭复数共轭log10常用对数常用对数log自然对数自然对数exp指数指数sqrt平方根平方根lcm(x,y)整数整数x和和y的最小公倍数的最小公倍数gcd(x,y)整数整数x和和y的最大公约数的最大公约数关系与逻辑运算函数关系与逻辑运算函数使用函数注意事项使用函数注意事项u函数

54、一定是出现在等式的右边。函数一定是出现在等式的右边。u每个函数对其自变量的个数和格式都有一定的每个函数对其自变量的个数和格式都有一定的要求,如使用三角函数时要注意角度的单位是要求,如使用三角函数时要注意角度的单位是“弧度弧度”而非而非“度度”。例如。例如sin(1)表示的不是表示的不是sin1而是而是sin57.28578 u函数允许嵌套,例如:可使用形如函数允许嵌套,例如:可使用形如sqrt(abs(sin(225*pi/180)的形式。的形式。uabs函数可以求实数的绝对值、复数的模、字函数可以求实数的绝对值、复数的模、字符串的符串的ASCII码值。码值。u用于取整的函数有用于取整的函数有

55、fix、floor、ceil、round,要,要注意它们的区别。注意它们的区别。urem与与mod函数的区别。函数的区别。Matlab常用指令常用指令命命 令令命令说明命令说明命命 令令命令说明命令说明cd显示或改变工作目录显示或改变工作目录hold图形保持开关图形保持开关dir显示目录下文件显示目录下文件disp显示变量显示变量或文字内容或文字内容type显示文件内容显示文件内容 type *.mpath显示搜索目录显示搜索目录clear清理内存变量清理内存变量save保存内存变量保存内存变量到指定文件到指定文件clf清理图形窗口清理图形窗口load加载指定文件加载指定文件的变量的变量pac

56、k收集内存碎片收集内存碎片diary日志文件命令日志文件命令clc清除工作窗口清除工作窗口quit退出退出matlabecho工作窗口信息工作窗口信息显示开关显示开关!调用调用dos命令命令2.3 MATLAB程序设计程序设计2.3.1 数据的输入输出数据的输入输出程序中的输入输出命令或函数。程序中的输入输出命令或函数。1、input函数函数 调用格式:调用格式:a=input(提示信息提示信息,选项选项)例:用来提示输入什么样的数据例:用来提示输入什么样的数据a=input(输入一个矩阵:输入一个矩阵:)例:例:采用采用s选项,则允许用户输入一个字符选项,则允许用户输入一个字符串串,xm=i

57、nput(姓名姓名,s)2、disp函数函数 调用格式:调用格式:disp(输出项输出项) 例例 输入输入x, y的值,并将它们的值互换后输出。的值,并将它们的值互换后输出。 x=input(Input x please.); y=input(Input y please.); z=x; x=y; y=z; disp(x) disp(y) x y例例 求一元二次方程求一元二次方程ax2 +bx+c=0的根。的根。a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);dis

58、p(x1=,num2str(x(1),x2=,num2str(x(2)%str = num2str(A)把数组把数组A中的数转换成字符串表示形式中的数转换成字符串表示形式2.3.2 MATLAB程序控制语句程序控制语句常用控制语句常用控制语句条件语句、选择语句、条件语句、选择语句、 循环语句循环语句2.3.2.1条件语句条件语句 (1) 单分支单分支 if 语句:语句: if 表达式表达式 语句组语句组 end 当表达式成立时,则执行语句组,执行完之后继续当表达式成立时,则执行语句组,执行完之后继续执行执行if语句的后继语句,若条件不成立,则直接执行语句的后继语句,若条件不成立,则直接执行if

59、语句的后继语句。语句的后继语句。例例 n=input(n=? )if rem(n,2)=0 disp(n is even)end (2) 双分支双分支 if 语句:语句: if 表达式表达式 语句组语句组1 else 语句组语句组2 end 当条件成立时,执行语句组当条件成立时,执行语句组1,否则执行语句组,否则执行语句组2;语句组语句组1或语句组或语句组2执行后,再执行执行后,再执行if语句的后继语句。语句的后继语句。例例 n=input(n=? )if rem(n,2)=0 disp(n is even) elsedisp(n is odd)end 例例 计算分段函数的值。计算分段函数的值

60、。 x=input(请输入请输入x的值的值:); if x=0 y= (x+sqrt(pi)/exp(2); else y=log(x+sqrt(1+x*x)/2; end y (3) 多分支多分支if语句:语句: if 条件条件1 语句组语句组1 elseif 条件条件2 语句组语句组2 elseif 条件条件n 语句组语句组n else 语句组语句组n+1 end语句用于实现多分支结构。语句用于实现多分支结构。例例 n=input(n=? )if n *Error using = *Inner matrix dimensions must Inner matrix dimensions m

61、ust agree.agree.2.3.2.2 switch语句语句根据根据表达式的取值不同表达式的取值不同,分别执行不同的语句,其语,分别执行不同的语句,其语句格式为:句格式为: switch 表达式表达式 case 取值取值1 语句组语句组1 case 取值取值n 语句组语句组n otherwise 语句组语句组n+1 end当表达式的值等于表达式当表达式的值等于表达式1的值时,执行语句组的值时,执行语句组1,当表达式的值等于表达式当表达式的值等于表达式n的值时,执行语句组的值时,执行语句组n,当表达式的值不等于当表达式的值不等于case所列的表达式的值时,执行语所列的表达式的值时,执行语

62、句组句组n+1。当其中某一个分支的语句组执行完后,直接执行当其中某一个分支的语句组执行完后,直接执行switch语句的下一句。语句的下一句。例例 某商场对顾客所购买的商品实行打折销售,标准某商场对顾客所购买的商品实行打折销售,标准如下如下(商品价格用商品价格用price来表示来表示): price200 没有折扣没有折扣 200price500 3%折扣折扣 500price1000 5%折扣折扣 1000price2500 8%折扣折扣 2500price C2=num2cell(A) C2 = 1 3 4 2 price=input(请输入商品价格请输入商品价格);switch fix(p

63、rice/100) case 0,1 %价格小于价格小于200 rate=0; case 2,3,4 %价格大于等于价格大于等于200但小于但小于500 rate=3/100; case num2cell(5:9) %价格大于等于价格大于等于500但小于但小于1000 rate=5/100; case num2cell(10:24) %价格大于等于价格大于等于1000但小于但小于2500 rate=8/100; case num2cell(25:49) %价格大于等于价格大于等于2500但小于但小于5000 rate=10/100; otherwise %价格大于等于价格大于等于5000 ra

64、te=14/100;endprice=price*(1-rate) %输出商品实际销售价格输出商品实际销售价格2.3.2.3循环结构循环结构1for语句语句for语句的格式为:语句的格式为:for 循环变量循环变量=初值初值:步长步长:终值终值 语句组语句组 end其中其中步长为步长为1时,可以省略。时,可以省略。求求100以内的偶数和以内的偶数和。循环执行一组语句的次数是确定的。循环次数为循环执行一组语句的次数是确定的。循环次数为 N=1+(终值终值-初值初值)/步长步长例例 一个三位整数各位数字的立方和等于该数本身则一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花

65、数。称该数为水仙花数。输出全部水仙花数。 程序如下:程序如下:for m=100:999 m1=fix(m/100); %求求m的百位数字的百位数字 m2=rem(fix(m/10),10); %求求m的十位数字的十位数字 m3=rem(m,10); %求求m的个位数字的个位数字 if m=m13+m23+m33 disp(m) endend for 循环变量循环变量=矩阵矩阵 循环体语句循环体语句 end 执行过程是依次将矩阵的执行过程是依次将矩阵的各列各列元素赋给循环变量,元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。然后执行循环体语句,直至各列元素处理完毕。 例例 写出下列

66、程序的执行结果。写出下列程序的执行结果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; s end disp(s);s = 12 15 18 21s = 25 31 37 43s = 39 48 57 66 39 48 57 66a = 12 13 14 15 16 17 18 19 20 21 22 232while语句语句 一般格式为:一般格式为: while 条件条件 循环体语句循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果

67、成立则继续执行语句行后再判断条件是否成立,如果成立则继续执行语句组,否则跳出循环组,否则跳出循环。求求100以内的偶数和。以内的偶数和。 循环的嵌套循环的嵌套 如果一个循环结构的循环体又包括一个循环结构,就称为循如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。环的嵌套,或称为多重循环结构。 例例 若一个数等于它的各个因子之和,则称该数为完数,如若一个数等于它的各个因子之和,则称该数为完数,如6=1+2+3,所以,所以6是完数。求是完数。求1,500之间的全部完数。之间的全部完数。for m=1:500s=0; for k=1:m/2 if rem(m,k)=0

68、 s=s+k; end end%找出找出m的因子的因子 if m=s disp(m);%完数显示完数显示 endend1、break语句语句break语句用于终止语句用于终止for或或while循环的执行,通常与循环的执行,通常与if语句语句配合使用。如果条件满足则利用配合使用。如果条件满足则利用break命令将循环终止命令将循环终止。在多层循环嵌套中,在多层循环嵌套中,break只终止最内层的循环。只终止最内层的循环。2、continue语句语句 continue语句用于终止语句用于终止for或或while循环的执行,通常与循环的执行,通常与if语语句配合使用。作用是结束本次循环即句配合使用

69、。作用是结束本次循环即跳过其后的循环语跳过其后的循环语句而直接进行下一次是否执行循环的判断。句而直接进行下一次是否执行循环的判断。2.3.3 程序的流程控制程序的流程控制3、pause函数函数 程序运行时,暂停程序的执行,查看中间结果。程序运行时,暂停程序的执行,查看中间结果。 调用格式:调用格式:pause(暂停秒数暂停秒数)pause:暂停程序的运行,:暂停程序的运行,直到按任意键直到按任意键后继续运行。后继续运行。pause on:允许其后的暂停命令其作用:允许其后的暂停命令其作用pause off: 不允许其后的暂停命令其作用不允许其后的暂停命令其作用Ctrl+C:强行终止程序的运行。

70、强行终止程序的运行。例例 求求100,200之间第一个能被之间第一个能被21整除的整数。整除的整数。程序如下:程序如下:for n=100:200 if rem(n,21)=0 continue end breakendn当在循环体内执行到该语句时,程当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,序将跳过循环体中所有剩下的语句,继续下一次循环。继续下一次循环。当在循环体内执行到该语句时,程当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句序将跳出循环,继续执行循环语句的下一语句。的下一语句。2.4 M文件文件 1 1、建立新的、建立新的M M文件:文件:通过菜单栏建立

71、;通过菜单栏建立;通过命令行建立通过命令行建立(在命令窗口输入命令在命令窗口输入命令edit);通过工具栏建立,通过工具栏建立,启动文本编辑器后,输入启动文本编辑器后,输入M文件的内容并存盘。文件的内容并存盘。2 2、打开已有的、打开已有的M M文件文件:菜单操作,命令操作,工具栏按钮操作。菜单操作,命令操作,工具栏按钮操作。M文件相当于文件相当于matlab语言的脚本,可以是很多条语言的脚本,可以是很多条matlab指令的集合,也可以包含函数。指令的集合,也可以包含函数。)M文件命名规则:文件命名规则:(1)一律以字母开头,以字母、数字或下划线组成,不)一律以字母开头,以字母、数字或下划线组

72、成,不能含有空格、减号等。能含有空格、减号等。(2)一般使用小写字母。尽管)一般使用小写字母。尽管MATLAB区分变量的大区分变量的大小写,但不区分文件名的大小写。小写,但不区分文件名的大小写。(3)要防止它与变量名冲突。为此,变量名一般用一两)要防止它与变量名冲突。为此,变量名一般用一两个字符,而个字符,而M文件的文件名一般用文件的文件名一般用4个以上字符。另外,个以上字符。另外,系统内部的命令及文件名也不要用。系统内部的命令及文件名也不要用。1、命令、命令M文件在运行过程中可以调用文件在运行过程中可以调用MATLAB工工作域内所有的数据,而且,所产生的所有变量均作域内所有的数据,而且,所产

73、生的所有变量均为全局变量,直到用户执行为全局变量,直到用户执行clear命令清除;函数命令清除;函数文件中所有变量除特殊声明,均为局部变量。文件中所有变量除特殊声明,均为局部变量。M文件可以根据调用方式的不同分为两类:文件可以根据调用方式的不同分为两类:命令文件命令文件(脚本文件脚本文件)(Script File)、函数文件、函数文件(Function File区别区别 2、命令文件没有输入参数也没有输出参数,只是一、命令文件没有输入参数也没有输出参数,只是一些些MATLAB函数和命令的集合。函数文件中的函数接函数和命令的集合。函数文件中的函数接收输入参数,返回输出参数。收输入参数,返回输出参

74、数。3、函数文件的文件名必须和函数定义的函数名称相同、函数文件的文件名必须和函数定义的函数名称相同函数文件函数文件函数文件函数文件的基本结构:的基本结构:function 输出形参列表输出形参列表 函数名函数名(输入形参列表输入形参列表) 注释说明部分注释说明部分函数主体语句函数主体语句以以function开头的一行为引导行,表示该文件是一个函开头的一行为引导行,表示该文件是一个函数文件。函数名的命名规则与变量名的命名规则相同。数文件。函数名的命名规则与变量名的命名规则相同。函数名与对应的函数名与对应的M文件名相同。文件名相同。当输出参量、当输出参量、用用“,”或者空格分割或者空格分割,以矩阵

75、的形式表,以矩阵的形式表示示;当;当仅有一个时则无需方括号。仅有一个时则无需方括号。有多个输入参数时,输入变量之间用有多个输入参数时,输入变量之间用“,”分割分割 函数调用时,各实参出现的顺序和个数与函数定函数调用时,各实参出现的顺序和个数与函数定义时形参的顺序和个数一致,否则会出错。函数调用义时形参的顺序和个数一致,否则会出错。函数调用时,先将输入实参传递给相应的输入形参,经函数体时,先将输入实参传递给相应的输入形参,经函数体语句运算后,其结果再由输出形参传递给输出实参。语句运算后,其结果再由输出形参传递给输出实参。function varargout = sin(varargin)%SIN

76、 Sine.% SIN(X) is the sine of the elements of X.% See also ASIN, SIND.% Copyright 1984-2003 The MathWorks, Inc.% $Revision: 5.7.4.3 $ $Date: 2004/04/16 22:06:20 $% Built-in function.if nargout = 0 builtin(sin, varargin:);else varargout1:nargout = builtin(sin, varargin:);end求求s=1!+2!+.+n!(1)建立建立n!的函数

77、文件的函数文件,以以jch.m存盘存盘function f=jch(n)%求求n!f=1;for i=2:n f=f*i;end(2)建立建立求求s=jch(1)+jch(2)+jch(n)的函数文件的函数文件,以以sjch.m存盘存盘function s=sjch(n)%求求1!+2!+n!s=0;for i=1:n s=s+jch(i);end最后在命令窗口输入最后在命令窗口输入s=sjch(4) s = 33输出参数为输出参数为f,输入参数为,输入参数为n,函数,函数名为名为jch。函数文件名一般要与函函数文件名一般要与函数名一致,否则函数调用时会出错。数名一致,否则函数调用时会出错。函

78、数调用函数调用的一般格式为:的一般格式为:输出实参输出实参函数名(输入实参)函数名(输入实参)上页即求和问题的第上页即求和问题的第2步也可采用下面的函数文件步也可采用下面的函数文件dgjch.m来代替来代替function f=dgjch(n)%求求1!+2!+n!if n=1 f=dgjch(n-1)+jch(n);else f=0;end这样最后在命令窗口输入就要改成这样最后在命令窗口输入就要改成s=dgjch(4)s = 33程序不仅调用了程序不仅调用了n!的函数的函数jch(n),而且还调用了,而且还调用了它自己的它自己的dgjch(n),这就是这就是递归调用。递归调用。函数调用函数调

79、用的一般格式为:的一般格式为:输出实参输出实参函数名函数名(输入实参输入实参)报告书写要求:报告书写要求:1认真认真手写手写预习报告和实验报告。预习报告和实验报告。2实验题目要与提供的题目相符,实验日期按照实际实验题目要与提供的题目相符,实验日期按照实际实验时间填写。实验时间填写。3课程名称为课程名称为计算机仿真计算机仿真。4每次上交报告时要每次上交报告时要预习报告和实验报告订在一起,预习报告和实验报告订在一起,预习报告在上面。预习报告在上面。预习报告格式要求预习报告格式要求一实验目的一实验目的二实验内容二实验内容三预习中遇到的问题三预习中遇到的问题(一定要根据实际情况书写一定要根据实际情况书

80、写,不可以只写实验题目不可以只写实验题目)实验报告格式要求实验报告格式要求一实验结果和分析(顺序要与预习报告相一致)一实验结果和分析(顺序要与预习报告相一致)二实验总结二实验总结实验实验1 MATLAB基础基础一、实验目的一、实验目的1熟悉熟悉MATLAB的操作界面的操作界面2掌握掌握MATLAB的一些常用命令。的一些常用命令。3掌握矩阵、变量和表达式的输入方法及运算。掌握矩阵、变量和表达式的输入方法及运算。4熟悉特殊矩阵并掌握常用的矩阵计算。熟悉特殊矩阵并掌握常用的矩阵计算。1求解以下求解以下线线性代数方程:性代数方程:2已知矩已知矩阵阵1)试试分分别别求出求出A阵阵和和B阵阵的秩、的秩、转

81、转置、行列式、逆矩置、行列式、逆矩阵阵以及特征以及特征值值。2)求)求C=A23)矩阵)矩阵D为为A中每个元素平方组成的矩阵中每个元素平方组成的矩阵4)矩阵)矩阵E为为A乘以乘以B 5) 矩阵矩阵F为为A和和B数组乘积(即对应元素分别相乘的积构成的矩阵),数组乘积(即对应元素分别相乘的积构成的矩阵),6)将)将C矩阵的右下角矩阵的右下角23子矩阵赋给子矩阵赋给G矩阵。矩阵。二、实验内容二、实验内容测控113 求复数矩求复数矩阵阵 的转置的转置C1与共轭转置与共轭转置C2。4设设有分有分块块矩矩阵阵其中其中E,R,O,S分分别为单别为单位位阵阵、随机、随机阵阵、零、零阵阵和和对对角矩角矩阵阵,试

82、试通通过过数数值计值计算算验证验证S=1 0;0 4;ones(3) rand(3,2)+ rand(3,2)*diag(S);zeros(2,3) (diag(S)25分别举例说明关系运算分别举例说明关系运算(,=,= =,=)和逻辑运算和逻辑运算(&,)实验实验2 MATLAB程序设计程序设计一、实验目的一、实验目的掌握并灵活运用条件、选择和循环语句编写程序。掌握并灵活运用条件、选择和循环语句编写程序。二、实验内容二、实验内容测控111编编写两个写两个m文件,分文件,分别别使用使用for和和while循循环语环语句句计计算算2一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出

83、全一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。部水仙花数。3求求s=1!+2!+.+50!4求求300,400之间第一个能被之间第一个能被21整除的整数整除的整数5找出找出100以内的完数以内的完数实验实验1 基础知识、程序设计及数值计算基础知识、程序设计及数值计算一、实验目的一、实验目的1熟悉熟悉MATLAB的操作界面的操作界面2掌握掌握MATLAB的一些常用命令。的一些常用命令。3掌握矩阵、变量和表达式的输入方法及运算。掌握矩阵、变量和表达式的输入方法及运算。4掌握并灵活运用掌握并灵活运用MATLAB语言编写程序。语言编写程序。5熟悉特殊矩阵并掌握常用的矩

84、阵计算。熟悉特殊矩阵并掌握常用的矩阵计算。6掌握有关的数据处理与多项式运算。掌握有关的数据处理与多项式运算。自动化101编编写两个写两个m文件,分文件,分别别使用使用for和和while循循环语环语句句计计算算3求解以下求解以下线线性代数方程:性代数方程:4已知矩已知矩阵阵试试分分别别求出求出A阵阵和和B阵阵的秩、的秩、转转置、行列式、逆矩置、行列式、逆矩阵阵以及特征以及特征值值。5矩矩阵阵A和和B同上同上题题,求,求C=A2, 矩矩阵阵D为为A中每个元素平方中每个元素平方组组成的成的 矩矩阵阵、矩、矩阵阵E为为A乘以乘以B、矩、矩阵阵F为为A和和B数数组组乘乘积积(即(即对应对应元素元素 分

85、分别别相乘的相乘的积积构成的矩构成的矩阵阵)。)。二、实验内容二、实验内容2找出找出100以内的完数以内的完数6已知某系已知某系统统的的闭环传递闭环传递函数函数 如下,试用如下,试用roots()命令来()命令来 判断系统的稳定性。判断系统的稳定性。7求复数矩求复数矩阵阵 的转置的转置C1与共轭转置与共轭转置C2。8已知某班的已知某班的5名学生的三门课成绩列表如下:名学生的三门课成绩列表如下:学生序号学生序号12345高等数学高等数学7889647368外语外语8377807870MATLAB语言语言 82 91788268试写出有关命令,先分别找出三门课的最高分及学生序号;试写出有关命令,先

86、分别找出三门课的最高分及学生序号;max然后找出三门课的总分的最高分及学生序号。然后找出三门课的总分的最高分及学生序号。sum9.多项式多项式已知一多项式的零点为已知一多项式的零点为2, -3, 1+2i, 1-2i, 0, 6 ,求这个多项式的系数(从高到低排列),并且计算多项式在点求这个多项式的系数(从高到低排列),并且计算多项式在点x=0.8, -1.2的值。的值。poly,polyval10设设有分有分块块矩矩阵阵其中其中E,R,O,S分分别为单别为单位位阵阵、随机、随机阵阵、零、零阵阵和和对对角矩角矩阵阵,试试通通过过数数值计值计算算验证验证。 S=1 0;0 4;ones(3) r

87、and(3,2)+ rand(3,2)*diag(S);zeros(2,3) (diag(S)2实验二实验二 MATLAB符号计算及绘图符号计算及绘图一、实验目的一、实验目的1.掌握符号表达式的微分、积分运算以及极限掌握符号表达式的微分、积分运算以及极限 和方程求解的运算等和方程求解的运算等2.掌握掌握MATLAB二维、三维的绘图函数,并利用不同的色彩、二维、三维的绘图函数,并利用不同的色彩、线型和绘制出自己满意的图形。线型和绘制出自己满意的图形。3.掌握掌握MATLAB的图形处理的图形处理网格、标记、坐标系的控制等网格、标记、坐标系的控制等1. 计计算算二、实验内容二、实验内容4.求解方程求

88、解方程组组2求函数求函数 展开到含展开到含 的项的项3求函数求函数 关于关于 的一阶导数。的一阶导数。 5.绘图绘图(1) 作作sinx, cosx, 2sinx*cosx, sinx/cosx的的图图形,形,在不同坐在不同坐标标内内绘绘制几条曲制几条曲线线。并。并给图给图形添加坐形添加坐标标及及图图形形标标注。注。(2) 三次抛物三次抛物线线方程方程为为当参数当参数a分分别为别为-3、-2、-1、0、1、2、3时时在同一坐在同一坐标绘标绘制制其波形其波形图图,试试探探讨讨参数参数a对对其其图图形的影响,其中形的影响,其中x-2,2,步步长长0.1。(3) 绘绘制制z=sin(x)*cos(y

89、)的三的三维维曲曲线线(plot3)和三和三维维曲面曲面图图(mesh),x,y的的变变化范化范围围均均为为0,2 ,并加上适当的三,并加上适当的三维图维图形形标标注注。(4)绘绘制一个三制一个三维图维图形(形( ),),并加上适当的三维图形标注并加上适当的三维图形标注。实验三实验三 Simulink仿真、控制系统数学模型及其转换仿真、控制系统数学模型及其转换一、实验目的一、实验目的1掌握掌握Simulink的建模方法的建模方法(1)模块的建立、连接、仿真参数的修改和子系统的创建及封装。模块的建立、连接、仿真参数的修改和子系统的创建及封装。(2)熟悉系统以结构图形式描述的连续系统的数字仿真方法

90、和步骤。熟悉系统以结构图形式描述的连续系统的数字仿真方法和步骤。(3)学会分析环节参数变化对系统动态特性的影响。学会分析环节参数变化对系统动态特性的影响。2熟悉各类数学模型的表示方法熟悉各类数学模型的表示方法3掌握模型间转换的技巧掌握模型间转换的技巧4灵活应用各种数学模型灵活应用各种数学模型1. 有初始状态为有初始状态为0的二阶微分方程的二阶微分方程 ,其中其中u(t)是单位阶跃函数,试用两种方法建立系统模型并仿真。是单位阶跃函数,试用两种方法建立系统模型并仿真。 2.某一某一单单位位负负反反馈馈控制系控制系统统,其开,其开环传递环传递函数函数为为它的它的输输入信号入信号为为试试使用使用Sim

91、ulink构造其仿真模型,并且构造其仿真模型,并且观观察其响察其响应应曲曲线线。3.将将2题题中的中的闭环闭环控制系控制系统统封装成一个子系封装成一个子系统统。 4 某系某系统统的的传递传递函数函数为为5 某某单输单输入入单输单输出系出系统统:试试求求该该系系统统状状态态空空间间表达式的表达式的对对角角线标线标准形。准形。6 求出以下系求出以下系统统的的传递传递函数函数使用使用MATLAB求出状求出状态态空空间间表达式和零极点模型。表达式和零极点模型。 实验实验四四 控制系控制系统计统计算机算机辅辅助分析与助分析与设计设计一、实验目的一、实验目的1掌握利用掌握利用MATLAB语言实现线性定常系

92、统稳定语言实现线性定常系统稳定性分析的方法以及基于性分析的方法以及基于MATLAB语言的对自动语言的对自动控制系统动态性能进行分析的时域法、频域法和控制系统动态性能进行分析的时域法、频域法和根轨迹法。根轨迹法。2掌握利用掌握利用MATLAB提供的功能函数进行控制系提供的功能函数进行控制系统设计的方法以及工程上几种常见的控制系统设统设计的方法以及工程上几种常见的控制系统设计方法。计方法。二、二、实验实验内容内容1 分分别别采用求取特征采用求取特征值值的方法和李的方法和李亚亚普普诺诺夫第二法夫第二法判判别别下面系下面系统统的的稳稳定性。定性。2 某某单单位位负负反反馈馈系系统统的开的开环环控制系控

93、制系统统的的传递传递函数函数为为(1)绘绘制系制系统统的根的根轨轨迹;迹;(2)当)当 时时,绘绘制系制系统统的的Bode图图,判断系,判断系统统的的稳稳定性,定性,并且求出幅并且求出幅值值裕度和相角裕度。裕度和相角裕度。3 已知某已知某单单位位负负反反馈馈控制系控制系统统的开的开环传递环传递函数函数为为。请设计一个串联校正控制器请设计一个串联校正控制器 ,要求系统性能指标如下:,要求系统性能指标如下:相角裕度相角裕度 ,开环增益,开环增益 , 穿越频率穿越频率 4 某某过过程控制系程控制系统统如下如下图图所示,所示,请请使用使用Ziegler-Nichols经验经验整定公式整定公式设计设计PID控制器,使系控制器,使系统统的的动态动态性能最佳。性能最佳。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号