MATLAB实验

2024-09-06

MATLAB实验(通用8篇)

1.MATLAB实验 篇一

求解:1.模拟比赛车道曲线和选手速度曲线;

2.估计车道长度和所围区域面积;

3.分析车道上相关路段的路面状况(用不同颜色或不同线型标记出来);

4.对参加比赛选手提出合理建议。

四.合理建议

1.通过赛道曲线可知,选手所经过的赛道上不平整的地方很多,如果平常不多多尝试不同的路况会造成比赛时的很多突发情况,都会造成选手的成绩受到很大的干扰,甚至退赛等严重的后果。所以我建议选手平时要多在不同类型的路况上练习,以增强应变能力,取得更好的成绩。

2.选手的速度分配有一些不合理,在平直的沙土路段应该全力加速,以最快速度通过这个路段,以达到最好的比赛效果。在经过坑洼碎石路时尽量保持一个恒定的速度,因为如果速度一直在变化,很容易在这种路段上陷入或者熄火,造成比赛时的极大不利。将加速尽量用在沙土路等摩擦力较大的路上,以免耗费太多的动力。我们需要将动力的效率尽量的提高。

五.实验的总结

我认为,本实验的主要目的在于让我们掌握对三次样条差值来模拟离散点表示的曲线的运用,我认为我们已经基本掌握,并且我们也掌握了用梯形法求不规则封闭图形的面积的方法,除此之外,本实验中还有考查所学知识外的方面,就是画v-t图。

事实上,根据题目所给的条件,并不能准确地画出v-t图,所以需要找到一种方法,来尽量 使结果接近真正的情况。我采用了中值的方法,这是我想到的一种比较有效的方法,并且在使用这种方法时,又运用到了三次样条差值的方法,使我对三次样条差值法理解地更加深刻,并且能更加灵活地运用。

所以我发现三次样条差值的方法运用的范围十分广泛,不仅是对路径的拟合,许多已知离散点,对应的函数连续变化的问题也可以用此方法解决,比如已知一天中几个离散时间点对应的气温,估计出一天气温的变化趋势,就可以用此方法。

最重要的是,我感到了数学建模的重要性,我发现原来生活中不少类似的问题,都是用数学建模的方法解决的。

2.MATLAB实验 篇二

大学物理实验中复杂数据处理时一般采用作图法, 其中最小二乘法是一种比较精确的曲线拟合的方法, 其方法直观、简便, 但是作图法误差较大, 随机性也较大, 并且在作图纸上拟合曲线不可避免地会引入人为误差。MATLAB语言功能强大、界面友善、语言自然、开放性强, 成为应用学科计算机辅助分析、设计、仿真及教学不可缺少的基础软件。应用MATLAB处理物理实验数据既可减少工作量, 又简便易学, 同时能画出较准确的拟合曲线。

二、霍尔效应实验原理

霍尔效应从本质上讲是运动的带电粒子在磁场中受洛仑兹力作用而引起的偏转所产生的。实验是通过测定霍尔电压来完成霍尔系数的测量, 霍尔系数是反映材料霍尔效应强弱的重要参数。经过理论推导得到公式, 式中是霍尔系数, Is是通过霍尔元件的电流, Vh是霍尔电压, B是垂直于电流方向的磁感应强度, d是霍尔元件的厚度。只要测出Vh及已知Is、B、d, 就可按公式计算求出Rh (单位为米3/库仑) 。

三、实验数据与处理

1. 数据测量与记录。

保持Im=0.600A不变, 改变Is测量所对应的Vh的值, 并记录数据如下表1。

保持Is=3.00mA不变, 改变Im测量所对应的Vh的值, 并记录数据如下表2。

2. MATLAB语言进行最小二乘法实验数据处理。

应用MATLAB语言处理数据, 只需输入数组并用polyfit语言完成曲线的拟合, 得到y1=k*x1+b, 再用plot类语句即可完成绘图。

下面以绘制Vh—Is拟合曲线为例演示MATLAB语言最小二乘法数据处理。编程如下, 拟合曲线见图1, 同理得到的最小二乘法拟合曲线Vh—Im如图2。

四、结论

应用MATLAB进行霍尔效应物理实验进行最小二乘法数据处理, 与手动作图或其他语言如C语言比较, 操作简便、直观、易于掌握并便于修改, 是科研和实验数据处理强有力的工具。

参考文献

[1]凌亚文.大学物理实验[M].北京:科学出版社, 2005.

3.MATLAB实验 篇三

【关键词】 Matlab Gui,阿贝-波特实验,滤波

【中图分类号】G64.23 【文献标识码】A 【文章编号】2095-3089(2015)15-000-01

一、引言

众所周知,光学专业实验对仪器的稳定性要求很高,对于复杂光路的搭建和调试都是非常耗费时间的,而计算机仿真能克服上述缺点,而且能够呈现出实验中很难实现的实验现象。所以光学专业实验的计算机仿真成为了当前实验教学研究的一个热门课题。阿贝-波特实验是光信专业的一个经典实验[1],目前也有不少人对该实验进行了仿真,但目前该实验的仿真要么缺乏直观的界面[2],要么界面不够友好,不够丰富[3],比如界面中没有给出实际的实验光路等。针对上述情况,本文对阿贝-波特实验进行料Matlab Gui仿真,仿真界面不但给出了该实验的实际光路,而且验证了阿贝波特实验的所有现象,实现了仿真界面友好、内容丰富,使学生更能深刻理解阿贝波特实验。

