《计算机仿真》视频辅导主讲人:张莉2014年5月内容安排一、Matlab的交互式计算二、Matlab的图形绘制三、Matlab的编程基础四、Matlab的句柄操作五、Simulink仿真环境一、交互式计算-基本功能支持计算器计算模式执行简短的指令序列调试函数或脚本部分指令序列-与脚本和函数的关系脚本:重复执行的指令序列函数:重复调用的指令序列一、交互式计算(续)基本的变量-向量一维的矩阵行表示:元素用空格分隔列表示:元素用分号分隔-矩阵两维的数组行内元素用空格分隔列间元素用分号分隔元素的访问x(2)–向量x的第二个元素A(3,3)–矩阵A第三个对角元素变量赋值的交互方法-基本格式变量名=表达式-表达式注解数值,变量和函数通过操作符组合而成手工输入方式函数返回方式(内嵌的或自己的)外部加载方式(.mat数据文件)一、交互式计算(续)手工创建方式323114A5792xA=[32;31;14]A=323114x=[5;7;9;2]x=5792一、交互式计算(续)交互创建的辅助工具-矩阵转置操作符:´-特殊矩阵全零矩阵:zeros(m,n)全一矩阵:ones(m,n)对角矩阵:diag(v)单位矩阵:eye(n)随机矩阵:rand(m,n)v=[2417];w=v’w=2417一、交互式计算(续)创建向量的有用函数-线性增量序列模式基本格式linspace(startValue,endValue)linspace(tartValue,endValue,nElements)注解:缺省nElements=100u=linspace(0,0.25,5)u=00.06250.12500.18500.2500生成行向量一、交互式计算(续)-指数增量序列模式基本格式logspace(startValue,endValue)logspace(tartValue,endValue,nElements)注解:从10^startValue到10^endValueu=logspace(1,4,4)u=10100100010000A=diag(u)A=???一、交互式计算(续)使用冒号创建向量-基本格式startValue:endValuestartValue:increment:endValue注解:缺省增量为单位值s=1:4s=1234t=0:0.1:0.4t=00.10.20.30.4一、交互式计算(续)Matlab绘图:功能函数-二维图形-图形修饰与控制-三维图形二、图形绘制二维图形-plot二维曲线绘图函数基本形式plot(x,y,’s’)x,y是相同类型的等长向量s可选用于控制图形属性原理:点线输入:点坐标向量输出:插值曲线二、图形绘制(续)函数Plot常用的使用格式-plot(x):缺省自变量-plot(x,y):单条曲线-plot(x1,y1,x2,y2,…):多条曲线-plot(x,y,’s’):带属性修饰的曲线-‘s’:属性开关描述自符串变量二、图形绘制(续)图形颜色、标记和线形参数表线型基本点标记颜色-实线:虚线-.点划线--间断线.点o小圆圈x叉子符+加号*星号s方格d菱形y黄色m棕色c青色r红色g绿色b蓝色w白色k黑色二、图形绘制(续)图形的修饰与控制函数title——给图形加标题xlable——给x轴加标注ylable——给y轴加标注text——在图形指定的任意位置加标注gtext——利用鼠标将标注加到图形任意位置gridon/off——打开/关闭坐标网格线legend——添加图例axis——控制坐标轴刻度二、图形绘制(续)图形保持函数hold功能:实现异步绘图的迭加对比cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=sin(t)-cos(t);plot(t,y1);holdon;%后续图形叠加显示plot(t,y2);plot(t,y3);二、图形绘制(续)图形分割函数subplot功能:实现多个图形窗口cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=cos(t+pi/2);y4=cos(t+pi);%将图形窗口分割成两行两列,图形画在第1行第1列的窗口subplot(2,2,1);plot(t,y1);%图形画在第1行第2列subplot(2,2,2);plot(t,y2);二、图形绘制(续)3D曲线绘图函数plot3功能:实现三维曲线绘图使用的一般格式plot3(x1,y1,z1,'s1',x2,y2,z2,'s2'…)cleart=0:pi/50:10*pi;plot3(t,sin(t),cos(t),'r:')gridon二、图形绘制(续)其它绘图方式-命令格式plot:2D曲线绘图plot3:3D曲线绘图loglog:对数坐标绘图semilogx:横对数坐标图semilogy:纵对数坐标图plotyy:双纵坐标图二、图形绘制(续)程序设计概述-基本概念程序:数据结构+算法注解:数据结构定义操作对象算法定义求解过程-必要性问题求解需要复杂算法交互计算方式难以满足三、编程功能M-文件概述m-编辑器:创建以m为结尾标志的asccii文件分类:脚本文件/函数文件-脚本文件(script)执行批处理行命令文件名:默认的宏命令全局性:与工作空间共享变量名适用性:实现小规模简单的问题求解三、编程功能(续)-函数文件创建用户自己功能函数的方式允许参数传递机制定制求解允许局部变量,与工作空间隔离允许函数嵌套,子函数方式主函数:第一行定义的函数子函数:被同一文件其他函数调用的函数三、编程功能(续)-m-文件的结构脚本文件文件体:行命令序列的集合再提醒:文件名即为批处理命令名没有输入和输出所有变量均保留在工作空间函数文件函数定义行:申明和定义函数名/输入输出变量全局变量申明和定义程序体:程序指令集合(包括函数调用)再提醒:函数名与文件名一致三、编程功能(续)-创建一个脚本文件%AnM-filescripttoproduce%Commentlines%flowerpetalplotstheta=-pi:0.01:pi;%Computationsrho(1,:)=2*sin(5*theta).^2;rh(1,:)='2sin(5t)^2';rho(2,:)=cos(10*theta).^3;rh(2,:)='cos(10t)^3';rho(3,:)=sin(theta).^2;rh(3,:)='sin(t)^2';rho(4,:)=5*cos(3.5*theta).^3;rh(4,:)='5cos(3.5t)^3';fork=1:4polar(theta,rho(k,:))%Graphicsoutputtitle(rh(k,:));pauseend三、编程功能(续)-创建一个简单的m-函数文件1:functionf=fact(n)2:%Computeafactorialvalue.3:%FACT(N)returnsthefactorialofN4:%usuallydenotedbyN!5:6:%Putsimply,FACT(N)isPROD(1:N).7:f=prod(1:n);第1行:函数定义行—函数名/输入/输出第2行:帮助提要-help目录/lookfor回应第3/4行:帮助详细信息-help函数回应第6行:程序注释行第7行:程序体三、编程功能(续)句柄图形概述句柄图形(HandleGraphics)是一种面象对象的绘图系统直接创建线、文字、网线、面也可以用于生成图形用户界面已讲解的绘图函数(plot/mesh…)(high-level)通过调用各种句柄图形指令(low-level)实现各种绘图功能四、句柄操作句柄图形功能和关系Matlab图形=图形对象以递阶结构组成UIControls(UI控制元件)Images(图像)Lines(线段)Patches(贴片)Surfaces(曲面)Texts(文字)Lighting(光照)Axes(图轴)UImenus(UI菜单)Figures(图形视窗)Root(桌面)四、句柄操作(续)Matlab图形的构成必须的成分-根对象(根屏幕)-图形窗(FigureWindows)根对象(屏幕)的句柄总是数字0图形窗的句柄总是正整数其余对象的句柄则是双精度浮点数四、句柄操作(续)对象的属性(Properties)-定义和刻画对象的外貌和性状-由两部分组成:属性名和属性值二元对(Property-Name,Property-Value)属性名和属性值总是成对出现的属性名是描述的英文词组字符串第一个字母大写/单词间没有空格例如’LineStyle’,’ColorMap’等通过编辑修改属性值可以改变图形四、句柄操作(续)-对象句柄的获取1.图形创建方式H_GC=GraphicCommand(…)%GraphicCommand图形创建函数%H_GC所创建图形句柄例如:h=figure;%返回图形窗口句柄[x,y,z]=peaks;[c,h]=contour(x,y,z);c轮廓线数据矩阵四、句柄操作(续)-对象属性的获取与设定get/set方式get(H)获取H句柄对象所有属性值get(H,PN)获取H句柄对象的PN属性set(H)显示H句柄对象的所有可设置属性名和全部供选属性值set(H,PN)显示H句柄对象PN指定属性名的全部供选属性值四、句柄操作(续)Simulink概述Simulation+Link-Simulink是一种仿真工具和环境寄生在Matlab环境(共享工作空间)完成对系统的建模,仿真和分析采用基于时间模块化框图(Time-basedBlockDiagram)支持拖放(drag&place)的交互设计有内嵌建模模块库(blocklibrary)五、Simulink工具-Simulink建模模式模块框图描述方式模块单元:内部状态的描述输入/输出信号引角模块的几何属性模块连接:一个模块输出作为另一模块输入模块框图:由若干模块通过信号线连接形成框图模型:定义了系统信号、状态的关联框图运算:指定起始时间到终止时间五、Simulink工具(续)-Simulink建模模块模块的定义几何属性(外观修饰)定义模型结构定义模型参数定义五、Simulink工具(续)-模块的结构定义-模块的参数定义设定端口数据类型设增益值五、Simulink工具(续)-Simulink交互式图形界面(续)编辑模块框图复制/删除/粘贴模块/信号线设置/修改模块-信号线结构属性设置/修改模块的模型参数模块框图文件Fileopen/new/save/saveas/…确省后缀名:*.mdl启动交互式界面激活Matlab工具拦图标五、Simulink工具(续)模块库浏览器五、Simulink工具(续)模块框图编辑器五、Simulink工具(续)-Simulink模块化框图建模实例静态模型建模任务:正余旋模拟双通道信号观测仪模块框图:正旋信号发生器:信源模块库Source多通道信号合成器:信号路由库SignalRouting多通道示波器:信宿模块库Sink生成余旋的积分运算:数学函数库Math信号发生器积分双通道合成器示波器五、Simulink工具(续)-Simulink模块化框图建模实例(续)从信源模块库中选取摸板(拖)创建正旋信号发生器(放)五、Simulink工具(续)-Simulink模块化框图建模实例(续)依次创建所需的模块单元:五、Simulink工具(续)依次创建信号连接线五、Simulink工具(续)正旋信号发生器模块参数设定SineWaveBlockParametersAmplitude=1Frequency(rad/sec)=0.25*2*piPhase(rad)=0SampleTime=0五、Simulink工具(续