李澤華,白云川,朱道偉,王 虎
(軍事交通學(xué)院軍用車輛系,天津300161)
汽車在使用過程中,隨著行駛里程增加,出現(xiàn)可靠性降低、經(jīng)濟性變差和故障率增加等現(xiàn)象[1],因此,需要定期對汽車的基本性能進(jìn)行檢測,以免造成交通安全隱患。汽車道路試驗是汽車檢測中極為重要的方法,是一種非常接近實際情況的試驗。它是指在普通道路下,通過采用專用儀器設(shè)備對汽車的基本性能進(jìn)行不解體檢測,可以為分析和判斷汽車的技術(shù)狀況提供定量依據(jù)。本文在采用Java串口通信技術(shù)的基礎(chǔ)上,對在道路條件下汽車行駛過程中的實時信號進(jìn)行采集、分析與處理,開發(fā)了基于Java串口通信技術(shù)的汽車基本性能檢測數(shù)據(jù)采集系統(tǒng)。
數(shù)據(jù)采集系統(tǒng)主要分為加速性能檢測、燃料消耗量檢測、制動性能檢測、滑行性能檢測、標(biāo)定功能和系統(tǒng)設(shè)置6個模塊,系統(tǒng)功能如圖1所示。
該系統(tǒng)采用的是上、下位機控制結(jié)構(gòu),上、下位機采用RS232串行通信。系統(tǒng)使用的傳感器是由瑞士QUICKLYAG公司研發(fā)的非接觸式光電速度傳感器和我國煙臺海晨科技有限公司研發(fā)的燃油流量傳感器,光電速度傳感器采集的信號經(jīng)過跟蹤濾波器和數(shù)據(jù)采集卡的處理,與燃油流量傳感器采集的信號一起通過RS232串行端口發(fā)送至上位機。上位機讀取下位機發(fā)送的各種信號并對數(shù)據(jù)進(jìn)行分析和處理,同時將處理后的數(shù)據(jù)存入數(shù)據(jù)庫。在系統(tǒng)的主面板上將實時顯示經(jīng)過處理后的各種信號,準(zhǔn)確提示檢測員下一步需要進(jìn)行的操作,檢測員只需按照相關(guān)指示即可完成對汽車基本性能的檢測。系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)示意
系統(tǒng)開發(fā)環(huán)境為Microsoft Windows 7操作系統(tǒng),數(shù)據(jù)庫采用Microsoft SQL Server 2005,編程語言為Java,開發(fā)工具為Eclipse。Sun公司的 J2SE中沒有直接提供串行通信協(xié)議的開發(fā)包,而是以獨立的jar包形式發(fā)布在java.sun.com網(wǎng)站上的javacomm 20-win 32.zip,稱之為 Java Communications API,Java通過該類庫能夠極大地簡化對串口的操作過程。javacomm 20-win 32.zip主要包含以下 3 個文件:comm.jar、win 32com.dll和 javax.comm.properties。comm.jar提供通信用的 Java API;win 32com.dll提供供comm.jar調(diào)用的本地驅(qū)動接口;javax.comm.properties是這個驅(qū)動的類配置文件,配置路徑如下:
<JAVA_HOME>jrelibcomm.jar
<JAVA_HOME > jrelibjavax.comm.properties
<JAVA_HOME>jreinwin 32com.dll
在運行串口包的時候,由于運行的程序是在JRE下的虛擬機啟動的,因此,還需將上述3個文件放到所運行JRE相應(yīng)的目錄下。
2.2.1 打開串口
CommPortIdentifier portId=CommPortIdentifier.getPortIdentifier(“portName”);//獲得一個想要打開串口的 CommPortIdentifier對象,“portName”為串口名稱
SerialPort sPort=(SerialPort)portId.open(“SerialMain”,1 000);//打開串口,“SerialMain”為串口所有者名稱,1 000為打開串口超時等待時間
SerialParameters parameters=new SerialParameters();//SerialParameters是自定義的一個為串口提供存儲參數(shù)的類
sPort. setSerialPortParams(parameters. get-BaudRate(),parameters.getDatabits(),parameters.getStopbits(),parameters.getParity());//設(shè)置串口初始化參數(shù),依次是波特率、數(shù)據(jù)位、停止位、校驗方式等
2.2.2 注冊監(jiān)聽器
SerialPort的監(jiān)聽器必須繼承于SerialPortEventListener接口。當(dāng)有任何SerialPort的事件發(fā)生時,將自動調(diào)用監(jiān)聽器中的serialEvent()方法。
sPort.addEventListener(this);
2.2.3 讀取串口數(shù)據(jù)
byte[]b=new byte[100];
InputStream is=sPort.getInputStream();//串口輸入流
int all_b=is.read(b);//讀取數(shù)據(jù)
2.2.4 向串口寫數(shù)據(jù)
OutputStream os=sPort.getOutputStream();//串口輸出流
os.write(date);//寫入數(shù)據(jù)
非接觸式光電速度傳感器(如圖3所示)是以一副梳狀結(jié)構(gòu)的硅電池作為敏感元件,地面反射光經(jīng)凸透鏡成像于該梳狀光電器件上,隨著汽車的運動,梳狀光電器件產(chǎn)生隨反射光強度變化的電流,此時會產(chǎn)生窄帶隨機信號,該信號經(jīng)一個自動跟蹤帶通濾波器和數(shù)字中心頻率檢測電路處理后,得到脈沖信號[2],根據(jù)脈沖信號與距離的轉(zhuǎn)換系數(shù),經(jīng)計算機處理,可得到汽車的移動距離、時間和行駛速度等物理量。
圖3 非接觸式光電速度傳感器結(jié)構(gòu)
燃油流量傳感器(如圖4所示)串聯(lián)在汽車的燃油管路中,用來獲取汽車的燃料消耗量。
圖4 燃油流量傳感器結(jié)構(gòu)
該傳感器主要由下部的由活塞組成的四連桿機構(gòu)和上部的轉(zhuǎn)速/脈沖變換器兩部分組成,活塞在燃油管路壓力的帶動下做往復(fù)運動,帶動四連桿機構(gòu)的曲軸做旋轉(zhuǎn)運動,轉(zhuǎn)速/脈沖變換器將這個旋轉(zhuǎn)信號轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)的電壓脈沖信號,通過計量脈沖信號的個數(shù),根據(jù)設(shè)備規(guī)定的轉(zhuǎn)換系數(shù)(一個脈沖信號對應(yīng)的燃料消耗量),計算出汽車在指定距離內(nèi)的燃料消耗量。
光電速度傳感器和燃油流量傳感器通過RS232串口發(fā)送的數(shù)據(jù)都是標(biāo)準(zhǔn)的脈沖信號,上位機從串口中采集到數(shù)據(jù)后,根據(jù)事先與下位機達(dá)成的通信協(xié)議,分別將這些脈沖信號轉(zhuǎn)換為汽車的行駛速度、行駛距離、行駛時間和燃料消耗量等參數(shù),通過對這些參數(shù)的分析和處理,對汽車的基本性能進(jìn)行評價。
下面以燃料消耗量檢測模塊中的“等速行駛?cè)剂舷牧繖z測”為例進(jìn)行詳細(xì)介紹。
等速行駛?cè)剂舷牧繖z測是檢測汽車在一定條件下的燃料消耗量,用以評價汽車的燃油經(jīng)濟性,主要評價參數(shù)是汽車的平均速度和燃料消耗量。要求被檢車輛在預(yù)熱行駛后,采用直接擋或最高擋等速地通過500 m的距離,測量汽車通過該路段的時間及燃料消耗量。檢測指定車速從20 km/h(最小穩(wěn)定車速高于20 km/h時,從30 km/h檢測)開始,以10 km/h的整數(shù)倍均勻選取車速,直到最高車速的50%,至少測定5個試驗車速。
根據(jù)GB/T 12545.2—2001《商用車輛燃料消耗量試驗方法》[3],對依維柯得意A40汽車進(jìn)行等速行駛?cè)剂舷牧繖z測,檢測車速為30、40、50、60、70 km/h。首先通過非接觸式光電速度傳感器和燃油流量傳感器進(jìn)行數(shù)據(jù)的采集,采集數(shù)據(jù)見表1。
使用傳感器采集到汽車的行駛距離、行駛時間、行駛速度和燃料消耗量等物理量后,系統(tǒng)分別對采集數(shù)據(jù)做不同的處理。
根據(jù)表1繪制往返的實際車速—百公里燃料消耗量曲線,從而得出檢測車速下的往返百公里燃料消耗量(見表2)。
表1 等速行駛?cè)剂舷牧繖z測數(shù)據(jù)
表2 檢測車速下的百公里燃料消耗量 L/100 km
4.2.1 數(shù)據(jù)的重復(fù)性檢驗
根據(jù)國家標(biāo)準(zhǔn),檢測結(jié)果必須經(jīng)重復(fù)性檢驗,重復(fù)性檢驗應(yīng)按照第95百分位分布來判斷。第95百分位分布的標(biāo)準(zhǔn)差R與重復(fù)檢測的次數(shù)n有關(guān)(見表3)。
表3 第95百分位分布的標(biāo)準(zhǔn)差與n的對應(yīng)關(guān)系
計算出標(biāo)準(zhǔn)差R之后,還需計算n次檢測結(jié)果中燃料消耗量的最大值與最小值之差ΔQmax。當(dāng)ΔQmax<R時 ,認(rèn)為檢測結(jié)果的重復(fù)性好,不必增加試驗次數(shù);當(dāng)ΔQmax>R時,認(rèn)為檢測結(jié)果的重復(fù)性差,應(yīng)增加試驗次數(shù)。本次檢測重復(fù)次數(shù)為2次,計算結(jié)果見表4。
可以看出:在車速為 30、40、60、70 km/h時,檢測結(jié)果的重復(fù)性好;而在車速為50 km/h時重復(fù)性不好,應(yīng)增加測試次數(shù)。
4.2.2 置信區(qū)間的計算
由于檢測結(jié)果受很多因素的影響,所以檢測結(jié)果是一個在一定范圍內(nèi)變化的隨機變量[4]。在一定置信度下(置信度90%),該范圍置信區(qū)間ΔQv為
將不同工況下的各數(shù)據(jù)代入式(1),可得被檢車輛在不同工況下的ΔQv(見表5)。
表4 R與ΔQmax的計算結(jié)果 L/100 km
表5 各工況下被檢車輛的置信區(qū)間
4.2.3 檢測數(shù)據(jù)的校正
由于燃料消耗量測定值不是在標(biāo)準(zhǔn)的環(huán)境下測得的,因此,須將測得的燃料消耗量校正到標(biāo)準(zhǔn)狀態(tài)的數(shù)值。標(biāo)準(zhǔn)狀態(tài)下各參數(shù)值分別為:氣溫20℃;氣壓100 kPa;柴油密度0.830 g/mL。校正公式如下:
式中:Q0為校正后的燃料消耗量,L/100 km;C1為環(huán)境溫度矯正系數(shù);C2為大氣壓力矯正系數(shù);C3為燃料密度矯正系數(shù)。其中
式中:T為檢測時的環(huán)境溫度,℃;p為檢測時的大氣壓力,kPa;Gd為檢測用的柴油的平均密度,g/mL。
在測量出檢測時的環(huán)境溫度、大氣壓力和柴油密度后,分別將式(3)—(5)代入式(2)可得校正后的燃料消耗量(見表6)。
表6 校正后等速行駛百公里燃料消耗量 L/100 km
4.2.4 檢測結(jié)果
根據(jù)等速百公里燃料消耗量的校正值,繪制被檢車輛等速百公里燃料消耗量曲線(如圖5所示)。
圖5 等速行駛百公里燃料消耗量曲線
為了說明和分析筆者提出的汽車基本性能檢測數(shù)據(jù)采集系統(tǒng)的實用性和可靠性,對系統(tǒng)中的各個功能模塊都選用了不同車輛做了大量的測試。以本系統(tǒng)分別對南京依維柯(1號車)和福特全順汽車(2號車)進(jìn)行等速行駛?cè)剂舷牧繖z測為例進(jìn)行比對。測試顯示的汽車等速行駛百公里燃料消耗量校正值見表7。
表7 1、2號車5次等速行駛?cè)剂舷牧繖z測數(shù)據(jù) L/100 km
通過比較可以看出,1號車與2號車校正后的燃油消耗量數(shù)值吻合較好,說明系統(tǒng)的可靠性良好,數(shù)據(jù)分析與處理精準(zhǔn),系統(tǒng)設(shè)計較為合理,可以反映實際檢測狀況。
本文對汽車基本性能檢測數(shù)據(jù)采集系統(tǒng)進(jìn)行了設(shè)計與實現(xiàn),通過利用Java串口通信技術(shù)實時采集傳感器發(fā)送的信號,根據(jù)相關(guān)國家標(biāo)準(zhǔn),將這些信號進(jìn)行分析和處理。實車驗證表明,該系統(tǒng)人機交互友好,檢測結(jié)果準(zhǔn)確、直觀,具有一定的實用意義。
[1] 高紅紅,勞奇成,盧春霞.汽車整車性能檢測系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2011(15):194-195.
[2] 余志生.汽車?yán)碚摚跰].5版.北京:機械工業(yè)出版社,2012:70-71.
[3] 國家質(zhì)檢總局.商用車輛燃料消耗量試驗方法:GB/T12545.2—2001[S].北京:國家質(zhì)檢總局,2001.
[4] 夏均忠.汽車檢測技術(shù)與設(shè)備[M].北京:機械工業(yè)出版社,2009:90-91.