一、 簡介
1 引言
WSN 由能感覺外部環境的傳感器節點以自組網的形式構成,是一種分布式無線傳感器網絡。随着科技的進步和現代生活的需求,由于 WSN 的遠端控制、資訊即時傳播以及低功耗等衆多優點,WSN 在軍事醫療、生活娛樂和工業生産等各個社會領域發揮着越來越大的作用。但是 WSN 優點衆多的同時也有其弊端。正是因為傳感器節點的無線性,使能量不能源源不斷地直接供給傳感器節點,隻能用有限的電池供應節點的全部能耗,這使能量成為 WSN 亟待解決的問題。為了解決能量均衡高效這個問題,Heinzelman 等提出了最早的分簇路由協定。此協定運用資料融合技術和能量高效利用的路由算法,是經典的分簇路由協定代表。此後,很多研究學者對此基礎上進行了諸多改進,都從不同方面進行了優化。Mittal 等提出了用替補簇首( Sub-CH )代替死亡簇首的方法。Gnanambigai等介紹了LEACH的後繼協定。其中,LEACH-C 協定利用每個節點發送位置資訊和剩餘能量生成能耗更低、性能更優越的分簇;LEACH-F使用固定的簇和循環選舉出的簇首,避免了反複成
簇帶來的能量消耗;MUTIHOP-LEACH 協定考慮間距因素,在簇中節點與彙聚節(sink)、簇與基站之間使用多跳方法的傳輸方案;LEACH-L 允許間隔基站較遠的簇首使用多跳方式與基站進行通信。
2 LEACH 協定概述
2.1 LEACH 協定的簡介
LEACH 協定是一種經典分簇路由協定,它的特點是低功率消耗、聚類自适應和節點平等。由于網絡内各個節點被選機率一樣,是以将整個網絡的能量消耗均衡地配置設定到每個節點,進而達到網絡的能量消耗負載均衡,延長網絡生命時間。LEACH協定主要由T n( ) 構成。首先,每輪次每個節點都随機産生的一個數 0 1 ;然後,将 與T n( ) 進行比較,如果 T n( ) ,則此節點成為簇首;反之,則落選。在 WSN 中一次新路由的建立加上資料的傳輸算一輪。由T n( ) 算法可以看出,被選為簇首是由這 2 方面因素進行權衡得出的:整個網絡場景中所需要的簇首節點總數和節點當選過簇首的次數。門檻值T n( ) 為
其中, p 表示在此網絡規模中需要的簇首節點比例,r 是進行的輪次,G 表示在此輪循環之前沒有被選為簇首的節點。
2.2 網絡模型
為了研究改進的路由算法對網絡的影響,對網絡模型作了如下假設。
- 實驗區域的形狀為規則圖形,傳感器節點在監測區域中随機不均勻分散。
- 所有傳感器節點的能量相同、處理能力和通信能力相等,被選機率一樣。
- 傳感器節點可以知悉自身剩餘能量并可以對備援資料進行融合。
- 傳感器節點随機被分散後不會移動,網絡部署後不再進行人為幹涉。
- 無線發射功率可以自我調控,可自主選擇發射功率。
2.3 能耗模型
本文實驗中,m bit 資料的傳輸過程與每一步的能量消耗如圖 1 所示[13]。
當 m bit 的資料進行傳輸時,節點的能量消耗主要由這 2 個部分構成:發送 m bit 資料的能量耗損以及功率放大電路的能量耗損;同時,針對不同的發射距離 d,選擇不同的發送功率為
二、部分源代碼
clc;
clear all;
close all;
%1.初始參數設定子產品
%.傳感器節點區域界限(機關 M)
xm=100;
ym=100;
%(1)彙聚節坐标給定
sink.x=0.5xm;
sink.y=0.5ym;
%區域内傳器節數
n=100
%簇頭優化比例(當選簇頭的機率)
p=0.05;
P=0.05;
%能量模型(機關 焦)
%初始化能量模型
Eo=0.5;
%Eelec=Etx=Erx
ETX=500.000000001;
ERX=500.000000001;
%Transmit Amplifier types
Efs=100.000000000001;
Emp=0.00130.000000000001;
%Data Aggregation Energy
EDA=5*0.000000001;
%高能量節點超出一節點能量的百分比
a=1;
%最大循環次數
rmax=5000
%算出參數 do
do=sqrt(Efs/Emp);
Et=0;
%2.無線傳感器網絡模型産生子產品
%建構無線傳感器網絡,在區域内均勻投放100個節點,并畫出圖形
for i=1:1:n
S1(i).xd=rand(1,1)xm;
S2(i).xd=S1(i).xd;
S3(i).xd=S1(i).xd;
S4(i).xd=S3(i).xd;
XR4(i)=S4(i).xd;
XR3(i)=S3(i).xd;
XR2(i)=S2(i).xd;
XR1(i)=S1(i).xd;
S1(i).yd=rand(1,1)ym;
S2(i).yd=S1(i).yd;
S3(i).yd=S1(i).yd;
S4(i).yd=S3(i).yd;
YR4(i)=S4(i).yd;
S4(i).G=0;
YR3(i)=S3(i).yd;
S3(i).G=0;
YR2(i)=S2(i).yd;
YR1(i)=S1(i).yd;
S1(i).G=0;
S2(i).G=0;
S1(i).E=Eo(1+randa);
S2(i).E=S1(i).E;
S3(i).E=S1(i).E;
S4(i).E=S3(i).E;
E3(i)= S3(i).E;
E4(i)= S4(i).E;
Et=Et+E3(i);
%initially there are no cluster heads only nodes
S1(i).type='N';
S2(i).type='N';
S3(i).type='N';
S4(i).type='N';
end
三、運作結果
四、matlab版本及參考文獻
1 matlab版本
2014a