建模与仿真基础实验指导书g_第1页
建模与仿真基础实验指导书g_第2页
建模与仿真基础实验指导书g_第3页
建模与仿真基础实验指导书g_第4页
建模与仿真基础实验指导书g_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 建模与仿真基础实验指导书交通与汽车工程学院建模与仿真基础实验指导书适用专业: 车辆工程、汽车服务工程 课程代码: 6015879 学时: 8 学分: 编写单位: 交通与汽车工程学院编 写 人: 向阳 何灼馀 审 核 人: 唐岚 审 批 人: 孙仁云 - 12 -目 录实验一 MATLAB基本操作及编程基础 2实验二 Simulink建模与仿真基础(一)14实验三 Simulink建模与仿真基础(二)- 16 -实验四 Simulink建模与仿真基础(三)- 18 -实验报告格式及要求- 20 -主要参考文献- 20 -实验一 matlab程序设计基础 一 实验目的1. 熟悉MATLAB语言编

2、程环境;2. 掌握建立矩阵的方法;3. 掌握建立和执行M文件的方法;4. 掌握函数文件的创建和运行。5. 掌握实现选择结构的方法;6. 掌握实现循环结构的方法。7. 掌握实现选择结构的方法;8. 掌握实现MATLAB语言绘图的方法。二 实验仪器和设备装有MATLAB6.0以上计算机一台三 实验原理MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。(一)Matlab的基本运算1. 简单的数学运算l 最简单的计算器使用法直接输入法存储变量法l 表达式书写规则在大多数情况下,MATLAB 对空格不予处理,因此在书写表达式时,可以利用空格调

3、整表达式的格式,使表达式更易于阅读。在 MATLAB 表达式中,遵守四则运算法则,与通常法则相同。即运算从左到右进行,乘法和除法优先于加减法,指数运算优先于乘除法,括号的运算级别最高;在有多重括号存在的情况下,从括号的最里边向最外边逐渐扩展。需要注意的是,在 MATLAB 中只用小括号代表运算级别,中括号只用于生成向量和矩阵,花括号用于生成单元数组。l MATLAB 的数学运算符符号功能实例符号功能实例+加法3+5=8左除-减法3-5=-2.数组左除*矩阵乘法3*5=15乘方.*点乘,数组乘法.数组乘方/右除3/5 =0.6000矩阵共轭转置./数组右除.矩阵转置需要注意的是,右除和左除的意义

4、并不相同。右除为常规的除法,而左除的意义为:ab=b/a。l 标点符号的使用在 MATLAB 中,标点符号有着充分的意义,可以用标点符号进行运算,或者标点符号可以包含特定的意义。标点符号定义标点符号定义分号(;)数组行分隔符;取消运行显示点(.)小数点;结构体成员访问逗号(,)数组列分隔符;函数参数分隔符省略号()续行符冒号(:)在数组中应用较多,如生成等差数列引号()定义字符串圆括号(( ))指定运算优先级;函数参数调用;数组索引等号(=)赋值语句方括号( )定义矩阵感叹号(!)调用操作系统运算花括号( )定义单元数组百分号(%)注释语句的标识l 分号(;)分号用于区分数组的行,或者用于一个

5、语句的结尾处,取消运行显示。l 百分号(%)该符号用于在程序文本中添加注释,增加程序的可读性。百分号之后的文本都将视作注释,系统不对其进行编译。2. 常用的操作命令和快捷键为方便用户操作,MATLAB 中定义了一些快捷键。掌握一些常用的操作命令和快捷键,可以使得对 MATLAB 的操作更加便利l 常用的操作命令命令功能命令功能cd 显示或改变工作目录hold 图形保持命令clc 清空命令窗口load 加载指定文件中的变量clear 清除工作区中的变量pack 整理内存碎片clf 清除图形窗口path 显示搜索目录diary 日志文件命令quit 退出MATLAB dir 显示当前目录下文件sa