二、阿贝-波特实验的原理

如图1所示[1],在相干平行光照明下,物的成像过程可分成两步:①入射光经过物的衍射在物镜的后焦面上形成夫琅禾费衍射图样;②衍射图样作为新的子波源发出的球面波在像平面上相干叠加成像。概括地说,上述成像过程分两步:先是“衍射分频”,然后是“干涉合成”。所以如果在透镜的后焦面(即频谱面)上放上各种滤波器,就可以改变频谱的信息,从而引起输出像发生变化。

图1 阿贝成像原理图

三、阿贝波特实验的Matlab Gui仿真

图2是阿贝波特实验的MATLAB GUI仿真界面。界面的右上方为实验光路及实验注意事項。滤波对象是正交光栅,在界面的下面显示物及其频谱,点击滤波器下拉菜单,选中水平狭缝作为滤波器,则界面的下面第三个图显示该滤波器,再点击进行滤波按钮,则在界面的下面第四个图显示经滤波处理后的像,如图2(a)所以,由图可见,频谱面上的横向分布是物的纵向结构的信息,如果点击滤波器下拉菜单,选中纵向狭缝作为滤波器,则在界面的下面第四个图显示经滤波处理后的像,如图2(b)所以,由图可见,频谱面上的纵向分布是物的横向结构的信息。如果点击滤波器下拉菜单,选中方向滤波,则经滤波后的输出像如图2(c)所示,得到的是相对方向的信息,由图可以看出,采用方向滤波器,可完全改变像的性质。如果点击滤波器下拉菜单,选中低通滤波,则经滤波后的输出像如图2(d)所示,由图可见,零频分量是一个直流分量,它只代表像的本底,即只有0级衍射(空间频率为0)能通过时,则在像平面上虽有光照,但完全不能形成图像。如果点击滤波器下拉菜单,选中高通滤波,则经滤波后的输出像如图2(e)所示,由图可

(a)横向狭缝滤波

(b)纵向狭缝滤波

(c)方向滤波

(d)低通滤波

(e)高通滤波

图2 阿贝波特实验的Matlab Gui仿真界面。

见,阻挡零频分量,在一定条件下可使像发生衬度反转。由2(d,e)还可以看出:允许低频分量通过时,像的边缘锐度降低;允许高频分量通过时,像的边缘增强。

四、结论

为了更好理解阿贝波特实验,本文对阿贝波特实验进行了Matlab Gui仿真,仿真界面友好、操作方面,内容丰富,本仿真界面不但给出了实际的实验光路,而且实现了实验的所有功能,仿真结果验证了所有的阿贝波特实验现象。

参考文献

[1]苏显渝,李继陶.信息光学M.北京,科学出版社,1999

[2]刘全金叶璟.基于MATLAB环境的阿贝-波特空间滤波实验仿真,安庆师范学院学报,2009,4:108-112

4.MATLAB实验指导书 篇四

实验指导书

物理与信息工程系

目录

实验一 MATLAB编程环境..............................................3 实验二 矩阵基本运算

(一)..........................................5 实验三 矩阵基本运算

(二)..........................................7 实验四 矩阵分析...................................................9 实验五 分支结构程序设计..........................................11 实验六 循环结构程序设计..........................................13 实验七 文件操作..................................................15 实验八 二维曲线的绘制............................................17 实验九 三维曲线和曲面的绘制......................................19 实验十 MATLAB数据统计处理........................................21 实验十一 多项式四则运算..........................................23 实验十二 线性方程组求解及函数求极值.............................25 实验一 MATLAB编程环境

一、实验目的

1.熟悉MATLAB编程环境

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.首先应熟悉MATLAB7.0运行环境,正确操作 2.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)命令窗口的使用。(2)工作空间窗口的使用。(3)工作目录、搜索路径的设置。(4)命令历史记录窗口的使用。(5)帮助系统的使用。(6)了解各菜单的功能。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验二 矩阵基本运算

(一)一、实验目的

1.通过实验,进一步熟悉MATLAB编程环境 2.通过实验掌握建立矩阵的几种方法 3.通过实验理解常用的矩阵运算

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.首先应熟悉MATLAB7.0运行环境,正确操作 2.自主编写程序,必要时参考相关资料 3.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)设A和B是两个同维同大小的矩阵,问:

1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等?

3)A/B和BA的值是否相等?操作过程参照教材中除法的矩阵生成。4)A/B和BA所代表的数学含义是什么?(2)写出完成下列操作的命令。

1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。2)删除矩阵A的第7号元素。3)将矩阵A的每个元素值加30。4)求矩阵A的大小和维数。(3)下列命令执行后,L1、L2、L3、L4的值分别是多少/ A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验三 矩阵基本运算

(二)一、实验目的

1.熟悉矩阵的建立方式 2.理解矩阵拆分的方法

