《LabVIEW 程序設(shè)計(jì)教程》課件第17章 油門控制系統(tǒng)_第1頁
《LabVIEW 程序設(shè)計(jì)教程》課件第17章 油門控制系統(tǒng)_第2頁
《LabVIEW 程序設(shè)計(jì)教程》課件第17章 油門控制系統(tǒng)_第3頁
《LabVIEW 程序設(shè)計(jì)教程》課件第17章 油門控制系統(tǒng)_第4頁
《LabVIEW 程序設(shè)計(jì)教程》課件第17章 油門控制系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第17章油門控制系統(tǒng)引子你開過車嗎?聽過這些關(guān)鍵詞嗎?離合器油門踏板剎車油門控制系統(tǒng)壓力變化數(shù)據(jù)采集計(jì)算踩踏量步進(jìn)電機(jī)修正指示燈修正信號生成17.1項(xiàng)目目標(biāo)本次項(xiàng)目要求用應(yīng)變橋傳感器、步進(jìn)電機(jī)、編碼器和指示燈設(shè)計(jì)實(shí)現(xiàn)汽車油門控制系統(tǒng)的模擬。要求實(shí)現(xiàn):當(dāng)油門踏板被踩下或松開后,汽車轉(zhuǎn)速有變化,并有相應(yīng)指示。本次項(xiàng)目要求實(shí)現(xiàn)模擬油門控制系統(tǒng),實(shí)現(xiàn)如下要求:(1)應(yīng)變梁所受壓力的變化來表征當(dāng)前油門踏板的踩踏量。壓力越大,表示踩踏量越大,發(fā)動(dòng)機(jī)進(jìn)氣量越大,則汽車速度越快。(2)根據(jù)應(yīng)變橋輸出電壓的大小控制步進(jìn)電機(jī)的轉(zhuǎn)速高低。用光電編碼器來測速。(3)使用多個(gè)發(fā)光二極管垂直(橫向)排列,作為當(dāng)前油門踏板踩踏量的變化的指示或者說表征當(dāng)前車輪轉(zhuǎn)速高低(或者說發(fā)動(dòng)機(jī)進(jìn)氣量的多少)。通過本項(xiàng)目的設(shè)計(jì)、實(shí)施,要求學(xué)生:(1)掌握使用NI-DAQmx實(shí)現(xiàn)多任務(wù)(模擬信號采集、數(shù)字信號輸出、角度測量)數(shù)據(jù)采集程序設(shè)計(jì);(2)了解雙循環(huán)如何實(shí)現(xiàn)數(shù)據(jù)傳遞;(3)了解主從結(jié)構(gòu)、掌握生產(chǎn)者/消費(fèi)者結(jié)構(gòu)的使用。17.2項(xiàng)目分析由項(xiàng)目目標(biāo)知本項(xiàng)目涉及的相關(guān)傳感器有:應(yīng)變橋傳感器、步進(jìn)電機(jī)、編碼器和發(fā)光二極管。用應(yīng)變橋傳感器輸出變化來模擬油門踏板的踩踏量;步進(jìn)電機(jī)運(yùn)轉(zhuǎn)來模擬車速,編碼器來檢測速度快慢;用六個(gè)發(fā)光二極管來提示進(jìn)氣量的大?。ɑ蛩俣瓤炻?;其中步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)與應(yīng)變橋所受壓力的關(guān)系為:(1)當(dāng)壓力增大時(shí),步進(jìn)電機(jī)轉(zhuǎn)速逐漸增大,期間,編碼器讀取已發(fā)脈沖數(shù)值,判定轉(zhuǎn)速是否達(dá)到設(shè)定的最大值。發(fā)光二極管隨著進(jìn)氣量的增大,其點(diǎn)亮的個(gè)數(shù)逐漸增多,到全亮;當(dāng)超過規(guī)定的進(jìn)氣量(車速),則六個(gè)發(fā)光二極管進(jìn)行閃爍作為報(bào)警。(2)當(dāng)壓力變小時(shí),步進(jìn)電機(jī)轉(zhuǎn)速逐漸減小直到0。發(fā)光二極管隨著進(jìn)氣量的減小,其點(diǎn)亮的個(gè)數(shù)逐漸減少,到全滅。(3)當(dāng)壓力為0且無任何操作時(shí),發(fā)光二極管不亮。本項(xiàng)目相關(guān)的硬件設(shè)計(jì)已在前面的章節(jié)中說明,從以上的項(xiàng)目分析中知:在軟件設(shè)計(jì)中同時(shí)需涉及模擬量的輸入(應(yīng)變傳感器信號檢測)數(shù)字量的輸出(步進(jìn)電機(jī)控制、發(fā)光二極管的亮滅)計(jì)數(shù)器輸入(編碼器檢測步進(jìn)電機(jī)轉(zhuǎn)過的角度)在完成整個(gè)程序設(shè)計(jì)前可以首先完成對各部分的軟硬件調(diào)試,繼而對其進(jìn)行整合。整個(gè)程序架構(gòu)可考慮用狀態(tài)機(jī)、生產(chǎn)者消費(fèi)者結(jié)構(gòu)等。17.3項(xiàng)目實(shí)現(xiàn)17.3.1生產(chǎn)者消費(fèi)者結(jié)構(gòu)17.3.2前面板設(shè)計(jì)17.3.3程序框圖設(shè)計(jì)1.雙循環(huán)結(jié)構(gòu)2.生產(chǎn)者消費(fèi)者設(shè)計(jì)模式17.3項(xiàng)目實(shí)現(xiàn)在前幾章項(xiàng)目實(shí)現(xiàn)中多采用了狀態(tài)機(jī)架構(gòu)或帶事件結(jié)構(gòu)的狀態(tài)機(jī)架構(gòu),無論哪一個(gè)在任何時(shí)刻只能有一個(gè)狀態(tài)在運(yùn)行。大多數(shù)比較復(fù)雜的應(yīng)用至少應(yīng)該有“菜單”和“采集”兩個(gè)狀態(tài),如果數(shù)據(jù)采集程序在運(yùn)行時(shí)仍然希望系統(tǒng)能夠處理菜單的事件,這是在傳統(tǒng)的狀態(tài)機(jī)或者事件結(jié)構(gòu)中無法實(shí)現(xiàn)的。因?yàn)闊o論是狀態(tài)機(jī)結(jié)構(gòu)還是事件結(jié)構(gòu),都是由一個(gè)循環(huán)組成的,不同的狀態(tài)是無法同時(shí)被響應(yīng)和處理的。因LabVIEW本身就是一種多線程的程序設(shè)計(jì)語言,要解決這個(gè)問題是比較簡單,如可以再加一個(gè)循環(huán)或者另外開一個(gè)程序獨(dú)立運(yùn)行。但是這樣也會帶來一些新的問題,比如:(1)兩個(gè)循環(huán)(程序)之間如何交換和共享數(shù)據(jù)。(2)兩個(gè)循環(huán)(程序)都有著獨(dú)立的錯(cuò)誤處理系統(tǒng),它們之間是如何協(xié)調(diào)的。(3)兩個(gè)循環(huán)如何分工呢?應(yīng)該以哪種方式對狀態(tài)進(jìn)行分類以將不同的狀態(tài)放置在不同的循環(huán)(程序)中?(4)一個(gè)程序如何控制另一個(gè)程序的運(yùn)行和停止。本項(xiàng)目首先使用“多循環(huán)”來解決程序并行運(yùn)行的問題,兩個(gè)循環(huán)采用全局變量或局域變量進(jìn)行數(shù)據(jù)交互和共享。但當(dāng)兩個(gè)循環(huán)執(zhí)行的速率不相等時(shí),必然會造成數(shù)據(jù)的丟失或重復(fù)。多循環(huán)之間可能使用LabVIEW提供的隊(duì)列操作函數(shù),在數(shù)據(jù)的發(fā)送者和接受者之間建立一條緩沖通道,這樣就避免了循環(huán)不同步所帶來的影響,即生產(chǎn)者消費(fèi)者結(jié)構(gòu)。17.3.1生產(chǎn)者消費(fèi)者結(jié)構(gòu)

