南春麗,張偉,劉喜元,郝茹茹
長安大學信息工程學院,陜西西安 710064
一種卡爾曼濾波算法的無線傳感器網絡仿真模型
南春麗,張偉,劉喜元,郝茹茹
長安大學信息工程學院,陜西西安 710064
受無線傳感器網絡通信節點和位置等因素影響,大量移動或者固定的傳感器節點間的通信鏈路受限且不利于大塊數據傳輸。為解決該問題,分析了典型的傳感器節點體系結構,在OPNET平臺上建立基于卡爾曼濾波算法的仿真模型。重點研究卡爾曼濾波算法對信號的跟蹤性能,進而分析在傳輸過程中的網絡時延和吞吐率以及誤碼率等統計量曲線圖,分析算法的穩定性。仿真結果表明,誤碼率保持在10-5次方數量級,丟包率在10-2次方數量級,端到端時延控制在1 s內,很好地驗證了該仿真模型的有效性和逼近性。
無線傳感器網絡;OPNET;仿真模型;卡爾曼濾波算法
無線傳感器網絡(wireless sensor network,WSN)使邏輯上的信息世界與真實的物理世界緊密結合,從而真正實現無處不在的計算模式。其核心在于收集并實時處理由感知模塊獲得的物理信號,獲取準確、高效、及時的信息或情報[1]。由于無線傳感器網絡的自組織性、動態變化的網絡拓撲、受限的無線傳輸帶寬等特點,使得整個系統的誤差被放大。因此在信號傳輸階段將誤差控制在較低的數量級,成為無線傳感器網絡研究的熱門領域。相比傳統的如均值濾波和限幅濾波等濾波算法,卡爾曼濾波算法[2]在信號的濾波和處理方面,具有極強的差錯控制。這種控制算法對當前目標位置的估計——濾波,可以將誤差控制在極小的范圍內。
由于無線傳感器網絡系統設計復雜、成本較高,仿真技術為系統的研究提供了一條有效的途徑。仿真技術的基礎和核心之一是仿真模型的建立。目前主流網絡仿真平臺有Berkley大學的Network Simu-lato-2(NS-2),UCLA大學的GloMosim,以及OPNET公司的核心產品OPNET Mdodeler.NS-2需要Linux基礎,采用命令行的方式操作。GloMosim是加州大學洛杉磯分校的一款仿真軟件,它的仿真試題需要借助于網絡節點的物理位置和分布。本研究使用OPNET,它是一款為工程技術人員提供的一個網絡技術和產品研發平臺,具有友好的用戶界面,支持面向對象的建模方式,在通信協議和路由算法的研究方面性能良好。本研究主要使用它在無線傳輸方面的功能,結合卡爾曼濾波算法,建立一個無線傳感器網絡應用模型,并獲取網絡特性參數,基于包時延和誤碼率等參數分析網絡性能優劣。
卡爾曼濾波算法[2]最大的特點是可以用一種近似最優的方式基于可觀測值估算不可觀測值,并且可隨著新的觀測值實時更新舊觀測值,利用系統方程和觀測方程,按照遞推公式,計算目標狀態,已達到對目標物體狀態的實時檢測與追蹤,實質上是基于概率事件的一種估計。該算法能達到很高的計算精度,映射到模型中就體現在較低的誤碼率和端到端延遲。并且,由于算法本身設計只關心當前時刻的前一時刻的狀態量,因此只占用系統較小的存儲資源,這也為數據結構的進一步優化帶來了擴展空間。

卡爾曼濾波算法的優點在于只和前一時刻的值相關,由前一個時刻來估測后一時刻的值,并考慮其方差再在反饋系統中做優化。避免了計算機內存中堆放大量冗余數據,提高了計算效率。
OPNET為用戶提供了大量的系統函數,用戶結合自定義函數可以達到任何想要的結果。使用Pro-to-C程序設計語言進行各種函數的設計,Proto-C程序設計語言是一種類似于C/C++風格的程序設計語言,較好的兼容普通C/C++標準,在OPNET中新引入了一些適合通信仿真的數據結構與表達方式,Proto-C為用戶提供了大量的通用的程序接口函數。圖1為進程模型中卡爾曼自定義濾波函數Proto_C實現的核心代碼,如下。