3.通过实验进一步掌握矩阵的基本运算

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

154831,B253 078(1)已知A3203617求下列表达式的值:

1)A+6B和A2-B+I(I为单位矩阵,matlab中使用eye来生成)2)A*B,A.*B和B*A 3)A/B和BA

4)[A,B]和 [A([1,3],:);B^2](2)已知

0.778023104145655,取出其前三行构成矩阵B,其前两列构成矩A325032543.1469.54阵C,其右下角3×2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E=10&A<25)2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会

实验四

矩阵分析

一、实验目的

1.学会求矩阵的对角线元素、对角阵和逆矩阵 2.学会求矩阵的行列式的值、秩 3.学会求矩阵的特征值和特征向量 4.通过练习熟悉矩阵分析方法

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)使用函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A,A左旋后得到B,右旋后得到C。使用函数rot90(A,k)来实现;

101112321471078965,A25811B456,C9836912123121114 710(2)建立一个方阵A,求A的逆矩阵和A的行列式的值,并验证A与A-1是互逆的。A的逆(inv(A));A的行列式(det(A))(3)求下列矩阵的主对角线元素、上三角阵、下三角阵、秩和迹。参考教材

1125141)A3051115030.434322

2)B8.9421 29(4)求矩阵A的特征值。参考教材

10.51 A110.250.50.2522.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验五

分支结构程序设计

一、实验目的

1.理解MATLAB的编程方法

2.掌握if语句和switch语句的使用 3.掌握分支结构程序设计方法

4.通过练习理解MATLAB编程方法和分支结构程序设计方法。

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现

2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息

2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验六

循环结构程序设计

一、实验目的

1、理解循环控制结构的执行过程

2、掌握for语句和while语句的使用

3、掌握循环结构程序设计方法

4、通过练习进一步理解MATLAB的编程方法和循环结构程序设计方法

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)编写程序实现求两矩阵A.*B.(2)编写程序实现求矩阵的转置。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会

实验七

文件操作

一、实验目的

1、掌握文件的建立、打开与关闭和文件的读写操作

2、理解文件定位操作

3、通过练习理解文件的基本操作

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)以读写方式打开二进制格式数据文件,将浮点数X添加到文件末尾,将文件内容以浮点数格式读入变量Z,将文本文件的第二行读入变量H,向文件尾部移动文件指针6个字节。

sin(x1.7)lnx,当x取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,(2)已知y21cos(x1.7)求各点的函数值。要求:将函数值输出到一个数据文件中;从数据文件中读出数据,求各点函数值的平均值;将平均值添加到数据文件末尾。(3)编写程序,该程序能读取一个文本文件,并能将文本文件中的小写字母转换为相应的大写字母而生成一个新的文本文件。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会

实验八

二维曲线的绘制

一、实验目的

1、理解MATLAB绘图方法

2、掌握绘制二维数据曲线图的方法

3、掌握用plot函数和fplot函数绘制曲线的方法

4、通过练习掌握绘制二维数据曲线图的方法和plot函数和fplot函数的使用

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)绘制下列曲线:

x1①yx

②ye323x22xrsint

③x2y6④

yrcost22(2)通过用plot和fplot函数绘制ysin1的曲线,并分析其区别。x解释:fplot函数的调用格式为: fplot(fname,lims,tol,选项)

其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验九

三维曲线和曲面的绘制

一、实验目的

1、理解三维曲线的绘制

2、理解曲面图的绘制

3、通过练习熟悉三维曲线和曲面图的绘制方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)绘制下列三维曲线

xet/20costt/201)yesint,0t2

2)zt(2)绘制下列曲面图

1)z=5,|x|≤5,|y|≤5

2)f(x,y)xt2yt,0t1 zt351xy22,x3,y3

2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(6)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十

MATLAB数据统计处理

一、实验目的

1、掌握MATLAB求最大最小值的方法

2、掌握MATLAB求均值与方差的方法

3、通过练习以下内容熟悉数据统计处理的几种方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:均值mean和标准方差std;最大元素max和最小元素min;大于0.5的随机数个数占总数的百分比 2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。(6)检查程序输出结果。

五、实验报告要求

1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十一

多项式四则运算

一、实验目的

1、掌握多项式求值、求根的方法

2、理解多项式四则运算

3、通过练习熟悉多项式四则运算和多项式求值、求根的方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

4322有3个多项式P1(x)x2x4x5,P2(x)x2,P3(x)x2x3,1)求P(x)= P1(x)+ P2(x)P3(x)2)求P(x)的根

3)当x取矩阵A的每一元素时,求P(x)的值,其中

11.21.4 A0.7523.552.504)当以矩阵A为自变量时,求P(x)的值 2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(6)检查程序输出结果。

五、实验报告要求

1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十二

线性方程组求解及函数求极值

一、实验目的

1、理解线性方程组求解方法

2、理解函数求极值方法

3、通过练习以下内容熟悉求解线性方程组的方法和函数求极值的方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)求下列方程组的解

2x3y5z101)3x7y4z2)

x7yz56x15x22x35x449xx4xx131234 3x4x2x2x123413x19x22x411(2)求下列函数在指定区间的最大值

