利用LABVIEW设计
- 格式:doc
- 大小:607.00 KB
- 文档页数:5
1
一.设计目的:1.利用学过的LABVIEW知识进行一些设计,
2.掌握设计方法和程序编写运行。
3.熟悉并掌握数组和簇的一些知识。
二.设计内容:题一:创建一个信号发生器 ,可以随机改变波形、幅度、频率、相位。
原理:虚拟函数信号发生器主要是由软件完成输出波形信号的产生和输出信号频率的显示。输出波形频率的变化的具体实现是将数据写入数据采集卡的缓冲区当中,通过设置缓冲区的更新频率计改变内部的时钟频率来实现输出数据频率变化。该过程主要运用了LABVIEW中的数据采集自模块中的AO START 功能模块,从实现功能的角度来说呢,本次信号发生器的功能结构主要包括两大功能模块:波形产生模块(FG模块)和频率单位变化控制(DISPLAY模块)。波形产生模块又调用FGEN模块。FGEN模块为数字波形产生模块。
结果显示:
2
方法:1.打开前面板,在all functions 中找到波形发生器,以及上图中所示图标
2.打开后面板,设置while 循环,然后再此基础上找到相应虚拟仪器放置其中,
3.在前面板输入相应的幅值,频率,和相位。分别在两面板运行可得到要求。
注:前面板中加入了停止按钮。
题二:用LabVIEW设计一个循环、多分支程序,实现以下功能:
1.条件为1时实现:∑n!
2.条件为2时实现:πR2,其中R为输入值.
3.条件为3时实现:两个字符串“我的姓名是:”,“XXX”相连形成一个新字符串,其中“XXX”随机输入个人姓名。
4.对以上每一个实现的结果都要显示
3
实验原理: 1 由于分支结构的分支要求所以添加了一个条件;
2 本题设计时用多分支结构设计的,根据条件要求设计了三个分支,其中都用到了十进制
字符串转换;
3 其中分支1:实现∑n!;阶乘求和中利用了For循环来设计,然后转换输出;
4 分支2:用了两个简单的乘法;
5 分支3:利用连接字符串的函数来设计;
实验结果显示:
4
解析:该题使用了for循环来计算,并通过字符串转换来求得结果,for循环的伪代码为:For
i =0 to N-1,number = rand(),实验中用了case结构实现多分支,根据输入条件,每次只执行其中一个子框图,相当于传统编辑语言中的If-Then-Else和Case语句。当执行每个分支时按要求随机输入数值或字符,可得到所求结果。
题三:按第七章7.2的要求设计一个VI.
1、实验原理:打开新的VI,在前面板上创建5个数值数组并设置标签为First Exam ,Second
Exam ,Final Exam ,平均成绩,班级排名和1个字符串并设置标签为成绩等级。建立参考图所示。
2、切换到框图,放置For循环和Case结构以及公式节点,将3个数组输入连线到For循环的边框。
3、对于For循环,自动索引默认是开启的,可右击各个隧道选择Disable Indexing逐个关闭,如图所示。这样在每次For循环是都可以使用整个数组。通过索引函数来访问各个数组里每个人的分数,这些分数供加权平均算法中使用。
4、确定For循环要执行多少次。使用Array Size函数,将其输出连接到N。
5、在每次For循环上,用Index Array函数从数组中提取单个数值。
6、使用复合算术函数和乘法函数运算,对数组里的单个元素进行必要的计算,得出每个学生的课程成绩。
7、使用Build Array函数来创建包含所有学生课程成绩的一维数组。用反馈节点保留前一次循环计算出的成绩,并在循环重复执行的时候,连续追加新计算好的成绩到输出数组。
8、添加数组排序,用来进行班级排名。在公式节点里添加语句并添加一个输入和一个输出,在case结构中添加5个值并且每个值对应不同字符A、B、C、D、F用来输出成绩等级。
9、在循环的外部创建指示器显示输出的一维数组,命名为平均成绩、成绩等级、班级排名。注意要关闭自动索引功能。
5
10、完成框图连接,在不同的输入下运行VI,验证VI是否能正确地计算出平均成绩、成绩等级、班级排名。
实验结果如图所示:
解析:一个簇可以包含一个数字控件,一个切换开关和一个字符串控件。访问簇的元素最好通过释放的方法其中部分或全部元素,而不是通过索引一次访问一个元素。
簇包括:一个数字代码表示错误号;一个布尔型值表示是否有错误发生,一个字符串型表示发生了什么错误。VI运行时,LABVIEW在每个执行节点检测有无错误。若有,则本节点不再执行,而是把错误传递到下一个节点。
实验总结
通过本次试验,深刻体会了学以致用的道理,理论知识太浅显,实际操作能力不是很好,但也收获很多,理解了簇,数组,以及多分支结构等重要知识,For循环和While循环等在前面板和后面板的应用,LABVIEW是一门图形处理语言,与c语言联系紧密,通过做图直接使结果实现。