虚拟仪器作业报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟仪器作业报告
题目一及要求
水仙花
编程求1000以内的所有水仙花数,"水仙花数"指一个三位数,它的各位数字的立方和等于她本身.例如:371=3*3*3+7*7*7+1*1*1
程序前面板
程序框图
原理
由于是一到1000的的数我们用一个for循环执行1000次,用i表示0到1000的数。首先用取余的方法得到个位、十位、百位然后计算是否满足水仙花数的要求。如果满足要求就将这个数插入到数组中,否则进行下一次循环。执行1000次就将0-1000以内的数进行了判断。
题目二级要求
信号测量与保存
有一个测量程序,采集两路信号,每1s采集一次,要求每采集一次,就将采集结果写入文本文件尾部,即使重新运行程序,仍能保证数据添加到文件尾部,而不会覆盖原有数据。格式为a保留4位小数,b为整数,如下图所示。
程序前面板
程序框图
程序原理及思路
首先用打开/创建/替换文件VI打开文件,然后通过设置文件位置设置写入文件位置为END(结尾),最后通过格式化写入文件将文件设置为a=(随机数a),b=(随机数b),换行的格式输入。输入字符串的类型为%s(字符型)、%.4f(四位有效数字的float型)、%s、%s、%d(整型)、%s、%s。
题目三及要求
电梯
某栋楼房共有8层,需要安装一部电梯,其终端控制过程如下描述。
(1)每个楼层都设置了两个按钮,供当前层的用户选择上楼或下楼(顶层和底层
仅设置一个按钮)。
(2)以某个处于3楼的用户为例,假定他按了“上”的按钮,如果电梯处于下降
状态并且最后状态小于3层,或者处于上升状态且当前位置已经大于3,则不予理睬,直至完成当前传输后再响应;否则电梯运行到3层,并处于上升状态,如果该用户进入后没有按需要到达的楼层则电梯处于等待状态,一定时间后超时则开始响应其他动作。如果该用户按下的目的地小于3层,则不响应。
试利用LabVIEW设计并模拟以上单部电梯的运行过程。
程序前面板
程序框图
A:下降程序框图
B:停止程序框图
C:上升程序框图
D:初始化程序框图
程序原理及思路
此程序采用状态机的典型结构,总共设置为四个状态,分别是初始化、停止、上升、下降。他们分别表示电梯从新上电、电梯停止、电梯上升和下降的状态。在每个状态中检测目标层、上按钮层、下按钮层、当前楼层的大小,通过对这些变量进行比较得到下一个需要执行的状态。前面板输入不同会改变目标层、上按钮层、下按钮层的变化,电梯的位置有坐标来确定,到了指定的目标层后相应的前面板指示灯会灭掉,各个变量又发生变化,所以下一个状态也会跟着变化。
状态转换条件
A:停止状态-----→上升状态
①:目标层 > 当前层
②:上按钮目标层 > 当前层
③:目标层无效、上按钮目标层无效、(下目标层>当前层)
B:上升状态-----→停止状态
①:目标层 = 当前层
②:上按钮目标层 = 当前层
③:目标层无效、上按钮目标层无效、(下目标层=当前层)
C:停止状态-----→下降状态
①:目标层 < 当前层
②:下按钮目标层 < 当前层
③:目标层无效、下按钮目标层无效、(上目标层<当前层)
D:停止状态-----→上升状态
①:目标层 = 当前层
②:下按钮目标层 = 当前层
③:目标层无效、下按钮目标层无效、(上目标层=当前层)
具体流程框图
goal表示目标层、up表示上按钮层、down表示下按钮层、now表示当前层min()表示取小值、max()表示取大值、upgoal表示上升目标层、downgoal 表示下降目标层。
上升状态
下降状态
停止状态