建模与仿真基础实验指导书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《建模与仿真基础》实验指导书汽车与交通学院《建模与仿真基础》实验指导书适用专业:车辆工程专业课程代码:6017479学时:12学分:编写单位:汽车与交通学院编写人:阴晓峰审核人:徐延海审批人:孙仁云《建模与仿真基础》实验指导书目录实验一Matlab基本操作及绘图……………………………………………………………1实验二Matlab控制系统数学模型………………………………………………………10实验三Simulink模块基本操作………………………………………………………………11实验四简单Simulink建模基础…………………………………………………………………14实验五二元系统Simulink建模…………………………………………………………15实验六悬吊式起重机仿真实例………………………………………………………………17《建模与仿真基础》实验指导书-1-实验一Matlab基本操作及绘图一、实验目的1.熟悉Matlab语言编程环境;2.掌握建立矩阵的方法;3.掌握Matlab数值计算;4.掌握实现Matlab语言绘图的方法。二、实验仪器和设备装有Matlab6.0以上计算机一台三、实验原理Matlab是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。(一)Matlab的基本运算1.简单的数学运算最简单的计算器使用法直接输入法存储变量法表达式书写规则在大多数情况下,Matlab对空格不予处理,因此在书写表达式时,可以利用空格调整表达式的格式,使表达式更易于阅读。在Matlab表达式中,遵守四则运算法则,与通常法则相同。即运算从左到右进行,乘法和除法优先于加减法,指数运算优先于乘除法,括号的运算级别最高;在有多重括号存在的情况下,从括号的最里边向最外边逐渐扩展。需要注意的是,在Matlab中只用小括号代表运算级别,中括号只用于生成向量和矩阵,花括号用于生成单元数组。Matlab的数学运算符符号功能实例符号功能实例+加法3+5=8\左除-减法3-5=-2.\数组左除*矩阵乘法3*5=15^乘方.*点乘,数组乘法.^数组乘方/右除3/5=0.6000‘矩阵共轭转置./数组右除.’矩阵转置需要注意的是,右除和左除的意义并不相同。右除为常规的除法,而左除的意义为:a\b=b/a。标点符号的使用在Matlab中,标点符号有着充分的意义,可以用标点符号进行运算,或者标点符号可以包含特定《建模与仿真基础》实验指导书-2-的意义。标点符号定义标点符号定义分号(;)数组行分隔符;取消运行显示点(.)小数点;结构体成员访问逗号(,)数组列分隔符;函数参数分隔符省略号(…)续行符冒号(:)在数组中应用较多,如生成等差数列引号(‘’)定义字符串圆括号(())指定运算优先级;函数参数调用;数组索引等号(=)赋值语句方括号([])定义矩阵感叹号(!)调用操作系统运算花括号({})定义单元数组百分号(%)注释语句的标识分号(;)分号用于区分数组的行,或者用于一个语句的结尾处,取消运行显示。百分号(%)该符号用于在程序文本中添加注释,增加程序的可读性。百分号之后的文本都将视作注释,系统不对其进行编译。2.常用的操作命令和快捷键为方便用户操作,Matlab中定义了一些快捷键。掌握一些常用的操作命令和快捷键,可以使得对Matlab的操作更加便利常用的操作命令命令功能命令功能cd显示或改变工作目录hold图形保持命令clc清空命令窗口load加载指定文件中的变量clear清除工作区中的变量pack整理内存碎片clf清除图形窗口path显示搜索目录diary日志文件命令quit退出MATLABdir显示当前目录下文件save保存内存变量disp显示变量或文字的内容type显示文件内容echo命令窗口信息显示开关常用的操作快捷键快捷键功能快捷键功能↑(Ctrl+p)调用上一行Home(ctrl+a)移动到命令行开头《建模与仿真基础》实验指导书-3-↓(Ctrl+n)调用下一行End(ctrl+e)移动到命令行结尾←(Ctrl+b)光标左移一个字符Ctrl+Home移动到命令窗口顶部→(Ctrl+f)光标右移一个字符Ctrl+End移动到命令窗口底部Ctrl+←光标左移一个单词Shift+Home选中光标和表达式开头之间的内容Ctrl+→光标右移一个单词Shift+End选中光标和表达式结尾之间的内容Esc取消当前输入行Ctrl+k剪切光标和表达式结尾之间的内容关系运算符Matlab的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。Matlab的关系运算符包括所有常用的比较运算符,如表所示运算符说明运算符说明小于=小于或等于大于=大于或等于==等于~=不等于逻辑运算符逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。Matlab中的逻辑运算符如表所示。运算符描述&与&&与,只适用于标量。a&&b,当a的值为假时,则忽略b的值|或||或,只适用于标量。a||b,当a的值为真时,则忽略b的值~非3、运算基础在Matlab下进行基本数学运算,只需将运算式直接打入提示号()之后,并按入Enter键即可。例如:(5*2+1.3-0.8)*10/25ans=4.2000Matlab会将运算结果直接存入一变数ans,代表Matlab运算后的答案(Answer)并显示其数值于屏幕上。提示:是Matlab的提示符号(Prompt),但在PC中文视窗系统下,由于编码方式不同,此提示符号常会消失不见,但这并不会影响到Matlab的运算结果。《建模与仿真基础》实验指导书-4-我们也可将上述运算式的结果设定给另一个变数x:x=(5*2+1.3-0.8)*10^2/25x=42此时Matlab会直接显示x的值。由上例可知,Matlab认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。提示:Matlab将所有变数均存成double的形式,所以不需经过变数宣告(Variabledeclaration)。Matlab同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的Matlab易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。若不想让Matlab每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y=sin(10)*exp(-0.3*4^2);若要显示变量y的值,直接键入y即可:yy=-0.0045在上例中,sin是正弦函数,exp是指数函数,这些都是Matlab常用到的数学函数。若一个数学运算是太长,可用三个句点将其延伸到下一行:z=10*sin(pi/3)*...sin(pi/3);4、常见数学函数函数名数学计算功能函数名数学计算功能abs(x)实数的绝对值或复数的幅值floor(x)对x朝-∞方向取整acos(x)反余弦arcsinxgcd(m,n)求正整数m和n的最大公约数acosh(x)反双曲余弦arccoshximag(x)求复数x的虚部angle(x)在四象限内求复数x的相角lcm(m,n)求正整数m和n的最小公倍数asin(x)反正弦arcsinxlog(x)自然对数(以e为底数)asinh(x)反双曲正弦arcsinhxlog10(x)常用对数(以10为底数)atan(x)反正切arctanxreal(x)求复数x的实部atan2(x,y)在四象限内求反正切rem(m,n)求正整数m和n的m/n之余数atanh(x)反双曲正切arctanhxround(x)对x四舍五入到最接近的整数ceil(x)对x朝+∞方向取整sign(x)符号函数:求出x的符号conj(x)求复数x的共轭复数sin(x)正弦sinxcos(x)余弦cosxsinh(x)反双曲正弦sinhxcosh(x)双曲余弦coshxsqrt(x)求实数x的平方根:xexp(x)指数函数xetan(x)正切tanxfix(x)对x朝原点方向取整tanh(x)双曲正切tanhx如:输入x=[-4.85-2.3-0.21.34.566.75],则:ceil(x)=-4-20257fix(x)=-4-20146floor(x)=-5-3-1146round(x)=-5-201575、常量与变量系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:《建模与仿真基础》实验指导书-5-特殊的变量、常量取值ans用于结果的缺省变量名pi圆周率π的近似值(3.1416)eps数学中无穷小(epsilon)的近似值(2.2204e-016)inf无穷大,如1/0=inf(infinity)NaN非数,如0/0=NaN(NotaNumber),inf/inf=NaNi,j虚数单位:i=j=16、数值型向量(矩阵)的输入(1)任何矩阵(向量),可以直接按行方式...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([])内;例1:Time=[111212345678910]X_Data=[2.323.43;4.375.98](2)系统中提供了多个命令用于输入特殊的矩阵:函数功能函数功能compan伴随阵toeplitzToeplitz矩阵diag对角阵vanderVandermonde矩阵hadamardHadamard矩阵zeros元素全为0的矩阵hankelHankel矩阵ones元素全为1的矩阵invhilbHilbert矩阵的逆阵rand元素服从均匀分布的随机矩阵kronKronercker张量积randn元素服从正态分布的随机矩阵magic魔方矩阵eye对角线上元素为1的矩阵pascalPascal矩阵meshgrid由两个向量生成的矩阵上面函数的具体用法,可以用帮助命令help得到。如:meshgrid(x,y)输入x=[1234];y=[105];[X,Y]=meshgrid(x,y),则X=Y=123411111234000012345555目的是将原始数据x,y转化为矩阵数据X,Y。(3)数组(矩阵)的点运算运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),例2:g=[1234];h=[4321];s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h(4)矩阵的运算运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)、’(转置)等;常用函数:det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref(化矩阵为行最简形)《建模与仿真基础》实验指导书-6-例3:A=[20–1;132];B=[17–1;423;201];M=A*B%矩阵A与B按矩阵运算相乘det_B=det(B)%矩阵A的行列式rank_A=rank(A)%矩阵A的秩inv_B=inv(B)%矩阵B的逆矩阵[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵DX=A/B%A/B=A*B-1,即XB=A,求XY=B\A%B\A=B-1*A,即BY=A,求Y(二)Matlab绘图操作1.plot函数该命令在线性坐标系下绘制y对应于x的轨迹。若其中之一为矩阵则该命令将对应于矩阵的行或者列绘制一簇曲线。该命令也可以在同一坐标轴下绘制多条曲线。例4用plot绘制y=sinx/x的图形x=-2*pi:pi/10:2*pi;y=sin(x)./x;%准备数据plot(x,y)%用plot作图注意x=0处的图形例5x=-2*pi:pi/10:2*pi;x=x+(x==0)*eps;y=sin(x)./x;%(准备数据,处理分母零点))plot(x,y)%(用plot作图):2.sub

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功