無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的動(dòng)態(tài)拓撲能量有效成簇算法
3.5數據傳輸
在傳感器網(wǎng)絡(luò )中,簇內數據傳輸為單跳的,在簇首和各成員節點(diǎn)之間進(jìn)行,而對于簇頭到Sink節點(diǎn)的數據傳輸,LEACH算法及一部分改進(jìn)算法是采用簇頭到匯聚節點(diǎn)的單跳傳輸,這種方法使簇頭使用了多徑衰落的通信模型(文獻[3]),能量消耗很大,本文采用基于距離因子的多跳傳輸方式。由于采用多跳通信,能量消耗為自由空間模型,而且消息在傳送過(guò)程中進(jìn)行了多次數據融合,使各級數據轉發(fā)中的數據量都有所減少,也減少了通信能耗。網(wǎng)絡(luò )所有節點(diǎn)都存儲有根據接收到Sink節點(diǎn)的信號確定的自己到Sink的距離值,這一距離值在第一輪成簇前就已確定,我們稱(chēng)之為距離因子。當每個(gè)簇的簇內數據融合進(jìn)行之后,就會(huì )開(kāi)始各簇到Sink的多跳數據傳輸。
首先,發(fā)送數據的簇頭以確定的半徑RD發(fā)送出消息,消息報文中還包含了此簇頭的距離因子,周?chē)拇仡^收到消息后,各簇頭將些距離因子與自己的進(jìn)行比較,若發(fā)現其距離因子小于報文中的距離因子,且自己的剩余能量值不低于簇間傳輸所需的最小能量閾值Emin后,確定自己將此數據進(jìn)行轉發(fā),將消息報文中的距離因子替換為其距離因子后以半徑RD繼續轉發(fā),之后傳輸過(guò)程相似。由于轉發(fā)消息的簇頭的距離因子小,從而其離Sink節點(diǎn)更近,這樣消息報文在簇間就以多跳的最優(yōu)路徑傳向了匯聚節點(diǎn)。傳輸能量開(kāi)銷(xiāo)得以最小化。
3 仿真研究
NS2(Network Simulator 2)是著(zhù)名的用于網(wǎng)絡(luò )研究的離散事件仿真工具,里面包括了大量的用于有線(xiàn)和無(wú)線(xiàn)、本地連接或通過(guò)衛星連接進(jìn)行TCP協(xié)議、路由算法、多播協(xié)議仿真的網(wǎng)絡(luò )協(xié)議、調度器和工具。NS的核心部分是一個(gè)離散事件模擬引擎。NS中有一個(gè)“調度器”(Scheduler)類(lèi),負責記錄當前時(shí)間,調度網(wǎng)絡(luò )事件隊列中的事件,并提供函數產(chǎn)生新事件,指定事件發(fā)生的時(shí)間。在仿真過(guò)程中,將執行相關(guān)算法,并且將網(wǎng)絡(luò )運行的具體情況寫(xiě)到文件當中,包括數據分組的傳遞情況、節點(diǎn)的能量狀況等,這些文件對算法之間進(jìn)行比較有很大的作用。本文在仿真場(chǎng)景設置方面,使用了如下場(chǎng)景設置方案:
(1) 仿真區域大小為(100*100)。
(2) 所有節點(diǎn)的初始能量相同。
(3) 傳感器節點(diǎn)在區域(100*100)內隨機分布。
仿真開(kāi)始時(shí),網(wǎng)絡(luò )內傳感器節點(diǎn)的分布狀態(tài)如圖1所示。

仿真結束之后得到了LEACH和DTEE算法生成的相關(guān)文件,使用awk程序提取算法生成的相關(guān)文件中的關(guān)鍵數據,然后利用gnuplot工具將這些數據顯示于圖表上,得到兩個(gè)算法相比較的曲線(xiàn)圖如圖2所示。
從圖可以看出在仿真過(guò)程中,節點(diǎn)的能量會(huì )隨著(zhù)時(shí)間的推移逐漸減少,直至節點(diǎn)能量耗盡而死,所以在各個(gè)時(shí)段傳感區內仍存有能量的節點(diǎn)數是不同的,圖對兩種算法在不同時(shí)段仍然存活的節點(diǎn)個(gè)數做出了比較。首先,LEACH算法在第120秒時(shí)第一個(gè)節點(diǎn)出現了死亡,而DTEE是在130多秒時(shí)第一個(gè)節點(diǎn)死亡。從節點(diǎn)存活數目圖可以看出,在300秒左右,LEACH算法的存活節點(diǎn)數已經(jīng)為0,而DTEE算法仍有8個(gè)節點(diǎn)能量并未耗盡,直到320秒左右,DTEE算法的節點(diǎn)才全部死亡,所以DTEE算法中節點(diǎn)的生命周期比LEACH提高了約6%,可以看出,DTEE算法由于采用多跳的路由方式,網(wǎng)絡(luò )生命周期得到了一定程度的延長(cháng)。
本文通過(guò)采用引入能量因子的低復雜度簇頭選擇算法降低了網(wǎng)絡(luò )通信能耗,在數據傳輸上通過(guò)多跳方式進(jìn)行信息路由。仿真結果顯示,改進(jìn)后的DTEE協(xié)議能更好地平衡網(wǎng)絡(luò )負載、節約能量消耗且具有更高的能量使用效率,對分簇算法的的路由協(xié)議實(shí)現了優(yōu)化。
仿真結束之后得到了LEACH和DTEE算法生成的相關(guān)文件,使用awk程序提取算法生成的相關(guān)文件中的關(guān)鍵數據,然后利用gnuplot工具將這些數據顯示于圖表上,得到兩個(gè)算法相比較的曲線(xiàn)圖如圖2所示。
從圖可以看出在仿真過(guò)程中,節點(diǎn)的能量會(huì )隨著(zhù)時(shí)間的推移逐漸減少,直至節點(diǎn)能量耗盡而死,所以在各個(gè)時(shí)段傳感區內仍存有能量的節點(diǎn)數是不同的,圖對兩種算法在不同時(shí)段仍然存活的節點(diǎn)個(gè)數做出了比較。首先,LEACH算法在第120秒時(shí)第一個(gè)節點(diǎn)出現了死亡,而DTEE是在130多秒時(shí)第一個(gè)節點(diǎn)死亡。從節點(diǎn)存活數目圖可以看出,在300秒左右,LEACH算法的存活節點(diǎn)數已經(jīng)為0,而DTEE算法仍有8個(gè)節點(diǎn)能量并未耗盡,直到320秒左右,DTEE算法的節點(diǎn)才全部死亡,所以DTEE算法中節點(diǎn)的生命周期比LEACH提高了約6%,可以看出,DTEE算法由于采用多跳的路由方式,網(wǎng)絡(luò )生命周期得到了一定程度的延長(cháng)。

本文通過(guò)采用引入能量因子的低復雜度簇頭選擇算法降低了網(wǎng)絡(luò )通信能耗,在數據傳輸上通過(guò)多跳方式進(jìn)行信息路由。仿真結果顯示,改進(jìn)后的DTEE協(xié)議能更好地平衡網(wǎng)絡(luò )負載、節約能量消耗且具有更高的能量使用效率,對分簇算法的的路由協(xié)議實(shí)現了優(yōu)化。
評論