6、ve 保存内存变量disp 显示变量或文字的内容type 显示文件内容echo命令窗口信息显示开关l 常用的操作快捷键快捷键功能快捷键功能(Ctrl+p)调用上一行Home(ctrl+a)移动到命令行开头(Ctrl + n)调用下一行End(ctrl+e)移动到命令行结尾(Ctrl + b)光标左移一个字符Ctrl + Home移动到命令窗口顶部(Ctrl + f)光标右移一个字符Ctrl + End移动到命令窗口底部Ctrl +光标左移一个单词Shift + Home选中光标和表达式开头之间的内容Ctrl+ 光标右移一个单词 Shift + End 选中光标和表达式结尾之间的内容Esc 取消

7、当前输入行Ctrl + k 剪切光标和表达式结尾之间的内容l 关系运算符MATLAB 的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。MATLAB 的关系运算符包括所有常用的比较运算符,如表所示运算符说明运算符说明<小于<=小于或等于>大于>=大于或等于=等于=不等于l 逻辑运算符逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。MATLAB 中的逻辑运算符如表所示。运算符描述&与&&与,只适用于标量。a && b,当a 的值为假时,则忽略 b 的值|

8、或|或,只适用于标量。a | b ,当a 的值为真时,则忽略 b 的值非3、运算基础在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算后的答案(Answer)并显示其数值于屏幕上。提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由于编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也

9、可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*102/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算()。 提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只

10、需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*42); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。若一个数学运算是太长,可用三个句点将其延伸到下一行: z = 10*sin(pi/3)* . sin(pi/3); 4、常见数学函数函 数 名数 学 计 算 功 能函 数 名数 学 计 算 功 能abs(x)实数的绝对值或复数的幅值floor(x)对x朝-方向取整acos(x)反余弦arcsingcd(m,n)求正整数m和n的最大公约数a

11、cosh(x)反双曲余弦arccoshimag(x)求复数x的虚部angle(x)在四象限内求复数 x 的相角lcm(m,n)求正整数m和n的最小公倍数asin(x)反正弦arcsinlog(x)自然对数(以为底数)asinh(x)反双曲正弦arcsinhlog10(x)常用对数(以10为底数)atan(x)反正切arctanreal(x)求复数x的实部atan2(x,y)在四象限内求反正切rem(m,n)求正整数m和n的m/n之余数atanh(x)反双曲正切arctanhround(x)对x四舍五入到最接近的整数ceil(x)对x朝+方向取整sign(x)符号函数:求出x的符号conj(x)

12、求复数x的共轭复数sin(x)正弦sincos(x)余弦cossinh(x)反双曲正弦sinhcosh(x)双曲余弦coshsqrt(x)求实数x的平方根:exp(x)指数函数 tan(x)正切tanfix(x)对x朝原点方向取整tanh(x)双曲正切tanh如:输入 x=-4.85 -2.3 -0.2 1.3 4.56 6.75,则: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 75、常量与变量系统的变量命名规则:变量名区分字母大小写;变量名必须以

13、字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:特殊的变量、常量取 值ans用于结果的缺省变量名pi圆周率的近似值(3.1416)eps数学中无穷小(epsilon)的近似值(2.2204e - 016)inf无穷大,如 1/0 = inf (infinity)NaN非数,如 0/0 = NaN (Not a Number),inf / inf = NaNi,j虚数单位:i = j =6、 数值型向量(矩阵)的输入(1)任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(

14、;)分隔。所有元素处于一方括号( )内;例1:>> Time = 11 12 1 2 3 4 5 6 7 8 9 10>> X_Data = 2.32 3.43;4.37 5.98(2)系统中提供了多个命令用于输入特殊的矩阵:函数功 能函数功 能compan伴随阵toeplitzToeplitz矩阵diag对角阵vanderVandermonde矩阵hadamardHadamard矩阵zeros元素全为0的矩阵hankelHankel矩阵ones元素全为1的矩阵invhilbHilbert矩阵的逆阵rand元素服从均匀分布的随机矩阵kronKronercker张量积ra

