羅春林 崔浩 舒朝君 王亞



摘 ?要: 針對采用半導體式酒精傳感器MQ?3的智能汽車酒駕測控系統中傳感器測量誤差不容忽視的問題,提出一種使用三次樣條插值進行酒精傳感器溫度補償的方法。對酒精氣體濃度范圍為0.09~0.36 mg/L,溫度范圍為0~50 ℃的常見環境條件進行基于ARM9的智能汽車酒駕測控系統設計和硬件選型。該系統集成酒精檢測、狀態顯示、語音報警和驅動繼電器動作以禁止汽車啟動等功能,能夠實現從源頭抑制酒駕;還考慮避免隨行人員飲酒所造成的干擾問題,重點研究三次樣條插值算法在酒精濃度測量結果溫度補償方面的應用。通過與酒駕測量儀KY?8200的實驗對比,驗證了該方案的有效性。
關鍵詞: MQ?3; 酒駕抑制; 三次樣條插值; 酒精檢測; 測量誤差; 溫度補償
中圖分類號: TN915?34; TP212.1 ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2019)10?0161?05
Design of intelligent car drunk driving measurement and control system
based on cubic spline interpolation
LUO Chunlin1, CUI Hao2, SHU Chaojun1, WANG Ya1
(1. School of Electrical Engineering and Information, Sichuan University, Chengdu 610065, China;
2. Xiangyang Power Supply Company of State Grid Hubei Electric Power Co., Ltd., Xiangyang 441000, China)
Abstract: In allusion to the problem that the sensor′s measurement error cannot be ignored in the intelligent car drunk driving measurement and control system equipped with the semiconductor?type ethanol sensor MQ?3, an alcohol sensor temperature compensation method based on cubic spline interpolation is proposed. An intelligent car drunk driving measurement and control system based on the ARM9 is designed, and hardware model selection is conducted for the alcohol gas environment condition with its concentration range of 0.09~0.36 mg/L and temperature range of 0~50 oC. In the system, the functions of alcohol detection, status display, voice alarm, and inhibiting car start by driving relay movements are integrated to realize drunk driving suppression from the source. The application of the cubic spline interpolation algorithm in the temperature compensation aspect of alcohol concentration measurement results is emphatically researched. The effectiveness of the scheme was verified by the comparison experiment with the drunk driving gauge KY?8200.
Keywords: MQ?3; drunk driving inhibition; cubic spline interpolation; alcohol detection; measurement error; temperature compensation
0 ?引 ?言
在智能汽車的設計研發中,引入酒駕測控功能,對于實現主動抑制頻頻出現的酒駕這種惡意駕駛行為,從而減少生命財產損失和提高交通效率具有十分重要的作用。常規的酒駕測控系統更多地關注如何實現駕駛員呼出氣體酒精含量的測定,常用模式識別、模糊聚類分析和支持向量機等方法避免隨行人員飲酒所造成的干擾作用[1],而往往忽略了傳感器本身測量誤差所帶來的系統誤報警。尤其是基于電導率法的半導體傳感器,因其響應速度快、驅動簡單和成本低且適用于單警設備而得到大量應用,但其通常存在受環境溫度影響較大的不足。因此,在實際應用中通過算法進行軟件補償,對于在保持硬件電路不變的前提下提升系統檢測的準確性和可靠性,從而提高系統性價比存在十分重要的現實意義。目前,使用較多的軟件補償方法有最小二乘法[2]、神經網絡法[3]、遺傳算法[4]和回歸算法[5]等一系列算法及其融合[6],但這些算法或是存在精度不高的問題,或是具有訓練樣本大,網絡不穩定且訓練時間長等弊端。數值分析中的三次樣條插值算法是一種易于編程實現且精度高的算法,常被用于傳感器的誤差補償中。
因此,本文為了更精確地檢測駕駛員呼出氣體中的酒精含量,實現汽車智能識別酒駕的功能,提出一種以ARM9為核心,系統集成車內酒精氣體濃度檢測、溫度檢測、LCD顯示、語音報警和禁止汽車啟動等功能于一體的酒駕測控系統設計方案。通過干擾識別程序排除隨行人員飲酒所造成的影響,三次樣條插值算法程序對MQ?3檢測結果進行校準修正,以確保系統檢測的準確性,從而增強汽車的智能識別能力。
1 ?酒駕測控系統
圖1是酒駕測控系統的結構圖。該系統以基于ARM9為內核的S3C2440作為控制核心,分別在方向盤前、副駕座位車頂靠右、后排座椅中部等合適位置安裝MQ?3以形成傳感器網絡。通過將傳感器檢測到的信號分別送入ARM9進行軟件補償,經干擾識別后使其與預設酒精濃度值相比較,判斷是否禁止汽車啟動,同時進行語音提示和液晶顯示檢測結果,實現從源頭杜絕酒駕。

