緒論改革開放來,由于我國經濟的發展以及國際地位提高,促使交通快速發展,雖然為人民的出行帶來了極大的便利。但是現在的交通問題已然成為困擾許多大城市發展的通病,也成為迫在眉睫的國際性問題。其中,十字路口則是造成交通堵塞的主要“瓶頸”[1]。為了最大限度的發揮道路通行的便捷,世界上絕大多數的國家都在積極研究如何能盡量減少由交通堵塞帶來的種種麻煩及損失。
虛擬儀器技術如今是利用具有高性能的模塊化硬件,同時結合高效靈活的軟件來完成各種測試、測量和自動化的應用。其推出以來至今,涉及到應用工程師和來自世界各地的科學家們已經利用圖形化開發工具,更形象模擬出產品設計周期的各個方面,由此使產品的質量得到了大幅度的改善、產品投放市場的時間得到了縮減,同時產品的開發及其生產效率也得到了提高。使用集成化的虛擬儀器環境與現實世界的信號相連,分析數據以獲取實用信息,共享信息成果,有助于在較大范圍內提高生產效率[2]。虛擬儀器提供的各種工具能滿足我們任何項目需要。
隨著計算機技術的飛速發展,虛擬儀器技術也在數據采集、自動測試和儀器控制領域中發揮其重要作用,對測試系統和測量控制的設計方法有著促進并推動的作用,同時深刻影響了技術的實現。“軟件即儀器”是虛擬儀器理念的核心思想,從這一思想出發,基于電腦或工作站、軟件和I/O部件來構建虛擬儀器。I/O部件可以是獨立儀器、模塊化儀器、數據采集板(DAQ)或傳感器[3]。
鑒于虛擬儀器的諸多性能,將用LabVIEW來完成一個十字路口的交通燈系統設計。采用基于虛擬儀器的交通燈控制系統的設計,控制十字路口四組紅、綠交通燈的狀態轉換,指揮各類車輛以及行人安全有序通行,實現十字路口交通自動化管理。此系統不僅編程簡單、方便靈活、具有可靠性較高的性能,而且成本低、具有良好的經濟效益。
一、課題研究背景和意義1.1 課程研究的背景城市交通控制系統主要是用于城市交通數據監測、交通信號燈控制與交通疏導的計算機綜合管理系統,它已經成為現代城市交通監控指揮系統中最重要的組成部分。因此,如何利用先進的信息技術改造城市交通系統已成為城市交通管理者的共識。
1.2 課程研究的意義交通燈得設置成為城鄉各個路口的必備設置,為人們的出行安全提供了很好的保護措施。該系統具有與現實結合的功能,培養綜合應用所學知識來指導實踐的能力。
二、課題研究原理2.1 課題研究思路我通過采用基于虛擬儀器的交通燈系統設計,自動控制十字路口四組紅、黃、綠交通燈和四組人行道紅、綠狀態的轉變,指揮著行人和車輛的安全運行,實現十字路口的自動指揮和改善交通管理。綠燈亮時,允許車輛和行人通行。紅燈亮時,禁止車輛和行人通行,為交通安全提供保障。同時會有時間的顯示,另這個虛擬的交通燈程序更好用。
我采用的控制邏輯順序如下(因為相對的兩個方向順序一樣所以只列出了十字路口北方和東方,人行道南北方和東西方的邏輯順序):
(1)北紅燈和東綠燈,南北紅和東西綠 (30秒);
(2)北紅燈和東黃燈,南北紅和東西綠 (05秒);
(3)北綠燈和東紅燈,南北綠和東西紅 (30秒)。
(4)北黃燈和東紅燈,南北綠和東西紅 (05秒);
2.2 原理流程圖 
三、交通燈系統的設計 3.1 前面板的設計前面板是VI的用戶界面。創建VI時,通常要先設計出前面板,然后在前面板上創建出輸入/輸出任務[4]。
本課程設計中前面板需要用20盞燈、12個時間顯示器、1個停止按鍵即可。其中十字路口的12盞燈,紅、黃、綠各4盞,在控件選板中選擇指示燈,將它放在前面板合適的位置,單擊鼠標右鍵,更改指示燈的屬性,改變指示燈的大小和顏色,做出一個合適的指示燈[5],依同樣的步驟可以做好另外11個。三個分為一組,每組都包含紅黃綠三種顏色的燈,再用框將每組燈框起來,做成一個交通燈。在每組交通燈合適的位置放置一個數值顯示控件作為交通燈的計時器,同樣的方法另做人行道的8盞燈和時間顯示器。并在前面板合適的位置放置一個開關按鈕,用于控制循環的停止[6]。這樣交通燈系統的前面板就做好了。交通燈前面板設計如下面圖1所示。


