孫藝哲,陳增瑞,靳 鴻,張 瑜
(1.中北大學 電子測試技術國家重點實驗室,太原030051;2.中北大學 儀器科學與動態測試教育部重點實驗室,太原 030051)
隨著經濟的發展以及人民生活質量的提高,醉酒駕駛的現象也越發嚴重,由醉駕而引起的交通事故也屢見不鮮。 目前,我國常用的手持式酒精檢測儀雖能檢測駕駛者是否醉駕, 但其缺乏主動性,無法在醉駕行為開始之前就給予駕駛者以警告。 與此同時, 高價的傳感器限制了防醉駕裝置的使用,導致其市場占有率一直不高[1-3]。
文中所設計的車載防醉駕系統旨在改變這一現狀:該系統被嵌入至車內,檢測行為在司機駕駛之前,從而改變被動檢測的局面[4];該系統采用易獲取的傳感器,通過多測點的方式在降低成本的同時獲得可靠數據,使用神經網絡對多路傳感器信號進行信息融合。
由文獻[5]人體酒精代謝模型可知,血樣中酒精濃度值BAC(blood alcohol concentration)在飲酒后0.5 h 內迅速上升,約1 h 達到峰值。 此后,BAC 幾乎呈直線下降,當降至一定程度后速度逐漸減慢。 文獻[6]顯示,醉酒后會附有心率增快、血壓降低、皮膚血管擴張等現象;駕駛員飲酒后,少部分酒精會通過呼氣、體液等途徑排除體外,因此選擇對車體內酒精氣體濃度、駕駛者的心率信息進行監測。 同時, 考慮到開窗等不確定因素對傳感器的影響,選擇多布點的測試方式,通過智能信息融合技術將不同的指標進行信息融合,從而對駕駛者是否飲酒做出判斷。
車載防醉駕系統結構如圖1 所示。 整個系統由車載電源供電,當駕駛者插入鑰匙旋轉至ACC 檔位時,車輛電瓶開始對外供電,該系統通過DC-DC 穩壓模塊接入汽車電源,酒精氣體傳感器收集車內多測點的酒精濃度信息,心率傳感器置于方向盤處以方便對駕駛者心率的檢測, 微控制器MCU(microcontroller unit)通過算法進行信息融合并做出判斷。若無飲酒駕駛,車輛可以正常點火啟動;否則,控制芯片與GSM 芯片通信, 向預設手機號發送提醒短信,并禁止汽車點火電路工作。

圖1 車載防醉駕系統結構Fig.1 Vehicle anti-drunk driving system structure
MQ-3 半導體酒精傳感器使用的氣敏材料是在清潔空氣中電導率較低的SnO2,當傳感器所處環境中存在酒精蒸氣時,傳感器的電導率隨空氣中酒精氣體濃度的增加而增大[7]。 通過標定試驗,傳感器輸出電壓與環境中酒精氣體濃度近似函數關系為

式中:f(x)為酒精氣體濃度值;x 為電壓值,標定曲線如圖2 所示。

圖2 酒精氣體傳感器標定曲線Fig.2 Calibration curve of alcohol gas sensor
市售常見的心率傳感器,按照測試原理主要分為兩類。 一類以光電透射測量法測量心率,LED 燈發出綠光照射在皮膚上,反應皮膚淺部微動脈的信息,通過光感受器測量反射光并轉化為電信號[8],該傳感器體積較小,只需監測人體指尖部位,但受雜光干擾影響較大。 另一類為手握式心率監測,使用心電信號測量原理,心肌纖維產生微小電流傳到皮膚表面,由于體表分布的不同而產生電位差,獲取該信號提取2 個相鄰R 波的時間間隔則可獲得被測者心率信息。
所設計的系統視駕駛者心率為重要參數,應該避免因外界影響而產生較大波動,同時考慮安裝方式,故選用后者,該傳感器可嵌置車輛方向盤處以方便測試。
所設計的系統為嵌入式設備,其主控芯片除了基本的控制外設工作外,還需要進行一定量的計算工作,包括信息的融合,因此需選用具有Cortex-M3內核的STM32F103ZET6 單片機, 其內核時鐘頻率高達72 MHz[9],且內部含有Flash 和SRAM,可以滿足設計所需。
GSM 模塊通過串口與中心控制模塊連接,通過AT 指令與中心控制模塊交換信息。 GSM 不僅支持移動通訊,還可依靠于基站之間的通訊實現地理定位[10]。所設計的系統可通過GSM 模塊將醉駕警告信息與位置信息通過短信發送至預設手機號中。
在文獻[5-6]的基礎上設計試驗:以一體重為68 kg 的成年男性為被測對象,在短時間內喝下一定量的酒(大于法律規定酒后駕駛標準),每隔一段時間對模擬環境下的裝置進行采樣以獲得數據,根據樣本數據構建人體酒精代謝模型和神經網絡評價模型。 考慮神經網絡預測模型的建立和實際應用的情況,需增加評價等級的指標對不同時刻的被測對象進行量化分級。 經過預處理后的部分樣本數據見表1。