圖1 ?測控系統結構圖
1.1 ?硬件模塊
1.1.1 ?酒精傳感器
MQ?3電路圖如圖2所示。MQ?3采用電導率法檢測環境中的酒精氣體濃度,測量范圍0.04~4 mg/L,適用于國家規定的酒駕判定基準。傳感器具備模擬和數字兩種輸出形式,模擬輸出方式下輸出端連接ARM9的GPIO口進行A/D轉換,得到A/D轉換的電壓值;數字方式下,通過設置LM393的電壓比較值的大小,當傳感器輸出電壓大于該值時,ARM9將接收到酒精濃度超標的數字信號0,并直接對其進行處理。

圖2 ?MQ?3電路圖
1.1.2 ?溫濕度傳感器
SHT21屬于集成數字輸出式溫濕度傳感器,具有標準I2C格式輸出,能夠自動對檢測信號進行精確的校準,測量范圍可達-40~125 ℃,測量精度為±0.3 ℃,平均響應時間為5 s,滿足系統對測量的準確性和實時性要求。其電路如圖3所示。

圖3 ?SHT21電路
1.1.3 ?語音報警模塊
采用美國ISD公司生產的ISD4004?08實現語音報警,芯片工作電壓3.3 V, SPI通信方式,其外圍電路如圖4所示。

圖4 ?語音報警電路
1.1.4 ?其他電路模塊
點火控制電路[7]由繼電器的通斷決定能否正常啟動汽車,采用常閉式開關,當控制信號有效時,點火電路被切斷,汽車無法正常啟動。電源電路采用集成式開關電源和分離降壓模塊LM1117產生5 V和3.3 V電壓以供各模塊用電。具體電路如圖5所示。
1.2 ?軟件流程
上電后系統首先進行初始化設置,以確保各功能模塊正常工作。初始化完成后,系統依次執行切斷點火電路、LCD顯示系統正常的指令,并開始采集傳感器的測量數據。當檢測到方向盤處的MQ?3輸出數字信號0時,系統直接進行報警,說明駕駛員已經達到嚴重醉酒駕駛的程度;而當其輸出數字信號1時,則對各酒精傳感器輸出用三次樣條插值算法進行溫度補償,實時計算各測量結果,經干擾識別后與預設值相比較,當結果小于預設值時系統接通點火電路,否則便進行語音報警和LCD提示。軟件流程見圖6。

圖5 ?其他模塊電路圖