NILabVIEW中提供了六種最基本的設(shè)計(jì)模式:標(biāo)準(zhǔn)狀態(tài)機(jī)、隊(duì)列消息處理器、生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式(事件)、生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式(數(shù)據(jù))、用戶界面事件處理器、主/從設(shè)計(jì)模式。其中狀態(tài)機(jī)和生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式應(yīng)用最為廣泛,而主/從設(shè)計(jì)模式與生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式結(jié)構(gòu)上極為相似,兩者的區(qū)別就是通知器和隊(duì)列之間的區(qū)別;本小節(jié)主要介紹生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式。生產(chǎn)者消費(fèi)者模型如同生活中的供水系統(tǒng),在數(shù)據(jù)產(chǎn)生/采集端(供水局)產(chǎn)生數(shù)據(jù)后,并不直接向終端用戶供水,因?yàn)榍罢弋a(chǎn)生水的速率與后者消耗水的速率并不相同。此時(shí)需要建造蓄水池將供水局產(chǎn)生的水放入到蓄水池中,同理獲取的數(shù)據(jù)也放入該緩沖區(qū)中。當(dāng)終端用戶需要用水時(shí),直接從蓄水池中獲取就可以了,同理在進(jìn)行數(shù)據(jù)顯示和分析時(shí)直接從數(shù)據(jù)緩沖區(qū)中獲取就可以了。LabVIEW中的隊(duì)列函數(shù)提供了一種很好的方式規(guī)避了這個(gè)問題,由于隊(duì)列中的元素是“先進(jìn)先出”的,因此確保了接收到的數(shù)據(jù)是有序的。在LabVIEW的隊(duì)列操作中(元素入隊(duì)列和元素出隊(duì)列函數(shù)),提供了timeout選項(xiàng)以處理數(shù)據(jù)緩沖區(qū)的溢出或不足。當(dāng)數(shù)據(jù)溢出時(shí),元素入隊(duì)列函數(shù)(數(shù)據(jù)進(jìn)入隊(duì)列)將停止發(fā)送數(shù)據(jù)(處于等待狀態(tài)),直到緩沖區(qū)存在數(shù)據(jù)空間或者達(dá)到了timeout設(shè)置的時(shí)間;而當(dāng)數(shù)據(jù)不足時(shí),元素出隊(duì)列函數(shù)(數(shù)據(jù)流出隊(duì)列)將停止接收數(shù)據(jù)(處于等到狀態(tài)),直到緩沖區(qū)進(jìn)入了新的數(shù)據(jù)或者達(dá)到了timeout設(shè)置的時(shí)間。值得注意的是,使用隊(duì)列最后一定要用釋放隊(duì)列引用函數(shù)將內(nèi)存釋放,否則程序會因內(nèi)存泄露而報(bào)警?;谑录纳a(chǎn)者/消費(fèi)者模式與基于數(shù)據(jù)的生產(chǎn)者/消費(fèi)者模式?jīng)]有本質(zhì)上的區(qū)別,只是數(shù)據(jù)的來源不同?;谑录纳a(chǎn)者/消費(fèi)者模式是用戶在前面板上進(jìn)行操作,從而觸發(fā)了生產(chǎn)者中的事件結(jié)構(gòu)。獲取隊(duì)列引用函數(shù)將數(shù)據(jù)傳遞給元素入隊(duì)列函數(shù),通過隊(duì)列的執(zhí)行順序關(guān)系,元素出隊(duì)列函數(shù)將數(shù)據(jù)傳遞給消費(fèi)者,執(zhí)行相應(yīng)的程序。17.3.2前面板設(shè)計(jì)油門控制系統(tǒng)前面板如圖17-5所示。使用波形圖表查看測得的應(yīng)變量。使用儀表控制查看速度,用6個(gè)布爾控制指示速度等級,當(dāng)超速時(shí)6個(gè)布爾控制一起閃爍進(jìn)行報(bào)警。17.3.3程序框圖設(shè)計(jì)1.雙循環(huán)結(jié)構(gòu)

