基于LabVIEW的交通灯方案设计书.docx
《基于LabVIEW的交通灯方案设计书.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的交通灯方案设计书.docx(16页珍藏版)》请在冰豆网上搜索。
基于LabVIEW的交通灯方案设计书
虚拟仪器技术课程设计
题目名称:
基于LabVIEW的交通灯设计
专业:
班级:
学号:
学生姓名:
指导老师:
学年学期:
2013--2014学年第一学期
2013年12月26日
1、设计要求和条件
交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。
绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。
中华人民共和国道路交通安全法实施条例
第四十条车道信号灯表示:
(一)绿色箭头灯亮时,准许本车道车辆按指示方向通行;
(二)红色叉形灯或者箭头灯亮时,禁止本车道车辆通行。
第四十一条方向指示信号灯的箭头方向向左、向上、向右分别表示左转、直行、右转。
第四十二条闪光警告信号灯为持续闪烁的黄灯,提示车辆、行人通行时注意瞭望,确认安全后通过。
2、设计目的
为了提高电子线路系统设计与实际的应用能力,开始为期二周的电子线路设计与测试。
本课程实验使学生更好理解和巩固课堂上所讲的理论知识,提高学生的动手能力,加强学生独立分析问题和解决问题的能力,为进一步学习专业课作好准备,并为今后从事专业方面的工作打下坚实基础。
通过实践环节使学生在巩固所学各门专业基础课与专业课知识,进一步把其与虚拟仪器系统移植结合起来,增强学生对所学知识的实际应用能力和以及与当前专业的前沿知识结合,达到对电子线路设计与测试系统的学习和理解,为以后工作的研究和开发打好基础。
3、设计方案论证
1、方案论证
实现十字路口信号灯控制系统的方法有很多,可以通过可编程控制器PLC、单片机、标准逻辑器件等方案实现。
但是这些控制方法的功能修改及调试都需要硬件的支持在一定程度上增加了设计难度,提高了设计成本。
随着计算机技的迅猛发展,虚拟仪器技术在数据采集、自动测试和仪器控制领域得到广泛应用促进并推动测试系统和测量控制的设计方法与实现技术发生了深刻的变化。
“软件就是仪器”己经成为测试与测量技术发展的重要标志。
于是基于LabVIEW的智能交通灯控制系统就出现了,该系统可实现3种颜色灯的交替点亮,通过信息提示指挥车辆和行人安全通行,并能实时监测交通灯工作状态。
该系统不仅编程简单、灵活、具有较高的可靠性,而且成本低、具有良好的经济效益。
虚拟仪器(virtual instrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
虚拟仪器的主要特点有:
(1)尽可能采用了通用的硬件,各种仪器的差异主要是软件。
(2)可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
(3)用户可以根据自己的需要定义和制造各种仪器。
(4)虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
2、交通灯的总体设计
2.1交通灯介绍
交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。
绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。
近年来,在快速城市化进程和经济发展的影响下,城市交通迅速增长,交通问题成为困扰许多大城市发展的通病,已成为日趋严峻的国际性问题。
其中,十字路口则是造成交通堵塞的主要”瓶颈”。
世界发达国家都在积极探索如何最大限度地发挥道路通行能力,尽量减少交通堵塞造成的各种损失。
我们设计了基于labview的智能交通灯控制系统,该系统可实现3种颜色灯的交替点亮,通过信息提示指挥车辆和行人安全通行,并能实时监测交通灯工作状态。
该系统不仅编程简单、灵活、具有较高的可靠性,而且成本低、具有良好的经济效益。
2.2总体结构
设计用36盏灯来指示路口的车辆左转、直行和右转,由于全国各个路口方向的车流量不同,所以设计的方案各不相同,本设计的依据为学校附近的十字路口红绿灯情况(河南省南阳市长江路与伏牛路交叉口)。
经过简化、分析,最后确定六个状态:
第一个状态——向北左转黄灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转黄灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行红灯亮、向东右转绿灯亮;第二个状态——向北左转红灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行绿灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行绿灯亮、向东右转绿灯亮;第三个状态——向北左转红灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行黄灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行黄灯亮、向东右转绿灯亮;第四个状态——向北左转红灯亮、向北直行绿灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行绿灯亮、向南右转绿灯亮、向西右转绿灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转绿灯亮、向东直行红灯亮、向东右转绿灯亮;
第五个状态——向北左转红灯亮、向北直行黄灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转黄灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转黄灯亮、向东直行红灯亮、向东右转绿灯亮。
第六个状态——向北左转绿灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转绿灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行红灯亮、向东右转绿灯亮;开始为第一个状态,然后依次按顺序运行至第六个状态,接着又运行第一个状态,这样形成一个闭环的回路,一直循环下去。
结构框图如图1所示。
图1
相应的亮灭状态以及时间详细情况见表1
表1
3、前面板的设计
前面板是VI的用户界面。
创建VI时,通常应先设计前面板,然后在前面板上创建输入/输出任务。
本设计中的前面板比较复杂,需要用到36盏灯和12个等待时间以及一个停止按键。
由于本设计四个方向上右转灯常绿,黄、绿灯常灭,所以实际上是控制28盏灯——即每个方向上控制7盏灯和3个倒计时,其中7盏灯为3盏绿灯、2盏黄灯和2盏红灯,分别控制左转、直行和右转。
每盏灯灭时为黑色,亮时为红、绿或者黄色。
每盏灯都是布尔变量,只有亮和灭的状态。
在控件选板中选择指示灯,将它放在前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小,改变其颜色,分别设置为红绿黄,将三十六个指示灯拖到前面板上,做出一个合适的指示灯,依同样的步骤可以做好另外三十五个,将三十六个灯均分为十二组,每组都包含红黄绿三种颜色的灯,做成一个完整的交通灯。
在每组交通灯合适的位置放置一个数值显示控件作为交通灯的计时器。
在前面板合适的位置放置一个开关按钮,控制循环的停止。
这样交通灯系统的前面板就做好了。
前面板设计如图2所示。
图2
4、程序框图的设计
4.1定时信号的产生
毫秒计时器在LabVIEW中的一个计时单元,它的图标与用途如图3和图4所示。
在函数选板的【编程】?
【定时】子选板中选择时间计数器选定该单元。
毫秒计数器对时间信号计数,要产生一个一秒为单位的时间信号,所以还得用毫秒计数值除以1000,取商得到以秒为单位的时间信号。
图3时间计数器图4时间计数器接线图
4.2时间信号的分段
将得到的时间信号除以每个循环所用的时间30s,取余数。
得到的余数x的范围为0<=x<30,当0<=x<3时,条件满足,执行第一个条件结构里面的程序——即第一个状态。
当3<=x<10时,条件满足,执行第二个条件结构里面的程序——即第二个状态。
当10<=x<13时,条件满足,执行第三个条件结构里面的程序——即第三个状态。
当13<=x<20时,条件满足,执行第四个条件结构里面的程序——即第四个状态。
当20<=x<23时,条件满足,执行第五个条件结构里面的程序——即第五个状态。
当23<=x<30时,条件满足,执行第六个条件结构
图5
里面的程序——即第六个状态。
时间分段的程序结构如图5所示。
图6
这里用到了判定范围并强制转换控件,应用这个控件可以判定输入的数是否在上限和下限之间。
它的图标和作用如图6所示。
如果输出信号在范围之内,“?
”接口将产生一个信号,此信号恰可以输入到条件结构作为分支选择器信号。
2.4.3各组时间信号的动作
条件结构是LabVIEW最基本的结构之一,条件结构类似于文本编程语言中的switch语句或者if„then„else语句。
条件结构可以从【结构】子选板中创建,它的图标及功能如图7所示。
图7
在条件结构中,选择端口相当于switch语句中的“表达式”,框图表示符相当于“表达式n”。
编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。
在本程序中的控制条件为从判定范围并强制转换“?
”端口输出地判断值。
当各组条件满足时,将执行各条件结构里的程序。
每个条件结构里的程序基本相同。
用需要点亮的灯与布尔真常量连接,不需要点亮的与布尔假常量连接,而时间显示器则用一定的值减去输入的时间量,以实现倒计时的功能,各结构里的程序略有不同,具体程序如图8到图13所示。
2.4.4循环的设计
图8
LabVIEW中的循环结构主要通过while和for循环实现。
这两种循环的功能基本相同,但使用上有一些差别。
for循环必须确定循环次数,循环一定次数后自动退出循环;而while循环不用确定循环次数,只需要指定退出循环的条件。
本次课程设计中循环的次数不能确定,所以就用到了while循环。
LabVIEW中的while循环相当于C语言中的while循环和do„while循环。
While循环可以从程序框图中的【结构】子选板中创建,while循环包括两个端口:
条件端口和重复端口。
它的功能、图标及说明如图8所示。
在此课程设计中,用按键连接条件端口,当按键按下时,循环停止。
四、设计结果与分析
图8图9
第一个状态:
向北左转黄灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转黄灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行红灯亮、向东右转绿灯亮;如图8所示。
第二个状态——向北左转红灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行绿灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行绿灯亮、向东右转绿灯亮;如图9所示。
第三个状态——向北左转红灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行黄灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行黄灯亮、向东右转绿灯亮;如图10所示。
图10图11
第四个状态——向北左转红灯亮、向北直行绿灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行绿灯亮、向南右转绿灯亮、向西右转绿灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转绿灯亮、向东直行红灯亮、向东右转绿灯亮;如图11所示。
第五个状态——向北左转红灯亮、向北直行黄灯亮、向北右转绿灯亮、向南左转红灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转黄灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转黄灯亮、向东直行红灯亮、向东右转绿灯亮。
如图12所示。
第六个状态——向北左转绿灯亮、向北直行红灯亮、向北右转绿灯亮、向南左转绿灯亮、向南直行红灯亮、向南右转绿灯亮、向西左转红灯亮、向西直行红灯亮、向西右转绿灯亮、向东左转红灯亮、向东直行红灯亮、向东右转绿灯亮;如图13所示。
图12图13
五、设计体会
通过这次课程设计我基本学会了虚拟仪器设计的步聚和基本方法,提高了动手能力,增强了理论联系实际的能力,分组工作的方式给了我与同学合作的机会,提高了与人合作的意识与能力。
由于本次课程设计须本人独立完成,四人一个题目,所以我只能共享资料。
遇到难题时我们彼此互相交流,解决问题的同时,我们都获得知识的积累,对此我感到非常欣慰。
总之,在这次课程设计中我受益匪浅。
指导老师布置题目后,我就开始课程设计的准备工作。
刚开始,我查询了网络上的资料和图书馆的书籍,发现跟实际的十字路口的交通灯的情况都不太符合。
于是,我就去了校园附近的十字路口,观察了十五分钟左右,并做了记录。
这次实地采集信息不仅得到了最准确的资料,而且,我也经受住了寒冷天气的考验。
这些资料准备完毕后,我便开始着手分析范例中的原理控制和时间循环的原理。
经过两天的试验、计算和分析,最后终于弄明白了运用条件结构来实现顺序控制的原理,并成功试运行。
一开始运行时,设计中存在着很多问题,大多由于考虑不够完善造成的。
后来,我把四个方向分为四块,一块一块的分析错误,并一一解决。
最后终于完整实现交通灯的各项功能,满足题目的各个要求。
经过这次课程设计,我觉得,不管做什么都要有付出,全身心的付出,否则就不可能有收获。
这次课程设计中,遇到很多难题,每一个困难的解决,我的自信心就变得更强。
随着课程设计的完成,我不但收货了知识,也收获了自信和喜悦。
六、参考文献
[1](美)毕晓普,乔瑞萍,林欣.LabVIEW8实用教程.电子工业出版社
[2]张健,韩薪莘.LABVIEW图形化编程与实例应用.北京:
中国铁道出版社
[3]路林吉.虚拟仪器的应用.电子技术
[4]侯国屏.LabVIEW7.1编程与虚拟仪器设计.清华大学出版社
[5]杨乐平,李海涛,宵相生,等.LABVIEW 程序设计与应用.北京:
电子工业出版社
[6]张重雄.虚拟仪器技术分析与设计.电子工业出版社
[7]黄峰.虚拟仪器技术教学资料.湖南工程学院出版社
[8]童刚,虚拟仪器实用编程技术,机械工业出版社
[9]戴鹏飞.测试工程与LABVEIW应用.北京:
电子工业出版社