圖6 ?軟件流程圖
圖6中的干擾識別是將汽車里面安放的各個傳感器的酒精濃度相對比,用多種算法實現,比如支持向量機算法。以Ca,Cb,Cc分別表示駕駛員、副駕和后排乘客的酒精測量濃度,M表示預設下限值,當Ca>Cb&&Ca>Cc,且Ca>M時判定為酒駕;當Ca
2 ?三次樣條插值算法
當插值節點很多時,使用高次多項式插值容易使數值不穩定并增加舍入誤差,而一般的分段低次插值法又會導致插值函數在子區間的端點處不光滑。三次樣條插值[8]由分段三次曲線連接而成,在連接點處具有二階連續導數,從而可以確保在連接點處的光滑性,因此三次樣條插值具備分段低次插值最好的效果。
通常,對閉合區間[[A,B]]進行某一確定劃分[A=x0 1) 在區間[[A,B]]上具有連續二階導數; 2) 在每個子區間[[xi,xi+1]][(0≤i≤n-1)]上,[s(x)]為三次多項式; 3) 滿足插值條件[s(xi)=yi],其中[i=0,1,2,…,n]。則稱[s(x)]為三次樣條插值函數。根據[s(x)]在內節點[xi]([i=1,2,…,n-1])處連續及自然邊界條件可得: [s(xi-0)=s(xi+0)s′(xi-0)=s′(xi+0)s″(xi-0)=s″(xi+0)s″(x0)=s″(xn)=0] ? ? ? ? ? (1) 為了求解[s(x)],假定[s′(xi)=mi],利用分段三次Hermite插值,可將[s(x)]表述為: [s(x)=i=0nyiαi(x)+miβi(x)] ? ? ? ?(2) 式中,[αi(x)]和[βi(x)]是分段三次Hermite插值基函數。記[hi=xi+1-xi],則在區間[[xi,xi+1]]上,[s(x)]為: [s(x)=(x-xi+1)2hi+2(x-xi)h3iyi+(x-xi+1)2(x-xi)h2imi+(x-xi)2hi+2(xi+1-x)h3iyi+1+(x-xi)2(x-xi+1)h2imi+1] 連續兩次對其求導,可得: [s″(x)=6x-2xi-4xi+1h2i·mi+6x-4xi-2xi+1h2i·mi+1+ ? ? ? ? ? ? ? 6(xi+xi+1-2x)h3i·(yi+1-yi)] ? ? ? (4) 代入插值節點xi,則有: [s″(xi+0)=-4himi-2himi+1+6h2i(yi+1-yi)] (5) 同理,由[s(x)]在[[xi-1,xi]]上的表達式及類似上面的推導可得: [s″(xi-0)=2hi-1mi-1+4hi-1mi-6h2i-1(yi-yi-1)] ?(6) 由內節點[xi]處的連續性條件得: [2hi-1mi-1+41hi-1+1himi+2himi+1= ? ? ? 6yi+1-yih2i+yi-yi-1h2i-1] ? ? ?(7) 式中,[i=1,2,…,n-1]。將自然邊界條件中的[s″(x0)]和[s″(xn)]分別代入式(5)、式(6)可以得到式(8)所示關系式: [2m0+m1=3fx0,x1mn-1+2mn=3fxn-1,xn] ? ? ? ? (8) 由式(7)和式(8)共同組成的方程組系數矩陣為非奇異矩陣,故方程組存在惟一解,將求解得到的各未知數[mi]代入式(2)即可求得其三次樣條插值函數[s(x)]。 3 ?溫度補償過程 通過擬合標準溫度、標準酒精氣體濃度和MQ?3輸出值之間的插值函數曲線,達到直接補償傳感器測量誤差的作用。在m+1個標準環境溫度Ti(i=0,1,2,…,m),n+1個標準酒精氣體濃度Cj(k=0,1,2,…,n)下進行傳感器的標定,基于標定數據得到輸入輸出關系: [Oij=f(Ti,Cj)] (9) 下面介紹利用三次樣條插值算法對酒精傳感器進行溫度補償的具體步驟[9]: 1) 固定溫度Ti,對酒精傳感器的模擬輸出值Oij和標準酒精氣體濃度Cj進行三次樣條插值,i從0~m取值,得到m+1條輸出信號與被測濃度的插值曲線; 2) 將實際測量的傳感器輸出O分別代入這m+1條曲線,可得m+1個被測濃度Ci; 3) 對Ti和Ci進行三次樣條插值,得T與C插值曲線; 4) 將實際測得的環境溫度代入T與C的插值曲線,便能求得與T,O所對應的C。 4 ?實驗數據處理 4.1 ?酒精傳感器標定 實驗中,以25%的1 mL酒精從1倍稀釋到10倍,得到稀釋倍數和酒精濃度(mg/L)的實驗數據如表1所示。
實驗中采用恒溫恒濕高低溫箱提供各種溫度測試環境,以20 ℃為基準值,每5 ℃記錄一次酒精傳感器的A/D轉換值,得到70個標定數據。以溫度為x軸、酒精濃度A/D值為y軸、酒精濃度為z軸,使用Matlab中的griddata( )函數擬合實驗數據如圖7所示。

