貴陽學院數學與信息科學學院 何 翼 劉 云
貴陽學院科技處 劉合財
無線傳感網絡人工免疫智能診斷分析系統(tǒng)設計與實現
貴陽學院數學與信息科學學院 何 翼 劉 云
貴陽學院科技處 劉合財
故障診斷是無線傳感器網絡面臨的一個共性關鍵技術問題。人工免疫系統(tǒng)具有自適應、自學習特征,通過算法優(yōu)化和系統(tǒng)設計可以滿足WSNs資源(帶寬、能量等)有限前提下的故障診斷需求。文章基于一個多節(jié)點的物理原型系統(tǒng)采用人工免疫原理研制一個無線傳感器網絡診斷系統(tǒng),進行節(jié)點組網測試分析。
無線傳感網絡;人工免疫;智能診斷
無線傳感網絡(WSNs)具有動態(tài)拓撲變化、能量約束和傳輸計算能力受限等特性[1,2],容易出現網絡能耗不均、路由質量差和數據傳輸不穩(wěn)定等現象.導致WSNs故障的原因較多,如節(jié)點失效,負載不均衡和路由算法相關等。運行良好的WSNs應具有故障檢測、診斷與容錯,能自適應地處理多種網絡異常現象。故障檢測是WSNs面臨著的一個共性的、亟待解決的關鍵性技術問題[3]。
人工免疫系統(tǒng)(AIS)提供了許多信息處理機制,具有記憶學習、反饋機制、無中心控制的分布自治機理等,近年來開始被應用于WSNs的故障檢測與診斷方面。如Hwang等[4]提出了一種基于生物免疫機制的無線傳感器網絡容錯結構SASHA,將淋巴結機制用于產生檢測器對故障進行檢測, 胸腺機制完成對故障的確診。Jabbari等模擬生物免疫系統(tǒng)或神經免疫系統(tǒng)的自學習、自組織、記憶和信息處理等機理,開展無線傳感器網絡檢測、系統(tǒng)協(xié)調和故障容錯研究[5-6]。這些研究大多是理論層面的研究,缺乏設計與實現層次的研究。
本文首先搭建了一個WSNs物理原型平臺,然后運用人工免疫系統(tǒng)的研究成果采用C#實現一個WSNs診斷系統(tǒng)。該系統(tǒng)主要由故障知識庫、故障診斷、故障分類等模塊構成,不但能識別已知故障, 對未知故障具有良好的自適應學習和進化能力。本研究可以為WSNs故障檢測系統(tǒng)的開發(fā)提供有益的借鑒。
本文為實現智能診斷系統(tǒng),搭建了一個WSNs物理原型平臺。該平臺為三層結構:底層為采集層或傳感層,傳感器節(jié)點與基站相連,每10個傳感器節(jié)點與1 個基站組成局部網絡單元,使用TI 星型拓撲結構的多跳自組織網絡;中間層為傳輸層,基站采集的實時數據通過CAN總線傳輸至網關,網關完成與 Internet 協(xié)議的轉換,與后臺管理節(jié)點對接;最上層為應用層,通過 Internet 網絡實現管理節(jié)點與網關的連接,從而實現對采集數據的實時查詢與展示,故障查詢。系統(tǒng)結構見圖1。
傳感器節(jié)點由傳感器、微處理單元(MCU)、通信模塊和電源組成。MCU和通信模塊采用模塊化芯片CC1110實現, CC1110是一款低電壓、低功耗的無線通訊應用設備。傳感器采用了DHT11溫濕度、MQ-2煙霧傳感器,傳感器與MCU的IO接口連接。電源模塊采用9v電池供電,通過LM 7805三端穩(wěn)壓器轉化為5V電源給傳感器供電,5V電源經由TPS73HD301轉換為3.3V后給CC1110供電。
傳感器節(jié)點與基站相連,通過Simplici TI 協(xié)議實現一個基站與多個傳感節(jié)點的無線通信。
實現的功能包括:(1)完成基站和節(jié)點的組網和雙向數據傳輸;(2)基站與總線數據傳輸的功能。傳感器節(jié)點集成了DHT11溫濕度、MQ-2煙霧傳感器,可實現數據主動上傳、數據請求上傳和定時上傳功能。
圖1 WSNs網絡結構
由于對電氣干擾的魯棒性,自我診斷能力,數據錯誤修復,適合苛刻環(huán)境,傳輸層采用CAN總線(Controller Area Network)。CAN總線是一種用于短消息傳輸的串行通信總線,采用MCP2515芯片實現。MCP2515是一個獨立的控制器區(qū)域網絡(CAN網絡)協(xié)議控制器,帶有兩個接受掩碼和六個接收濾波器,可以過濾錯誤的信息。對MCP2515芯片進行初始化配置,使該模塊成功接收數據后產生中斷信號,中斷信號與主控芯片外部中斷引腳相連,該中斷信號需要手動清零。MCP2515 模塊與主控芯片通過SOC的SPI接口通信,由主控芯片提供MCP2515的 SPI 接口時鐘信號,數據讀寫嚴格遵守 SPI接口讀寫操作指令規(guī)則。對AP 與網關移植Modicon Mod Bus協(xié)議。Modbus協(xié)議是一種應用層的基于分組的傳輸協(xié)議,使用一個主機的一個或多個從機的通訊,使用命令/應答模式實現網關對基站(點對點)、各基站對網關(多點對一點)以及網關廣播等通信方式,能有效保證基站數據主動上傳和被動查詢兩種數據采集方式。
傳感器網絡有自己的協(xié)議,最常用連接IP網絡的方法是在兩者之間部署網關。網關設備使用ARM9 Cortex A8嵌入式開發(fā)版開發(fā),安裝了嵌入式Linux操作系統(tǒng)+嵌入式數據庫sqlite,搭建嵌入式網關設備。網管實現原理如下:
從IP主機(主機A)到傳感器節(jié)點(節(jié)點x)的數據包流程。①初始狀態(tài),網關的映射表為空。網關為每個傳感器節(jié)點分配一個虛擬IP地址,并分配從傳感器節(jié)點接收無線傳感器網絡包的時間。此外,網關給每個IP主機的生成一個虛擬傳感器節(jié)點ID,一旦網關從IP主機接收到一個IP包。網關在映射表存儲分配的虛擬IP地址和ID(圖2);②然后主機A建立一個IP包。該數據包含IP地址作為源地址和節(jié)點x的虛擬IP作為目的地址,數據包需遵循WSN運行的應用層協(xié)議規(guī)范;③該數據包被路由到無線傳感器網絡,并到達網關。網關分貝映射源和目標地址到主機A的虛擬ID和節(jié)點XID(圖3);④網關建立一個WSN數據包,該包包含映射的IDS和IP數據包相同的內容。使用WSN路由協(xié)議傳遞該包給到節(jié)點X。網關過濾冗余傳輸協(xié)議包(例如TCP SYN和SYN-ACK包)。
圖2 網關映射表
圖3 TCP/IP包從主機A到節(jié)點X
從傳感器節(jié)點(節(jié)點x)到IP主機(主機A)的數據包流過程。①節(jié)點X建立一個WSN數據包,該包使用它的ID作為源地址,主機A的虛擬ID為目的地址。根據以前的源于從主機A連接,網關已經知道主機A的虛擬ID;②使用WSN路由協(xié)議數據包被路由到網關節(jié)點;③網關分貝映射源和目標ID到節(jié)點X的虛擬IP和主機A的IP(圖4)。網關建立了一個新IP包,該包包含映射的IP地址和無線傳感器網絡包指定的相同內容。網關過濾冗余WSN傳輸協(xié)議包。
圖4 WSN包從節(jié)點X到主機A
圖5 WSNs故障檢測程序架構
后臺管理接口采用UDP協(xié)議與網關設備的通信,主要功能是部署故障檢測程序和故障檢測結果的存儲??蛻舳塑浖捎肅#,主要顯示故障檢測結果。
WSNs故障檢測程序基于opt-IA算法,是一種基于免疫原理的仿生算法,具有自適應、自學習的特征。我們采用分布式設計,見圖5。故障檢測包括客戶端故障檢測程序與故障顯示、基站故障識別和分類程序。
2.1.1 故障識別庫生成
后臺客戶端故障識別庫生成程序包含4個基本類。分別是:1.主要窗體類,提供了簡單的圖形用戶界面;抗體庫生成控制類Opt-IA;抗體類Ab;適宜度函數類Fitfunc。抗體類Ab試圖模擬生物抗體細胞,具有克隆自己的方法Cloning()發(fā)現與另一種抗體的親和力、基于親和突變Hypermutation()、選擇方法Selection、老化方法Aging()。適應度函數類使靜態(tài)方法evaluatefuncation()返回節(jié)點特征向量的適宜度值。每個抗體代表一個候選解,在此代表的故障節(jié)點特征向量。免疫算法的控制器類允許參數定義,并有一個Initial_Pop()產生抗體的初始種群。生產抗體庫的代碼如下:
Opt-IA(l,d,dup,TB,c,h,hm)
{t=0
P(t)=Opt-IA.Initial_Pop()
Fitfunc.evaluatefunction (P(0))
while(Fitfunc.evaluatefunction(P(0))<threshold) do
P(clo)= Ab.Cloning(P(t),dup)
If(H is TRUE)then
P(hyp)= Ab.Hypermutation(P(clo),c,l)
Fitfunc.evaluatefunction (P(hyp))
If(M is TRUE)then
P(macro)= Ab.Hypermutation(P(clo))
Fitfunc.evaluatefunction ( P(macro))
Ab.Aging(P(t),P(hyp),P(macro),TB)
P(t+1)=(μ+λ)- Ab.Selection(P(t),P(hyp),P(macro))
end while}
2.1.2 故障識別庫更新
一旦后續(xù)基站節(jié)點檢測抗原(任意一個節(jié)點的特征向量)的過程,發(fā)現落入抗體庫更新區(qū)域,就會向后臺管理節(jié)點發(fā)送信號讓其重新啟動Opt-IA更新抗體庫。相應的代碼如下:
raduis1=CompuRaduis1(Lib);\由簇頭節(jié)點計算抗體庫的內圓半徑值
raduis2=CompuRaduis2(Lib);\由簇頭節(jié)點計算抗體庫的外圓半徑值
v=CompuV(Lib);\由簇頭節(jié)點計算抗體庫的中心
for(i = 1;i<=n;i++);
CompuDis(agi,v;)\計算節(jié)點 i 與抗體庫圓心的歐氏距離div
if radius1<div<radius2
SendUpdate(管理節(jié)點);\發(fā)送信號讓管理節(jié)點重新啟動Opt-IA更新抗體庫
end if
end for
2.1.3 故障顯示
故障顯示定義了一個故障庫類FaultLib,該類存儲著發(fā)生故障節(jié)點的ID和故障類型,該類showfault()方法,將故障節(jié)點的ID、故障類型顯示在客戶端程序出來。只有當調用該方法時,才由客戶端向基站節(jié)點發(fā)出查詢指令,基站節(jié)點反饋各自管理區(qū)域的故障節(jié)點信息。
2.2.1 故障檢測
故障檢測程序由基站節(jié)點運行。故障庫類FaultLib,還具有一個故障節(jié)點存儲的方法input()方法,該方法將故障節(jié)點的ID、類型存儲起來。主要代碼如下:
n = 傳感節(jié)點數量
k = 故障節(jié)點的數量
CompuDis(agi,v);\計算節(jié)點 i 與抗體庫圓心的歐氏距離div
raduis1=CompuRaduis1(Lib;)\由簇頭節(jié)點計算抗體庫的內圓半徑值
for(i = 1;i<=n;i++);
if div<radius1
FaultLib.input();
k++;
end if
end for2.2.2 故障分類
故障檢測程序由基站節(jié)點運行。具體的方法為,計算故障節(jié)點與各個抗體的距離,與何種抗體相鄰距離近,則被將故障節(jié)點視為該類故障。故障檢測的結果是由基站節(jié)點保存。相應代碼如下:
b = 抗體庫包含抗體的數量
for(i =1,i<=k,i++)
for(j=1,j<=b,j++)
D[i,j]=ComputDis2(i,j)\計算各故障節(jié)點與抗體j的距離
end for
Min(D[i,j])\求出距離最小,即為該類故障
end for
文章基于搭建的小型WSNs原型平臺和人工免疫原理,采用C#實現一個無線傳感器網絡智能診斷系統(tǒng),可以為建立類似WSNs故障診斷平臺提供參考。為了節(jié)省能量,延長WSNs的壽命,采用了分布與集中相結合的方式,由管理節(jié)點生成和更新故障庫,然后傳遞給各個基站節(jié)點,由各個基站節(jié)點負責管理區(qū)域(10個傳感器節(jié)點)的故障檢測與分類。該系統(tǒng)僅可以反饋檢測區(qū)域的溫濕度和煙霧濃度數據,后期可以根據需要在傳感器節(jié)點連接其他類型傳感器進行擴展。
[1]I.F.Akyildiz,W.Su,Y.Sankarasubramaniam,E.Cayirci. Wireless sensor networks: a survey: Computer Networks[J].Computer Networks,2002, 38(4):393–422.
[2]Jennifer Yick,Biswanath Mukherjee, Dipak Ghosal. Wireless sensor network survey[J].Computer Networks, 2008 (52) :2292–2330.
[3]Lilia Paradis and Qi Han. A Survey of Fault Management inWireless Sensor Networks[J].Journal of Network and Systems Management, 2007, 15(2):171-190.
[4]Soyoung Hwang,Gwang-Ja Jin, Bongsoo Kim. Lightweight Fault Tolerant Time Synchronization in Wireless Sensor Networks[C].5th International Conference on Networked Sensing Systems(INSS 2008),2008,pp.131-134.
[5]Jabbari,Amir;Lang,Walter. Advanced Bio-Inspired Plausibility Checking in a Wireless Sensor Network Using Neuro-Immune Systems. The Fourth International Conference on Sensor Technologies and Applications,2010,108-114.
[6]Barron,J.W.,Moustapha,A.I.,Selmic,R.R..Real-Time Implementation of Fault Detection in Wireless Sensor Networks Using Neural Networks[C].Fifth International Conference on Information Technology: New Generations(TNG 2008), 2008,pp.378-383.
項目來源:貴州省科學技術基金資助項目(黔科合J字LKG【2013】46號。