3.2 定時信號的產生毫秒計時器在LABVIEW中的一個計時單元。毫秒計數器對時間信號計數,要產生一個一秒為單位的時間信號,所以還得用毫秒計數值除以1000,取商得到以秒為單位的時間信號。
在函數選板的【編程】→【定時】子選板中選擇時間計數器選定該單元[7]。其圖標與接線如下圖2.1、2.2、2.3所示。

圖2.1 時間計數器 圖2.2 得到時間信號的接線圖 圖2.3 商與余數
3.3 時間信號的分段將所得的時間信號除以每個循環所用的時間70s,取其余數,得到的余數x的范圍為0<=x<70。1、 當滿足x<65時,執行條件結構里為真的程序。 (當0<=x<30時,條件成立,執行程序框圖中第一個條件結構里面的程序,北紅和東綠、南北紅和東西綠燈點亮。當30<=x<35時,條件成立,執行框圖中第二個條件結構里的程序,北紅和東黃、南北紅和東西綠燈點亮。當35<=x<65時,條件成立,北綠和東紅、南北綠和東西紅燈點亮。)2、當65<=x<70時,即x<65的條件不滿足,執行條件結構里面為假的程序,北黃和東紅、南北綠和東西紅燈點亮。時間分段的程序框圖如下圖3.1所示。

圖3.1 條件為真的各時間分段程序
這里用到了判定范圍并強制轉換控件,應用這個控件可以判定輸入的數是否在上限和下限之間。它的圖標和作用如下圖3.2所示。如果輸出信號在范圍之內,“?” 接口會有一個信號,該信號恰可以輸入到條件結構中作為該分支選擇器信號[8]。
3.4 程序中所用的結構3.4.1 循環結構LabVIEW中的循環結構主要通過while和for循環實現。這兩種循環結構、語句、功能基本相同,但使用上會有些不同。for循環須先進行循環次數的確定,循環一定次數后自動不進行循環;而while循環則不用確定循環次數,只需要確定退出循環的條件[9]。
本次課程設計中不能預先確定循環的次數,所以就用到了while循環。while循環是LabVIEW最基本的結構之一,和C語言中的while循環和do…while循環相類似[10]。
While循環可以從程序框圖中的【結構】子選板中創建,while循環包括兩個端口:1、條件端口2、重復端口,如下圖4.1所示。
本次課程設計中用停止按鈕連接條件端口,當按下按鈕時循環停止。

3.4.2 條件結構條件結構也是LabVIEW最基本的結構之一,類似于基于文本編程語言的switch語句或者if…then…else語句[11]。條件結構可以從【結構】子選板中創建, 條件結構包含選擇端口和選擇標簽控制端口,如下圖4.2所示。
在條件結構中,選擇端口相當于switch語句中的“表達式”,框圖表示符相當于“表達式n”。編程過程中,將外部控制條件連接到選擇端口上,程序運行的時候其端口會判斷送來的控制條件,指引選擇結構去執行相應框架里的內容[12]。在本程序中的控制條件為從規定范圍并強制轉換的“范圍內?”端口輸出的判斷值。
選擇端口的外部控制條件的數據有整型、字符串型、布爾型和枚舉型。其接線可任意放在框圖左邊的某一位置[13]。如果其數據為布爾型,那么這個結構包含真和假兩個分支,這是該軟件所默認的選擇框架類型。若為其它類型則可以隨意使用分支的個數。
要注意的是,在使用條件結構的時候,控制條件的數據類型要和選擇標簽中的類型一樣,如果不一致的話,LabVIEW顯示出現錯誤,與此同時選擇器中的字體的顏色也會變為紅色[14]。
本次課程設計中,當各組條件為真時,將執行其框圖的程序。每個條件結構里的程序基本相同。用需要點亮的燈與布爾真常量連接,不需要點亮的與布爾假常量連接,而兩方向燈的時間顯示器則用一定的值減去輸入的時間量,以實現倒計時的功能,各結構里的程序略有不同,具體程序見下文。
巢湖學院2014屆本科畢業論文(設計)
3.5各段時間信號程序因為相對的兩個方向順序一樣所以下文只列出了十字路口北方和東方的邏輯順序,人行道南北方和東西方即指南北1,2,3,4和東西1,2,3,4。
第一階段:余數在0~ 5s之間,條件結構1條件滿足,十字路口北黃和東紅兩個燈點亮,人行道南北方綠燈和東西方紅燈亮。東燈時間顯示為離紅燈熄滅的時間(從5s到1s),北燈時間顯示為離黃燈熄滅的時間(從5s到1s),南北方時間顯示為離綠燈熄滅的時間(從5s到1s),東西方時間顯示為離紅燈熄滅的時間 (從5s到1s)。程序框圖如圖5.1所示。

