丁承君, 徐光鹿, 劉云帆, 賈麗臻
(河北工業(yè)大學(xué) 機械工程學(xué)院,天津 300130)
目前,環(huán)保部門明確要求餐飲企業(yè)油煙濃度不得高于2.0 mg/m3,但油煙排放依然嚴(yán)峻。市面上的油煙監(jiān)測設(shè)備普遍采用的凈化技術(shù)包括:物理凈化法,如文獻(xiàn)[1]提出空氣負(fù)離子技術(shù)的新型多級油煙凈化裝置設(shè)想,經(jīng)可行性分析表明其能夠有效吸附微小顆粒,但對過濾材料要求極高;文獻(xiàn)[2]采用窄帶物聯(lián)網(wǎng)(narrow band Internet of things,NB-IoT)技術(shù),由前端、傳輸網(wǎng)絡(luò)和云平臺組成油煙監(jiān)測系統(tǒng),功耗低、覆蓋范圍廣、成本低等優(yōu)點,但推廣率依舊不高,主要原因是上傳數(shù)據(jù)丟失,監(jiān)測不準(zhǔn)以致商家抵制安裝。
本文提出基于信息融合的無線監(jiān)測系統(tǒng),遺傳算法(genetic algorithm,GA)優(yōu)化的反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)用于將多個傳感器的數(shù)據(jù)融合,提高系統(tǒng)效率,解決了精度不高及數(shù)據(jù)丟失的問題[3]。
相關(guān)文獻(xiàn)表明飲食油煙能被檢測到300多種成分,通過分類檢測油煙成分可有效防止壞境污染。由整體系統(tǒng)架構(gòu)圖 1可知,設(shè)備終端由油煙參數(shù)采集模塊、嵌入式控制中心、計算單元、無線傳輸單元組成。數(shù)據(jù)采集模塊由TGS2600油煙傳感器、MQ—7一氧化碳(CO)傳感器、MS1100甲苯、甲醛傳感器組成,電壓檢測單元主要檢測風(fēng)機凈化器的工作狀態(tài)。以上傳感器監(jiān)測范圍基本覆蓋油煙污染所涉及的范圍,具有優(yōu)良的感知性能、易于應(yīng)用。嵌入式控制中心選用STM32F103ZET6芯片,最高可達(dá)72 MHz工作頻率,擁有豐富的IO接口資源;計算中心選用i.MX287芯片,高效的運算處理能力,能夠滿足本系統(tǒng)的BP運算任務(wù)需求。無線通信單元選用SIM900A,利用通用無線分組業(yè)務(wù)(GPRS)功能上傳數(shù)據(jù)至應(yīng)用層,以便數(shù)據(jù)實現(xiàn)可視化應(yīng)用。

圖1 飲食油煙監(jiān)測系統(tǒng)架構(gòu)
系統(tǒng)硬件框圖如圖 2所示,由油煙參數(shù)采集模塊、邊緣計算模塊、通信模塊組成。

