• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于LabVIEW的燃氣發(fā)動機排放數(shù)據(jù)采集系統(tǒng)設(shè)計

      2012-09-10 03:18:46馬凡華齊政亮趙建彪何義團韓曉東
      汽車科技 2012年6期
      關(guān)鍵詞:狀態(tài)機隊列發(fā)動機

      馬凡華,齊政亮,趙建彪,何義團,韓曉東

      (清華大學(xué)汽車安全與節(jié)能國家重點實驗室,北京,100084)

      隨著汽車保有量的不斷增加,空氣質(zhì)量問題越來越引起人們的重視,同時排放法規(guī)日益嚴格,這些都要求汽車發(fā)動機在運行過程中具有良好的排放性能。因此,在發(fā)動機標(biāo)定過程中,實時獲得不同轉(zhuǎn)速、負荷下的各項排放數(shù)據(jù),將有助于發(fā)動機排放性能的優(yōu)化。

      LabVIEW是一種工業(yè)標(biāo)準(zhǔn)圖形化編程工具,具有數(shù)據(jù)采集與分析、信號發(fā)生與處理、輸入輸出控制等功能[1]。在LabVIEW中開發(fā)的程序被稱為VI(虛擬儀器),包含前面板、程序框圖以及圖標(biāo)三部分。其中,前面板是圖形化用戶界面,該界面上有交互式的輸入和輸出兩類控件,用于數(shù)據(jù)輸入和觀察量輸出的設(shè)置;程序框圖是實現(xiàn)VI邏輯功能的圖形化源代碼;圖標(biāo)/連線端口用于將程序定義為子程序,以利于在其他程序中調(diào)用[2]。

      本文以LabVIEW作為編程工具,設(shè)計開發(fā)燃氣發(fā)動機排放數(shù)據(jù)采集系統(tǒng)。

      1 試驗硬件系統(tǒng)

      試驗用燃氣發(fā)動機為東風(fēng)汽車有限公司生產(chǎn)的EQD210N-20單點電控天然氣噴射發(fā)動機。

      電控系統(tǒng)采用實驗室自己設(shè)計的ECU,具有傳感器信號處理、工況判斷、運算處理、執(zhí)行器控制信號輸出等功能,完全滿足發(fā)動機運行需求。

      排放測量采用的是HORIBA公司生產(chǎn)的排氣分析儀 MEXA-7100FX, 可以測量 CO、CO2、THC、CH4、NOx等。其測量精度較高,可選擇量程范圍廣,響應(yīng)快速穩(wěn)定[3]。

      數(shù)據(jù)采集采用NI公司的USB-6009多功能數(shù)據(jù)采集卡。其有8路模擬輸入通道(14位分辨率,48 KS/s),2路模擬輸出通道 (12位分辨率,150 KS/s),12條數(shù)字I/O線,32位分辨率計數(shù)器。可采集排放儀輸出的模擬信號,通過USB口傳輸?shù)缴衔粰C,供LabVIEW程序進行處理。試驗硬件系統(tǒng)構(gòu)成如圖1。

      2 程序設(shè)計模式

      在LabVIEW程序設(shè)計中,常用的程序設(shè)計模式有: 狀態(tài)機 (State Machine)、主/從結(jié)構(gòu)(Master/Slave)、生產(chǎn)者/消費者結(jié)構(gòu)(Producer/Consumer)、隊列消息結(jié)構(gòu) (Queued Message Handler)、啟動界面(Launcher)等[2]。 本文將以 Anthony Lukindo 改進的隊列狀態(tài)機[4]為架構(gòu),進行系統(tǒng)軟件的開發(fā)設(shè)計。

      2.1 狀態(tài)機

      狀態(tài)機是LabVIEW程序設(shè)計中最常使用的設(shè)計模式之一,可以清晰地實現(xiàn)任何狀態(tài)圖之間的轉(zhuǎn)移,常用在“決策”算法中,例如監(jiān)測、控制和診斷等。狀態(tài)機包含三要素:狀態(tài)、事件和動作。

      狀態(tài)機程序框圖,主要有一個主循環(huán)和一個Case結(jié)構(gòu)組成,并利用移位寄存器來實現(xiàn)狀態(tài)間的轉(zhuǎn)移[2]。其中,主循環(huán)為While循環(huán),用于維持狀態(tài)機的運行,主循環(huán)里面包含一個條件結(jié)構(gòu),用于對各個不同狀態(tài)進行判斷,實現(xiàn)狀態(tài)間的轉(zhuǎn)移[5]。

      2.2 生產(chǎn)者/消費者結(jié)構(gòu)

      生產(chǎn)者/消費者結(jié)構(gòu)主要用于數(shù)據(jù)的處理,循環(huán)之間通過隊列來傳遞數(shù)據(jù)。

      數(shù)據(jù)采集系統(tǒng),一般包括數(shù)據(jù)采集、數(shù)據(jù)分析和結(jié)果顯示三個步驟。若通過數(shù)據(jù)流直接將這三個步驟連接起來,即每進行一次采集數(shù)據(jù)都要經(jīng)過數(shù)據(jù)分析及顯示后才能開啟第二輪采集,則數(shù)據(jù)分析引起的時間延遲有可能增大數(shù)據(jù)采集的周期,更有甚者造成數(shù)據(jù)的丟失或重復(fù)利用等問題。采用生產(chǎn)者/消費者結(jié)構(gòu)的數(shù)據(jù)采集系統(tǒng),通過并行的方式實現(xiàn)多個循環(huán)。其中一個循環(huán)不斷地采集數(shù)據(jù)(生產(chǎn)者),另一個循環(huán)不斷地處理數(shù)據(jù)(消費者),這兩個循環(huán)通過消息隊列進行通信,彼此之間不產(chǎn)生干涉,從而可以很好地解決這些問題[5]。

      2.3 隊列狀態(tài)機

      隊列狀態(tài)機是把所有要執(zhí)行的狀態(tài)存在隊列中,并將狀態(tài)名與狀態(tài)機的每個狀態(tài)進行一一對應(yīng),以達到控制狀態(tài)轉(zhuǎn)換順序的目的。當(dāng)某一狀態(tài)執(zhí)行完成,其狀態(tài)名稱將會從隊列中刪除,同時依據(jù)運行時狀態(tài)的動作或觸發(fā)的事件,新的狀態(tài)名將會被添加到隊列中[6]。本文采用Anthony Lukindo改進的隊列狀態(tài)機[4],其結(jié)構(gòu)示意圖如圖2所示。

      從圖中可以看出,該隊列狀態(tài)機由事件結(jié)構(gòu)2、狀態(tài)結(jié)構(gòu)3和并行運行的子程序4.1-4.3組成,并通過隊列引用1相互連接。具體的實現(xiàn)步驟:1.1獲得子程序4.1-4.3的狀態(tài)引用;1.2為通過 “元素出隊列”VI獲取隊列中的第一個元素,并將該元素從隊列中刪除;1.3為通過 “按名稱解除捆綁”VI獲得狀態(tài)名和數(shù)據(jù);1.4為將獲得的狀態(tài)名與 “EXIT”的比較,相同時則停止循環(huán);1.5為隊列管理子VI;2.1為前面板動作產(chǎn)生的指令,將所需跳轉(zhuǎn)至的狀態(tài)名稱添加到隊列中;3.4為條件case結(jié)構(gòu);3.5為程序代碼;3.6 為下一個狀態(tài)序列[6]。

      3 軟件設(shè)計

      軟件部分具有數(shù)據(jù)采集、實時顯示、數(shù)據(jù)保存等功能,并采用模塊化的編程思想,利于程序的拓展。

      3.1 數(shù)據(jù)采集

      為了能夠測量不同轉(zhuǎn)速和負荷下的發(fā)動機排放數(shù)據(jù),需要分別設(shè)計轉(zhuǎn)速、進氣歧管絕對壓力、排放數(shù)據(jù)三部分的測量方案。

      3.1.1 轉(zhuǎn)速測量

      為了能夠測量發(fā)動機的轉(zhuǎn)速,一般都在曲軸上安裝一個齒盤和一個曲軸轉(zhuǎn)角傳感器。本實驗使用的天然氣發(fā)動機采用的是22個7°的齒,齒與齒之間的間隔有21個為8°,剩下一個為38°。

      本文采用可變磁阻式曲軸轉(zhuǎn)角傳感器,主要參數(shù)輸出電壓幅值/轉(zhuǎn)速為400 mV/60r/min。經(jīng)過實驗室自己設(shè)計ECU的信號處理,可將轉(zhuǎn)速信號處理為0~5V的方波。用USB6009測量時,使用其32位計數(shù)器功能,下降沿觸發(fā),就可對方波個數(shù)進行計算。通過計算單位時間內(nèi)收到的方波個數(shù)就可以計算出發(fā)動機當(dāng)前轉(zhuǎn)速。測量方案如圖3所示。

      采用LabVIEW進行編程,轉(zhuǎn)速采集程序如圖4所示,因共有22個齒,故采用移位寄存器的方法實現(xiàn)第1齒和第22齒的時間記錄,每當(dāng)前后齒數(shù)相差等于22時,進入轉(zhuǎn)速計算結(jié)構(gòu)中,容易得到轉(zhuǎn)速n=(r/min)

      3.1.2 進氣歧管絕對壓力測量

      采用進氣歧管絕對壓力傳感器來測量進氣歧管的壓力,ECU根據(jù)此信號判斷進入發(fā)動機的空氣量和發(fā)動機的負荷,本實驗采用的傳感器可測量的壓力范圍為20~200 kPa,壓力傳感器的輸出范圍在0~5 V范圍內(nèi),經(jīng)濾波后可以直接被USB6009的AD轉(zhuǎn)換口接收,從而計算出發(fā)動機負荷狀態(tài)。

      3.1.3 排放數(shù)據(jù)測量

      MEXA-7100FX排氣分析儀在對發(fā)動機尾氣分析過程中,會輸出相應(yīng)的電壓信號 (0~5 V),使用USB6009進行AD采集,即可完成對排放數(shù)據(jù)的采集。

      3.2 程序功能實現(xiàn)

      由于轉(zhuǎn)速、進氣歧管絕對壓力、排放均能由USB-6009完成采集,因此將其封裝成子VI,采用基于隊列狀態(tài)機進行編程。如圖5所示,主程序接受數(shù)據(jù)采集子VI傳遞來的數(shù)據(jù),并實現(xiàn)數(shù)據(jù)實時顯示、數(shù)據(jù)保存功能,而數(shù)據(jù)(轉(zhuǎn)速、壓力、排放)采集封裝在子VI中。

      在數(shù)據(jù)采集子VI中,如圖6,將DAQ采集到的數(shù)據(jù)和狀態(tài)一起捆綁成簇,當(dāng)保存按鈕為假時,只以隊列的形式將數(shù)據(jù)和“Get the Data”狀態(tài)傳送至主程序,實現(xiàn)數(shù)據(jù)的實時顯示;當(dāng)保存按鈕為真時,采用順序結(jié)構(gòu),依次將 “Get the Datas”和 “Save the Datas”狀態(tài)傳送至主程序,從而實現(xiàn)數(shù)據(jù)的實時顯示和保存功能。前面板如圖7。

      3.3 數(shù)據(jù)的保存

      由于實驗中需要實時保存轉(zhuǎn)速、進氣歧管壓力、排放(HC、CO、NOx)等數(shù)據(jù),通道多,數(shù)據(jù)量較大,為方便數(shù)據(jù)保存和管理,采用TDMS(Technical Data Management Streaming)文件格式保存數(shù)據(jù)。TDMS文件,采用二進制數(shù)據(jù)格式,具有占用磁盤空間小以及支持數(shù)據(jù)流高速寫盤的特點,是NI公司近年來重點開發(fā)的測試測量數(shù)據(jù)存儲格式[7]。其有三層結(jié)構(gòu):文件、組和通道,每個文件下可以設(shè)置多個組,每個組可以設(shè)置多個通道。在文件、組和通道上,都可以定義相應(yīng)屬性以及添加若干附加信息,利于數(shù)據(jù)查詢和管理[6]。

      在本系統(tǒng)數(shù)據(jù)存儲中,每次只有一個文件,以采集的次數(shù)為組名,以轉(zhuǎn)速、壓力以及HC、CO、NOx分別為通道名;數(shù)據(jù)讀取時,以組名依次讀取每個通道的數(shù)據(jù)。

      3.4 數(shù)據(jù)處理

      在數(shù)據(jù)處理過程中,采用基于動態(tài)鏈接庫DLL的TDMS文件的Matlab處理方法。為了更好地推廣TDMS文件,NI公司提供可供Matlab調(diào)用并處理TDMS文件的DLL動態(tài)鏈接庫。首先通過Matlab中l(wèi)oadlibrary函數(shù)載入動態(tài)鏈接庫nilibddc.dll和頭文件 nilibddc_m.h[8],接著通過 uigetfile 函數(shù)選取需要讀入Matlab的TDMS文件,然后通過calllib函數(shù)調(diào)用DDC_GetDataValues函數(shù)可以得到TDMS文件中的原始采集數(shù)據(jù),并可將其讀入到Matlab環(huán)境中,最后就可以運用Matlab強大的數(shù)據(jù)分析功能進行相關(guān)數(shù)據(jù)分析[7]。TDMS文件導(dǎo)入Matlab的NOx排放分析圖,如圖8所示。

      4 結(jié)語

      本文以LabVIEW隊列狀態(tài)機為主體結(jié)構(gòu),設(shè)計開發(fā)了發(fā)動機排放數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)能夠?qū)崟r采集發(fā)動機轉(zhuǎn)速、負荷及排放數(shù)據(jù),并具有數(shù)據(jù)顯示、保存的功能,響應(yīng)速度快,且可以避免采集數(shù)據(jù)的丟失,為發(fā)動機標(biāo)定提供完整的數(shù)據(jù)。在后續(xù)數(shù)據(jù)處理過程中,采用基于DLL文件的Matlab讀取TDMS文件的方法,不僅發(fā)揮了TDMS文件的優(yōu)勢,而且便于利用Matlab進行數(shù)據(jù)處理。

      [1]杜娟,邱曉暉,趙陽等.基于LabVIEW的數(shù)據(jù)采集與信號處理系統(tǒng)的設(shè)計[J].南京師范大學(xué)學(xué)報,2010,10(3):7-10.

      [2]陳錫輝,張銀鴻.LabVIEW8.20程序設(shè)計從入門到精通[M].北京:清華大學(xué)出版社,2007.

      [3]陳仁哲.燃氣發(fā)動機電控系統(tǒng)的軟硬件開發(fā)[D].北京:清華大學(xué),2011.

      [4]Anthony Lukindo.LabVIEW Queued State Machine Architeture[J],2007.

      [5]果實,薛磊,朱朝旭.基于LabVIEW隊列狀態(tài)機的鐵路信號電纜故障檢測系統(tǒng) [J].電腦知識與技術(shù),2011(29):7228-7229.

      [6]葉楓樺,周新聰,白秀琴等.基于LabVIEW隊列狀態(tài)機的數(shù)據(jù)采集系統(tǒng)設(shè)計 [J]. 現(xiàn)代電子技術(shù),2010,4(315):204-207.

      [7]陳宏希.TDMS文件及其 Matlab讀取方法[J].蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報,2010,10(4):28-30.

      [8]Reading TDM/TDMS Files with The MathWorks[J],2010.

      猜你喜歡
      狀態(tài)機隊列發(fā)動機
      隊列里的小秘密
      基于多隊列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
      發(fā)動機空中起動包線擴展試飛組織與實施
      在隊列里
      豐田加速駛?cè)胱詣玉{駛隊列
      新一代MTU2000發(fā)動機系列
      新型1.5L-Eco-Boost發(fā)動機
      FPGA設(shè)計中狀態(tài)機安全性研究
      基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
      呼伦贝尔市| 遂溪县| 淅川县| 漳平市| 五大连池市| 沁源县| 安西县| 龙井市| 且末县| 册亨县| 鲜城| 婺源县| 晴隆县| 平舆县| 若羌县| 永川市| 大同县| 永城市| 洛浦县| 贵溪市| 营山县| 巴里| 温泉县| 靖安县| 正安县| 德令哈市| 正镶白旗| 枣庄市| 桂平市| 通江县| 昭觉县| 乌什县| 锡林郭勒盟| 修文县| 秀山| 哈密市| 台北市| 泾源县| 龙陵县| 金阳县| 和硕县|