1x2,x(0,2)

2)f(x)sinxcosx2,x(0,)1)f(x)41x2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(6)检查程序输出结果。

五、实验报告要求

5.MATLAB实验 篇五

1.要求

每位同学根据教材附录的matlab源码独立完成以下仿真要求,并将仿真代码和仿真结果写成实验报告,由各班统一收齐并于5月31日前提交。

2.仿真题目

(1)线性频谱搬移电路仿真

根据线性频谱搬移原理,仿真普通调幅波。

基本要求:载波频率为8kHz,调制信号频率为400Hz,调幅度为0.3;画出调制信号、载波信号、已调信号波形,以及对应的频谱图。

扩展要求1:根据你的学号更改相应参数和代码完成仿真上述仿真;载波频率改为学号的后5位,调制信号改为学号后3位,调幅度设为最后1位/10。(学号中为0的全部替换为1,例如学号2010101014,则载波为11114Hz,调制信号频率为114,调幅度为0.4)。

扩展要求2:根据扩展要求1的条件,仿真设计相应滤波器,并获取DSB-SC和SSB的信号和频谱。

(2)调频信号仿真

根据调频原理,仿真调频波。

基本要求:载波频率为30KHz,调制信号为1KHz,调频灵敏度kf23103,仿真调制信号,瞬时角频率,瞬时相位偏移的波形。扩展要求:调制信号改为1KHz的方波,其它条件不变,完成上述仿真。

3.说明

(1)仿真的基本要求每位同学都要完成,并且记入实验基本成绩。

(2)扩展要求可以选择完成,但需要进行相应的检查才能获得成绩。

(3)适用范围:通信工程2010级1、2班;微电子2010级1、2班

6.MATLAB实验 篇六

一、实验目的

在传统的机电一体化研究设计过程中,机械工程师和控制工程师虽然在共同设计开发一个系统,但是他们各自都需要建立自己的模型,然后分别采用不同的分析软件,对机械系统和控制系统进行独立的设计、调试和试验,最后进行机械系统和控制系统各自的物理样机联合调试,如果发现问题又要回到各自的模型中分别修改,然后再联合调试,显然这种方式费时费力。

基于多领域的建模与联合仿真技术很好的解决了这个问题,为机械和控制系统进行联合分析提供了一种全新的设计方法。机械工程师和控制工程师就可以享有同一个样机模型,进行设计、调试和试验,可以利用虚拟样机对机械系统和控制系统进行反复联合调试,直到获得满意的设计效果,然后进行物理样机的建造和调试。

ADAMS与MATLAB是机械系统仿真和控制系统仿真领域应用较为广泛的软件,其中ADAMS为用户提供了强大的建模、仿真环境,使用户能够对各种机械系统进行建模、仿真和分析,具有十分强大的运动学和动力学分析功能;而MATLAB具有强大的计算功能、极高的编程效率及模块化的建模方式,因此,把ADAMS与MATLAB联合起来仿真,可以充分将两者的优势相结合,将机械系统仿真分析同控制系统设计有机结合起来,实现机电一体化的联合分析。

本实验以倒立摆为例,进行ADAMS与MATLAB的联合仿真,对倒立摆的运动性能和运动规律进行分析。

二、实验方法

软件环境:MD ADAMS R3,MATLAB R2009b 2.1 建立倒立摆的动力学模型

启动ADAMS/View模块弹出如图1所示对话框,建立小车及摆杆模型。首先选择“Create a new model”选项,创建一个新的模型,将该文件保存在相应的文件夹下,本实验将结果保存在E:daolibai_adams文件夹下,将文件名取为“daolibai_adams”,其余选项保持默认。注意,在ADAMS中路径名和文件名最好采用英文字符,否则有可能在运行的过程中出现意想不到的错误。

图1 启动ADAMS/View模块

进入ADAMS/View界面后,需要对相关参数进行设置。选择菜单栏中的“Settings→Working Grid”选项,弹出如图2所示的对话框,设置网格的大小。将“Spacing”设置为X:10mm,Y:10mm,其余参数保持默认。在“Settings”选项中还可以设置图标的大小,单位等等参数,在本实验中这些参数都保持默认即可。

图2 设置网格的大小

与此同时,单击菜单栏“View”选项下的“Coordinate Window”(或者按下键盘上的F4按钮),如图3所示。可随时在窗口中观察鼠标的当前空间坐标位置,方便我们进行建模。

图3 打开鼠标当前空间位置观察窗口

右键点击ADAMS建模工具箱中的图标,选择工具Box,在视图中(0,0,0)处建一个长、宽、高分别为30cm,20cm,20cm的长方体代替小车模型,如图4所示。

图4 长方体尺寸设置

图5 在视图中建立的长方体前视图

长方体建立完毕后,需要进一步在视图中调整其位置。在当前视角下,点击工具箱中的图标,进入如图6所示的界面。在Distance选项中输入15cm,选择长方体,然后点击向左的箭头,小车模型即向左平移15cm。单击工具箱中的按钮,即可返回工具箱主界面。点击图标,切换到右视角视图,再次运用按钮,在Distance选项中输入10cm,选择长方体,然后点击向右的箭头,将小车模型向右平移10cm,如图7所示。