圖5.1 條件結構1
第二階段:余數在5~ 35s之間,條件結構2條件滿足,十字路口北紅和東綠兩個燈點亮,人行道南北方紅燈和東西方綠燈亮。東燈時間顯示為離綠燈熄滅的時間(從30s到1s),北燈時間顯示為離紅燈熄滅的時間(從35s到6s),南北方時間顯示為離紅燈熄滅的時間(從35s到6s),東西方時間顯示為離綠燈熄滅的時間 (從35s到6s)。程序框圖如圖5.2所示。

圖5.2 條件結構2
第三階段:余數在35~ 40s之間,條件結構3條件滿足,十字路口北紅和東黃兩個燈點亮,人行道南北方紅燈和東西方綠燈亮。東燈時間顯示為離黃燈熄滅的時間(從5s到1s),北燈時間繼續顯示為離紅燈熄滅的時間(從5s到1s),南北方時間繼續顯示為離紅燈熄滅的時間(從5s到1s),東西方時間繼續顯示為離綠燈熄滅的時間 (從5s到1s)。程序框圖如圖5.3所示。

圖5.3 條件結構3
第四階段:余數在40~70s時,條件結構4 為假的條件滿足,十字路口北綠和東紅兩個燈點亮,人行道南北方綠燈和東西方紅燈亮。東燈時間顯示為離紅燈熄滅的時間(從35s到6s),北燈時間顯示為離綠燈熄滅的時間(從30s到1s),南北方時間顯示為離綠燈熄滅的時間(從35s到6s),東西方時間顯示為離紅燈熄滅的時間 (從35s到6s)。程序框圖如圖5.4所示。

圖5.4 條件結構4
四、交通燈設計調試結果這次所設計的交通燈控制系統有四種運行狀態:狀態1、狀態2、狀態3、狀態4。各種狀態的效果在下文中將會講到。
4.1 運行狀態1運行狀態1:十字路口北紅和南紅燈亮35s—6s,東綠和西綠燈亮30s—1s,此時按東西方向行駛的車輛可以運行,運行時間總共為30s,往南北行駛的車輛將禁止運行,禁止時間總共為35s(還有5s在下一個狀態中體現)。人行道南北方向紅燈亮35s—6s,東西方向綠燈亮35s—6s,此時往東西方向的行人可以通行,通行時間總共為35s,向南北方向的行人禁止通行,禁止時間總共為35s。時間顯示器顯示的為離下一個狀態到來的時間,如圖4-1所示,東燈和西燈顯示器顯示為28,表明再過28s綠燈將轉變為黃燈,彼時向東西方向的車輛將準備禁止通行;北燈和南燈顯示器顯示為33,表明再過33s紅燈將轉變為綠燈,彼時向南北方向的車輛將允許通行;東西燈和南北燈顯示器顯示為33,表明再過33s向東西方向的行人將禁止通行,向南北方向的行人將允許通行。