圖2 系統(tǒng)硬件框圖
1)甲醛傳感器:MS1100甲醛傳感器對甲醛、甲苯等揮發(fā)性氣體具有很高的靈敏度,用于油煙監(jiān)測,測試體積分?jǐn)?shù)范圍(1~1 000)×10-3。通過輸出模擬信號至STM32的A/D模數(shù)轉(zhuǎn)換通道獲取實測甲醛、甲苯體積分?jǐn)?shù)。
2)一氧化碳傳感器:選用MQ—7一氧化碳傳感器模塊,其工作原理和TGS2600相似,氣敏材料在清潔空氣中電導(dǎo)率低,隨著敏感氣體體積分?jǐn)?shù)上升,氣敏材料的導(dǎo)電率也隨之提高。監(jiān)測范圍(0~1 000)×10-3,輸出模擬電壓供STM32采集處理[4,5]。
3)油煙傳感器:TGS2600通過加熱器使得待測氣體依附于半導(dǎo)體材料表面來改變電阻值,如果存在大量的敏感氣體,遇氧發(fā)生氧化反應(yīng)增加電子數(shù)目,電阻值反而降低;否則氧原子得到電子,降低半導(dǎo)體的導(dǎo)電性,呈現(xiàn)高阻態(tài)。用簡單的電路將半導(dǎo)體的導(dǎo)電率轉(zhuǎn)換為氣體體積分?jǐn)?shù)的值進(jìn)行輸出。
將傳感器模塊密封,只需探頭上表面接觸油煙氣體,首先將傳感器模塊放置在清新的空氣中至少通電30 min,測得AOUT輸出電壓值,利用式(1)計算R0
R0=Vcc×RL/VRL-RL
(1)
式中 供電電壓Vcc=5 V,RL=2 kΩ,VRL=AOUT,能夠計算R0。當(dāng)檢測到目標(biāo)氣體時,測得AOUT的值,用式(2)計算RS
(2)
注意此時VRL為檢測到敏感氣體后的值,比式(1)中的VRL大,Vcc和RL與上式相同,得到R0,RS值之后,通過靈敏度特性曲線RS/R0換算成氣體的具體體積分?jǐn)?shù)值。
4)電壓監(jiān)測:電壓檢測電路如圖3所示,交流電接入L,N端子,經(jīng)過150 kΩ電阻降低電流,通過MB6S橋式整流器轉(zhuǎn)換為直流電,接入光電耦合器PC817使上下級電路完全隔離,最后通過放大電路進(jìn)行信號放大接入STM32的輸入引腳采集風(fēng)機凈化器的通電狀態(tài)。

圖3 風(fēng)機凈化器電壓監(jiān)測電路
經(jīng)過邊緣設(shè)備計算處理之后信息量大大降低,本系統(tǒng)采用SIM900A無線通信模塊,板載SIMCOM的工業(yè)級雙頻GSM/GPRS模塊,支持工作頻段為900/1 800 MHz,能夠?qū)崿F(xiàn)與RS—232和TTL對接。可以低功耗實現(xiàn)數(shù)據(jù)傳輸?shù)墓δ堋Mㄟ^串口發(fā)送AT指令設(shè)置SIM900A為無線通信模式,實時向云服務(wù)器傳遞油煙監(jiān)測數(shù)據(jù)。
本系統(tǒng)軟件設(shè)計分為兩部分,數(shù)據(jù)采集程序設(shè)計如圖4(a)所示和計算單元程序設(shè)計如圖4(b)所示。

