邊鵬飛,何志琴,唐 杰
(貴州大學 電氣工程學院,貴陽 550025)
無線傳感器網絡WSN(wireless sensor network)是由部署在監測區域內大量的微型傳感器節點組成,通過無線通信的方式形成的一個多跳的自組織網絡系統,感知、采集和處理網絡覆蓋區域中感知對象的信息,并發送給觀察者[1]。多傳感器無線網絡通過分布式處理大量的采集信息,提高了檢測的準確度,降低了對于單個節點精度的要求和單一節點失效對檢測結果造成的不良影響[2]。
多傳感器網絡大量冗余節點的存在,導致傳感器節點采集的大量冗余數據在無線網絡中傳遞,大大增加了傳感器節點的能量損耗[3],降低了網絡的生命周期。相對于節點接收、空閑、睡眠等狀態,傳感器節點在發送數據時能耗最大。在多數情況下并不需要這些原始的冗余數據,而只需要監測的結果[4]。因此在條件允許時盡量進行片上數據處理,可以有效減少傳感器節點的能量消耗。
傳感器節點部署的環境復雜,惡劣環境對傳感器節點的干擾、造成的節點失效或傳感器失效,導致從傳感器節點獲得的信息可靠性難以保證。針對多傳感器無線網絡存在的以上問題,本文首先采用改進的BP神經網絡對采集的冗余數據進行處理,提取有效信息,無線網絡的拓撲控制采用改進的基于節點平均能量的LEACH算法,將經過數據融合處理的數據通過無線網絡傳至匯聚節點,并最終傳至監控終端,完成無線傳感器網絡對于監測區域的動態數據監測。
BP神經網絡是1986年D.ERumelhart和J.L.McClelland提出的一種利用誤差反向傳播訓練算法,簡稱BP網絡。BP神經網絡的結構主要包括輸入層、隱含層和輸出層。BP神經網絡算法的基本原理是采用梯度最速下降法,調整網絡權值使網絡的誤差達到最小[5]。多層BP神經網絡包含了正向和反向傳播2個階段,正向傳播過程中,輸入信息從輸入層經隱含層逐層處理,并傳向輸出層,每一層的神經元的狀態只影響下一層神經元的狀態。如果在輸出層不能得到期望輸出,則轉入反向傳播,將誤差信號沿原來的連接通道返回,通過修改各層神經元的權值,最終達到誤差最小的目標。
BP神經網絡的結構如圖1所示,神經網絡的輸入層有M個輸入節點,分別為 x1,x2,x3,…,xm,輸出層有L個節點,分別為 y1,y2,y3,…,yL,隱含層有 q 個神經元,輸入層到隱含層的連接權值為Wij,隱含層到輸出層的連接權值為 Wki,其中 0<i<q,0<j<M,0<k<L。

圖1 BP神經網絡結構Fig.1 BP neural network structure
BP神經網絡的優點在于如果有足夠的隱含層和隱節點,BP神經網絡可以逼近任意的非線性映射關系,適用于處理各種非線性問題。但是實際的網絡結構中隱含層和隱節點的個數是有限的,BP神經網絡也存在收斂速度慢、訓練時間長、局部極值問題、隱含層和隱節點的個數沒有明確的量化方法等缺點。
典型的改進方法主要有引入慣性項、引入動量項、共軛梯度法、變尺度法、變步長法等。其中引入動量項如式(1)所示,能夠有效減少在學習過程中的振蕩,改善神經網絡算法的收斂性,提高樣本訓練效率。

式中:D(k)為 k 時刻的負梯度;D(k-1)為 k-1 時刻的負梯度;η為學習效率;α為動量因子(0≤α<1)。
低能量自適應分簇路由協議LEACH(low energy adaptive clustering hierarchy),是一種周期性循環的分簇拓撲算法,每輪循環分為簇的建立階段和穩定的數據通信階段。在簇的建立階段,相鄰節點動態地形成簇,隨機產生簇頭;在數據通信階段,簇內節點把數據發送給簇頭,簇頭進行數據融合并把結果發送給匯聚節點。
選舉簇頭根據式(2)確定簇頭當選的概率,首先判斷節點是否在本輪循環中已經當選過簇頭,如果是則將其設置為0,則該節點不會重復當選。如果未被當選為簇頭T(n)節點,則以T(n)的概率當選。隨著本輪當選簇頭的節點增多,簇頭在所有節點中所占的百分比P不斷增大,T(n)不斷趨近于1,表示未被選中的節點被選中的可能性不斷趨近于1。

