1、第一章 仿真技术概述仿真技术机电系统动态仿真机电系统动态仿真全册配套完整教学课件全册配套完整教学课件2 2第一章 仿真技术概述仿真技术第一章 仿真技术概述本章主要内容如下:1.1 科研工作的基本方法1.2 模型及其建立1.3 仿真技术及其重要性第一章 仿真技术概述仿真技术1.1 科研工作的基本方法1. 解析法 运用已掌握的理论知识,对所研究的对象进行理论方面的分析、计算及综合。最佳路径问题庞得里亚金极大值原理工程最优问题第一章 仿真技术概述仿真技术1.1 科研工作的基本方法1. 解析法 运用已掌握的理论知识,对所研究的对象进行理论方面的分析、计算及综合。Routh判据英国E.J.Routh建立
2、Routh-Hurwitz Stability Criteria(1875年) 第一章 仿真技术概述仿真技术1.1 科研工作的基本方法1. 解析法 运用已掌握的理论知识,对所研究的对象进行理论方面的分析、计算及综合。一级倒立摆 工程动力学问题 F=ma第一章 仿真技术概述仿真技术1.1 科研工作的基本方法2. 实验法 在所建立的实际系统(或模型)上,利用各种仪器仪表,通过施加一定类型的激励信号,测取系统响应来确定系统的性能。+ +- -+ +- -dUdIMndnuFxFxM路面+ + +- - -( )U t( )i tLR( )cU tC1hhq1qty22( )d xdxabcxy td
3、tdtcuuxyxhq系统模型第一章 仿真技术概述仿真技术1.1 科研工作的基本方法3. 仿真实验法 在模型上(物理的/数学的)所进行的系统性能分析与研究方法。3112321311223222233333112332323322()sinsin1()cossincos(sin)1(2sin)xfDxfxxxMxfDxxxxfx xgxxmMMxxfDxfxxxxx xgxxMmx 数学模型第一章 仿真技术概述仿真技术1.1 科研工作的基本方法3. 仿真实验法 在模型上(物理的/数学的)所进行的系统性能分析与研究方法。虚拟模型第一章 仿真技术概述仿真技术1.1 科研工作的基本方法3. 仿真实验法
4、 在模型上(物理的/数学的)所进行的系统性能分析与研究方法。实物模型第一章 仿真技术概述仿真技术1.1 科研工作的基本方法3. 仿真实验法 在模型上(物理的/数学的)所进行的系统性能分析与研究方法。仿真实验性能比较:数学模型虚拟模型实物模型实物原型仿真精度低高第一章 仿真技术概述仿真技术1.1 科研工作的基本方法4. 混合法 解析法+实验法+仿真可通过实验或仿真确定和修正理论模型中的有关参数和模型的结构.WX2X1m2KsKtuub汽车主动悬架实验模型m1)()()()()(2121222121211XWKuXXbXXKXmuXXbXXKXmtss 汽车主动悬架理论模型第一章 仿真技术概述仿真
5、技术1.1 科研工作的基本方法5. 猜想法 又称为“假想法”,通过人们对所研究问题的“直觉”,提出“可能的”结果/结论,利用“反演/推理/证明”的方法进行“创造性”的研究和发现。哥德巴赫猜想相对论假说电磁波设想第一章 仿真技术概述仿真技术1.2 模型及其建立1. 模型的重要性勾股定理第一章 仿真技术概述仿真技术1.2 模型及其建立1. 模型的重要性 把世间的现象/问题上升到“数学抽象/数学模型”的理 论高度是现代科学发现与技术创新的基础。 “实验、归纳、推演”是建立系统“数学模型”的重要手段/方法/途径。 “数学模型”是人们对自然世界的一种抽象理解,它与自然世界/现象/问题具有“性能相似”的特
6、点。第一章 仿真技术概述仿真技术1.2 模型及其建立2. 建模三要素:目的,方法,验证n 目的要明确飞行器目的2飞行器的结构强度目的1飞行器的动态性能流体力学结构力学方法1方法2第一章 仿真技术概述仿真技术1.2 模型及其建立2. 建模三要素:目的,方法,验证n 方法要恰当 逻辑推理方法:归纳、推演、类比、移植 机理建模法:白箱问题 实验建模法:黑箱问题 综合建模法:机理+实验n 结果要验证 数学模型必要条件 实物模型充要条件 实际应用结果检验第一章 仿真技术概述仿真技术3. 建模过程1.2 模型及其建立第一章 仿真技术概述仿真技术1. 相似性原理1.3 仿真技术及其重要性彼此相似的现象必定具
7、有数值相同的相似准则。n 几何相似第一章 仿真技术概述仿真技术1. 相似性原理1.3 仿真技术及其重要性彼此相似的现象必定具有数值相同的相似准则。n 环境相似第一章 仿真技术概述仿真技术1. 相似性原理1.3 仿真技术及其重要性彼此相似的现象必定具有数值相同的相似准则。n 性能相似+ +- -+ +- -dUdIMndnuFxFxM路面+ + +- - -( )U t( )i tLR( )cU tC1hhq1qty22( )d xdxabcxy tdtdtcuuxyxhq第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性2. 仿真n利用相似性原理,借助实验模型或计算机软件对所研究的对象进行
8、分析。利用计算机软件进行仿真是目前仿真分析中的主要方法。第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n虚拟现实(VR)n仿真实验的高级形式n可视化/真实性n有助于人们的创造与想象力的发挥n关键之处感知设备表现装置三大特点 沉浸(Immersion) 交互(Interaction) 想象(Imagination)第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n虚拟现实(VR)感知设备第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n虚拟现实(VR)表现装置第一
9、章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n虚拟样机n虚拟现实仿真技术第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n虚拟样机n虚拟制造第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n虚拟样机n虚拟环境第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n工程应用n车辆肇事仿真第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n工程应用n飞行器设计第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性3. 仿真技术的应用n工程应用n联合仿真第一章 仿真技术概述仿真技
10、术1.3 仿真技术及其重要性4. 仿真常用的工具软件nADAMS (Automatic Dynamic Analysis of Mechanical Systems)运动学、动力学、机电一体化系统仿真nAMESim流体、机械、电磁以及控制等复杂系统建模和仿真nPSPICE直流/交流电路、瞬态特性优化设计、数字模拟混合电路、电路绘图仿真一体化nANSYS结构、热、流体、电磁和声学运用有限元分析软件nMATLAB以科学计算见长的多用途仿真软件,尤其适用于机电系统的动力学仿真,是本课程主要学习的软件。第一章 仿真技术概述仿真技术1.3 仿真技术及其重要性5. 仿真技术的发展趋势n在硬件上,基于多CP
11、U的并行处理技术的全数字仿真技术将有效的改善仿真系统的“实时性”;n基于网络技术的分布式数字仿真系统将广泛应用;n基于虚拟现实技术的“多媒体环境条件下的仿真技术”将推进军事、工业、生活、娱乐等领域的深层次应用;n“离散事件系统”的仿真问题将成为人们研究的另一热点;n“仿真技术”将成为高等理工院校学生培养的重要技术。第一章 仿真技术概述仿真技术主要教学参考书1. 刘白雁等:机电系统动态仿真基于MATLAB/Simulink,机械工业出版社,2005(为本课程所用教材)2. 张志涌等:MATLAB 教程基于6.X版本,北京航空航天大学出版社,20013. 李国勇等:控制系统数字仿真与CAD,电子工
12、业出版社,2003第一章 仿真技术概述仿真技术第二章 MATLAB基础本章主要内容如下: 2.1概述 2.2 MATLAB的工作环境 2.3 MATLAB命令窗口的主要操作 2.4m文件的编写与调试 2.5 使用MATLAB帮助第一章 仿真技术概述仿真技术2.1 概述n MATLAB软件是由美国MathWorks公司推出的用于数值计算和图形处理的科学计算软件。n MATLAB是英文MATrix LABoratory(矩阵实验室)两个词的前三个字母组合而成的,它是一种以矩阵运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘图的需求。n MATLAB编程运算与人进行科学计算的思路和表达方式
13、完全一致,区别于其它高级语言,具有用法简易、可灵活运用、程序结构强又兼具延展性。 n MATLAB还可通过与CC+的扩展编程,实现对外部硬件的通讯与控制,从而使仿真和实验有机地融合在一起。n MATLAB中的Simulink是一种高效的仿真工具,使得对机电系统的动态仿真十分简单易行。第一章 仿真技术概述仿真技术2.2 MATLAB工作环境n MATLAB的工作环境就是一系列便于使用MATLAB函数和文件的工具。n基本的工具包括启动和退出MATLAB,使用MATLAB的桌面,使用MATLAB的函数,以及MATLAB的在线帮助(Help)。n其它的工具则有:工作空间、路径搜索、文件操作、数据输入输
14、出、编辑和调试M文件以及改善M文件的性能,资源控制系统的利用等。 本节主要就MATLAB桌面(MATLAB Desktop)中的各应用窗口的主要功能分别作一简单介绍。第一章 仿真技术概述仿真技术2.2.1 MATLAB桌面(MATLAB Desktop)点击图标 ,弹出右下图所示MATLAB操作桌面(MATLAB6.5)。当前工作路径当前窗口移出桌面 工作空间浏览器工作空间浏览器(Workspace Browser) 历史指令窗历史指令窗(Conmand History)指令窗(指令窗(Conmand Window)在线帮助窗口调整轴第一章 仿真技术概述仿真技术2.2.1 MATLAB桌面(M
15、ATLAB Desktop)交互界面分类目录窗交互界面分类目录窗(Lauch Pad)当前目录浏览器当前目录浏览器(Current Directoy Browser)展开可见目录展开可见目录第一章 仿真技术概述仿真技术2.2.1 MATLAB桌面(MATLAB Desktop)当前目录浏览器当前目录浏览器(Current Directoy Browser) 工作空间浏览器工作空间浏览器(Workspace Browser) 历史指令窗历史指令窗(Conmand History) MATLAB7.0的的操作桌面略有不同,其交互界面目录可点击桌面左下角的Start弹出。第一章 仿真技术概述仿真技术
16、MATLAB7.0的的操作桌面略有不同,其交互界面目录可点击桌面左下角的Start弹出。第一章 仿真技术概述仿真技术2.2.2 指令窗口(Command Window) 在指令窗口内执行的MATLAB主要操作有:n 运行函数和输入变量n 控制输入和输出n 执行程序,包括M文件和外部程序n 保存一段日志n 打开或关闭其他应用窗口n 各应用窗口的参数选择在提示符后输入变量和函数MATLAB显示结果第一章 仿真技术概述仿真技术2.2.3 历史指令窗口(Command Window)n历史指令窗记录着用户在命令指令窗中所输入过的所有指令行,且所有这些被记录的指令行都能被复制,并送到指令窗中再运行。第一
17、章 仿真技术概述仿真技术2.2.4 当前目录浏览器(Current Directory Browser)n 当前目录窗口中显示了MATLAB当前工作目录下的所有文件夹与文件,以便用户对当前目录下的文件进行管理。第一章 仿真技术概述仿真技术2.2.5 n 工作空间由运行MATLAB的程序或命令所生成的所有变量和MATLAB本身提供的常量构成。n MATLAB 6.x后才提供。早期版本是在命令窗口中键入who查看变量名,或者键入whos命令查看变量名、变量大小和数据类型等内容。n工作空间窗口以列表形式显示了MATLAB工作区中当前所有变量的名称及其属性,属性中包括了变量的类型、长度及其占用空间大小
18、.第一章 仿真技术概述仿真技术2.2.6 交互界面分类目录窗(Launch Pad)nMATLAB 6.x后具有交互界面分类目录窗口,其中提供了用户在机器中已经安装的所有MATLAB工具包、演示及帮助信息的目录。第一章 仿真技术概述仿真技术2.2.7 文件编辑/调试器(Editor/debugger)nMATLAB通过自带的M文件编辑/调试器来创建和编辑M文件。nM文件(带.m扩展名的文件)类似于其它高级语言的源程序。M文件编辑器可用来对M文件进行编辑和交互调试,也可阅读和编辑其它ASC码文件。nM文件编辑/调试器窗口由菜单栏、工具条和文本编辑区组成,是标准的windows 风格。第一章 仿真
19、技术概述仿真技术2.2.7 文件编辑/调试器(Editor/debugger)n进入MATLAB文件编辑器的方法如下: 点击MATLAB桌面上的 图标,打开空白的M文件编辑器。 点击MATLAB桌面上的 图标,填写所选文件名后,再点打开,即可展示相应 M文件编辑器。 用鼠标左键双击当前目录窗中的所需M文件,可直接引出相应的M文件编辑器。第一章 仿真技术概述仿真技术2.3 MATLAB指令窗口的主要操作2.3.1 数值、变量和表达式1. 数值n MATLAB的数值采用习惯的十进制表示,以下记述都是合法的:3,-99,0.001,9.578,1.3e-4,2.78e232. 变量命名规则n 变量名
20、、函数名对字母大小写敏感。MAY、may表示不同变量。n 变量名第一个字母必须是英文字母,且不能超过31个字符。n 变量名中不得包含空格、标点但可包含下连符,如my_var 是合法的变量名。第一章 仿真技术概述仿真技术2.3.1 数值、变量和表达式3. MATLAB默认的预定义变量 ans 计算结果的缺省变量名 i或j 虚单元 pi 圆周率 Inf 或 inf 无穷大,如1/0 NaN 或 nan 非数(不是一个数),如0/0 realmax 最大正实数 realmin 最小正实数n 【说明】用户在编写指令和程序时,尽可能避免对预定义变量重新赋值。第一章 仿真技术概述仿真技术2.3.1 数值、
21、变量和表达式4. 运算符和表达式数学表达式运算符MATLAB表达式加a+b+a+b减a-b-a-b乘ab*a*b除ab/或a/b或ba幂ababn【说明】 所有运算定义在复数域上。 用“/”表示“左除”,“”表示“右除”。对标量运算左、右除相同。第一章 仿真技术概述仿真技术2.3.2 指令窗操作1. 运行函数和键入变量n 在命令窗口的提示符“”下 ,可以直接输入变量。 例如要创建一个3 3矩阵,只须在命令窗口中输入: A = 1, 2, 3; 4, 5, 6; 7, 8, 10 回车后,命令窗口出现: A = 1 2 3 4 5 6 7 8 10 n 在命令窗口的提示符“”下 ,如果要运行函数
22、,只需输入函数文件名,然后回车, MATLAB 就会显示运行结果。第一章 仿真技术概述仿真技术2.3.2 指令窗操作2. 指令行中的部分标点符号名称标点作 用空格输入量之间、数组元素之间分隔符逗号,分隔符黑点.数值中表示小数点分号;不显示计算结果指令的“结尾”标志;数组行间分隔符注释号%注释行的“启首”标志圆括号( )数组援引时用方括号 输入数组时用续行号由三个以上连续黑点构成第一章 仿真技术概述仿真技术在指令窗中输入以下指令,观察运行结果:指令1:输入注释行,无结果显示。指令2:输入代数运算式,并显示计算结果:-0.8148(ans为MATLAB默认结果变量名)。指令3:输入代数运算式(使用
23、续行号),并显示计算结果:63。第一章 仿真技术概述仿真技术指令含 义指令含 义cd设置当前工作目录edit打开M文件编辑器clf清除图形窗exit关闭/退出MATLABclc清除指令窗中显示内容quit关闭/退出MATLABclear清除MATLAB工作空间保存的变量mkdir创建目录dir列出指定目录下的文件和子目录清单type显示指定M文件的内容2.3.2 指令窗操作3. 指令窗常用控制指令第一章 仿真技术概述仿真技术2.3.2 指令窗操作3. 指令窗指令行的编辑键名含 义指令含 义前寻式调回已输入过的指令行end使光标移到当前行的尾端后寻式调回已输入过的指令行Delete删去光标右边的
24、字符在当前行中左移光标Backspace 删去光标左边的字符在当前行中右移光标PageUp前寻式翻阅当前窗中的内容Home使光标移到当前行的首端PageDown 后寻式翻阅当前窗中的内容n【说明】利用以上操作可对指令窗中已输入的指令进行编辑。另外还可结合历史指令窗完成指令的编辑。第一章 仿真技术概述仿真技术2.4.1 m文件特点n文件的扩展名是“.m”。nMATLAB在运行m文件时只是从文件中读取一条条指令,送到MATLAB中去执行。nm文件运行产生的变量都是驻留在MATLAB工作空间中(与在指令窗中直接运行指令一样)。n该文件中指令形式和前后位置,与解决同一问题在指令窗中输入的指令没有任何区
25、别。n为提高运算速度,编写m文件时应尽量避免使用for、while语句。2.4 m文件的编写与调试 m文件分为m脚本文件和m函数文件,m脚本文件可直接由MATLAB解释执行,而m函数文件则必须通过调用执行。未加说明时,m文件通常是m指脚本文件。第一章 仿真技术概述仿真技术2.4.2 m文件编写和运行n点击MATLAB桌面上 图标,弹出M文件编辑器。n将指令写入M文件编辑调试器的空白框中(通常在空白框第一行写入包含文件名的注释)。n点击M文件编辑器的 图标,并在保存对话框中填写目录和文件名,再按【保存】键,脚本文件即存于指定的目录上。2.4 m文件的编写与调试第一章 仿真技术概述仿真技术2.4.
26、2 m文件编写和运行n选中M文件编辑器下拉菜单项【 Debug:Run】,即可执行该文件。如果文件有错误,则会停在出错的指令行上,并在指令窗中指出错误的类型,和出错的位置。2.4 m文件的编写与调试第一章 仿真技术概述仿真技术2.5 使用MATLAB帮助n 两个重要的帮助命令:1help命令n使用方法:help 帮助主题,或lookfor 帮助主题 “帮助主题”可以是命令名(函数名)、目录名或者部分路径名。回车后,命令窗口中就会出现与帮助主题的“help” 有关的内容。 注意:命令窗口显示的MATLAB帮助信息中,是用大写字母来突出函数名的,但在使用这些函数时,应该用小写字母。可用Ctrl+C
27、终止显示。2demo命令n使用方法:命令窗口直接键入demo即可弹出help导航器,从中可选择各种演示程序。 demo 命令对初学者非常有用,它提供了大量演示实例来说明MATLAB的函数和工具箱的使用。第一章 仿真技术概述仿真技术课后练习1.指令窗口中,键入:demo,出现MATLAB的demo演示窗口,然后选择:MATLAB下的Desktop Environment,选取其中的Desktop overview等示例进行MATLAB的桌面系统学习。2.在命令窗口中,键入:helpwin,出现MATLAB的帮助窗口,选择:“matlabgeneral - General purpose comm
28、ands.”,了解MATLAB的工作环境及其相关命令和函数。3.教材中习题1.3,1.4,1.7,1.11。第一章 仿真技术概述仿真技术第三章 数组及其运算本章主要内容如下:3.1 概述3.2 数值数组的生成和寻访3.3 数组运算和矩阵运算3.4 数组的关系操作和逻辑操作3.5 字符串数组3.6 非数和空数组3.7 构架数组第一章 仿真技术概述仿真技术3.1 概述n MATLAB长于数值计算,而所谓数值计算,就是指计算的表达式、变量中不得包含未经定义的自由变量。n 数值数组(Numeral Array)和数组运算(Array Operations)是MATLAB的核心内容。数组是MATLAB最
29、重要的一种内建数据类型,而数组运算则是定义在这种数据结构上的方法。本章重点介绍数值数组,其次是与数组类似其它结构体。n 数组:数组:是指由一组实数或复数排成的长方阵列(Array),包括行向量、列向量和矩阵。n 数组的运算数组的运算: 无论对数组施加什么运算(加减乘除或函数)总认定那种运算对被运算数组中的每个元素平等地实施同样的操作。第一章 仿真技术概述仿真技术3.1 概述n 变量及其赋值n 在命令窗口可直接输入变量并赋值,无须声明其类型和维数,MATLAB将自动处理。n MATLAB 的变量名称由英文大小写52个字母、数字和下划线等符号组成,并且第一个字符必须是英文字母,变量和常量最长允许3
30、1个字符。须注意的是,在默认状态下,MATLAB对字母大小写敏感 。第一章 仿真技术概述仿真技术3.1 概述n MATLAB数据格式及显示方式n MATLAB既可用传统的十进制数表达数值,也可以用科学计数表达数值,用e代表10的指数形式,用i和j来代表虚数。n MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度二进制(64位),相应于十进制的16位有效数,范围为10-308 10+308。n 为了人机交互的友好性,数据输出显示格式有8种 。可用菜单选项或format命令选择。第一章 仿真技术概述仿真技术3.2 数值数组的生成和寻访3.2.1 一维数组1. 一维数组的创建a) 逐个元素
31、输入法 借助数组编辑器可以逐个输入数组元素(对于二维数组同样适用),但也可在指令窗中直接输入。例如在指令窗中输入(数组元素之间用“ ” 或“,”隔开): x=2 pi/3 sqrt(3) 3+5i 则将显示:x = 2.0000 1.0472 1.7321 3.0000 + 5.0000ib) 冒号生成法 这是一维数组生成的常用方法,其通用格式为 x=a:inc:b其中a、b分别为 数组起始值和终值,inc为步长。第一章 仿真技术概述仿真技术3.2 数值数组的生成和寻访3.2.1 一维数组1. 一维数组的创建c) 定数线性采样法n 该方法在设定的“总点数”下,均匀采样生成一维“行”数组。其通用
32、格式为: x=linspace(a , b , n)n 【说明】 a、b分别是生成数组的第一个和最后一个元素,n是采样总点数。 该指令与 x=a: (b-a)/(n-1) : b 相同。d) 此外还可通过数组运算或数组生成函数,构建某些特殊的数组。第一章 仿真技术概述仿真技术【例】一维数组的冒号生成法和定数线性采样法。 x=(0:pi/10:pi)x = Columns 1 through 6 0 0.3142 0.6283 0.9425 1.2566 1.5708 Columns 7 through 11 1.8850 2.1991 2.5133 2.8274 3.1416 y=linspa
33、ce(0,pi,11)y = Columns 1 through 6 0 0.3142 0.6283 0.9425 1.2566 1.5708 Columns 7 through 11 1.8850 2.1991 2.5133 2.8274 3.1416%冒号法生成一维数组%定数(0,)线性采样法生成(111)数组显然这两种方法生成的一维数组是完全相同的。第一章 仿真技术概述仿真技术3.2.1一维数组2. 一维数组的寻访n数组寻访的一般格式为X(index),下标index可以是单个正整数或正整数数组。 例如对数组作如下操作:x = 2.0000 1.0472 1.7321 3.0000 +
34、5.0000i x(3)ans = 1.7321 x(1 2 4) ans = 2.0000 1.0472 3.0000 + 5.0000i x(2:end)ans = 1.0472 1.7321 3.0000 + 5.0000i x(4:-1:1)ans = 3.0000 + 5.0000i 1.7321 1.0472 2.0000下标为由 构成的数组下标为由冒号生成法构成的数组取单个数组元素第一章 仿真技术概述仿真技术3.2.2 二维数组1. 二维数组的创建a)直接输入法n整个输入数组须以“ ”为其首尾;n数组行与行之间用“;”或“回车键”隔离;n数组元素用逗号或空格分离。例如要输入二维数
35、组987654321A则在指令窗中的操作如右图所示。 其中,第一个矩阵输入采用“;”分行,第二个矩阵输入采用“回车键”分行。 A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9 A=1,2,34,5,67,8,9A = 1 2 3 4 5 6 7 8 9第一章 仿真技术概述仿真技术3.2.2 二维数组1. 二维数组的创建b)利用M文件创建和保存数组 对于经常需要调用的且比较大的数组,可专门为该数组创建一个M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。c)标准数组生成函数指 令含 义
36、指 令含 义diag产生对角形数组(二维以下)rand产生均匀分布随机数组eye产生单位数组(二维以下)randn产生正态分布随机数组magic 产生魔方数组(二维以下)zeros产生全0数组ones产生全1数组第一章 仿真技术概述仿真技术 d=eye(5) %产生(产生(5*5)的单位阵)的单位阵d = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 a=3*ones(4,5) %产生产生4行行5列全列全3数组数组a = 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 b=diag(a) %取取a 阵对角元阵
37、对角元b = 3 3 3 3 c=diag(b) %生成对角元为数组生成对角元为数组b 对对 角阵角阵(与与diag(3,3,3,3) 效果相同)效果相同)c = 3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 3 zeros(5,6) %生成生成5行行6列的全列的全0阵阵ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0第一章 仿真技术概述仿真技术3.2.2 二维数组2. 二维数组的寻访和赋值a)全元素标识和赋值n这是一种最常用的标识方式,对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标
38、。如A(3,5)等。b)单下标标识和赋值n这是只用一个下标来指明元素在数组中的位置。对二维数组采用“单下标”标识,应先对数组的所有元素进行“一维编号”,即先设想把二维数组的所有列按先左后右的次序,首尾相接排成“一维长列”;然后自上往下对元素位置进行编号。 a=zeros(2,5)a = 0 0 0 0 0 0 0 0 0 0(生成2行5列0数组) a(:)=-4:5a = -4 -2 0 2 4 -3 -1 1 3 5(对A进行单下标全元素赋值)第一章 仿真技术概述仿真技术3.2.2 二维数组2. 二维数组的寻访和赋值c)利用MATLAB的冒号运算,可方便地进行数组(矩阵)的子数组(子矩阵)的
39、寻访和赋值。冒号表达式:冒号表达式: s1:s2:s3 式中,s1:起始值; s2:步长(省略为1); s3:终止值。例如: A(:,j):表示A矩阵第j列全部元素 A(i,:):表示A矩阵第i行全部元素 A(1:3,2:4):表示对A矩阵取第一到第三行,第二到第四列中所有元素构成的子矩阵。 s=1 3 5;a(s)=10:10:30a = 10 20 30 2 4 -3 -1 1 3 5(对A进行单下标行数组元素赋值)back第一章 仿真技术概述仿真技术3.3.1 数组运算的常用函数1. 函数数组的运算规则n 对于(mn)数组X=xijmn,函数f()的数组运算规则是指: f(X)=f(xi
40、j)mn3.3 数组运算和矩阵运算 例如对(33)数组A进行2次乘方运算A2,只需对数组中每个元素进行乘方运算aij2即可,如右图所示。 A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9 A .2ans = 1 4 9 16 25 36 49 64 81第一章 仿真技术概述仿真技术3.3.1 数组运算的常用函数2. 常用函数3.3 数组运算和矩阵运算名称含义名称含 义名称含 义sin正弦log2以2为底的对数 real复数实部cos余弦pow22的幂sign符号函数tan正切log自然对数rem求余数asin反正弦 log10常用对数mod模除求余acos反余弦
41、 angle相角(弧度)sqrt平方根atan反正切 conj复数共轭abs模或绝对值exp指数imag复数虚部第一章 仿真技术概述仿真技术 mod(A,2)ans = 1 0 1 0 1 0 1 0 1例如对数组987654321A log(A)ans = 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972 exp(A)ans = 1.0e+003 * 0.0027 0.0074 0.0201 0.0546 0.1484 0.4034 1.0966 2.9810 8.1031 sign(A)ans = 1 1 1 1 1 1 1
42、 1 1 real(A)ans = 1 2 3 4 5 6 7 8 9 angle(A)ans = 0 0 0 0 0 0 0 0 0第一章 仿真技术概述仿真技术3.3.2 矩阵运算n矩阵运算不同于数组运算,要符合矩阵运算的规则数组运算矩阵运算指令含义指令含义A.非共轭转置A共轭转置A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s.*A标量s分别与A元素之积s*A标量s分别与A元素之积A.nA的每个元素自乘n次AnA阵为方阵时,自乘n次A+B对应元素相加A+B矩阵相加A.*B对应元素相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除Blog(A)对A的各元素求
43、对数Logm(A)A的矩阵对数函数第一章 仿真技术概述仿真技术C = -4.0000 + 1.0000i -3.0000 + 3.0000i -2.0000 + 2.0000i -1.0000 + 3.0000i 0 + 2.0000i 1.0000 + 5.0000i 2.0000 + 2.0000i 3.0000 + 5.0000i 4.0000 + 7.0000ians = -4.0000 + 1.0000i -1.0000 + 3.0000i 2.0000 + 2.0000i -3.0000 + 3.0000i 0 + 2.0000i 3.0000 + 5.0000i -2.0000
44、+ 2.0000i 1.0000 + 5.0000i 4.0000 + 7.0000ians = -4.0000 - 1.0000i -1.0000 - 3.0000i 2.0000 - 2.0000i -3.0000 - 3.0000i 0 - 2.0000i 3.0000 - 5.0000i -2.0000 - 2.0000i 1.0000 - 5.0000i 4.0000 - 7.0000iC=A+B*iC.C%例二维数组、矩阵运算A=-4,-3,-2;-1,0,1;2,3,4;B=1,3,2;3,2,5;2,5,7;C=A+B*i %生成复数数组C.,C %非共轭转置和共轭转置第一章
45、仿真技术概述仿真技术A./B,A/B %数组、矩阵右除B.A,BA %数组、矩阵左除A.*B,A*B %数组乘和矩阵乘ans = -4.0000 -1.0000 -1.0000 -0.3333 0 0.2000 1.0000 0.6000 0.5714ans = -2.5000 -1.5000 1.5000 -1.0000 -0.5455 0.8182 0.5000 0.4091 0.1364ans = -4.0000 -1.0000 -1.0000 -0.3333 0 0.2000 1.0000 0.6000 0.5714ans = -3.5000 -3.0000 -2.5000 -1.95
46、45 -1.6364 -1.3182 2.6818 2.4545 2.2273A./BA/BB.ABAans = -4 -9 -4 -3 0 5 4 15 28ans = -17 -28 -37 1 2 5 19 32 47, A.*BA*BA=-4,-3,-2;-1,0,1;2,3,4;B=1,3,2;3,2,5;2,5,7;back第一章 仿真技术概述仿真技术 在程序流控制和逻辑、模糊推理中,都需要对一类是非问题作出“是真”、“是假”的判断。为此,MATLAB设计了关系操作、逻辑操作和一些相关函数。虽在其它程序语言中也有类似的关系、逻辑运算,但MATLAB作为一种比较完善的科学计算环境,有
47、其自身的特点。MATLAB约定:1)在所有关系、逻辑表达式中,作为输入的任何非0数都被看成是“逻辑真”,只有0被认为是“逻辑假”。2)所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0和1组成的“逻辑数组”(Logical Array)。在此数组中的1表示“真”,0表示“假”。3)逻辑数组是一种特殊的数值数组,与“数值类”有关的操作和函数对它也同样适用;但它又不同于普通的“数值”,它还表示着对事物的判断结论“真”与“假”。因此它又有其自身的特殊用途,如数组寻访等。3.4 数组的关系操作和逻辑操作第一章 仿真技术概述仿真技术3.4.1 关系操作n 关系操作指令3.4 关系操作和逻辑操作指令
48、含义指令含义=大于等于大于 =不等于【说明】1)标量与数组比较 比较在此标量和数组每个元素之间进行,比较结果与被比较数组同维。2)数组与数组比较 两数组的维数必须相同,比较在两数组相同位置上的元素间进行,比较结果与被比数组同维。第一章 仿真技术概述仿真技术关系运算示例: A=1:9,B=10-A,r0=(AB)A = 1 2 3 4 5 6 7 8 9B = 9 8 7 6 5 4 3 2 1r0 = 1 1 1 0 0 0 0 0 0r1 = 0 0 0 0 1 0 0 0 0r2 = 0 0 0 0 0 1 1 1 1第一章 仿真技术概述仿真技术3.4.2 逻辑操作n 逻辑操作指令3.4
49、关系操作和逻辑操作指令含义指令含义指令含义&与、和|或否、非【说明】1)标量与数组逻辑运算 运算在标量与数组每个元素之间进行,结果与数组同维。2)数组与数组逻辑运算 参与运算的数组必须同维,运算在两数组相同位置上的元素间进行,运算结果与数组同维。第一章 仿真技术概述仿真技术逻辑操作示例1: A=1:9, B=10-A, r0=(AB)&(AB)|(A3)A = 1 2 3 4 5 6 7 8 9B = 9 8 7 6 5 4 3 2 1r0 = 0 0 0 1 1 1 1 1 1判断A中不小于4的元素r1 = 0 0 0 0 0 1 1 0 0判断A中小于8又比B大的元素r2 = 1 1 0
50、0 0 1 1 1 1判断A中小于3或比B大的元素第一章 仿真技术概述仿真技术%逻辑操作示例2:逐段解析函数的计算和表现t=linspace(0,3*pi,500);y=sin(t); %产生正弦波z1=(t2*pi).*y; %获得整流半波w=(tpi/3&t7*pi/3&t a=an universitya = an university第一章 仿真技术概述仿真技术3.5 .1 字符串数组创建与操作2)串数组的大小 串数组中每个字符(包括空格和标点)都占据一个元素位,上面输入的数组a的大小可用下面指令获得: size(a)ans = 1 13表示这是一个113的数组。3)串数组的元素标识在