圖4-1 運行狀態1
4.2 運行狀態2運行狀態2:十字路口北紅和南紅燈亮5s—1s,東黃和西黃燈亮5s—1s,此時往東西方向的車輛準備禁止通行,準備時間總共為5s,向南北去的車輛準備通行。人行道南北方向紅燈亮5s—1s,東西方向綠燈亮5s—1s,此時往東西方向的行人準備禁止通行,向南北方向的行人準備通行,準備時間總共為5s。時間顯示器顯示的為離下一個狀態到來的時間,如圖4-2所示,東燈和西燈顯示器顯示為3,表明再過3s黃燈將轉變為紅燈,彼時向東西方向的車輛將禁止通行;北燈和南燈顯示器顯示為3,表明再過3s紅燈將轉變為綠燈,向南北方向的車輛將允許通行;東西燈和南北燈顯示器顯示為3,表明再過3s向東西方向的行人將禁止通行,向南北方向的行人將允許通行。

圖4-2 運行狀態2
4.3 運行狀態3運行狀態3:十字路口北綠和南綠燈亮30s—1s,東紅和西紅燈亮35s—6s,此時往南北方向的車輛可以通行,通行時間總共為30s,向東西方向的車輛禁止通行,禁止時間總共為35s(還有5s在下一個狀態中體現)。東西方向的人行道紅燈亮35s—6s,南北方向的人行道綠燈亮35s—6s,此時往南北去的行人可以通行,通行時間總共為35s,東西方向的禁止行人行走,總共為35s。時間顯示器顯示的為離下一個狀態到來的時間,如圖4-3所示,東燈和西燈顯示器顯示為28,表明再過28s紅燈將轉變為綠燈,彼時向東西方向的車輛將允許通行;北燈和南燈顯示器顯示為23,表明再過23s綠燈將轉變為黃燈,向南北方向的車輛將準備禁止通行;東西燈和南北燈顯示器顯示為28,表明再過28s向東西方向的行人將允許通行,向南北方向的行人將禁止通行。

圖4-3 運行狀態3
4.4 運行狀態4運行狀態4:十字路口北黃和南黃燈亮5s—1s,東紅和西紅燈亮5s—1s,此時往東西方向的車輛準備通行,準備時間總共為5s,向南北方向的車輛準備禁止運行。南北方向的人行道紅燈亮5s—1s,東西方向的人行道綠燈亮5s—1s,此時往東西去的行人準備通行,準備時間總共為5s,向南北方向的行人準備禁止通行。時間顯示器顯示的為離下一個狀態到來的時間,如圖4-4所示,東燈和西燈顯示器顯示為4,表明再過4s紅燈將轉變為綠燈,彼時向東西方向的車輛將允許通行;北燈和南燈顯示器顯示為4,表明再過4s向南北方向的車輛將禁止通行;東西燈和南北燈顯示器顯示為4,表明再過4s向東西方向的行人將允許通行,向南北方向的行人將禁止通行。

圖4-4 運行狀態4
運行中按下停止鍵后,程序停止循環[15],如圖4-5所示,

如需繼續運行程序,須單擊工具欄中的【運行】或【連續運行】按鈕
總結對于這次的課程研究設計,我覺得受益匪淺。我做的是交通燈系統的設計,與我們的平常生活關聯很大,經常出去的時候在十字路口時只知道去看紅綠燈和時間顯示也沒關心過這種設備的原理等。此次要運用的是LabVIEW軟件也沒怎么學過,對它一點也不了解更別說要去用了,拿到的時候都不知道怎么做。但通過問導師主要學習哪些書,并下載了LabVIEW軟件,通過理論與實際相結合,先練習參考書上的一些練習題,掌握了軟件的一些基本元件與結構再進一步設計課題。最終把課程設計按時完成。
通過這次課程研究,我第一次如此深的感覺到虛擬儀器極高的性能,可以將現實生活中用到得儀器設備在電腦中如此相似的展現出來。僅需在LabVIEW中畫出圖形寫些程序,就能夠實現相應的儀器功能,通過對結果分析及時調整出性能更優的產品設備。而且與數電和模電的實驗相比,它不需要用到其他的任何硬件,可以很方便的修改做成的儀器,更不會有燒壞電路板和器件的現象出現。我覺得虛擬儀器應該被學校提入一個非常重要的地位,被社會更廣泛的應用。
我由衷的認識到:LabVIEW這個軟件的功能太強大了,會在更廣泛的領域中得到應用。真真正正的反應出了“軟件即儀器”這一核心思想。