當(dāng)用手指按壓應(yīng)變橋懸臂梁,壓力越大(進(jìn)氣量大),電機(jī)轉(zhuǎn)速(車速)越快,亮燈盞數(shù)越多;當(dāng)減小壓力(進(jìn)氣量)時(shí),電機(jī)轉(zhuǎn)速(車速)減緩,指示燈盞數(shù)減少。2.生產(chǎn)者消費(fèi)者設(shè)計(jì)模式雙循環(huán)中可以利用全局變量或局部變量傳遞數(shù)據(jù),但是當(dāng)兩個(gè)循環(huán)執(zhí)行的速率不相等時(shí),會造成數(shù)據(jù)的丟失或重復(fù)。因此可以考慮用生產(chǎn)者消費(fèi)者模式,盡管本系統(tǒng)是相對較為簡單的數(shù)據(jù)處理,使用生產(chǎn)著消費(fèi)者模式,有一點(diǎn)點(diǎn)大材小用,但對于該程序設(shè)計(jì)模式進(jìn)一步深入了解掌握是有好處的。生產(chǎn)者負(fù)責(zé)采集應(yīng)變梁的應(yīng)變信號,使用隊(duì)列函數(shù)傳遞踩踏量,傳遞至消費(fèi)者循環(huán),在消費(fèi)者循環(huán)中,根據(jù)踩踏量,做相應(yīng)處理。思考題17-1同步VI和函數(shù)除了隊(duì)列還有哪些?17-2LabVIEW有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論