圖4 軟件設(shè)計
油煙參數(shù)采集程序包括驅(qū)動傳感器初始化子程序、接收存儲數(shù)據(jù)子程序、風(fēng)機凈化開關(guān)狀態(tài)子程序、RS—232協(xié)議發(fā)送子程序。數(shù)據(jù)采集模塊對甲醛、甲苯、CO、苯類化合物進(jìn)行采集、存儲、傳輸?shù)接嬎銌卧?/p>
計算單元軟件設(shè)計包括RS—232接收子程序、GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)子程序、數(shù)據(jù)存儲子程序以及無線通信子程序。通過RS—232接收的數(shù)據(jù)輸入BP神經(jīng)網(wǎng)絡(luò),獲取權(quán)值和閾值作為GA的輸入數(shù)據(jù),通過選擇、交叉、變異篩選出最優(yōu)權(quán)值和閾值,賦值給BP神經(jīng)網(wǎng)絡(luò),油煙數(shù)據(jù)經(jīng)過此時訓(xùn)練神經(jīng)網(wǎng)絡(luò)對比實際油煙體積分?jǐn)?shù),輸出誤差繼續(xù)作為GA的適應(yīng)度函數(shù),直至輸出誤差趨近于零。最后將監(jiān)測結(jié)果(超標(biāo)警告、風(fēng)機凈化器狀態(tài))通過GPRS上傳服務(wù)器。
GA[6]是根據(jù)生物自然進(jìn)化原理進(jìn)行全局搜索最優(yōu)解的算法,通過選擇、交叉、變異繁殖下一代,保持群體的穩(wěn)定性、優(yōu)良性。
BP神經(jīng)網(wǎng)絡(luò)[7]是一種誤差反向傳播的多層前饋網(wǎng)絡(luò),訓(xùn)練規(guī)則使用Trainlm訓(xùn)練函數(shù)以最快速度尋找一組最優(yōu)權(quán)值和閾值,使得網(wǎng)絡(luò)誤差最小。BP神經(jīng)網(wǎng)絡(luò)的容錯性、信息的并行處理以及解決非線性問題的優(yōu)越性等特點備受關(guān)注。但由其收斂性差、易陷入局部極值等局限性。通過遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)搜索最優(yōu)權(quán)值和閾值以改善網(wǎng)絡(luò)的收斂性,防止陷入局部極小值。
理論上只要隱含層節(jié)點數(shù)目足夠多的三層BP神經(jīng)網(wǎng)絡(luò)能夠解決絕大部分問題[8],因此本文采用三層BP神經(jīng)網(wǎng)絡(luò)。輸入層的輸入信號為油煙樣本數(shù)據(jù),隱含層通過對數(shù)據(jù)復(fù)雜變換作為輸出層的輸出。BP網(wǎng)絡(luò)的步驟如下:
1)確定BP神經(jīng)網(wǎng)絡(luò)的拓補結(jié)構(gòu),初始化輸入層(I)到隱含層(H)的權(quán)值vij,隱含層(H)到輸出層(O)的權(quán)值wij,H層和O層的閾值分別為h,H。
2)隱含層(H)的輸出
(3)
式中ai為輸入層的輸入信號;bi為隱含層第i個神經(jīng)元輸出;hj為隱含層第j個神經(jīng)元的閾值;vij為輸入層第i個神經(jīng)元到隱含層第j個神經(jīng)元的權(quán)值,隱含層激活函數(shù)為f(x)=(1+e-x)-1。
3)輸出層的輸出
(4)
式中yi為輸出層第i神經(jīng)元的輸出;Hj為輸出層第j個神經(jīng)元的閾值;wij為隱含層第i個神經(jīng)元到輸出層第j個神經(jīng)元的權(quán)值;輸出層激活函數(shù)為f(x)=x。
4)神經(jīng)元的輸出誤差
輸出層誤差
dj=yj(1-yj)(Oj-yj),j=1,2,…,p
(5)
式中dj為輸出層神經(jīng)元第j個的誤差;Oj為第j個神經(jīng)元的標(biāo)準(zhǔn)輸出。
隱含層誤差
(6)
式中ei為隱含層第i個神經(jīng)元的輸出誤差。
5)修正隱含層與輸出層的連接權(quán)值與輸出層的閾值
Δwji=αbidj,i=1,2,…,n,j=1,2,…,p
(7)
ΔHj=adj,j=1,2,…,p
(8)
式中 0<α<1為常數(shù),用于控制學(xué)習(xí)效率;Δwji,ΔHj分別為輸出層第j個神經(jīng)元至隱含層第i個神經(jīng)元修正權(quán)值的差值、閾值的差值。
6)調(diào)整輸入層與隱含層的權(quán)值與隱含層的閾值
vij=βajei,j=1,2,…,m,i=1,2,…,n
(9)
Δhi=βei,i=1,2,…,m
(10)
式中 0<β<1用于控制學(xué)習(xí)效率;Δvij,Δhi分別為隱含層第i個神經(jīng)元至輸出層第j個神經(jīng)元修正權(quán)值的差值、閾值的差值。
7)重復(fù)步驟(2),直到誤差di→0為止。
BP神經(jīng)網(wǎng)絡(luò)擁有極強的非線性函數(shù)映射能力以及自我學(xué)習(xí)機制,主要應(yīng)用于修復(fù)圖像、語言處理、模式識別以及非線性分類等領(lǐng)域。但由于學(xué)習(xí)效率低、解決非線性問題并不能總有解,且伴隨著訓(xùn)練過程漫長。必須通過其他算法改進(jìn)。
GA是一種全局尋求最優(yōu)的搜索算法,通過選擇、交叉、變異處理,保持群體的魯棒性、全局最優(yōu)性,避免陷入局部極值的風(fēng)險,同時能夠優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,極大提高BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度。
其實現(xiàn)過程如下:1)將BP神經(jīng)網(wǎng)絡(luò)初步訓(xùn)練的權(quán)值和閾值作為GA的初始種群,對個體進(jìn)行編碼,并初始化選擇、交叉、變異概率。2)將BP神經(jīng)網(wǎng)絡(luò)的誤差(di)作為GA的適應(yīng)度函數(shù),然后按式(11)根據(jù)適應(yīng)度值計算父代進(jìn)入子代的概率ps。3)根據(jù)適應(yīng)度選擇較優(yōu)個體進(jìn)行交叉、變異操作,產(chǎn)生新的子代并計算新種群的適應(yīng)度值。4)判斷新生個體是否滿足擇優(yōu)條件,若滿足則繼續(xù)下一過程,若不滿足則返回步驟(2)。5)解碼最優(yōu)個體得到全局最佳權(quán)值和閾值,同時以此替換BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。6)返回BP神經(jīng)網(wǎng)絡(luò)步驟(4)計算誤差,并繼續(xù)執(zhí)行直至結(jié)束。式(11)如下
ps=fi/∑i=1fi
(11)
式中fi為第i代個體的適應(yīng)度值。
反映油煙狀況的因素為甲醛、甲苯、CO、苯類的體積分?jǐn)?shù),作為BP神經(jīng)網(wǎng)絡(luò)的輸入量,所以輸入層神經(jīng)元個數(shù)為4,輸出層神經(jīng)元個數(shù)為1;經(jīng)過反復(fù)測試確定隱含層神經(jīng)元數(shù)為7。
利用MATLAB的工具包對GA-BP網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,隱層、輸出層的激活函數(shù)分別為Sigmoid函數(shù)、Purelin函數(shù),訓(xùn)練算法為Trainlm函數(shù),訓(xùn)練次數(shù)設(shè)置為2 000,訓(xùn)練目標(biāo)誤差值為0.005,學(xué)校效率為0.1。GA的參數(shù)設(shè)置:適應(yīng)度函數(shù)為Fitness,種群大小為50,終止函數(shù)為maxGenTerm,最大遺傳代數(shù)為100代,選擇、交叉、變異的參數(shù)分別為0.08,2,[2 100 3]。選用長度為100的樣本進(jìn)行訓(xùn)練,為方便測試將數(shù)據(jù)歸一化到[0,1]范圍內(nèi)。
將樣本數(shù)據(jù)輸入BP神經(jīng)網(wǎng)絡(luò),訓(xùn)練后得到如圖 5所示的均方誤差分析圖。GA優(yōu)化后的BP網(wǎng)絡(luò)訓(xùn)練至第9代時,達(dá)到誤差水平線以下,GA-BP優(yōu)化和Trainlm訓(xùn)練的獨特性保證了神經(jīng)網(wǎng)絡(luò)的快速收斂性。收斂的最小誤差為0.000 549 97,且最小誤差值和期望誤差值相差很小,達(dá)到了預(yù)期的效果。