表1 試驗數據Tab.1 Experiment data
由表可知,人體飲酒后約1 h,體內BAC 值達到峰值,此時記錄人體狀態量為10;未飲酒的初始狀態0 h 和完全分解后的穩定狀態均記為0, 表示體內酒精幾乎完全分解。
根據酒精在體內血液分解的動力學規律[11]可知,血液中酒精濃度與時間近似函數關系為

基于試驗數據運用遺傳算法對函數最佳參數進行搜索尋優, 為得到最終確定結果, 使用fminsearch 函數求得的最佳值為k=103.6538,q=0.1869,r=2.025。

圖3 人體酒精代謝模型曲線Fig.3 Curve of human alcohol metabolism model
經等級劃分后狀態值便為神經網絡的目標向量y,不同位置酒精傳感器的電壓輸出值、心率為輸出值為神經網絡輸入量(x1,x2,x3)。 神經網絡拓撲結構如圖4 所示。

圖4 神經網絡拓撲結構Fig.4 Neural network topology
為了確保訓練數據足夠充分,利用數據重構得到的代謝模型進行樣本擴充,選擇更小的時間間隔對重構函數進行采樣為神經網絡的訓練提供較為充足的樣本,最終確定樣本數為100 組。
隨后在MatLab 中使用上述數據進行模型訓練,訓練過程如圖5 所示。 由圖可見網絡訓練至60步時可達到目標精度要求。

圖5 神經網絡訓練過程Fig.5 Neural network training process
使用該網絡進行對部分實測數據進行驗證,觀察網絡的計算值與期望值, 誤差在可接受范圍內,如圖6 所示。 隨后使用命令語言“net.IW{1,1};net.b{1,1};” 等導出權值矩陣和閾值矩陣進行保存,以方便移植在嵌入式系統中進行離線工作。

圖6 神經網絡信息融合效果Fig.6 Renderings of neural network information fusion
所設計的系統包含多傳感器檢測模塊、MCU控制模塊、GSM 通訊模塊等, 對應程序需包括傳感器檢測子程序、模數轉換子程序、信息融合子程序、串口通訊子程序等,程序流程如圖7 所示。 所涉及的程序均使用C 語言在Keil 平臺進行編程調試。為便于開發,此次設計使用最小系統開發板。

圖7 程序總流程Fig.7 Process master flow chart
下位機子程序中信息融合子程序較為特殊。眾所周知, 神經網絡是利用神經元之間的連接對輸入與輸出的關系進行建立與保存的, 故在此將已經訓練好的連接關系在Keil 平臺以數組的方式進行保存,通過對采集的數據進行類似的預處理、歸一化等操作,使之與MatLab 平臺的訓練數據具有相同的形式, 隨后通過融合計算得出等級劃分值。理論上若此值不為零,控制器則不允許點火電路工作。
在Keil 平臺編譯工程并生成hex 文件燒寫至控制芯片中,同時根據引腳定義對各模塊進行物理連接。 因車輛點火電路的復雜性,在實驗室環境下以蜂鳴器檢驗是否允許點火電路工作。
被測者飲酒后40 min 使用該系統進行功能驗證。 驗證結果:手機接收到警告信息,蜂鳴器報警,短信截圖如圖8(a)所示;根據短信中的經緯度進行地理位置驗證,如圖8(b),定位信息符合實際。

圖8 短信提醒功能演示Fig.8 SMS reminder function demonstration
對基于智能信息融合的防醉駕系統進行了原理、硬件結構、信息融合算法的說明,并以STM32 主控芯片為基礎搭建了系統。 在實驗室環境下進行了功能驗證,該系統基本能夠滿足設計要求,能夠對駕駛者的飲酒行為給予警示。