其中x表示系統的狀態值,p代表代表協方差,kg為算法在有噪聲情況下的計算值,z為測量值,最后將狀態值與測量值進行修正,賦值給當前時刻的狀態x_now,然后更新系統狀態,等待下一次數據到來。
無線傳感器網絡是由部署在監測區域內的微型傳感器節點組成,通過無線通信方式形成一種多跳自組織的網絡系統,其目的是協作感知、采集和處理網絡覆蓋區域內感知對象的信息,并將結果發送給觀察者。典型的無線傳感器網絡體系結構[3]由傳感器節點,匯聚(sink)節點,Internet或衛星網絡構成,個別還會加入特定的處理模塊。節點可內置各種感知單元,如感知目標的溫度、震動、濕度、光強度等信息。節點采集到的信息被處理后,經多跳自組織路由方式匯聚到sink節點,最后通過互聯網或者衛星網絡到達管理部門。同樣,管理部門亦可采取相同的策略逆向,將管理信息經由sink節點發送給各傳感器節點,達到控制節點的目的。典型的無線傳感器節點硬件體系結構如圖1所示。
其中傳感器模塊負責信息的采集,并將其模擬量進行數字化。處理器模塊,負責具體的通信協議和處理算法的執行。無線通信模塊,負責與外界進行信息交互。能量供應模塊,為整個節點體系提供能量。本研究課題重點關注網絡傳輸階段的組網技術,采用無線信道模型進行數據的傳輸,因此以下重點論述傳感器節點間的無線組網技術。

圖1 無線傳感器網絡節點傳感器硬件體系結構
OPNET是目前網絡仿真領域內最著名的網絡建模及仿真軟件,亦是最先進的網絡仿真和開發平臺。它采用3層建模架構,即網絡層、節點層、進程層,完全符合OSI標準,且能提高仿真速度。其次,它是基于事件驅動的仿真,仿真的推進是靠事件來驅動的,有事件則處理,無事件則推進時間線[6-7]。其仿真實體是包,通過包的字段來體現通信協議。OPNET幾乎可以實現各種網絡的仿真,如核心網、無線網、衛星網等,本研究重點使用它在無線傳輸方面建模的能力。
計算機網絡的國際標準OSI模型中,規定7層體系架構,工業中采用簡化了的OSI模型—即TCP/IP協議棧模型。OPNET是按照實際網絡體系結構進行組織各種仿真資源,因此與實際系統的逼近程度很吻合[4],為實際的研究應用提供逼真的仿真平臺。卡爾曼濾波算法在無線傳感器網絡中的OP-NET仿真模型包含3部分:進程模型,節點模型,網絡模型。進程模型是節點模型的基礎,眾多進程模型構成一個節點模型,實現特定的節點功能。節點模型是網絡模型的基礎,眾多節點模型實現整個網絡模型的功能。網絡模型建立仿真工程任務,關聯所有的節點模型和必要的鏈路模型,構成完整的仿真模型。
3.1 進程模型
進程是一系列作用于數據的邏輯操作以及觸發這些操作的條件,包括通信協議和算法、共享資源管理、排隊規則、業務流量生成器、統計量收集和操作系統等。創建進程模型,需要使用進程編輯器,OP-NET為用戶提供了一種圖形與代碼相結合的方式創建進程模型。圖2為該項目眾多進程模型之一——發送節點產生數據包的進程模型a_src_ process,定義了3種狀態:初始化狀態(init)、狀態(idle)、發送狀態(pk_send)。各個節點的進程模型大致相同,區別在于各個狀態的處理函數不同,完成的功能亦不同。Kalman濾波算法作為狀態處理函數,在發送節點進程模型中以C文件(后綴名.c)的形式載入工程,OPNET內核調用該函數處理相應的數據,詳見OPNET參考手冊。