圖5 GA優(yōu)化后的神經(jīng)網(wǎng)絡(luò)訓(xùn)練
利用另兩組實測數(shù)據(jù)進(jìn)行測試,結(jié)果如圖 6所示,改進(jìn)后的BP網(wǎng)絡(luò)預(yù)測輸出油煙濃度為虛線所示,與實線顯示的實際濃度高度吻合,通過GA優(yōu)化以及使用Trainlm函數(shù)訓(xùn)練之后不僅提高了BP神經(jīng)網(wǎng)絡(luò)收斂速度還降低了誤差,提高餐飲油煙系統(tǒng)的預(yù)測能力,達(dá)到了優(yōu)化算法的目的。

圖6 兩個周期實際數(shù)據(jù)與BP網(wǎng)絡(luò)擬合對比
針對餐飲企業(yè)油煙排放超標(biāo)監(jiān)測不力的問題,本文提出基于信息融合的餐飲企業(yè)監(jiān)測系統(tǒng)設(shè)計,通過對終端設(shè)計的闡述了解本系統(tǒng)感知層的組成,通過優(yōu)化之后的信息融合算法對數(shù)據(jù)處理,不僅降低了系統(tǒng)的響應(yīng)時間還提高了系統(tǒng)監(jiān)測能力,達(dá)到了預(yù)期的目的。