式中:P為簇頭在所有節點中所占的百分比;r為選舉輪數;rmod(1/P)為這一輪循環中當選過簇頭的節點個數;G為這一輪循環中未當選過簇頭的節點集合[6]。
由于被當選的簇頭需要完成接收簇內其他節點的數據、完成片上數據融合、與匯聚節點通信等工作,所以能量消耗比較大。LEACH算法能夠保證簇內各節點等概率地擔任簇頭,使得網絡中的節點相對均衡地消耗能量,有效避免了單個節點反復當選簇頭,造成簇內部分節點能量耗盡而造成的節點失效。但是LEACH簇頭輪詢算法仍存在不足之處,由于傳感器節點在監控區域內隨機部署,部分節點分布位置遠離匯聚節點,該部分節點當選為簇頭時,簇頭與匯聚節點通信時廣播所需的能耗較大,能量消耗快,造成該部分節點相對于簇內其他節點過早失效,減少了網絡存在壽命[7]。
改進的LEACH算法針對傳統的LEACH算法存在的簇頭在監測區域分配不均導致的能量消耗不均衡的問題進行了改進。以簇內節點的平均能量作為節點能否參與簇內競爭的標準。
在進行簇頭競爭前,簇內所有節點以廣播的形式發送自身的剩余能量,上次當選的簇頭收集簇內節點剩余能量 Eresident(i),并根據式(3)計算剩余能量的平均值Eaverage,并廣播給簇內其他節點,簇內其他節點在接收剩余能量平均值后進行判斷,若自身剩余能量高于簇內剩余能量的平均值則參與簇頭競爭,根據式(4)和式(5)確定簇頭當選的概率,以TR(n)概率當選簇頭,反之則不參與簇頭競爭。

式中:Eaverage為簇內所有節點的平均能量;N為簇內節點的個數;Eresident(i)為第i個節點的剩余能量。

R(i)=1,則第 i個節點可以參與簇頭競選;R(i)=0,則第i個節點不可以參與簇頭競選。

式中:TR(n)為當選簇頭的概率;PR為簇頭在所有滿足簇頭競選的節點中所占的百分比;GR為這一輪循環中未當選過簇頭的節點集合;r為選舉輪數;rmod(1/PR)為這一輪循環中當選過簇頭的節點個數。
改進的LEACH算法在傳統LEACH算法簇頭輪詢的基礎之上,將節點剩余能量也作為參與簇頭競爭的條件,這樣能夠有效避免能量相對較少的節點在簇頭輪詢的過程中當選為簇頭節點,使簇內節點的能量消耗趨于均衡,避免了部分節點由于能量耗盡造成的節點失效,從而達到延長網絡壽命的目的。
采用Matlab仿真軟件,利用一個三輸入二輸出的3層BP神經網絡對輸入的樣本進行仿真。仿真參數為學習效率η=0.05;期望誤差最小值Emin=0.005;最大訓練次數epochmax=10000。
圖2(a)所示為采用梯度下降法對樣本進行訓練的訓練過程誤差曲線,訓練次數7905次;圖2(b)為采用動量梯度下降法對樣本進行訓練的訓練過程誤差曲線,訓練次數2670次;圖2(c)為變學習速率法對樣本進行訓練的訓練過程誤差曲線,訓練次數381次;圖2(d)為變學習速率結合動量梯度法對樣本進行訓練的訓練過程誤差曲線,訓練次數213次;圖2(e)為共軛梯度法對樣本進行訓練的訓練過程誤差曲線,訓練次數54次;圖2(f)為近似二階梯度法對樣本進行訓練的訓練過程誤差曲線,訓練次數8次。


圖2 訓練過程誤差曲線Fig.2 Training process error curve
通過比較分析以上6種仿真結果,梯度下降法的訓練誤差曲線較為平滑,但是收斂速度緩慢;動量梯度下降法的收斂速度有所提高;變學習速率法收斂速度較快,但是訓練過程中振蕩較為頻繁;共軛梯度法與近似二階梯度法收斂速度快,但容易陷入局部最優。因此綜合考慮采用變學習速率結合動量梯度法的BP神經網絡算法。
系統硬件平臺主要包括部署在監測環境中的傳感器節點和匯聚節點。其中,傳感器節點的主要功能是監測數據的采集和數據融合,匯聚節點的主要功能是接收簇頭節點的數據,并與監控終端進行數據通訊。
傳感器節點采用意法半導體公司的STM32 Cortex-M3 32位微處理芯片,性能高、成本低、功耗低,非常適合低電壓、低功耗的場合,哈佛體系架構,支持Thumb指令集,工作頻率可達72 MHz,工作電壓3.3 V。功能模塊包括12位AD轉換、定時器、支持 SPI、I2C、USART、CAN 等通信方式[8],能夠完成傳感器節點的數據采集,并且具有很強的處理數據的能力,能夠完成片上的數據融合任務。
同時在傳感器節點上配置了CC2530射頻SoC,是基于2.4 GHz IEEE802.15.4的一個片上系統。CC2530內部集成了增強型8051微處理器內核和IEEE802.15.4兼容無線收發器,支持德州儀器的Z-Stack協議棧,能夠充分利用ZigBee協議中的API函數,縮短了開發周期。ZigBee具有成本低、功耗低、可靠性高、安全性高、網絡容量大等特點,廣泛應用于智能家居、樓宇自動化、工業控制和監控醫療等許多領域。
傳感器節點如圖3所示,主要包括對于三相電壓電流的檢測,采用電壓互感器SPT204、電流互感器SCT254作為電壓電流的檢測元件,經過信號調理電路將其轉化為0~3.0 V的電壓信號,溫濕度傳感器采用數字式溫濕度傳感器DHT11,是一款含有已校準數字信號輸出的溫濕度復合傳感器,響應速度快、抗干擾能力強。此外還有為各模塊供電的穩壓電源。