圖2 a_src_process進程模型
init為綠色強制狀態,完成初始化功能用到2個主要函數:op_ima_obj_attr_get(op_id_self(),"Transaction Rate",&tr)獲取Transaction Rate的屬性值,函數op_dist_load("normal",3200,400)設置包大小為正態分布;idle為紅色的非強制狀態,產生中斷并觸發下一次事件,主要用到的函數op_intrpt_ schedule_self(op_sim_time()+op_dist_outcome(ia_ dist_ptr),0),其功能是產生中斷并喚醒下一次事件;pk_send為綠色強制狀態,產生相應的數據包并處理數據,Kalman濾波函數將在此環節被調用。主要用到的函數op_pk_create_fmt(“a_packet”)創建指定包格式的數據包。從idle狀態到達pk_send狀態的轉移條件為NEXT_IA_TIMER_EXPIRES,從pk _send到idle狀態采取默認的轉移條件。
3.2 節點模型
節點是指通信中的一個設施或者資源,數據在其中產生、發送、接受和處理。節點通常具備的能力有:創建功能、收發數據功能、存儲功能、內部路由功能等[5]。OPNET創建節點模型需使用節點編輯器,它為用戶提供模擬節點內部功能的各種必要資源。節點通常由多個模塊共同完成相應功能。
設計中,傳感器節點模型如圖3所示,由6個模塊組成。sensor_function模塊,主要模擬實現傳感器的功能(收集力、熱、聲、光、電等信息),并對相應信息進行數字化處理,如調制、編碼等。queue_flow模塊,定義了隊列的處理行為,此處采用OPNET提供的acb_fifo_ms隊列,a(active)表示隊列是主動形式(數據由源模塊發送),c(concentrating)指從多個客戶到來的數據排列在一起集中處理,b(bits)表示以比特為單位處理數據,fifo(first in first out)為先進先出隊列,ms(multi_server)為多服務處理機制。mac模塊,此處參考802.11數據鏈路層協議,實現鏈路層數據包的封裝和傳輸等功能。raido_rx和raido_tx分別為無線接收和發送模塊。ant_rx為天線模塊,它和radio_rx與radio_tx共同完成信息的發送和接收,實現物理層的傳輸功能[7]。

圖3 傳感器節點模型
數據成員為具有一定格式的數據包,包是一種字段的集合,用包格式編輯器以圖形化的方式定義。包括:前導碼(preamble),定義為64 bits數據位;目的地址(dst_addr),定義為32 bits;源地址(src_ad-dr),定義為32 bits;類型(type),定義為16 bits;信息域(data),定義為1 000 bits;幀檢測順序(fcs),定義為32 bits。所有的字段可以根據實際情況設定,但要符合相應的協議。圖4所示為該項目的數據包格式。

圖4 數據包格式
3.3 網絡模型
網絡層是OPNET仿真建模的最高層,它為用戶提供了嵌套的子網模型,理論上用戶可以創建無數多的嵌套子網。網絡的創建是以子網、節點、鏈路這3類對象為基礎。其工作區是項目編輯器,用戶通過設置各種對象的屬性和參數控制整個網絡的行為。
圖5為模擬在10 000 m×5 000 m的區域內隨機分布的傳感器節點(mobile_node),其中帶圈的節點為模擬簇頭節點,其功能與其他節點一樣。其中的兩條白色折線,為模擬節點的移動軌跡,每個節點上的向上的箭頭代表與mobility config文件的關聯屬性,系統將會記住每一個被關聯節點的包括位置、大小、時間等信息。

圖5 無線傳感器節點模型隨機分布圖
成功搭建模型后,用戶可以創建多個不同的仿真場景,用于不同情況下的系統仿真和研究,也可以在同一個場景中不斷修改各個對象的屬性和參數,收集統計量,進行仿真。
觀察某些屬性值的修改對整個網絡性能的影響情況。合理的建模和仿真應遵循的步驟為:創建發送節點,創建接收節點,定義鏈路模型,建立完整的工程和場景,收集統計量,添加注釋,運行仿真并查看結果。收集統計量和設置仿真屬性重要之處在于,降低系統開銷和提高系統執行效率,只對感興趣的統計量做研究,具有較強的針對性。本例收集的統計量如圖6、7所示。
其中,圖6接收端收集的統計量有誤比特率、丟包率、吞吐量,以as is形式顯示。可以看出,接收端的誤碼率和丟包率,都保持在近乎為零的良好水平,但是隨著時間(系統中反應的是某個具體的事件)出現了波動,這與具體的設備有關,研發人員可以選取多家不同的設備模型(OPNET模型庫中包含眾多的設備模型)比較,選擇性能最好的設備[8]。數值分析學強調,誤差永遠不可能消除,只能縮小。

