自labVIEW实验报告北京航空航天大学文档格式.docx
《自labVIEW实验报告北京航空航天大学文档格式.docx》由会员分享,可在线阅读,更多相关《自labVIEW实验报告北京航空航天大学文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
2013年11月5日
实验一虚拟信号发生器设计(基础实验)
一、实验目的
本实验属于虚拟仪器仿真基础实验,通过查阅相关的资料,学习LabVIEW软件,掌握编程过程、思路和方法。
独立设计一个虚拟信号发生器的前面板和软件编程,进行程序的调试,研究实验现象,解决实验过程中的问题,根据信号发生器的工作原理,实现基本功能。
二、实验设备
Windows7系统的PC机
三、实验原理说明
利用labVIEW的运算控件,基本波形发生器,任意波形发生器和波形图控件,设计虚拟信号发生器,并能实现实际信号发生器的主要功能。
要求:
运行时使用界面简单,易于操作。
四、实验要求
1)实现功能:
有正弦波、方波、三角波、锯齿波、噪声以及任意波形的发生,并能任意切换产生信号的类型。
2)实现指标:
(1)任意波形可以实现公式输入;
(2)频率、幅度、相位、偏移量可调可控;
(3)方波占空比可控;
(4)噪声任意可加,波形与数码同时显示,同时显示输出频谱特性;
五、实验方法及实验步骤
1)打开labVIEW程序,新建一个VI程序。
2)按照方案设计的内容建立前面板图,分别写好各自的标签,分别调用显示和输入控件,设计波形显示界面,可调旋钮和输入控件的位置,使界面简单,利于操作,添加必要说明美化操作界面
3)设计后面板,编写信号发生器的程序。
首先设计整体的while循环,然后设置基本信号发生器,任意信号发生器和噪声发生器的基本参数,采样频率、幅值、移量、相位等参数,并配置可调旋钮。
4)利用波形选择按钮组成的一维布尔数列,转换出8,4,2,1,0五种不同的状态,用于在条件结构中选择不同的波形发生,同时利用“噪声”按钮选择是否叠加噪声,之后将波形发生器与波形显示器相连接,用于输出波形。
同时对输出波形进行FFT变换到频域下,连接波形显示器以观察幅度—频率响应和相位—频率响应。
六、软硬件设计(框图)
整体电路框图设计图
信号发生器电路图
七、实验结果及分析
虚拟信号发生器面板
正弦信号
方波信号
三角波信号
锯齿波信号
任意波形信号(sin(w*t)*sin(2*pi
(1)*t))
正弦波+噪声+任意波形信号(sin(w*t)*sin(2*pi
(1)*t))信号
方波+噪声+任意波形信号(sin(w*t)+cos(2*w*t))信号
锯齿波+噪声+任意波形信号(sin(w*t)+cos(2*w*t))信号
锯齿波+噪声+任意波形信号(sin(w*t)*sin(2*pi
(1)*t))信号
从实验结果中可以看出,虚拟波形发生器可以实现正弦波、方波、三角波、锯齿波信号的产生,同时还可以产生符合某种函数关系的任意波形信号,对每信号都可以自由选择是否叠加噪声;
每一种波形信号之间都可以进行自由切换,同时可以控制调节其幅值,频率,相位,偏移量,方波还可以调节控制占空比;
波形和数码可以实时同步显示,还可以观察各种波形信号的幅度-频率响应和相位-频率响应。
八、实验心得体会
通过这次实验,初步学习和掌握了labVIEW的使用方法,它有区别与其他编程语言,使用图形化的语言来进行逻辑控制,其中信号流向如同c语言中语句被依次执行一样,而许多控件节点如同子函数一样,可以按照其定义的端点来连接,就和按函数形式调用函数一个道理,其中的循环结构更加的形象易懂,容易上手。
另一方面,通过这次试验,学习到了labVIEW的基本编程思路,可以同过任务所需要的结果来创建控件外观(前面板),再深入到它的内部(后面板)去设计算法和程序。
由于labVIEW的数据类型是考颜色来区分的,一开始用得不是太顺手,同时各种不同的控件和节点所能连接的数据类型也各不相同,很多控件节点只允许某种特定的数据类型传输,需要慢慢学习掌握和理解消化。
本实验基本完成了所提出的指标,但是没有做到粗调和细调,有待今后深入学习lzbVIEW软件及其编程思想,来完成这一空缺。
实验二基于labview的贪吃蛇游戏(自主实验)
一、实验背景
小时候经常玩的一款小游戏叫“贪吃蛇”,就是有一条小蛇,不停地在屏幕上游走,吃各个方向上出现的小圆点,越吃越长。
只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。
本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作一款贪吃蛇游戏。
本程序的主要实现如下功能:
小蛇不停游走,键盘方向键可控制小蛇移动方向,小蛇碰到四壁或者碰到自己时游戏结束。
二、实验目的
根据实验目的,学习虚拟仪器前面板整体布局设计,设计出一个贪吃蛇的游戏;
建立全局变量,学习使用“簇”这一labVIEW特有的数据类型,掌握虚拟仪器前面板整体布局设计方法。
三、实验设备
Windows7系统的PC机
四、实验原理说明
本程序可以实现贪吃蛇的基本功能,就是有一条小蛇,不停地在屏幕上游走,吃各个方向上出现的小圆点,越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束;
本程序还可以实现通过键盘左右键控制贪吃蛇的方向,以致贪吃蛇能沿着规定的路径行走;
本程序还可以实现根据玩家水平的高低不同,分为五个难度等级;
本程序还可以实现根据玩家喜好不同,屏幕上出现的苹果数完全不同,可根据自己喜好设置;
五、实验要求
实现功能:
1,本程序可以实现贪吃蛇的基本功能,就是有一条小蛇,不停地在屏幕上游走,吃各个方向上出现的小圆点,越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束;
2,本程序还可以实现通过键盘左右键控制贪吃蛇的方向,以致贪吃蛇能沿着规定的路径行走;
3,本程序还可以实现根据玩家水平的高低不同,分为五个难度等级;
4,本程序还可以实现根据玩家喜好不同,屏幕上出现的苹果数完全不同,可根据自己喜好设置;
六、实验方法及实验步骤
1,打开labVIEW程序,新建一个VI程序。
2,界面设置
最终通过各种优化和计算,得到贪吃蛇的前面板(界面)设计如图,包括可以调节难度的“Diffculity”按钮-->“Noobie”“intermediate”“advanced”“insane”“applicationsengineer”五个等级;
设置苹果数的按钮;
程序自动记录玩家所吃的苹果数;
3,对话框设置
设置对话框,我们采用编程->对话框与用户界面中的单按钮对话框。
主要是在游戏开始和结束时,显示游戏欢迎界面和游戏结束界面。
七、软硬件设计(框图)
程序主要分三个模块,第一,困难选择模块和苹果数选择模块;
第二,游戏开始和结束的界面判定与显示;
第三块,主程序的实现,主要解决“贪吃蛇”的转向问题;
是否碰到墙或者吃到自己;
还有吃到苹果的个数计数;
还有一个最关键的,就是贪吃蛇的长度和路径与所吃的苹果数的逻辑关系等等。
1,游戏开始和结束的界面判定与显示
游戏开始和结束模块的设计
游戏结束判据前面板
2,困难选择模块和苹果数选择模块
3, “贪吃蛇”撞到自己的实现
“贪吃蛇”撞到自己
“贪吃蛇”撞到自己前面板
4,“贪吃蛇”撞到墙的实现
“贪吃蛇”撞到墙
“贪吃蛇”撞到墙前面板
5,“贪吃蛇”吃到苹果个数的实现
“贪吃蛇”吃到苹果个数
“贪吃蛇”吃到苹果个数前面板
6,“贪吃蛇”的“下一步”“轨迹方向及位置”的实现
“贪吃蛇”的“方向”
“贪吃蛇”的“方向”前面板
“贪吃蛇”的“输入”
“贪吃蛇”的“输入”前面板
“贪吃蛇”的“输出”
7,主程序的实现
由于蛇本身是一个可增加元素的数组,所以用一个含两个一维方向数组的簇来进行操作。
小蛇自动不停移动的程序,然而为了使之后与小苹果碰撞后能便捷的增加长度,这里采用这样的方法实现:
小蛇没按方向移动一个,就在小蛇数组的开头添加一个点(此时这两个点是相邻的),然后将添加的点与苹果所在坐标比较,如果不同,就将蛇数组的最后一个元素删除,表示没有吃到苹果;
如果相同,就保留这个元素(此时,相对于前一个位置时,小蛇的长度增加了),并且删除这个苹果,重新随机产生另一个苹果。
循环往复(在while循环上添加移位寄存器)直到游戏结束。
插入蛇头新坐标的子程序如下:
“贪吃蛇”主面板
“贪吃蛇”前面板
八、实验结果及分析
当难度:
intermediate(中级),Maxapple:
12个时;
程序的运行结果如图。
Noobie(初级),Maxapple:
80个时;
七、实验心得体会
通过这次实验,学习了“簇”这一labVIEW特有的数据结构和概念,也学习了对簇的相关操作和变换,本实验中利用簇和一维数组的变换,来实现按钮状态和按钮对应引索值之间的对应,从而使区分是哪个键按下成为可能,同时还利用了循环中的移位寄存器,来实现数据的保持和传递,不同的键值利用条件分支来完成,其中也利用了布尔逻辑式的思想来设计算法,收获颇多。
此外,程序运行时占用内存比较大,应该是在程序框图结构上有不完善的地方,造成了这一内存资源的浪费和超负荷工作,有待深入学习和掌握labVIEW更深层次的知识来个,搞清楚其中的原因,加以改正,才能使程序更加完善,更加合理。
此次“贪吃蛇”实验的设计,让我在学习,练习labview的同时,重温儿时的乐趣。
感觉学习虚拟仪器的过程很快乐,也体会了自己的动手和现代科技的发达密切相关,科技触手可得。