图6 将小车模型向左平移15cm

图7 将小车模型向右平移10cm

小车模型位置修改完毕后,右键点击小车模型,选择Rename,将模型的名称修改为xiaoche,如图8所示。与此同时,在右键菜单中选择Modify,将小车的质量修改为0.5KG,其修改方法如图9所示。

图8 修改模型名称

图9 修改小车模型的质量

至此,小车模型及参数设置完毕,接下来建立摆杆的模型。在建模工具箱中选择(Cylinder)工具建立摆杆模型,其参数设置如图10所示。

图10 摆杆参数的设置

摆杆参数设置完毕后,沿小车垂直向上的方向建立该圆柱体,建好后单击右键修改其特性参数,将部件名称修改为baigan,将摆杆质量修改为0.2kg,转动惯量修改为0.006kg·㎡。建好后,运用工具箱中的顺时针旋转5°,建完后的模型如图11所示。

工具,将摆杆绕端点

图11 倒立摆模型前视图与三维视图

倒立摆的三维模型建立好后,我们需要为模型添加相应的运动副和运动。小车与地面用平移副约束,右键单击图标,在弹出菜单中选择工具,添加方式选择2 Bod-1 Loc方式,分别选择小车和大地,在小车质心处添加水平方向的平移约束副,如图12。

图12 在小车与大地之间添加移动副

摆杆与小车之间存在旋转运动,故需要在小车与摆杆之间添加一个转动副。单击工具中的图标,添加方式选择2 Bod-1 Loc方式,分别选择摆杆和小车,在摆杆与小车的铰接处建立旋转副,如图13所示。

图13 在摆杆与小车之间建立旋转副JOINT_2

倒立摆模型的约束添加完毕之后,我们可以对模型进行运动测试。点击工具,进入运动仿真测试对话框,设置仿真时间为1秒,步长为1000,如图14所示。

图14 运动仿真参数设置

点击按钮开始运动仿真测试,可以看到小车沿着水平方向作直线运动,摆杆绕着铰接点作旋转运动。

2.2 定义倒立摆机械系统的输入输出变量

1)定义输入变量

本实验中需要在ADAMS中定义一个状态变量接收控制小车运动的水平力。选择Build菜单下的System Elements创建一个名为controlforce的状态变量,如图15所示。

图15 创建输入状态变量

由图15可以看出F(time,„)后面输入栏中的数值为0,表示该控制力的数值将从控制软件的输出获得。

给小车定义一个水平力,单击ADAMS工具箱中的工具,选择Body Moving的建模方式,一次选择小车质心作为力的作用点,选择水平向右作为其加载方向(如图16),这样该水平力将一直随着小车的移动而移动。

图16 为小车添加水平方向作用力

上述过程完成以后,右键单击该水平力,选择Modify,将其函数值定义为VARVAL(.daolibai_adams.controlforce),以实时从状态变量controlforce中接收力的数值,如图17。

图17 函数值的定义

2)定义输出变量

定义输出变量的方法与定义输入变量的方法相同,定义ADAMS状态变量以输出动力学模型的运动状态至控制软件,本实验就是要输出摆杆的摆角。选择Build菜单下的System Elements创建一个名为rotateangle的状态变量,选择摆杆的上端点和小车的铰接点出的MARKER点为摆杆绕Z轴旋转运动的参考点,如图18所示。

图18 定义输出变量

其中,在F(time,„)后面的文本输入栏输入摆杆摆角表达式AZ(MARKER_11,MARKER_12),AZ函数用来测量绕Z轴旋转的角度,本实验中即表示摆杆绕着Z轴旋转的角度。利用ADAMS工具箱中的工具,在摆杆的上端点创建一个测点MARKER_11,在小车上创建测点MARKER_12,此点为小车与摆杆的铰接点。设置完毕后单击OK按钮保存设置。3)将状态变量指定为输入/输出变量

上述状态变量定义完成之后,还需要将定义好的状态变量指定为输入或输出变量。

指定状态变量controlforce为输入变量。单击主菜单Build→Data Elements→Plant→Plant Input→New后,弹出输入变量定义对话框,如图19所示。将Variable Name栏中输入controlforce,然后单击OK按钮即完成设置。

图19 输入变量定义对话框

指定状态变量rotateangle为输入变量。单击主菜单Build→Data Elements→Plant→Plant Output→New后,弹出输入变量定义对话框,如图20所示。将Variable Name栏中输入rotateangle,然后单击OK按钮即完成设置。

图20 输出变量定义对话框 4)导出ADAMS模型

通过以上工作,已经在ADAMS机械系统模型中定义了同控制系统交互的相关状态变量和函数,接下来需要利用ADAMS/Controls模块将这些状态变量定义为输入输出信号,并将相关信息导出,以便和其他控制程序连接。