圖7 ?酒精傳感器原始輸出數據
在環境溫度為25 ℃,空氣相對濕度為46%RH,1.01×105 kPa標準大氣壓下,使用Matlab中的三次樣條插值函數spline( )擬合傳感器A/D值和酒精濃度的函數圖形,得到圖8中實線曲線。改變測量環境溫度,得到對應20 ℃和30 ℃的傳感器輸出曲線,分別見圖8中虛線和細線。可以看出,在常態下,標定的酒精傳感器在不同溫度環境下工作時會帶來測量誤差,因此需要進行溫度補償。

圖8 ?酒精傳感器MQ?3的標定曲線
以環境溫度為32 ℃,濕度為46%RH,MQ?3輸出值為1.20 V,求此刻的酒精濃度值為例,將1.20 V分別代入與20 ℃,25 ℃,…,50 ℃對應的插值曲線,得到其所在插值區間的酒精濃度如表2所示。
將酒精濃度值對溫度進行三次樣條插值,得到如圖9所示擬合曲線,求得32 ℃所對應的濃度值為0.202 mg/L。

圖9 ?1.2 V輸出時的酒精濃度曲線
4.2 ?對比實驗
為驗證該溫度補償方案的有效性,將本酒駕測控系統與KY?8200酒駕專用檢測儀進行對比實驗,得到實驗數據記錄結果如表3所示,其中#1代表KY?8200,#2代表本文系統。


對比實驗表明,采用三次樣條插值方法補償標定后的傳感器MQ?3能夠對酒精氣體濃度進行較準確的測量,其平均誤差為0.01 mg/L,能夠達到實際應用的要求。
5 ?結 ?論
本文選用功能強大、應用廣泛的ARM處理器作為控制器,配合Linux,WinCE等操作系統能夠避免使用單片機所帶來的功能單一、系統可擴展性不強等缺點,對酒駕測控系統進行了系統結構的設計和功能實現,三次樣條插值算法的引入提高了系統檢測結果的準確度,該算法簡單方便且易于編程實現,在酒駕測控系統的實際應用方面具有現實指導意義。后續的研究工作可在已有嵌入式系統的基礎上加入駕駛員疲勞識別、全球定位系統(GPS)、通用分組無線服務(GPRS)等功能。當檢測到駕駛員屬于飲酒或疲勞駕駛時給出報警,若駕駛員采取暴力手段執意啟動汽車,則系統通過GPRS將車輛信息(車牌號、車輛位置)實時地發送到交管部門監控中心,以便及時出警予以制止,將危險駕駛扼制在第一時間。
注:本文通訊作者為舒朝君。
參考文獻
[1] 劉相娟.駕駛人員酒駕自動檢測挖掘方法研究與仿真[J].計算機仿真,2013,30(2):144?147.
LIU Xiangjuan. Driving personnel research and simulation of the automatic detecting and mining method of drunk drivers [J]. Computer simulation, 2013, 30(2): 144?147.
[2] 張開遠,周孟然,閆鵬程,等.基于最小二乘法的pH值溫度補償系統設計[J].傳感器與微系統,2015,34(5):109?111.
ZHANG Kaiyuan, ZHOU Mengran, YAN Pengcheng, et al. Design of temperature compensation system of pH value based on least square method [J]. Transducer and microsystem technologies, 2015, 34(5): 109?111.
[3] 陳遠鳴,常建華,沈婉,等.基于改進型BP神經網絡的SF6氣體傳感器[J].電子測量與儀器學報,2017,31(10):1582 ?1588.
CHEN Yuanming, CHANG Jianhua, SHEN Wan, et al. SF6 gas sensor based on improved BP neural network [J]. Journal of electronic measurement and instrumentation, 2017, 31(10): 1582?1588.
[4] 陳曉穎,宋愛國,李建清,等.遺傳算法在硅壓阻氣壓傳感器溫度補償中的應用[C]//2010年航空試驗測試技術峰會.上海:中國航空學會,2010:305?308.
CHEN Xiaoying, SONG Aiguo, LI Jianqing, et al. Application of genetic algorithm in temperature compensation of silicon pressure?resistance barometric pressure sensor [C]// Proceedings of 2010 Aviation Test and Test Technology Academic Conference. Shanghai: Chinese Society of Aeronautics and Astronautics, 2010: 305?308.