15、ndn元素服从正态分布的随机矩阵magic魔方矩阵eye对角线上元素为1的矩阵pascalPascal矩阵meshgrid由两个向量生成的矩阵上面函数的具体用法,可以用帮助命令help得到。如:meshgrid(x,y)输入 x=1 2 3 4; y=1 0 5; X,Y=meshgrid(x, y),则X = Y = 1 2 3 4 1 1 1 1 1 2 3 4 0 0 0 0 1 2 3 4 5 5 5 5目的是将原始数据x,y转化为矩阵数据X,Y。(3)数组(矩阵)的点运算运算符:+(加)、-(减)、./(右除)、.(左除)、.(乘方),例2:>> g = 1 2 3 4;

16、h = 4 3 2 1;>> s1 = g + h, s2 = g.*h, s3 = g.h, s4 = g.2, s5 = 2.h(4)矩阵的运算运算符:+(加)、-(减)、*(乘)、/(右除)、(左除)、(乘方)、(转置)等;常用函数:det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref(化矩阵为行最简形)例3:>> A=2 0 1;1 3 2; B=1 7 1;4 2 3;2 0 1;>> M = A*B % 矩阵A与B按矩阵运算相乘>> det_B = det(B) % 矩阵A的行列式>>

17、rank_A = rank(A) % 矩阵A的秩>> inv_B = inv(B) % 矩阵B的逆矩阵>> V,D = eig(B) % 矩阵B的特征值矩阵V与特征向量构成的矩阵D>> X = A/B % A/B = A*B-1,即XB=A,求X>> Y = BA % BA = B-1*A,即BY=A,求Y(二)Matlab程序设计M文件概述 MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。例 分别建立命令文件和函数文件,将华氏温度f转换为摄

18、氏温度c。例4: 首先建立命令文件并以文件名f2c.m存盘。clear; %清除工作空间中的变量f=input('Input Fahrenheit temperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:Input Fahrenheit temperature:73c = 22.7778例5:首先建立函数文件f2c.m。function c=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口调用该函数文件。clear;y=input('Input Fahrenheit temperat

19、ure:');x=f2c(y)输出情况为:Input Fahrenheit temperature:70c = 21.1111x = 21.1111 2. M文件的建立与打开M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。(1)建立新的M文件为建立新的M文件,启动MATLAB文本编辑器有3种方法:菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容

20、并存盘。 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。(2) 打开已有的M文件 打开已有的M文件,也有3种方法:菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。3.M

21、ATLAB程序流程控制(1)无条件循环当需要无条件重复执行某些命令时,可以使用for循环:for 循环变量t=表达式1 : 达式2 : 表达式3 语句体end例2.2、生成3×4阶的Hiltber矩阵。for i=1 : 3for j=1 : 4H(i,j)=1/(i+j-1);end end说明:表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。例2.3、矩阵输入程序m=input(矩阵行数:m=);n= input(矩阵列数:n=);for i=1:mfor j=1:ndisp(输入第,num2str(i),行,第,num

22、2str(j), 列元素)A(i, j) = input ( )end end(2)条件循环1) if-else-then语句if-else-then语句的常使用三种形式为:(1) if 逻辑表达式 (3) if 逻辑表达式1 语句体 语句体1end elseif 逻辑表达式2 语句体2(2) if 逻辑表达式1 elseif 逻辑表达式3 语句体1 else else 语句体2 语句体nend end 2)while循环语句while循环的一般使用形式为:while 表达式 语句体end例6:用迭代法计算多项式方程= 0的一个实根。 解:x0=3;r=1;n=0;while r > 1

23、e-5 x1=x0; x0=3+5/x1.2; r=abs(x0-x1); n=n+1;end,x0,n运行结果为:x0 = 3.4260n = 9(3) 分支结构若需要对不同的情形执行不同的操作,可用switch 分支语句:switch 表达式(标量或字符串) case 值1 语句体1 case 值2 语句体2 otherwise 语句体nend说明:当表达式不是“case”所列值时,执行otherwise语句体。4 .建立函数文件对于一些特殊用户函数,系统提供了一个用于创建用户函数的命令function,以备用户随时调用。1)格式:function 输出变量列表=fun_name(输入变量

24、列表) 用户自定义的函数体2)函数文件名为:fun_name,注意:保存时文件名与函数名最好相同;3)存储路径:最好在系统的搜索路径上。4) 调用方法:输出参量=fun_name (输入变量)例7:计算s = n!,在文本编辑器中输入:function s=pp(n);s=1;for i=1:n s=s*i;ends;保存文件名为:pp.m在MATLAB命令窗口中输入:s=pp(5) 结果为s = 1202.5 MATLAB图形操作2.5.1 plot该命令在线性坐标系下绘制y对应于x的轨迹。若其中之一为矩阵则该命令将对应于矩阵的行或者列绘制一簇曲线。该命令也可以在同一坐标轴下绘制多条曲线。例