单击Controls菜单下的Plant Export子菜单,弹出如图21所示的设置窗口。将输出文件名修改为test123;在输入信号定义栏中,单击From Input按钮后,弹出数据库浏览窗口,选择定义的PINPUT_1为输入项,双击后,定义的状态变量controlforce将自动出现在输入信号一栏中,同理,输出信号的设置方法同上。目标控制软件下拉菜单可以根据需要选取,本实验目标软件选为MATLAB,其他选项保持默认。单击OK按钮,ADAMS将导出*.m文件,同时产生调用ADAMS/Solver的cmd文件和*.adm的ADAMS模型文件。

图21 ADAMS变量导出设置 上述过程完成后,MATLAB已经可以读取ADAMS模型的相关信息了。

2.3 在MATLAB/Simulink中导入ADAMS模型

1)变量的导入

启动MATLAB后,在命令窗口中输入导出的ADAMS模型名称test123,在MATLAB窗口将出现如下信息:

>> clear all >> test123 ans = 26-Jun-2013 08:53:34 %%% INFO : ADAMS plant actuators names : 1 controlforce %%% INFO : ADAMS plant sensors names : 1 rotateangle 在MATLAB命令提示符下输入who命令,显示文件中定义的变量列表,在MATLAB命令窗口中返回如下结果:

Your variables are: ADAMS_cwd ADAMS_mode ADAMS_solver_type arch ADAMS_exec ADAMS_outputs ADAMS_static flag ADAMS_host ADAMS_pinput ADAMS_sysdir machine ADAMS_init ADAMS_poutput ADAMS_uy_ids temp_str ADAMS_inputs ADAMS_prefix ans topdir 可以选择以上显示的任何一个变量名,检验变量,例如,如果输入ADAMS_outputs,则MATLAB将显示在ADAMS中定义的输出变量:

ADAMS_outputs = Rotateangle 注意:ADAMS导出的文件必须置于MATLAB工作目录下,即ADAMS与MATLAB共用同一个工作目录,否则上述过程不能进行。与此同时,还要把ADAMS/win32文件夹下的“adams_plant.mexw32”及ADAMS/Controls/win32/文件夹下的“plant.lib”放在ADMAS与MATLAB的共用工作目录下。这两个文件是adams_sub模块的核心。ADAMS提供一个S函数,用于ADAMS和simulink联合仿真的调度和通信,如果simulink找不到它,联合仿真就不能进行。2)ADAMS模块的导入

在MATLAB命令窗口中输入“adams_sys”命令,即可导入ADAMS模块,如图22所示。

图22 adams_sys模块

3)仿真参数的设置

点击图22中的adams_sys模块,即可进入adams_sub模块,如图23所示。

图23 adams_sub模块 点击图23中的MSC.Software模块,弹出如图24所示的对话框,在对话框中设置如下参数:

图24 仿真参数的设置

将联合仿真的通信间隔Communication Interval选项设置为0.001,该选项定义了ADAMS与MATLAB/Simulink交换数据的通信间隔,调整该参数将控制联合仿真的速度,并影响计算的速度。

将simulation mode选项设置为continuous,即连续仿真模式。其余参数保持默认,单击OK按钮,保存参数设置。3)联合仿真分析

在MATLAB/Simulink中建立如下控制框图(图25),设置仿真时间为5s。

图25 联合仿真控制框图

点击start命令,开始进行联合仿真,几秒钟后,将弹出一个DOS窗口,显示ADAMS在联合仿真分析中的各种数据。联合仿真结束后,仿真结果既可以在MATLAB/Simulink中查看,也可以在ADAMS后处理器中查看。图26和图27分别为Simulink模型中示波器输出的摆杆摆角随时间变换曲线和输入力矩随时间变化曲线。

图26 摆杆摆角随时间变化曲线 图27 输入力矩随时间变化曲线

一、实验结果

7.MATLAB实验 篇七

由于数字图像处理在医学领域的应用非常广泛,加之其涉及的知识面很广,学生不仅要掌握信号与系统和数字信号处理的基本知识和理论,还必须具有一定的编程基础。学生在该课程的理论学习中会碰到很多问题和难点,因此,为了帮助学生深刻理解、掌握理论基础和图像处理算法,本文介绍了一种基于Matlab的GUI界面数字图像处理实验平台。该平台能够在界面输入空间域算子,实现图像的空间域滤波处理,而且可以在频域选择不同的滤波器类型,对图像在频率域进行数字滤波。该实验平台能够帮助学生更直观和生动的掌握数字图像处理算法的基本理论和实验方法。

1 实验平台的开发

实验平台有两大模块,分别为空间域滤波和频率域滤波。实验平台模块如图一所示。实验平台界面如图二所示。

学生在使用该实验平台时首先选择一副需要处理的数字图像,打开文件的代码如下:

打开图像后,学生可以选择在频率域或空间域对图像进行数字滤波,如图三和图四所示。在界面左边显示原始图像,界面的右边显示滤波结果。在界面的左下方,学生可以输入空间域算子的参数。学生对数字图像处理结束后,可以保存处理后的图像。

空间域滤波Matlab代码如下所示:

理想低通频率域滤波Matlab代码如下:

2 结束语

由于Matlab本身自带了丰富的数字图像处理函数,且Matlab的GUI界面编程相对于其他语言比较简单。所以该实验平台容易被学生掌握,并且可以让学生在该实验平台的基础上,对它进行二次开发和修改,提高学生的实验动手能力。