圖6 接收端仿真曲線

圖7 發送端仿真曲線
圖7發送端收集的統計量包括端到端時延、隊列大小、吞吐量、包大小,以time_average的形式顯示。可以看出,發送端端到端時延為1 s,隊列大小為1 000 bits,包大小為1 000 bits,這都與設計一致。吞吐率是一個漸變的過程,隨著時間的推移,慢慢達到預期目標。這一現象符合控制學原理中時域分析中的瞬態響應和穩態響應的變化規律。
建立了基于卡爾曼濾波算法的OPNET無線傳感器網絡仿真模型,仿真結果分析表明,誤碼率保持在10-5次方數量級,丟包率在10-2次方數量級,端到端時延控制在1s內,有效地驗證了卡爾曼濾波算法在無線傳感器網絡中的應用。因現實條件未組建實際的無線傳感器網絡,實地測量收集數據。就仿真結果,如何提高系統的穩定性和魯棒性及系統精度,將是下一步研究的方向。
[1]AKYIDIZ IF,VURANM C.Wireless sensor networks[M].[S.l.]:John Wiley&Sons Inc,2010:37-49.
[2]KALMAN R E.New results in linear filtering and prediction theory[J].Journal of Basic Engineering,1960,82:35-45.
[3]周玨嘉,林小竹,慕春棣.基于OPNET的無線傳感器網絡節點跨層設計[J].計算機工程,2007,33(15):133-130.
[4]RAHMAN M.Investigation of bandwidth requirement of sm-artmeter network using OPNET modeler[J].Smart Grid and Renewable Energy,2013(4):378-390.
[5]裘瑩,李士寧,吳雯,等.通用無線傳感器網絡節點平臺設計[J].計算機工程與應用,2012,48(23):90-94.
[6]康超,謝紅.基于流量自適應的S-MAC協議的優化[J].應用科技,2011,6:281-285.
[7]陳擁軍,徐罡,周興付.無線傳感器網絡最少數量通信節點定位方法[J].計算機工程與應用,2014,50(5):55-59.
[8]陸智.OPNET在無線網絡中的應用研究[D].上海:復旦大學,2010:8-36.
[9]段威,任華,柳海峰.基于OPNET的通信網絡半實物仿真方法研究[J].計算機仿真,2007,24(11):138-143.
[10]程海青,王華,王華奎,等.無線傳感器網絡質心定位算法的OPNET仿真實現[J].暨南大學學報,2011,32 (3):281-285.
Wireless sensor network simulation model based on Kalman filtering algorithm
NAN Chunli,ZHANGWei,LIU Xiyuan,HAO Ruru
School of Information Engineering,Chang’an University,Xi’an 710064,China
Due to the influence of such factors as the communication node and location of a wireless sensor network (WSN),the communication links amongmanymovable or fixed sensor nodes are limited,it is not favorable for the transmission of bulk data.To solve the problem,this paper firstanalyzes typicalWSN node architecture,and estab-lishes a simulation model based on the Kalman filtering algorithm.The research is mainly focused on the signal tracking performance of the Kalman filtering algorithm,statistical graphs of network delay,throughput rate and er-ror rate are analyzed and thereby the stability of the algorithm is obtained.The simulation results show that the error rate keeps at 10-5magnitude,the packet loss rate keeps at 10-2magnitude and the end-to-end delay is less than 1 second,which well testifies the effectiveness and approximation of the simulation model.
wireless sensor network;OPNET;simulation model;Kalman filtering algorithm
TP212.6
A
1009-671X(2015)02-048-05
10.3969/j.issn.1009-671X.201407004
2014-07-12.
日期:2015-03-25.
國家自然科學基金資助項目(51278058);中央高校基本科研業務費專項基金資助項目(CHD2011JC144).
南春麗(1971-),女,副教授,博士.
張偉,E-mail:zhangwei20080808@yeah.net.
http://www.cnki.net/kcms/detail/23.1191.u.20150325.1258.012.html