孫藝哲,陳增瑞,靳 鴻,張 瑜
(1.中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原030051;2.中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
隨著經(jīng)濟(jì)的發(fā)展以及人民生活質(zhì)量的提高,醉酒駕駛的現(xiàn)象也越發(fā)嚴(yán)重,由醉駕而引起的交通事故也屢見(jiàn)不鮮。 目前,我國(guó)常用的手持式酒精檢測(cè)儀雖能檢測(cè)駕駛者是否醉駕, 但其缺乏主動(dòng)性,無(wú)法在醉駕行為開(kāi)始之前就給予駕駛者以警告。 與此同時(shí), 高價(jià)的傳感器限制了防醉駕裝置的使用,導(dǎo)致其市場(chǎng)占有率一直不高[1-3]。
文中所設(shè)計(jì)的車載防醉駕系統(tǒng)旨在改變這一現(xiàn)狀:該系統(tǒng)被嵌入至車內(nèi),檢測(cè)行為在司機(jī)駕駛之前,從而改變被動(dòng)檢測(cè)的局面[4];該系統(tǒng)采用易獲取的傳感器,通過(guò)多測(cè)點(diǎn)的方式在降低成本的同時(shí)獲得可靠數(shù)據(jù),使用神經(jīng)網(wǎng)絡(luò)對(duì)多路傳感器信號(hào)進(jìn)行信息融合。
由文獻(xiàn)[5]人體酒精代謝模型可知,血樣中酒精濃度值BAC(blood alcohol concentration)在飲酒后0.5 h 內(nèi)迅速上升,約1 h 達(dá)到峰值。 此后,BAC 幾乎呈直線下降,當(dāng)降至一定程度后速度逐漸減慢。 文獻(xiàn)[6]顯示,醉酒后會(huì)附有心率增快、血壓降低、皮膚血管擴(kuò)張等現(xiàn)象;駕駛員飲酒后,少部分酒精會(huì)通過(guò)呼氣、體液等途徑排除體外,因此選擇對(duì)車體內(nèi)酒精氣體濃度、駕駛者的心率信息進(jìn)行監(jiān)測(cè)。 同時(shí), 考慮到開(kāi)窗等不確定因素對(duì)傳感器的影響,選擇多布點(diǎn)的測(cè)試方式,通過(guò)智能信息融合技術(shù)將不同的指標(biāo)進(jìn)行信息融合,從而對(duì)駕駛者是否飲酒做出判斷。
車載防醉駕系統(tǒng)結(jié)構(gòu)如圖1 所示。 整個(gè)系統(tǒng)由車載電源供電,當(dāng)駕駛者插入鑰匙旋轉(zhuǎn)至ACC 檔位時(shí),車輛電瓶開(kāi)始對(duì)外供電,該系統(tǒng)通過(guò)DC-DC 穩(wěn)壓模塊接入汽車電源,酒精氣體傳感器收集車內(nèi)多測(cè)點(diǎn)的酒精濃度信息,心率傳感器置于方向盤(pán)處以方便對(duì)駕駛者心率的檢測(cè), 微控制器MCU(microcontroller unit)通過(guò)算法進(jìn)行信息融合并做出判斷。若無(wú)飲酒駕駛,車輛可以正常點(diǎn)火啟動(dòng);否則,控制芯片與GSM 芯片通信, 向預(yù)設(shè)手機(jī)號(hào)發(fā)送提醒短信,并禁止汽車點(diǎn)火電路工作。
圖1 車載防醉駕系統(tǒng)結(jié)構(gòu)Fig.1 Vehicle anti-drunk driving system structure
MQ-3 半導(dǎo)體酒精傳感器使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的SnO2,當(dāng)傳感器所處環(huán)境中存在酒精蒸氣時(shí),傳感器的電導(dǎo)率隨空氣中酒精氣體濃度的增加而增大[7]。 通過(guò)標(biāo)定試驗(yàn),傳感器輸出電壓與環(huán)境中酒精氣體濃度近似函數(shù)關(guān)系為
式中:f(x)為酒精氣體濃度值;x 為電壓值,標(biāo)定曲線如圖2 所示。
圖2 酒精氣體傳感器標(biāo)定曲線Fig.2 Calibration curve of alcohol gas sensor
市售常見(jiàn)的心率傳感器,按照測(cè)試原理主要分為兩類。 一類以光電透射測(cè)量法測(cè)量心率,LED 燈發(fā)出綠光照射在皮膚上,反應(yīng)皮膚淺部微動(dòng)脈的信息,通過(guò)光感受器測(cè)量反射光并轉(zhuǎn)化為電信號(hào)[8],該傳感器體積較小,只需監(jiān)測(cè)人體指尖部位,但受雜光干擾影響較大。 另一類為手握式心率監(jiān)測(cè),使用心電信號(hào)測(cè)量原理,心肌纖維產(chǎn)生微小電流傳到皮膚表面,由于體表分布的不同而產(chǎn)生電位差,獲取該信號(hào)提取2 個(gè)相鄰R 波的時(shí)間間隔則可獲得被測(cè)者心率信息。
所設(shè)計(jì)的系統(tǒng)視駕駛者心率為重要參數(shù),應(yīng)該避免因外界影響而產(chǎn)生較大波動(dòng),同時(shí)考慮安裝方式,故選用后者,該傳感器可嵌置車輛方向盤(pán)處以方便測(cè)試。
所設(shè)計(jì)的系統(tǒng)為嵌入式設(shè)備,其主控芯片除了基本的控制外設(shè)工作外,還需要進(jìn)行一定量的計(jì)算工作,包括信息的融合,因此需選用具有Cortex-M3內(nèi)核的STM32F103ZET6 單片機(jī), 其內(nèi)核時(shí)鐘頻率高達(dá)72 MHz[9],且內(nèi)部含有Flash 和SRAM,可以滿足設(shè)計(jì)所需。
GSM 模塊通過(guò)串口與中心控制模塊連接,通過(guò)AT 指令與中心控制模塊交換信息。 GSM 不僅支持移動(dòng)通訊,還可依靠于基站之間的通訊實(shí)現(xiàn)地理定位[10]。所設(shè)計(jì)的系統(tǒng)可通過(guò)GSM 模塊將醉駕警告信息與位置信息通過(guò)短信發(fā)送至預(yù)設(shè)手機(jī)號(hào)中。
在文獻(xiàn)[5-6]的基礎(chǔ)上設(shè)計(jì)試驗(yàn):以一體重為68 kg 的成年男性為被測(cè)對(duì)象,在短時(shí)間內(nèi)喝下一定量的酒(大于法律規(guī)定酒后駕駛標(biāo)準(zhǔn)),每隔一段時(shí)間對(duì)模擬環(huán)境下的裝置進(jìn)行采樣以獲得數(shù)據(jù),根據(jù)樣本數(shù)據(jù)構(gòu)建人體酒精代謝模型和神經(jīng)網(wǎng)絡(luò)評(píng)價(jià)模型。 考慮神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的建立和實(shí)際應(yīng)用的情況,需增加評(píng)價(jià)等級(jí)的指標(biāo)對(duì)不同時(shí)刻的被測(cè)對(duì)象進(jìn)行量化分級(jí)。 經(jīng)過(guò)預(yù)處理后的部分樣本數(shù)據(jù)見(jiàn)表1。
表1 試驗(yàn)數(shù)據(jù)Tab.1 Experiment data
由表可知,人體飲酒后約1 h,體內(nèi)BAC 值達(dá)到峰值,此時(shí)記錄人體狀態(tài)量為10;未飲酒的初始狀態(tài)0 h 和完全分解后的穩(wěn)定狀態(tài)均記為0, 表示體內(nèi)酒精幾乎完全分解。
根據(jù)酒精在體內(nèi)血液分解的動(dòng)力學(xué)規(guī)律[11]可知,血液中酒精濃度與時(shí)間近似函數(shù)關(guān)系為
基于試驗(yàn)數(shù)據(jù)運(yùn)用遺傳算法對(duì)函數(shù)最佳參數(shù)進(jìn)行搜索尋優(yōu), 為得到最終確定結(jié)果, 使用fminsearch 函數(shù)求得的最佳值為k=103.6538,q=0.1869,r=2.025。
圖3 人體酒精代謝模型曲線Fig.3 Curve of human alcohol metabolism model
經(jīng)等級(jí)劃分后狀態(tài)值便為神經(jīng)網(wǎng)絡(luò)的目標(biāo)向量y,不同位置酒精傳感器的電壓輸出值、心率為輸出值為神經(jīng)網(wǎng)絡(luò)輸入量(x1,x2,x3)。 神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖4 所示。
圖4 神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)Fig.4 Neural network topology
為了確保訓(xùn)練數(shù)據(jù)足夠充分,利用數(shù)據(jù)重構(gòu)得到的代謝模型進(jìn)行樣本擴(kuò)充,選擇更小的時(shí)間間隔對(duì)重構(gòu)函數(shù)進(jìn)行采樣為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練提供較為充足的樣本,最終確定樣本數(shù)為100 組。
隨后在MatLab 中使用上述數(shù)據(jù)進(jìn)行模型訓(xùn)練,訓(xùn)練過(guò)程如圖5 所示。 由圖可見(jiàn)網(wǎng)絡(luò)訓(xùn)練至60步時(shí)可達(dá)到目標(biāo)精度要求。
圖5 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程Fig.5 Neural network training process
使用該網(wǎng)絡(luò)進(jìn)行對(duì)部分實(shí)測(cè)數(shù)據(jù)進(jìn)行驗(yàn)證,觀察網(wǎng)絡(luò)的計(jì)算值與期望值, 誤差在可接受范圍內(nèi),如圖6 所示。 隨后使用命令語(yǔ)言“net.IW{1,1};net.b{1,1};” 等導(dǎo)出權(quán)值矩陣和閾值矩陣進(jìn)行保存,以方便移植在嵌入式系統(tǒng)中進(jìn)行離線工作。
圖6 神經(jīng)網(wǎng)絡(luò)信息融合效果Fig.6 Renderings of neural network information fusion
所設(shè)計(jì)的系統(tǒng)包含多傳感器檢測(cè)模塊、MCU控制模塊、GSM 通訊模塊等, 對(duì)應(yīng)程序需包括傳感器檢測(cè)子程序、模數(shù)轉(zhuǎn)換子程序、信息融合子程序、串口通訊子程序等,程序流程如圖7 所示。 所涉及的程序均使用C 語(yǔ)言在Keil 平臺(tái)進(jìn)行編程調(diào)試。為便于開(kāi)發(fā),此次設(shè)計(jì)使用最小系統(tǒng)開(kāi)發(fā)板。
圖7 程序總流程Fig.7 Process master flow chart
下位機(jī)子程序中信息融合子程序較為特殊。眾所周知, 神經(jīng)網(wǎng)絡(luò)是利用神經(jīng)元之間的連接對(duì)輸入與輸出的關(guān)系進(jìn)行建立與保存的, 故在此將已經(jīng)訓(xùn)練好的連接關(guān)系在Keil 平臺(tái)以數(shù)組的方式進(jìn)行保存,通過(guò)對(duì)采集的數(shù)據(jù)進(jìn)行類似的預(yù)處理、歸一化等操作,使之與MatLab 平臺(tái)的訓(xùn)練數(shù)據(jù)具有相同的形式, 隨后通過(guò)融合計(jì)算得出等級(jí)劃分值。理論上若此值不為零,控制器則不允許點(diǎn)火電路工作。
在Keil 平臺(tái)編譯工程并生成hex 文件燒寫(xiě)至控制芯片中,同時(shí)根據(jù)引腳定義對(duì)各模塊進(jìn)行物理連接。 因車輛點(diǎn)火電路的復(fù)雜性,在實(shí)驗(yàn)室環(huán)境下以蜂鳴器檢驗(yàn)是否允許點(diǎn)火電路工作。
被測(cè)者飲酒后40 min 使用該系統(tǒng)進(jìn)行功能驗(yàn)證。 驗(yàn)證結(jié)果:手機(jī)接收到警告信息,蜂鳴器報(bào)警,短信截圖如圖8(a)所示;根據(jù)短信中的經(jīng)緯度進(jìn)行地理位置驗(yàn)證,如圖8(b),定位信息符合實(shí)際。
圖8 短信提醒功能演示Fig.8 SMS reminder function demonstration
對(duì)基于智能信息融合的防醉駕系統(tǒng)進(jìn)行了原理、硬件結(jié)構(gòu)、信息融合算法的說(shuō)明,并以STM32 主控芯片為基礎(chǔ)搭建了系統(tǒng)。 在實(shí)驗(yàn)室環(huán)境下進(jìn)行了功能驗(yàn)證,該系統(tǒng)基本能夠滿足設(shè)計(jì)要求,能夠?qū)︸{駛者的飲酒行為給予警示。