25、8 用plot绘制y=sinx/x的图形 x=-2*pi:pi/10:2*pi;y=sin(x)./x; %准备数据plot(x,y) %用plot作图注意x=0处的图形例9 x=-2*pi:pi/10:2*pi;x=x+(x=0)*eps;y=sin(x)./x; %(准备数据,处理分母零点)plot(x,y) %(用plot作图):2.5.2 subplot (r,c,p) 该命令将屏幕分成r*c个窗口,p表示在第几个窗口. 同时绘制多个图形窗口时,绘图语句间应用逗号分开。 例10下面的程序产生四个窗口,且分别绘制相应图形. t=0:0.01:2*pi; y=sin(t); x=cos(t

26、); subplot(221),plot(t,y),grid,subplot(222),plot(t,x),grid,subplot(223),polar(t,y),subplot(224),polar(t,x)从上面的程序可以看出,subplot语句中的r,c,p可以不用逗号分开。 上面程序执行后得到如下图形:2.5.3 gtext该命令用于鼠标定位的文字注释. 执行完绘图命令后再执行gtext(说明文字) 命令, 就可在屏幕上得到一个光标, 然后,用鼠标选择说明文字的位置。例11 t=0:1:10; x1=2*t; x2=0.5*t; plot(x1,t,x2,t); gtext('

27、;x=2t'); gtext('x=0.5t') 该命令在线性坐标系下绘制y对应于x的轨迹。若其中之一为矩阵则该命令将对应于矩阵的行或者列绘制一簇曲线。该命令也可以在同一坐标轴下绘制多条曲线。2.5.4 plot3plot3函数与plot函数的用法类似。2.5.6基本绘图控制参数:设置线型、线色、数据点形1)、曲线点型、线色允许设置值线型符号-:-.-含义实线虚线点划线双划线线色符号bgrcmykw含义蓝绿红青品红黄黑白 2)、数据点形常用设置值符号.ox+*sdp含义实心黑点空心圆圈叉字符十字符八线符方块符菱形符五角星符3)、坐标轴控制(axis)、分格线(

28、grid)4)、图形标注:坐标轴名(label)、图形标题(title)、图例(legend)、图形说明(text,gtext),格式如下:title(s) 书写图形标题xlabel(s) 横坐标轴名ylabel(s) 纵坐标轴名legend(s1,s2,) 绘制曲线所用线型、色彩、或数据点型图例text(x1,y1,s) 在图面(x1,y1)坐标处书写字符注释gtext(s) 用鼠标选择书写字符注释的位置四 实验内容和步骤熟悉MATLAB语言编程环境。熟悉变量、MATLAB基本数学函数使用,矩阵操作练习,主要包括矩阵的建立,算数运算,逻辑运算和关系运算。(一)熟悉Matlab的运行环境以及H

29、ELP命令,运行demo命令,观看matlab所具有的功能。(二)验证上一步骤:实验原理中的例题(共11题)中所有操作(在实验报告中附相应的程序)。(三)完成以下各题,将步骤命令写入实验报告,并在机器上运行结果验证。1输入A=7 1 5;2 5 6;3 1 5,B=1 1 1; 2 2 2; 3 3 3,在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A2 A.2 B/A B./A2求下列表达式的值(在实验报告中附相应的程序)。提示:利用冒号表达式生成a向量(四

30、)完成以下各题,将答案写入实验报告,并在机器上运行结果验证。(在实验报告中附相应的程序)1、设,在x=02区间取101点,绘制函数的曲线。2. 绘制0,4区间上的x=10sint曲线(所取的点为n, n为本人学号后三位值),并要求:(1)线形为点划线、颜色为红色、数据点标记为加号; (2)坐标轴控制:显示范围、刻度线、比例、网络线 (3)标注控制:坐标轴名称、标题。 (4) 用gtext命令在图上标注x=10sint。实验二 Simulink建模与仿真基础(一)一、实验目的 1、熟悉MATLAB中基本simulink仿真环境;2、掌握simulink进行系统仿真设计的基本步骤;3、了解simu