摘要:本文基于Matlab的GUI界面设计开发数字图像处理实验平台。该平台不但能够在界面输入空间域算子,实现图像的空间域滤波处理,而且可以在频域选择不同的滤波器类型,对图像在频率域进行数字滤波。该实验平台能够帮助学生更直观和生动的掌握数字图像处理算法的基本理论和实验方法。

关键词:数字图像处理,Matlab,GUI

参考文献

[1]张康,杜建强,张鹤林.在空间域获得同态滤波模板的新方法[J].计算机与现代化,2007,(03):81-83,96.

[2]冈萨雷斯.数字图像处理[M].北京:电子工业出版社,2005.

[3]王帆,刘慧.基于Matlab GUI的数字图像处理实验平台设计[J].中国科技信息,2011,(07):124-125.

8.MATLAB实验 篇八

关键词:MATLAB Web Server;杨氏双缝干涉;虚拟实验;仿真

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21720-02

Constructing of Web-based Virtual Optical Laboratory Based on Matlab Web

HAN Zhi-nai, LI Ling-yun

(Department of Physics Nanjing Xiaozhuang College, Nanjing 210017, China)

Abstract:Taking Young's double-slot interference experiment as an example, this paper introduces briefly MATLAB Web Server and correlative technology, presents a process to establish virtual optical lab using MATLAB Web Server. Some results are studied by computers simulation.

Key words:MATLAB Web Server; Young's double-slot interference; virtual lab; simulation

1 引言

光學实验内容比较抽象,如不借助实验,学生很难理解实验原理和过程。传统学校教育中光学实验的进行一般要稳定的环境、高精密的仪器,在实验进行中,往往很难调试到理想的状态。而远程教育中的实验教学由于学生与教育机构存在空间上的分离,一直是传统远程教育的难点,成为制约远程教育质量的一个重要因素。随着计算机技术、网络技术和仿真技术的发展,网络虚拟实验平台的构建已经成为可能。通过网络环境实施光学虚拟实验,能够拓宽信息渠道与流量,扩大了实践活动的范围,不仅为学校实验教学提供了辅助教学手段,而且为远程教育中的实验教学增加了活力。通过计算机仿真光学实验,配合理论课的讲解,把光学课程涉及的现象展示在学生面前,能够加深学生对光学内容的理解。同时学生可以根据对光学原理和规律的理解,自己设置仿真实验中的可控参数,探索和发现光学世界的奥秘,调动学习的积极性。

MATLAB是美国Mathworks公司80年代开始推出的一种简便的工程计算语言。它强大的矩阵处理与运算功能、丰富的图形绘制能力深受用户的青睐,其应用范围涵盖了当今几乎所有的工业应用与科学研究领域。MATLAB提供了具有网络功能的核心工具包MATLAB Web Server,可以通过HTTP协议,在安装了Web服务器的主机上提供MATLAB计算的远程服务。利用MATLAB Web Server,将MATLAB的应用范围扩展到网络上,实现远程的可视化建模和仿真,使开发网络虚拟实验系统成为切实可行。基于MATLAB开发的网络虚拟实验平台由于MATLAB本身功能的强大,在实验数据处理等多方面都表现出极强的优势。

2 MATLAB Web关键技术介绍

2.1 MATLAB的Web技术简介

MATLAB Web Server包含主要包括matlabserver、Matweb和matweb.m文件[1]。Matlabserver用来管理web应用程序和matlab之间的通信。它是一个多线程TCP/IP服务器。可以在matweb.conf中配置到任何合法的TCP/IP端口。Matlabserver通过调用matweb.m来处理网页中隐含字段mlmfile所指定的M文件,在Web网页、MATLAB、M文件三者之间建立联系。Matweb是matlabserver的TCP/IP客户端,它使用CGI方式从HTML文件中将输入的实验数据传递到matlabserver中执行。matweb.m是要调用的matlab的应用程序。

MATLAB Web Server的核心是matweb.exe,负责解释客户机通过html页面发送的请求,转换为运行MATLAB应用程序所需要的参数,接着启动一个MATLAB进程,并将指定的MATLAB应用程序及其参数传递给该进程进行计算。计算完毕后,MATLAB程序还要负责将计算结果以html页面的方式,通过matweb输出给客户端的浏览器[2]。MATLAB Web Server的原理结构如图1所示。

2.2 MATLAB Web Server配置

2.2.1 服务器配置

服务器要提供WWW服务,就必须有一个传统的Web服务器,如IIS服务器或Apache Web Server。本文以微软公司的IIS架构Web服务器,在IIS管理器中新建Web站点,并在该站点建立“cgi-bin”和“icons”两个虚拟目录。“cgi-bin”用来存放CGI文件(如Matlab.exe、Matlabserver.exe),“icons”用于存放Matlab文件生成的图片文件和应用程序所需的图片文件,其他的HTML文件和M文件放在根目录下。

2.2.2 建立并设置Matlab配置文件

在新建Web站点的根目录下,建立Matlab配置文件Matweb.conf和Matlabserver配置文件Matlabserver.conf,并对其进行配置。Matweb.conf的内容如下:

[sflab]

mlserver=10.1.73.33

mldir=e:/sflab

其中,sflab是MATLAB应用程序名,mlserver设置Matlabserver服务器的IP地址,mldir是设置MATLAB应用的工作目录。Matwebserver.conf的内容包括两部分:端口号p,可同时并发的最大线程数m。

3 杨氏双缝干涉实验的实例构建

杨氏双缝干涉实验是利用分波前法获得相干光束的典型例子。实验示意图如图2所示,单色光通过两个窄缝s1,s2射向屏幕,相当于位置不同的两个同频率同相位的光源向屏幕照射的叠合,由于到达屏幕各点的距离不同引起相位差,叠合的结果是在有的点加强,在有的点抵消,造成干涉现象[3]。

图2 双缝干涉图

3.1 MATLAB Web应用程序的实现

本网络虚拟实验平台的浏览器端采用的是框架结构,窗口左侧是参数输入部分,右侧是实验结果部分。

(1)输入网页shuangfeng-1.htm部分代码

请输入初始参数:

波长=

两缝之间的距离=

屏幕与缝之间的距离=

(2)输出网页shuangfeng-2.htm部分代码

仿真结果为:

变量GraphFileName的值是一个MATLAB定义的变量,用函数htmlrep可以对其进行改变。

(3)MATLAB应用文件sflab.m部分代码

function retstr=sflab(instruct)

retstr = char('');

mlid=getfield(instruct,'mlid');

cd(instruct.mldir);

bochang=str2double(instruct.bochang); %获得网页上输入的波长值

a=str2double(instruct.a); %獲得网页上输入的两个缝之间的距离

d=str2double(instruct.d); %获得网页上输入的屏幕与缝之间的距离

wscleanup('icons/ml*sf.jpeg',1,'icons/');

f=figure('visible','off');

ym=5*bochang*d/a;xs=ym; %设定光屏范围

n=101;

ys=linspace(-ym,ym,n);

for i=1:n

r1=sqrt((ys(i)-a/2).^2+d^2); %缝1到光屏上任意一点距离

r2=sqrt((ys(i)+a/2).^2+d^2); %缝2到光屏上任意一点距离

phi=2*pi*(r2-r1)/bochang;%相位差

B(i,:)=4*cos(phi/2).^2;

end

N=255;

Br=(B/4.0)*N;

subplot(1,2,1)

image(xs,ys,Br); %画干涉条纹

colormap(gray(N));

subplot(1,2,2)

plot(B,ys); %画出光强变化曲线

xlabel('x');ylabel('y');title('x,y相图');

pos=get(gcf,'position');

set(gcf,'position',pos,'PaperPosition',[.25,.25,20,15]); %设置图片大小

drawnow;

s.GraphFileName=sprintf('icons/%ssf.jpeg',instruct.mlid); %设置图片名

wsprintjpeg(f,s.GraphFileName);

s.GraphFileName=sprintf('/icons/%ssf.jpeg',instruct.mlid); %设置图片路径

close all;

templatefile = which('shuangfeng-2.htm');%指定输出HTML文件

retstr = htmlrep(s, templatefile);

3.2 实验结果分析

图3 单色光的干涉条纹图

本实验平台通过在浏览器端对实验参数波长、两缝之间的距离以及屏幕与缝之间的距离的调节,观察光的干涉现象。当波长=0.0000005,两缝之间的距离=0.0017,屏幕与缝之间的距离=1时,得出实验结果如图3所示。其左图为光屏上的干涉条纹图,右图为光屏上沿y轴方向光强的变化曲线。从图3中可知,干涉条纹是以图2中水平线OO'对称,沿上下两侧交替,等距离排列。

4 结束语

网络虚拟实验可以作为课堂实验教学的补充,为教师进行实验教学提供了新的辅助工具,便于学生对实验内容的预习、复习和自学。同时网络虚拟实验为远程教育中实验教学的开展注入了新的活力,是实验教学发展的重要方向。

基于MATLAB的网络虚拟实验平台主要是使用MATLAB Web Server组件构建,使用B/S结构,服务器端接受客户端发送的实验请求,分析和处理实验参数,经过计算模拟最终将结果返回客户端。整个系统不涉及具体的实验仪器硬件设备,浏览器端也无需安装实验运行所需的庞大MATLAB软件。基于MATLAB Web的网络虚拟实验平台,不但充分发挥了Internet和MATLAB各自的优势,提高了编程的效率,而且实验数据稳定可靠,在学校课堂实验教学与远程教育领域的实验教学中都有着广泛的应用前景。

参考文献:

[1] MATLAB Web Server User's Guide.Available online at:http://www.mathworks.com/access/helpdesk/help/pdf_doc/webserver/webserver.pdf.

[2]何强, 何英. MATLAB扩展编程[M]. 北京:清华大学出版社,2002:73-85.

[3]胡守信, 李柏年. 基于MATLAB的数学实验[M].北京:科学出版社,2004:139-141.

[4]王宏. MATLAB的Web应用和开发[J]. 计算机应用,2001,21(3).

上一篇:二年级上册寒假作业---应用题下一篇:999市场市场调研报告