圖3 傳感器節點的硬件結構Fig.3 Hardware structure of the sensor node
匯聚節點硬件主要由STM32 Cortex-M3處理器模塊和CC2530射頻處理器2部分組成,CC2530接收傳感器節點發送的數據,并將其發送至STM32,STM32將接收的收據通過串口通訊發送至監控終端。
節點的軟件設計包括傳感器節點和匯聚節點的設計。傳感器節點的主要功能包括各功能模塊初始化、網絡初始化傳感器數據采集、節點組網、簇頭選舉、當節點當選為簇頭時進行數據融合、無線通信、人機交互、時鐘控制等。匯聚節點的功能包括接收傳感器節點的數據、與監測終端數據通信[9]。傳感器節點與匯聚節點的軟件流程如圖4、圖5所示。

圖4 傳感器節點軟件流程Fig.4 Flow chart of sensor node software
簇內的傳感器節點通過改進的LEACH協議進行簇頭競爭,競選為簇頭的節點接收來自簇內其它普通節點的數據,并在片上進行神經網絡數據融合,并將處理后的數據轉發至匯聚節點。競選簇頭失敗后的普通節點進行數據采集并將數據發送至簇頭節點,并廣播自身剩余能量,準備進行下一輪的簇頭競選。匯聚節點接收各個簇頭節點的數據,并通過串口通信發送至監控終端。
系統監控終端的上位機采用VB6.0編寫無線網絡節點的監控軟件。Visual Basic 6.0是Microsoft公司面向對象的可視化開發編程工具,是一種結構化的程序語言[10]。監控終端主要通過MSComm串口通信控件實現上位機監控終端與匯聚節點的通訊。ADO數據庫訪問控件實現了上位機對數據庫的操作。
如圖6所示為上位機監控終端實現了與匯聚節點的數據通信,實時接收監控區域的采集信息,并且以實時數據曲線的形式予以顯示,更加直觀。同時將采集到的數據同數據庫相連,并將實時數據同步至數據庫。

圖5 匯聚節點軟件流程Fig.5 Flow chart of convergence node software

圖6 監控終端Fig.6 Monitoring terminal
通過無線傳感器節點實現數據的采集,采用改進的神經網絡數據融合算法進行數據處理,并通過無線網絡傳至與上位機相連的匯聚節點,實時地通過上位機監控終端實現對電網變量及環境變量的監測,將采集到的數據實時輸出更新至數據庫中,實現了電網數據的遠距離傳輸,通過上位機監控終端對無線網絡節點采集數據進行匯總,具有良好的靈活性和可擴展性。
[1]孫凌逸,黃先祥,蔡偉,等.基于神經網絡的無線傳感器網絡數據融合算法[J].傳感器技術學報,2011,24(1):122-127.
[2]孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2010.
[3]徐潔,丁國強,熊明.低功耗無線傳感器終端網絡系統設計與實現[J].自動化儀表,2015,36(1):59-62.
[4]周觀民,李榮會.基于神經網絡的傳感器網絡數據融合技術研究[J].計算機仿真,2011,28(10):118-120.
[5]李國勇.智能控制及其Matlab實現[M].北京:電子工業出版社,2005.
[6]陳雪東,陳碩紅.無線傳感器網絡功率控制的路由協議改進[J].自動化儀表,2015,36(1):66-69.
[7]韓紅芳,孫守昌,鄒凌.無線傳感器網絡能量均衡分簇路由算法的改進[J].自動化儀表,2012,33(3):31-34.
[8]黎冠,馬婕,卜祥麗.STM32單片機在室內環境監測系統中的應用[J].自動化儀表,2014,35(7):29-31.
[9]宗學軍,宋國庫,陳斌,等.基于無線傳感器網絡的樓宇環境監測系統設計[J].自動化與儀表,2011,26(4):23-26.
[10]李全江,湯智輝,朱東芹.Visual Basic數據采集與串口通信測控應用實戰[M].北京:人民郵電出版社,2010.