31、link中各模块库;4、掌握模块操作、信号线操作、模型注释的基本技巧;5、掌握传递函数的Simulink建模方法;6、掌握子系统的创建方法。二、实验环境与工具操作系统:WINDOWS98/2000/2003/XP 编程工具:MATLAB/Simulink三、实验内容1.在命令窗口中输入simulink命令或在工具栏中点击图标,观察各模块库的构成;2.熟悉基本模块库中的demo;3.了解各模块参数的设定及示波器的使用方法;4.新建模型文件,搭建以下微分方程的simulink仿真模型,对模型进行注释并仿真。,5. 新建模型文件,建立如下图所示的系统,并将G1和G2创建成子系统。仿真出单位阶跃的响应

32、曲线。四、实验步骤1.写出实验内容的操作步骤;2.给出Simulink仿真模型和运行结果;3.分析Simulink仿真模型在不同的参数、不同的算法、不同的仿真时间进行仿真实验的结果。五、实验注意事项1.实验中不轻易改动MATLAB/Simulink的参数设置,以免引起系统运行问题。2.遇到各种难以处理的问题,请询问指导老师。3.为保证计算机的安全,上机过程中非经指导老师和实验室管理人员同意,禁止使用软盘与移动硬盘。4.每次上机,个人应按规定要求使用同一计算机,如因故障需更换,应报指导老师或实验室管理人员同意。5.上机时间,禁止使用计算机从事与课程无关的工作。 6.将实验过程截图,并配以适当的文

33、字说明。- 14 -实验三 Simulink建模与仿真基础(二)一、实验目的 1、掌握Simulink常用模块的应用技巧。2、掌握微分方程的Simulink框图求解。二、实验环境与工具操作系统:WINDOWS98/2000/2003/XP 编程工具:MATLAB/Simulink三、实验内容1.在命令窗口中输入simulink命令或在工具栏中点击图标,观察各模块库的构成;2.熟悉基本模块库中的demo;3.了解各模块参数的设定及示波器的使用方法;4.新建模型文件,搭建以下2个微分方程的simulink仿真模型,对模型进行注释并仿真。模型1:,其中m=1,c=1,k=1模型2:,四、实验步骤1.

34、写出实验内容的操作步骤2.给出Simulink仿真模型和运行结果;3.分析Simulink仿真模型在不同的参数、不同的算法、不同的仿真时间进行仿真实验的结果。五、实验注意事项1.实验中不轻易改动MATLAB/Simulink的参数设置,以免引起系统运行问题。2.遇到各种难以处理的问题,请询问指导老师。3.为保证计算机的安全,上机过程中非经指导老师和实验室管理人员同意,禁止使用软盘与移动硬盘。4.每次上机,个人应按规定要求使用同一计算机,如因故障需更换,应报指导老师或实验室管理人员同意。5.上机时间,禁止使用计算机从事与课程无关的工作。6.将实验过程截图,并配以适当的文字说明。实验四 Simulink建模与仿真基础(三)一、实验目的1、了解SimMechanics的功能和模块组成。2、掌握SimMechanics的建模和仿真。二、实验环境与工具操作系统:WINDOWS98/2000/2003/XP 编程工具:MATLAB/Simulink三、实验内容1.在simulink数据库中找到SimMechanics模块,了解SimMechanics各模块的构成和参数的设定;2.单摆为一杆,质量均匀,长度为1m,直径2cm,根据单摆的密度可算出单摆质量为2.409kg。初始条件为Wor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论