版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘要</b></p><p> 本課題以智能車比賽為背景,以縮短智能車控制算法的開發(fā)周期為目的,基于虛擬儀器LabVIEW開發(fā)了智能車仿真軟件,為智能車比賽提供可以離線驗證控制算法的軟件平臺。</p><p> 本文首先對智能車仿真模擬系統(tǒng)的運行模型進行了分析,主要包括賽道設計、賽車設計、進行仿真和結果回放四個部分,然后根據(jù)這幾部分進
2、行軟件開發(fā),但在實際開發(fā)中并沒有完成所有功能,只完成了其中智能車仿真系統(tǒng)的一部分,并對該部分的開發(fā)過程進行了詳細的分析。</p><p> 關鍵詞:LabVIEW;仿真;智能車;虛擬儀器</p><p><b> ABSTRACT</b></p><p> Tsinghua University hosted the firth coll
3、ege student competition, the "Freescale" Cup. The participants are required to provide the intelligent vehicle model capacity of the self-road-recognize based on the designed model-car and the micro-controller
4、chip. The winner was the first one finished the race on the right road.</p><p> Based on this competition, this paper, aims at reducing the development period of the control algorithm, provides the software
5、 platform for the off-line test of the race car control algorithm by using LabVIEW.</p><p> This paper firstly intelligent vehicle simulation system operation model are analyzed, a simulation analysis syste
6、m has four functions, namely the circuit design, the car carries on the simulation, and design, and then according to the results of playback software development, but the framework in developing and not finished all the
7、 functions of intelligence, only completed the car mode, and the system in the development process of parts are analyzed in detail.</p><p> Key word: LabVIEW; simulation; Intelligent vehicle; Virtual instru
8、ment</p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p> ABSTRACTII</p><p><b> 1.緒論1</b></p><p> 1.1課題研究的背景1</p>
9、;<p> 1.2本課題研究的內容和意義1</p><p> 1.3中國大學生智能車設計競賽3</p><p> 2.智能車仿真系統(tǒng)的開發(fā)軟件5</p><p> 2.1 開發(fā)工具LabVIEW概述5</p><p> 2.2 LabVIEW的基本概念6</p><p> 2.3 L
10、abVIEW的操作模板9</p><p> 2.4 LabVIEW中的基本數(shù)據(jù)類型及其相互轉換17</p><p> 2.5 LabVIEW平臺的特點21</p><p> 3.仿真軟件的設計23</p><p> 3.1建立賽道功能模塊23</p><p> 3.2建立智能車功能模塊25<
11、/p><p> 3.3仿真功能模塊26</p><p> 3.4數(shù)據(jù)分析功能模塊28</p><p> 4.智能車仿真系統(tǒng)程序29</p><p> 4.1 流程圖介紹29</p><p> 4.2程序代碼及注釋30</p><p> 5.總結與展望51</p>
12、<p> 5.1本文主要研究成果51</p><p> 5.2下一步的研究方向52</p><p><b> 5.3展望53</b></p><p><b> 參考文獻54</b></p><p><b> 致謝56</b></p>
13、<p><b> 附錄57</b></p><p><b> 1.緒論</b></p><p> 1.1課題研究的背景</p><p> 近年來,隨著經(jīng)濟的發(fā)展和社會的進步,道路的通行能力、交通的安全性、能源的損耗、環(huán)境污染等問題越來越突出。車輛在交通擁擠的市區(qū)行使駕駛人員必須完成大量的換檔和踩離合器
14、的工作,大約在每分鐘完成20~30個手腳協(xié)調動,繁重的駕駛工作和駕駛人員的疲勞是交通事故頻發(fā)的重要原因。隨著經(jīng)濟的發(fā)展,車輛擁有量的增加,非職業(yè)駕駛人員的人數(shù)增多,是導致交通事故頻繁發(fā)生的又一重要原因。交通問題已經(jīng)成為全球范圍令人困擾的嚴重問題,因此,如何提高交通安全性己經(jīng)成為急需解決的社會性問題。道路偏離系統(tǒng)、疲勞檢測系統(tǒng)、自動巡航控制等都可以大大減輕駕駛人員的駕駛工作,提高交通系統(tǒng)的安全性。這些問題的解決引發(fā)了新的研究和應用的熱點,
15、比如自動車輛駕駛,通過計算機控制、人工智能和通信技術實現(xiàn)更好的通行能力和更安全的行駛[1][2]。</p><p> 從汽車出現(xiàn)的時候起,人們就有了汽車自動駕駛的設想。隨著相關學科的不斷發(fā)展,使得人類的這一夢想逐漸成為現(xiàn)實。上海交大的CyberC3項目組,開展了面向城市環(huán)境的無人自動駕駛車輛研究,目的是為未來的城市提供一種靈活、高效、安全、環(huán)保的新型公共交通工具。另外,美國國防遠景研究規(guī)劃局從2004年開始,每
16、年舉辦無人車大獎賽,賽車需要自主地穿越沙漠地帶,總行程達240公里。2006年8月在清華大學舉辦的智能車大賽就是在這樣的背景下應運而生的。</p><p> 1.2本課題研究的內容和意義</p><p> 在智能車的實際設計過程中,面臨著如下幾個問題:第一,為了測試賽車在不同的賽道上都有穩(wěn)定的發(fā)揮,就不得不制作出各種形式的賽道來測試賽車的性能,但是在實際中,不可能為智能車設計各種各樣的
17、比賽賽道來試驗智能車的比賽效果,在經(jīng)濟上和效率上都是不能被接受的;第二,一個控制算法的實現(xiàn)和驗證也需要有一個周期,在比賽設計的有限時間里,選擇合適的控制算法,并且試驗它的有效性,是一個比較艱巨的任務,如何快速驗證我們所設計的控制算法,縮短開發(fā)周期,在有限的時間里盡可能開發(fā)出最好最優(yōu)的控制算法,對我們提出了挑戰(zhàn);第三,分析車的運行過程進而分析車的控制方法是分析和優(yōu)化控制算法的一個有效途徑,實際上車的運行是一個快速的過程,是轉瞬即逝的,很難
18、把車的實際運行過程復現(xiàn)出來的,這樣就缺失了有效的分析方法。這些問題都是能夠順利完成比賽的不可避免的障礙。</p><p> 基于以上的問題,為了能夠快速的驗證智能車的設計方案,縮短其開發(fā)周期,讓參賽隊伍有充足的時間來研究更合適的方案和策略,需要有一個軟件仿真平臺。</p><p> 本文對智能車的運行過程進行分析,研究了智能車整體運動過程,對其運動過程的各環(huán)節(jié)建立了數(shù)學模型,并且利用了
19、虛擬儀器軟件LabVIEW為智能車比賽開發(fā)了一個比賽仿真以及理論實驗平臺,以此實現(xiàn)以下幾個部分的功能:</p><p> 賽道建模:可以根據(jù)實際賽道的尺寸大小建立起軟件的比賽</p><p><b> 賽道。</b></p><p> 賽車建模:對賽車基本參數(shù)的設置以及路徑檢測方案的設計。</p><p> 控制
20、算法的仿真實驗:可以設計好自己的控制算法對賽車進</p><p><b> 行運行仿真。</b></p><p> 比賽仿真的后期分析:可以根據(jù)運行過程中保存的數(shù)據(jù)對運</p><p> 行過程分析,可以對控制算法進行優(yōu)化。</p><p> 最后對賽車轉彎時間最優(yōu)問題進行了研究,提出三種轉彎策略,通過仿真比較給
21、出了縮短比賽時間,提高比賽成績的較好的轉彎策略。</p><p> 1.3中國大學生智能車設計競賽</p><p> 在學習韓國大學生智能汽車競賽后,我國也組織了自己的大學生智能汽車競賽,以加強大學生實踐能力、創(chuàng)新能力和團隊精神的培養(yǎng)。飛思卡爾半導體公司作為比賽的協(xié)辦單位,從而成立里“飛思卡爾”杯大學生智能汽車設計競賽。所設計的智能車模型如圖1.1所示。</p><
22、p><b> 圖1.1智能車模型</b></p><p> 1.3.1中國大學生智能車設計競賽簡介</p><p> 我國大學生“飛思卡爾”杯智能汽車競賽,是在統(tǒng)一汽車模型平臺上,使用飛思卡爾半導體公司的8位、16位微控制器作為核心控制模塊,自主構思控制方案進行系統(tǒng)設計,包括傳感器信號采集處理、動力電機驅動、轉向舵機控制以及控制算法軟件開發(fā)等,完成智能車工
23、程制作及調試,于指定日期與地點參加各分賽區(qū)的場地比賽,在獲得決賽資格后,參加全國決賽區(qū)的場地比賽。參賽隊伍之名次(成績)由賽車現(xiàn)場成功完成賽道比賽時間為主、技術報告和制作工程質量評分為輔來決定[3]。 </p><p> 1.3.2中國大學生智能車設計競賽的意義</p><p> 全國大學生智能汽車競賽是教育部為了加強大學生實踐、創(chuàng)新能力和團隊精神的培養(yǎng),在己舉辦的全國數(shù)學建模、電子設
24、計、機械設計、結構設計等4大專業(yè)競賽的基礎上而設立的第五項大學生設計競賽。該競賽與已舉辦的教育部4大專業(yè)競賽不同,是以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳感技術、電子、電氣、計算機、機械等多個學科交叉的科技創(chuàng)意性比賽,這對進一步深化高等工程教育改革,培養(yǎng)本科生獲取知識、應用知識的能力及創(chuàng)新意識,培養(yǎng)碩士生從事科學、技術研究能力,培養(yǎng)博士生知識、技術創(chuàng)新能力具有重要意義。</p><p> 2.智能
25、車仿真系統(tǒng)的開發(fā)軟件</p><p> 2.1 開發(fā)工具LabVIEW概述</p><p> LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種圖形化的程序開發(fā)環(huán)境,由美國國家儀器(National Instrument)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別
26、是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言來編寫程序,產(chǎn)生的程序是框圖的形式。在開發(fā)過程中,用圖標就可以代替應用系統(tǒng)的硬件部分,這樣就可以省去了很多購買硬件的資金,以節(jié)省大量的研發(fā)資金。LabVIEW中盡可能的利用了工程師們所熟知的術語、圖標和概念,是一個工業(yè)標準的開發(fā)環(huán)境。它結合了圖形化編程方式的高性能和靈活性以及專為測試、測量與自動化控制應用設計的高端性能和配置,能為數(shù)據(jù)采集、儀器控制、
27、測量分析與數(shù)據(jù)顯示等各種應用提供必要的開發(fā)工具,這能幫助工程師們提高工作效率[4]。</p><p> LabVIEW廣泛地被工業(yè)界、學術界和研究實驗室所接受,視為一個標準的數(shù)據(jù)采集和儀器控制軟件。LabVIEW集成了與滿足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內置了便于應用TCP/IP、ActiveX等軟件標準的庫函數(shù),這是一個功能強大且靈活的軟件。利用它可以方
28、便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。</p><p> 圖形化的程序語言,又稱為“G”語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖或框圖。它盡可能利用了技術人員、科學家、工程師所熟悉的術語、圖標和概念,因此,LabVIEW是一個面向最終用戶的工具。它可以增強你構建自己的科學和工程系統(tǒng)的能力,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進行原理研究、設計、
29、測試并實現(xiàn)儀器系統(tǒng)時,可以大大提高工作效率。</p><p> 虛擬儀器(Virtual Instrumentation)是基于計算機的儀器。計算機和儀器的密切結合是目前儀器發(fā)展的一個重要方向。粗略地說這種結合有兩種方式,一種是將計算機裝入儀器,其典型的例子就是所謂智能化的儀器。隨著計算機功能的日益強大以及其體積的日趨縮小,這類儀器功能也越來越強大,目前已經(jīng)出現(xiàn)含嵌入式系統(tǒng)的儀器。另一種方式是將儀器裝入計算機。
30、以通用的計算機硬件及操作系統(tǒng)為依托,實現(xiàn)各種儀器功能。虛擬儀器主要是指這種方式。</p><p> 虛擬儀器實際上是一個按照儀器需求組織的數(shù)據(jù)采集系統(tǒng),虛擬儀器的研究中涉及的基礎理論主要有計算機數(shù)據(jù)采集和數(shù)字信號處理。目前在這一領域內,使用較為廣泛的計算機語言是美國NI公司的LabVIEW。</p><p> 利用LabVIEW,可產(chǎn)生獨立運行的可執(zhí)行文件,它是一個真正的32位編譯器。
31、像許多重要的軟件一樣,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多種版本[4]。 </p><p> 它主要的方便就是,一個硬件的情況下,可以通過改變軟件,就可以實現(xiàn)不同的儀器儀表的功能,非常方便快捷,是相當于軟件即硬件。</p><p> 2.2 LabVIEW的基本概念</p><p> 2.2.1 VI的概念 &
32、lt;/p><p> 用LabVIEW開發(fā)出的應用程序被稱作VI (Virtual Instrument的英文簡寫,即虛擬儀器),它的表現(xiàn)形式和功能類似于實際的儀器,也很容易改變設置和功能。VI是由圖標、連線以及框圖構成的應用程序,有Front Panel(前面板)、Block Diagram(后面板)以及圖標/連結器(Icon Connector)三部分構成。</p><p> 前面板是
33、應用程序的界面,是人機交互的窗口,主要由Controls(控制量)和Indicators(顯示量)構成。當程序運行時,用戶通過控制量(例如用戶輸入數(shù)據(jù)的文本框以及一些按鈕、開關燈)輸入數(shù)據(jù)和控制程序的運行,而顯示量(例如顯示波形的示波器控件燈)則主要用于顯示程序運行的結果。如果將VI程序比作一臺儀器的話,那么,控制量就是儀器的數(shù)據(jù)輸入端口和控制開關,用于給程序提供輸入數(shù)據(jù)和控制信號,而顯示量則是儀器的顯示窗口,用于顯示經(jīng)過程序分析、處理
34、后的結果,如圖2.1所示,顯然,并非簡單地畫兩個控件就可以運行,在前面板后還有一個與之配套的流程圖。</p><p><b> 圖2.1前面板界面</b></p><p> 流程圖提供VI的圖形化源程序,在流程圖中對VI編程,以控制和操縱定義在前面板上的輸入和輸出功能。流程圖中包括前面板上的控件的連線端子,還有一些前面板上沒有,但編程必須有的東西,例如函數(shù)、結構和
35、連線等。圖2.2是一個隨機信號發(fā)生器的流程圖,從中可以看到流程圖中包括了前面板上的開關和隨機數(shù)顯示器的連線端子,還有一個隨機數(shù)發(fā)生器的函數(shù)及程序的循環(huán)結構。隨機數(shù)發(fā)生器通過連線將產(chǎn)生的隨機信號送到顯示控件,為了使它持續(xù)工作下去,設置了一個WhileLoop循環(huán),由開關控制這一循環(huán)的結束。如果將VI與標準儀器相比較,那么前面板上的東西就是儀器面板上的東西,而流程圖卜的東西相當于儀器箱內的東西。在許多情況下,使用VI可以仿真標準儀器,不僅在
36、屏幕上出現(xiàn)一個惟妙惟肖的標準儀器面板,而且其功能也與標準儀器相差無幾。</p><p> 圖2.2隨機信號發(fā)生器的流程圖</p><p> 2.2.2子VI與子程序</p><p> 和其他編程語言一樣,在LabVIEW中也存在子程序的概念,在LabVIEW中的子程序被稱作子VI。在程序中使用子VI有以下優(yōu)點:</p><p> 將一
37、些代碼封裝成為一個子VI(即一個圖標),可以使程序的結構變得更加清晰、明了。</p><p> 將整個程序劃分為若干模塊,每個模塊用一個或者幾個子VI實現(xiàn),易于程序的編寫和維護。</p><p> 將一些常用的功能編制成一個子VI,在需要的時候可以直接調用,不用重新編寫這部分程序,因而子VI有利于代碼復用。</p><p> 2.3 LabVIEW的操作模板&
38、lt;/p><p> 在LabVIEW的用戶界面上,應特別注意它提供的操作模板,包括工具(Tools)模板、控制(Eontrols)模板和函數(shù)(FunetionS)模板[5]。這些模板集中反映了該軟件的功能與特征,對LabVIEW程序的創(chuàng)建、設計和調試具有重要的作用。</p><p> 2.3.1工具模板(Tools Palette)</p><p> 具模板如圖
39、2.3所示,該模板包含各種用于創(chuàng)建、修改LabVIEW中的對象,并可對VI程序進行調試。一般在啟動LabVIEW時,該模板就會出現(xiàn),如果該模板沒有出現(xiàn),則可以在Windows菜單下選擇Show Tools Palette命令以顯示該模板。當從模板內。選擇了任一種工具后,鼠標箭頭就會變成該工具相應的形狀。</p><p><b> 圖2.3工具模板</b></p><p&
40、gt; 當從Windows菜單下選擇了Show HelpWindow功能后,把工具模板內選定的任種工具光標放在流程圖程序的子程序(SubVI)或圖標上,就會顯示相應的幫助信息。工具模板中各種不同工具的圖標及其相應的功能如表2.1所示。</p><p> 表2.1工具模板圖標、名稱及功能</p><p> 2.3.2控制模板(Controls Palette)</p>&
41、lt;p> 該模板用來給前面板設置各種所需的控制量(Controls)和顯示量(Indicators),主要用來創(chuàng)建前面板中的對象,構建程序的界面。每個圖標代表一類子模板。如果控制模板不顯示,可以用城Windows菜單的Show Controls Palette功能打開它,也可以在前面板的空白處,點擊鼠標右鍵,以彈出控制模板,如圖2.4所示。</p><p><b> 圖2.4控件模板<
42、/b></p><p> 控件模板包括如下所示的一些子模板。子模板中包括的對象,在功能方面用文字簡要介紹[6],如表2.2所示。</p><p> 表2.2控件面板的圖標、名稱及功能</p><p> 2.3.3函數(shù)模板(Functions Palette)</p><p> 函數(shù)模板是創(chuàng)建流程圖程序的工具,包含了編寫程序的過程
43、中會用到的函數(shù)和VI程序,主要用于構建后面板的對象。該模板上的每一個頂層圖標都表示一個子模板。若函數(shù)模板不出現(xiàn),則可以用Windows菜單下的Show Functions Palette功能打開它,也可以在流程圖程序窗口的空白處點擊鼠標右鍵以彈出功能模板。函數(shù)模板如圖2.5所示。 </p><p> 圖2.5函數(shù)面板其子模塊</p><p> 函數(shù)模板包括如下所示的一些子模板。子模板
44、中包括的對象,在功能方面用文字簡要介紹(個別不常用的子模塊未包含)[6],如表2.3所示。</p><p> 表2.3函數(shù)面板的圖標、名稱及功能</p><p> 2.4 LabVIEW中的基本數(shù)據(jù)類型及其相互轉換</p><p> 與Visual C++等基于文本模式的編程語言一樣,LabVIEW的程序設計中也要涉及常量、變量、函數(shù)的概念以及各種數(shù)據(jù)類型,這
45、些是用LabVIEW進行程序設計的基礎,也是構建LabVIEW應用程序的基石。</p><p> 2.4.1 LabVIEW中的基本數(shù)據(jù)類型據(jù)類型。</p><p> LabVIEW中的數(shù)據(jù)被分為控制量和顯示量,前者用于用戶控制程序運行和向程序傳遞數(shù)據(jù),后者主要負責數(shù)據(jù)的顯示和表達。根據(jù)數(shù)據(jù)類型的不同,控制量和顯示量劃分為數(shù)值型,布爾型、字符串型、數(shù)組型、簇型、波形數(shù)據(jù)以及動態(tài)數(shù)據(jù)類型
46、等多種數(shù)據(jù)類型,各種類型之間可以通過一些函數(shù)和VI進行類型轉換,以使用程序的需要。</p><p> 在LabVIEW中,各種不同的數(shù)據(jù)類型,其變量的圖標邊框的顏色不同。因而,從圖表邊框的顏色就可以分辨其數(shù)據(jù)類型[7]。</p><p><b> 數(shù)值型數(shù)據(jù)類型</b></p><p> 按照精度和數(shù)據(jù)的范圍,數(shù)值型數(shù)據(jù)可以方程以下幾類:
47、</p><p> 字節(jié)型:以一個字節(jié)((8位)的空間來存儲整數(shù)數(shù)據(jù)。又可以分成有符號字節(jié)(取值范圍為-128~127)和無符號字節(jié)型(取值范圍為0~255 )。</p><p> 字型:以一個字(由兩個字節(jié)組成,共16位)的空間來存儲整數(shù)數(shù)據(jù)。又可以分成有符號字節(jié)(取值范圍為-32768~32767)和無符號字節(jié)型(取值范圍為0~65535 )。</p><p&g
48、t; 雙子型(即長整型):以一個雙字(由兩個字節(jié)組成,共32位)的空間來存儲整數(shù)數(shù)據(jù)。又可以分成有符號長整型(取值范圍為-2147483648 ~2147483647)和無符號長整型(取值范圍為0~4294967295 )。</p><p> 單精度浮點型:用32位IEEE標準格式存儲單精度浮點型數(shù)據(jù)。又分成實數(shù)單精度浮點型數(shù)據(jù)和復數(shù)單精度浮點型數(shù)據(jù)兩種。</p><p> 雙精度浮
49、點型:用64位IEEE標準格式存儲雙精度浮點型數(shù)據(jù)。又分成實數(shù)雙精度浮點型數(shù)據(jù)和復數(shù)雙精度浮點型數(shù)據(jù)兩種。</p><p> 擴展精度的浮點數(shù)類型:分成實數(shù)擴展精度的浮點數(shù)類型數(shù)據(jù)和復數(shù)擴展精度的浮點數(shù)類型數(shù)據(jù)兩種。該數(shù)據(jù)類型的精度和占用內存的大小因操作系統(tǒng)而異。</p><p> 上述的數(shù)值型數(shù)據(jù)類型,隨著精度的提高和數(shù)據(jù)類型所表示數(shù)據(jù)范圍的擴大,其消耗的系統(tǒng)資源也隨之增長,因而,為
50、了提高程序運行的效率,在滿足使用要求的前提下,我們應該盡量選擇精度和數(shù)據(jù)范圍相對小的數(shù)據(jù)類型。</p><p><b> 布爾型數(shù)據(jù)類型</b></p><p> 在LabVIEW中,布爾型數(shù)據(jù)采用一個字節(jié)(C8位)的空間來存儲數(shù)據(jù)。如果數(shù)據(jù)為0,則布爾型數(shù)據(jù)為FALSE,否則為TRUE 。</p><p><b> 數(shù)組數(shù)據(jù)類
51、型</b></p><p> 在LabVIEW中,數(shù)組的概念是一組相同數(shù)據(jù)類型數(shù)據(jù)的集合。不同數(shù)據(jù)類型的數(shù)組的圖標是在原有數(shù)據(jù)類型圖標外面加上方括號。 </p><p><b> 路徑數(shù)據(jù)類型</b></p><p> 在LabVIEW中,以包含數(shù)據(jù)類型成員及其數(shù)量的句柄來存儲數(shù)據(jù)。</p><p>
52、;<b> 字符串數(shù)據(jù)類型</b></p><p> 在LabVIEW中,字符串數(shù)據(jù)類型是以整型數(shù)組形式來存儲的。</p><p><b> 簇數(shù)據(jù)類型</b></p><p> 和數(shù)組不同的是,在LabVIEW中“簇”可以用來存儲不同數(shù)據(jù)類型的數(shù)據(jù)??沾?里面沒有任何對象的簇)和混合型簇的表示圖標是不一樣的。&l
53、t;/p><p><b> 波形數(shù)據(jù)類型</b></p><p> 波形數(shù)據(jù)類型是LabVIEW中用來存儲波形數(shù)據(jù)的一種數(shù)據(jù)類型。</p><p><b> 句柄數(shù)據(jù)類型</b></p><p> 在LabVIEW中,句柄的含義是作為某一個對象—如文件、設備的標志,在程序中可以通過句柄實現(xiàn)對這一
54、對象的訪問。</p><p><b> v0通道號數(shù)據(jù)類型</b></p><p> 用來指明LabVIEW中設備的v0通道號。</p><p><b> 10)動態(tài)數(shù)據(jù)類型</b></p><p> LabVIEW支持一種新的數(shù)據(jù)類型—動態(tài)數(shù)據(jù)類型,這種類型的數(shù)據(jù)在于應用時不必具體指定其數(shù)
55、據(jù)類型,在程序運行過程中,根據(jù)需要,對象被動態(tài)賦予各種數(shù)據(jù)類型。</p><p> 2.4.2數(shù)據(jù)類型間的轉換</p><p> 由于程序設計的具體需要,有些時候需要進行數(shù)據(jù)類型間的轉換,將一種數(shù)據(jù)類型轉換為另一種數(shù)據(jù)類型。</p><p> 在LabVIEW中的數(shù)據(jù)類型轉換主要依賴于數(shù)據(jù)類型轉換函數(shù)來完成,這些函數(shù)按照功能被安排在函數(shù)模板的各個子模板中。例如
56、用于數(shù)值型對象與其他對象之間進行數(shù)據(jù)類型轉換的函數(shù)位于函數(shù)模板中的Numeri子模板中,如圖2.6所示。在函數(shù)模板中的String子模板中,也有用于字符串與數(shù)值型對象之間數(shù)據(jù)類型進行轉換的函數(shù),也有用于字符</p><p> 串、數(shù)組以及路徑對象之間數(shù)據(jù)類型轉換的函數(shù)[7]。</p><p> 圖2.6用于數(shù)值型對象與其他類型對象之間數(shù)據(jù)類型轉換的函數(shù)</p><p
57、> 2.4.3局部變量和全局變量</p><p> LabVIEW通過數(shù)據(jù)流驅動的方式來控制程序的運行,在程序中用連線連接多個控件以交換數(shù)據(jù)。這種驅動方式和數(shù)據(jù)交換方式在某些情況下可能會遇到麻煩,例如程序復雜時,連線會非?;靵y,其結果是導致程序的可讀性變得很差,有些時候甚至影響程序的正常工作以及程序員的調試和管理。另外,僅僅依靠連線也無法進行兩個VI程序之間的數(shù)據(jù)交換。</p><p
58、> LabVIEW中的局部變量和全局變量在某種程度上可以解決這個問題,因而在LabVIEW程序設計中具有重要的意義。</p><p> 局部變量主要用于在程序內部傳遞數(shù)據(jù),它既可以作為控制量向其他對象傳遞數(shù)據(jù),也可以作為顯示量接收其他對象傳遞過來的數(shù)據(jù)。在LabVIEW中,建立局部變量的方式有兩種。第一種方式是直接在函數(shù)模板中的Structure子模板中選擇Local Variable,并放置在后面板上
59、,形成一個還沒有被賦值的局部變量,圖標為回。第二種方式是在后面板中已有的對象上面單擊鼠標右鍵,從彈出的快捷菜單中選擇Create Local Variable,構成這個對象的局部變量。從某種意義上講,局部變量是它所代表的對象的替身,可以用于傳遞這個對象的數(shù)據(jù)。局部變量既可以是控制量也可以是顯示量,如果想要將一個顯示量的局部變量變成控制量,只需要在局部變量上單擊鼠標右鍵,從彈出的快捷菜單中選擇Change to Read;反之,則需要在快
60、捷菜單中選擇Change to Write。</p><p> 局部變量通常用于程序內部的數(shù)據(jù)傳遞,對于程序之間的數(shù)據(jù)傳遞就無能為力了,而全局變量可以解決在LabVIEW的程序間數(shù)據(jù)傳遞的問題。</p><p> 創(chuàng)建全局變量的方法有兩種,第一種方法是在LabVIEW的新建菜單中選擇Global Variable,單擊“OK”按鈕后可以打開設計全局變量窗口,這時形成的一個沒有后面板的L
61、abVIEW程序,也就是說它僅僅是一個盛放前面板中控件的容器,沒有任何代碼,編輯后保存成一個VI,便建立一個全局變量;第二種方法是用LabVIEW函數(shù)模板的Structur。子模板,從中選擇Global Variable并放置在程序的后面板上,在后面板上生成圖標,雙擊圖標便可以打開編輯窗口,在這里可以編輯該全局變量。全局變量既可以是控制量也可以是顯示量,如果想要將一個顯示量的全局變量變成控制量,只需要在全局變量上單擊鼠標右鍵,從彈出的快
62、捷菜單中選擇Change to Read;反之,則需要在快捷菜單中選擇Change to Write。</p><p> 2.5 LabVIEW平臺的特點</p><p> LabVIEW平臺的特點可歸結為以下幾個方面:</p><p> 基于圖形化的編程方式,其編程十分簡潔方便,是真正的工程師</p><p><b> 的
63、語言;</b></p><p> 提供豐富的數(shù)據(jù)采集、分析及存儲的庫函數(shù);</p><p> 提供傳統(tǒng)的程序調試手段,如單步執(zhí)行、設置斷點,同時提供設置探針、顯示數(shù)據(jù)流動畫等獨具特色的調試方法;</p><p> 繼承傳統(tǒng)編程語言結構化和模塊化的優(yōu)點,這對于建立復雜應用和代碼的可重用性來說是至關重要的;</p><p>
64、囊括了PCI, GPIB, PXI, VXI, RS232/485, USB等各種儀器通信總線標準的所有功能函數(shù),使不懂總線標準的開發(fā)者也能驅動不同總線標準接口設備與儀器;</p><p> 提供大量與外部代碼或軟件進行鏈接的機制,諸如DLL(動態(tài)鏈接庫)、DDE(共享庫)、ActiveX等;</p><p> 具有強大的Internet功能,支持常用的網(wǎng)絡協(xié)議,方便網(wǎng)絡、遠程測量儀
65、器的開發(fā)。</p><p><b> 3.仿真軟件的設計</b></p><p> 3.1建立賽道功能模塊</p><p> 仿真系統(tǒng)提供賽道設計賽道功能模塊,可以快速地建立起賽道,很好地解決了實際中設計不同賽道的經(jīng)濟性和效率性的問題,賽道設計功能模塊就是為所要對智能車比賽的真實賽道建模。用戶可以在系統(tǒng)中自行設計不同的賽道,然后保存為文件
66、,在仿真時將其調用即可[8]。</p><p> 3.1.1仿真設計方法</p><p> 在仿真軟件的設計過程中,賽道設計是以簡化了的賽道為模型,即在軟件的制作過程中,以點的形式存儲賽道,兩個相關聯(lián)的點之間的距離定義為分辨率,分辨率是連續(xù)賽道的數(shù)字量化的量度,賽道的具體體現(xiàn)是認為兩個相連的點之間是直線連接的,在分辨率設置很低的情況下,軟件設計中限定了最大分辨率為0.5厘米,這樣,即使
67、是曲線的賽道也可以近似為直線,不會對仿真精度產(chǎn)生多大的影響[10]。</p><p> 賽道的生成是以賽道段為單位的,所謂賽道段就是具有同種形狀的賽道,比如,只是直線賽道,那就認為為一個賽道段,一個直線末端連一個半徑為0.5米的角度為180的弧,則認為為兩個賽道段,對于弧線,不同的半徑認為是在不同的賽道段上。當然也可以把一個賽道段劃分為多個賽道段。賽道段總體上分為兩類,直線段和弧線段,直線段信息為端點,弧線段信
68、息為俯視旋轉方向、角度和半徑信息。</p><p> 用戶首先要根據(jù)實際賽道的工程圖紙,在不同的賽道段連接點建立起平面直角坐標系下的坐標,然后可以根據(jù)圖紙,從起點開始依次輸入各個賽道段信息,直到終點。這樣就可以在仿真環(huán)境里建立起一個虛擬賽道。</p><p> 3.1.2賽道功能模塊介紹</p><p> 賽道設計功能模塊,利用了LabVIEW可視化的優(yōu)勢,為
69、用戶提供了友好的交互方式,賽道設計方便,賽道設計界面包括:起始設置、操作和賽道顯示三個部分:</p><p> 起始設置為設置生成賽道的分辨率,以及賽道的起始坐標點;</p><p> 操作部分的功能有賽道的生成方式、直線、弧線、撤銷、保存賽</p><p><b> 道和停止; </b></p><p> 賽道
70、的生成方式有兩種,分別為創(chuàng)建賽道和調入賽道,選擇調入</p><p> 賽道是從磁盤文件中調入已經(jīng)保存好的賽道文件,用來查看已有的賽道。選擇創(chuàng)建賽道就要求用戶自行定制新的賽道[10]。</p><p> 3.1.3程序的運行及仿真效果</p><p> 軟件創(chuàng)建賽道的流程,首先提取初始設置值,根據(jù)輸入的賽道段命令及賽道段信息,進入各自的量化處理程序,賽道量化后
71、數(shù)據(jù)暫時保存在臨時的數(shù)組中,并且在賽道界面顯示面板中顯示,或者撤銷創(chuàng)建,取消臨時數(shù)組中的數(shù)據(jù)前一次量化得到的所有數(shù)據(jù),或者繼續(xù)選擇相應的賽道段輸入命令,繼續(xù)輸入,直到賽道輸入結束[11]。創(chuàng)建賽道的流程圖如圖3.1所示。</p><p> 圖3.1創(chuàng)建賽道流程</p><p> 3.2建立智能車功能模塊</p><p> 智能車體也是整個仿真的基本要素之一。該
72、模塊是對智能車的基本參數(shù)進行設置,在軟件環(huán)境中建立起智能車的外觀模型,這些參數(shù)包括車的長度,車的寬度,輪距,軸距,轉向參數(shù),對于給定的智能車,這些基本參數(shù)是相同且不可改變的,為了使軟件更通用,軟件也對這些基本參數(shù)進行了可寫操作,為了在更換了智能車的情況下也可以用它來仿真。</p><p><b> 3.3仿真功能模塊</b></p><p> 仿真界面是軟件的核心
73、部分,它是模擬智能車的真實賽道運行的環(huán)境,包括控制臺和顯示屏兩部分。首先,賽道文件調入程序對賽道數(shù)據(jù)文件的讀取,加載賽道數(shù)據(jù)到仿真環(huán)境,成為智能車仿真運行的基礎,然后調入智能車文件程序,程序會根據(jù)賽道的起始點自動調整智能車,使其以最佳的姿態(tài)停在賽道上[12]。</p><p> 仿真程序是仿真軟件的核心,它主要為模擬傳感器檢測賽道功節(jié)點、控制算法功能節(jié)點、智能車運動模型模擬節(jié)點和智能車的顯示功能節(jié)點。仿真程序的
74、設計步驟如圖3.2所示。</p><p> 圖3.2仿真程序設計步驟</p><p> 仿真程序塊的運行流程圖如圖,程序在賽道和智能車都調入仿真環(huán)境中后,主要在賽道檢測,得到賽道信息,通過賽道信息和智能車當前的狀態(tài)控制智能車的運行,根據(jù)運動模型的到下一個仿真周期智能車位置,輸出顯示智能車幾個環(huán)節(jié)中循環(huán),直到完成比賽。</p><p> 3.4數(shù)據(jù)分析功能模塊&
75、lt;/p><p> 利用軟件對智能車進行仿真,可以把仿真中記載智能車運行過程的主要數(shù)據(jù)記錄出來,這是軟件比實際運行調試的另一個好處,在實際運行過程中,我們只能通過觀測智能車是否能夠完成比賽任務和完成比賽時間的長短來定性的判斷控制算法的好壞,不能精確的分析智能車的設計方案中出現(xiàn)的問題,如控制參數(shù)設置不當?shù)膯栴}。</p><p> 此模塊是用來完成對仿真數(shù)據(jù)的后期處理,在實際的仿真運行過程中
76、,雖然可以看見智能車的仿真運行狀態(tài),但是,由于智能車的運行速度很快,這些狀態(tài)在以相當高的頻率變化,特別是速度表所指示的速度,和實際測試一樣,也不能的對運行過程進行分析,但是,在仿真的結束,可以把仿真數(shù)據(jù)存放在文件中,這里就是對仿真數(shù)據(jù)的處理程序[13]。</p><p> 4.智能車仿真系統(tǒng)程序</p><p> 智能車仿真系統(tǒng)的開發(fā)主要分為前面板設計和程序框圖設計。前面板設計是視覺上
77、最為直接的設計,主要是利用LabVIEW添加一些系統(tǒng)所需的功能按鈕,并需要我們盡可能的簡單實用。前面板上添加的按鈕在程序框圖中都有圖標顯示,程序框圖設計則是為前面板上添加的按鈕賦予其應有的功能,并且將各個按鈕的功能聯(lián)系起來,使其能夠完成我們所需要的功能。本文主要運用LabVIEW G語言完成控制程序的編寫[14]。</p><p> 完成該系統(tǒng)的開發(fā),首先要對系統(tǒng)的功能進行總體分析,羅列出該系統(tǒng)應該具備的功能
78、,然后進行前面板設計,進而完成程序框圖設計,最后經(jīng)過反復的調試和不斷的完善,來最終實現(xiàn)該系統(tǒng)。</p><p><b> 4.1 流程圖介紹</b></p><p> 在智能車仿真系統(tǒng)的軟件設計中,仿真的大體流程是:先完成初始化設置,然后設置賽道信息,即黑線數(shù)據(jù),加載賽車信息并發(fā)送命令,最終在黑線圖像上顯示結果[15]。</p><p>&
79、lt;b> 初始化</b></p><p> 初始化主要包括串口選擇,波特率設置,數(shù)據(jù)比特設置,奇偶位設置和停止位設置。</p><p><b> 2)設置賽道信息</b></p><p> 賽道信息在系統(tǒng)顯示為黑線數(shù)據(jù),這個需要根據(jù)自身需要進行設定。主要包括寬度,高度,放大倍數(shù),黑線的掩碼和色碼。修改黑線的色碼后黑線
80、將不再是黑色,而是自己設定的顏色。</p><p><b> 3)加載賽車信息</b></p><p> 系統(tǒng)已經(jīng)設定好加載功能,我們可以在數(shù)據(jù)加載選項中選擇自己的賽車信息并加載到系統(tǒng)中。</p><p><b> 發(fā)送命令</b></p><p> 這是進入仿真的命令,設定好之后即可按照已
81、經(jīng)設定好的命令進行仿真,并能夠在黑線圖像上顯示出仿真結果。系統(tǒng)仿真流程圖如圖4.1所示。</p><p><b> 圖4.1仿真流程圖</b></p><p> 4.2程序代碼及注釋</p><p> 4.2.1初始化程序</p><p> 初始化設置主要包括開關串口,串口的選擇,波特率的設定,數(shù)據(jù)比特的設定,奇
82、偶位選擇,停止位的選擇。其前面板如圖4.2所示。</p><p> 圖4.2初始化設置前面板</p><p><b> 其中:</b></p><p> 1)串口選擇是VISA資源的名稱指定要打開的資源,該控件也指定了會話句柄和類。</p><p> 波特率是指數(shù)據(jù)信號對載波的調制速率,它用單位時間內載波調<
83、;/p><p> 制狀態(tài)改變的次數(shù)來表示,其單位是波特(Baud)。波特率與比特率的關系是比特率=波特率*單個調制狀態(tài)對應的二進制位數(shù)。</p><p> 數(shù)據(jù)比特是輸入數(shù)據(jù)的位數(shù)。</p><p> 奇偶校驗位是一種校驗代碼傳輸正確性的方法。根據(jù)被傳輸?shù)囊?lt;/p><p> 組二進制代碼的數(shù)位中“1”的個數(shù)是奇數(shù)或偶數(shù)來進行校驗。通常專
84、門設置一個奇偶校驗位,用它使這組代碼中“1”的個數(shù)為奇數(shù)或偶數(shù)。若用奇校驗,則當接收端收到這組代碼時,校驗“1”的個數(shù)是否為奇數(shù),從而確定傳輸代碼的正確性。</p><p> 停止位是指定用于表示幀結束的停止位的數(shù)量。</p><p> 初始化設置的程序框圖如圖4.3所示。</p><p> 圖4.3初始化設置程序框圖</p><p>
85、<b> 其中:</b></p><p> 啟用終止符使串行設備做好識別終止符的準備。如值為TRUE(默認),VI_ATTR_ASRL_END_IN屬性將被設置為識別終止符。如值為FALSE,VI_ATTR_ASRL_END_IN屬性將被設置為0(無)且串行設備不識別終止符。</p><p> 終止符通過調用終止讀取操作。從串行設備讀取終止符后讀取操作將終止。
86、0xA是換行符(\n)的十六進制表示。消息字符串的終止符由回車(\r)改為0xD。</p><p> 超時設置讀取和寫入操作的超時值,以毫秒為單位。默認值為10000。</p><p> VISA資源名稱指定要打開的資源。該控件也可指定會話句柄和類。</p><p> 波特率是傳輸速率,默認值為9600。</p><p> 數(shù)據(jù)比特是
87、輸入數(shù)據(jù)的位數(shù)。 數(shù)據(jù)比特的值介于5和8之間,默認值為8。</p><p> 奇偶指定要傳輸或接收的每一幀所使用的奇偶校驗。</p><p> 4.2.2 黑線數(shù)據(jù)及黑線圖像顯示</p><p> 黑線數(shù)據(jù)即賽道信息,因為賽道在實際中就是一條黑線,所以在此用黑線表示。在前面板中可以設定賽道的高度,寬度及圖像放大倍數(shù),色碼和掩碼。其前面板如圖4.4所示。<
88、/p><p> 圖4.4黑線數(shù)據(jù)及黑線圖像顯示的前面板</p><p><b> 其中:</b></p><p> 掩碼是字節(jié)數(shù)組,其中的每一位都描述了一個像素的掩碼信息,</p><p> 第一個字節(jié)描述餓了前八個像素,第二個字節(jié)描述了后八個像素,依次類推。</p><p> 色碼表是與數(shù)
89、據(jù)數(shù)組映射的兩種顏色。</p><p> 黑線數(shù)據(jù)及黑線圖像顯示程序框圖如圖4.5所示。</p><p> 圖4.5黑線數(shù)據(jù)及黑線圖像顯示程序框圖</p><p><b> 其中:</b></p><p><b> 截取字符串</b></p><p> 字符串是輸入
90、字符串。</p><p> 偏移量是起始位置并且必須為數(shù)值。 字符串中第一個字符的偏移量為0。如沒有連線或小于0,則默認值為0。長度必須為數(shù)值。如長度沒有連線,則默認值為字符串長度減去偏移量。</p><p> 子字符串如偏移量大于字符串的長度,或長度小于等于0,則值為空。如長度大于或等于字符串長度減去偏移量,則子字符串是從偏移量開始的剩余部分。</p><p>
91、;<b> 重排數(shù)組維數(shù)</b></p><p> n維數(shù)組可以是任何類型的n維數(shù)組。維數(shù)大小0..m-1指定m維數(shù)組的維數(shù),必須為數(shù)字。如維數(shù)大小為0,函數(shù)將創(chuàng)建空字符串。m維數(shù)組的數(shù)組大小接線端必須為m。m維數(shù)組如維數(shù)大小的乘積大于輸入數(shù)組元素的數(shù)量,函數(shù)將用n維數(shù)組的默認數(shù)據(jù)類型填充新數(shù)組。如維數(shù)的乘積小于輸入數(shù)組元素的數(shù)量,函數(shù)將對數(shù)組進行剪切。</p><p
92、><b> 捆綁</b></p><p> 簇是要改變值的簇。如該輸入端沒有連線,函數(shù)將返回簇。連線簇接線端時,“捆綁”。函數(shù)將用元素0..n-1替換簇。輸入接線端的數(shù)量必須匹配輸入簇中元素的數(shù)量。元素0..n-1可接收任意類型的數(shù)據(jù)。</p><p> 輸出簇是作為結果的簇。</p><p><b> 平化像素圖<
93、;/b></p><p> 左上角指定圖像左上角在坐標系中的位置。x是右側增加的水平坐標。y是底部增加的垂直坐標。</p><p> 24位像素圖是要轉換為圖像數(shù)據(jù)的二維數(shù)據(jù)數(shù)組。圖像數(shù)據(jù)的維數(shù)應與數(shù)組的維數(shù)一致。</p><p> 8位像素圖是要轉換為圖像數(shù)據(jù)的二維數(shù)據(jù)數(shù)組。圖像數(shù)據(jù)的維數(shù)應與數(shù)組的維數(shù)一致。VI將該數(shù)據(jù)作為顏色數(shù)組的索引。</p
94、><p> 4位像素圖是要轉換為圖像數(shù)據(jù)的二維數(shù)據(jù)數(shù)組。圖像數(shù)據(jù)的維數(shù)應與數(shù)組的維數(shù)一致。VI將該數(shù)據(jù)作為顏色數(shù)組的索引。</p><p> 1位像素圖是要轉換為圖像數(shù)據(jù)的二維數(shù)據(jù)數(shù)組。圖像數(shù)據(jù)的維數(shù)應與數(shù)組的維數(shù)一致。在顏色列表中,F(xiàn)ALSE對應于顏色表中的元素0。TRUE對應于顏色表中的元素1。</p><p> 顏色是RGB顏色的數(shù)組,與連接至像素圖的值對應
95、。連接的像素圖可確定LabVIEW如何讀取輸入的值。如連接數(shù)據(jù)至24位像素圖,LabVIEW將忽略該輸入。如連接數(shù)據(jù)至8位像素圖,數(shù)組有256個元素。如連接數(shù)據(jù)至4位像素圖,數(shù)組有16個元素。如連接數(shù)據(jù)至1位像素圖,數(shù)組有2個元素。</p><p> 掩碼該一維數(shù)組用于說明每個像素的掩碼信息。</p><p> 圖像數(shù)據(jù)返回像素圖的信息,可用繪制平化像素圖VI將其繪制為圖片,或用各種圖
96、形格式VI將圖像保存至文件。 </p><p> 圖像深度指定圖像的顏色深度,即圖像中各像素的位數(shù)。有效值包括每像素1位、4位、8位和24位(默認)。 圖像深度確定LabVIEW如何解析圖像和顏色的值。圖像該字節(jié)數(shù)組以光柵順序描述圖像中各像素顏色。圖像深度用于確定LabVIEW如何解釋輸入值。</p><p> 矩形是包含圖像矩形邊界坐標的簇。水平坐標向右遞增,垂直坐標向下遞增。左是矩
97、形水平坐標的左邊界,上是矩形垂直坐標的上邊界,右是矩形水平坐標的右邊界,下是矩形垂直坐標的下邊界。</p><p> 平化像素圖程序框圖如圖4.6所示。</p><p> 圖4.6平化像素圖程序框圖</p><p> 繪制平化像素圖(VI)</p><p> 圖片是要添加數(shù)據(jù)數(shù)組的圖片,默認值為空圖片。</p><
98、p> 圖像數(shù)據(jù)表明要繪制或操作的圖像,圖像類型保留以便今后使用。</p><p> 圖像深度指定圖像的顏色深度,即圖像中各像素的位數(shù)。有效值包括每像素1位、4位、8位和24位(默認)。 圖像深度確定LabVIEW如何解析圖像和顏色的值。圖像該字節(jié)數(shù)組以光柵順序描述圖像中各像素顏色。圖像深度用于確定LabVIEW如何解釋輸入值。如圖像深度為24,每個像素的顏色將用3個字節(jié)描述。第一個字節(jié)代表紅色值,第二個
99、字節(jié)代表綠色值,第三個字節(jié)代表藍色值。如圖像深度為8,每個像素的顏色將用一個字節(jié)描述。每個字節(jié)對應于顏色中的一個元素,顏色中包含32位RGB值,最高有效字節(jié)為0,接下來分別是紅色、綠色和藍色的值。有效值為0至255。如圖像深度為4,除圖像的有效值范圍為0-15外,其它類似于圖像深度為8的情況。如圖像深度為1,圖像中的0值將對應于顏色中的元素0。所有其它值對應于顏色中的元素1。</p><p> 新圖片是包含新圖
100、像的圖片。如將該輸出連線至其它圖片輸入端,可為圖片添加更多的繪圖指令。</p><p> 繪制平化像素圖的程序框圖如圖4.7所示。</p><p> 圖4.7繪制平化像素圖程序框圖</p><p> 4.2.3賽車信息的加載</p><p> 這里的賽車信息必須是已經(jīng)存在的,在仿真時只需加載上即可。賽車信息加載模塊前面板如圖4.8所示
101、。</p><p> 圖4.8賽車信息加載前面板</p><p> 加載對話框如圖4.9所示。</p><p> 圖4.9賽道加載對話框</p><p> 賽道加載模塊的程序框圖如圖4.10所示。</p><p> 圖4.10 賽道加載模塊的程序框圖</p><p><b>
102、 其中:</b></p><p> 打開/創(chuàng)建/替換文件(函數(shù))</p><p> 提示是出現(xiàn)在在文件對話框的文件、目錄列表或文件夾上方的信息。</p><p> 文件路徑(使用對話框)是文件的絕對路徑。如沒有連線文件路徑(使用對話框),函數(shù)將顯示用于選擇文件的對話框。如指定空路徑或相對路徑,函數(shù)將返回錯誤。</p><p&g
103、t; 操作是要進行的操作。如在對話框內選擇取消,將發(fā)生錯誤43。</p><p> 權限指定訪問文件的方式。默認值為read/write。0:read/write;1:Read-only;2:Write-only。</p><p> 錯誤輸入表明VI或函數(shù)運行前發(fā)生的錯誤,默認值為無錯誤。如錯誤發(fā)生在VI或函數(shù)運行之前,VI或函數(shù)將把錯誤輸入值傳遞至錯誤輸出。如在VI或函數(shù)運行前沒有
104、發(fā)生錯誤,VI或函數(shù)將正常運行。如在VI或函數(shù)運行時發(fā)生錯誤,VI或函數(shù)將正常運行并在錯誤輸出中設置自身的錯誤狀態(tài)。簡易錯誤處理器或通用錯誤處理器VI可用于顯示錯誤代碼的說明信息。 通過異常情況處理控件,可忽略一般意義上的錯誤,或將錯誤作為警告處理。 錯誤輸入和錯誤輸出用于檢查錯誤并通過將一個節(jié)點的錯誤輸出與另一個節(jié)點的錯誤輸入連線指定執(zhí)行順序。 </p><p> 狀態(tài)的值為TRUE(叉)時表示在VI或函數(shù)運
105、行前已發(fā)生錯誤,值為FALSE(勾)時表示警告或無錯誤,默認值為FALSE。</p><p> 代碼是錯誤或警告代碼,默認值為0。如狀態(tài)的值為TRUE,代碼將為非零錯誤代碼。如狀態(tài)的值為FALSE,代碼將為0或警告代碼。</p><p> 源表示錯誤或警告的源,大多數(shù)情況下表示出現(xiàn)錯誤或警告的VI或函數(shù)名,默認值為空字符串。</p><p> 禁用緩存指定打開
106、文件時不使用緩存,默認值為FALSE。如要在RAID中讀取或寫入文件,打開文件時不使用緩存可提高數(shù)據(jù)傳輸?shù)乃俣取H缧杞镁彺?,可將值TRUE連線至禁用緩存輸入端。</p><p> 搜索/拆分字符串(函數(shù))</p><p> 字符串是函數(shù)搜索或分隔的輸入字符串。</p><p> 搜索字符串/字符是要在字符串中搜索的字符串或字符。如沒有連線該輸入端或該輸入端包
107、含空字符串,函數(shù)將在偏移量處拆分字符串。必須連線搜索字符或偏移量。</p><p> 偏移量是起始位置并且必須為數(shù)值。 字符串中第一個字符的偏移量為0。如沒有連線或小于0,則默認值為0。</p><p> 匹配子字符串如沒有連線,則值為字符串中在搜索字符串/字符前或偏移量前的部分。匹配+剩余字符串包含搜索字符串/字符和字符串中的所有后續(xù)字符。匹配偏移量是搜索字符串/字符在字符串中的位置
108、。</p><p><b> 連接字符串(函數(shù))</b></p><p> 字符串0..n-1是要進行連接的字符串。連接的字符串包含連接的輸入字符串,順序與連線至節(jié)點的順序(從上到下)一致。</p><p> 連接字符串詳細信息可使用該函數(shù)連接圖片函數(shù)VI的輸出,在圖片控件中繪圖。圖片按照從上到下的順序繪制。</p><
109、;p> 簡易錯誤處理器(VI)</p><p> 錯誤代碼是數(shù)值型的錯誤代碼。如錯誤輸入表明有錯誤,VI將忽略錯誤代碼。如沒有錯誤,VI將對其進行檢測。非0值表示錯誤。</p><p> 錯誤源是描述錯誤代碼來源的可選字符串。</p><p> 對話框類型確定顯示的對話框類型。不論值如何,VI都將輸出錯誤信息和描述錯誤的消息。</p>&
110、lt;p> 錯誤輸入表明VI或函數(shù)運行前發(fā)生的錯誤。狀態(tài)的值為TRUE(叉)時表示在VI或函數(shù)運行前已發(fā)生錯誤,值為FALSE(勾)時表示警告或無錯誤。默認值為FALSE。代碼是錯誤或警告代碼。默認值為0。如狀態(tài)的值為TRUE,代碼將為非零錯誤代碼。如狀態(tài)的值為FALSE,代碼將為0或警告代碼。源表示錯誤或警告的源,大多數(shù)情況下表示出現(xiàn)錯誤或警告的VI或函數(shù)名。默認值為空字符串。</p><p> 錯誤
111、?表明是否發(fā)生錯誤。如VI發(fā)現(xiàn)了錯誤,它將在錯誤簇中設置該參數(shù)。代碼輸出是由錯誤輸入或錯誤輸出表明的錯誤代碼。源輸出表明錯誤的源。 源輸出字符串比錯誤輸入的源字符串更具描述性。錯誤輸出包含錯誤信息。如錯誤輸入表明在VI或函數(shù)運行前已發(fā)生錯誤,錯誤輸出將包含相同的錯誤信息。否則,表明VI或函數(shù)中出現(xiàn)的錯誤狀態(tài)。右鍵單擊錯誤輸出的前面板顯示控件,從快捷菜單中選擇解釋錯誤可獲取更多關于該錯誤的信息。</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- labview智能小車畢業(yè)設計(含外文翻譯)
- labview智能小車畢業(yè)設計(含外文翻譯)
- 畢業(yè)設計--智能小車設計
- 智能小車設計畢業(yè)設計
- 智能小車畢業(yè)設計
- 畢業(yè)設計_智能清障小車設計
- 智能小車系統(tǒng)設計畢業(yè)設計
- 智能小車設計--優(yōu)秀畢業(yè)設計
- 畢業(yè)設計_智能清障小車設計
- 智能小車畢業(yè)設計報告
- 電動智能小車設計畢業(yè)設計論文
- 智能化小車畢業(yè)設計
- 電動智能小車畢業(yè)設計論文
- 畢業(yè)設計+智能循跡避障小車設計
- 藍牙智能遙控小車畢業(yè)設計論文
- 智能遙控避障小車畢業(yè)設計
- 智能機器人小車畢業(yè)設計
- 【畢業(yè)設計】智能清障小車畢業(yè)設計說明書
- 【畢業(yè)設計】智能清障小車畢業(yè)設計說明書
- 智能避障小車畢業(yè)設計論文
評論
0/150
提交評論