文章目錄
- 一、理論基礎
- 1、LEACH演算法概述
- 2、改進的LEACH演算法
- 二、演算法流程圖
- 三、仿真實驗與分析
- 四、參考文獻
- 五、Matlab代碼
一、理論基礎
1、LEACH演算法概述
請參考這里,
2、改進的LEACH演算法
改進的LEACH演算法(LEACH-N)主要針對LEACH演算法分簇階段的缺陷而改進的,具體步驟如下:
(1)每一個節點計算與其他節點距離小于
d
0
d_0
d0?的節點數
a
a
a,
d
0
d_0
d0?的計算公式如下:
d
0
=
ε
f
s
/
ε
m
p
(1)
d_0=\sqrt{\varepsilon_{fs}/\varepsilon_{mp}}\tag{1}
d0?=εfs?/εmp?
?(1)式中:
ε
f
s
\varepsilon_{fs}
εfs?表示自由空間信道模型信號放大器功耗;
ε
m
p
\varepsilon_{mp}
εmp?表示多路徑衰減信道模型信號放大器功耗,
(2)計算節點剩余能量
E
l
E_l
El?,
(3)節點根據剩余能量和特定范圍內的節點數計算出各個節點可成為新的簇頭節點的閾值, 閾值計算公式為:
T
(
n
)
=
{
p
i
1
?
p
i
(
r
m
o
d
(
1
/
p
i
)
)
?
E
l
E
0
,
n
∈
G
0
,
??
o
t
h
e
r
w
i
s
e
(2)
T(n)=\begin{dcases}\frac{p_i}{1-p_i\left(rmod(1/p_i)\right)}\cdot\frac{E_l}{E_0},\quad n∈G\\0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\, otherwise\end{dcases}\tag{2}
T(n)=????1?pi?(rmod(1/pi?))pi???E0?El??,n∈G0,otherwise?(2)式中:
p
i
=
p
?
a
/
n
p_i=p\cdot a/n
pi?=p?a/n,
p
p
p為整個網路中簇頭節點占總節點數
n
n
n的比例;
E
0
E_0
E0?為節點的初始能量;
G
G
G代表在最近的
r
?
1
r-1
r?1輪中未當選簇頭的節點集合,
r
r
r是WSN進行的當前輪數;
r
m
o
d
(
1
/
p
i
)
rmod(1/p_i)
rmod(1/pi?)為一輪回圈中當選過簇頭的傳感器節點個數,
(4)節點會產生一個[0,1]的亂數,如果亂數小于這個閾值T(n),則該節點成為簇頭,
(5)所有簇頭選擇完成之后,廣播所有簇頭節點位置資訊,剩余的普通節點選擇距離最近的簇頭入簇,并將自己的標識記為該簇頭的標識號,
(6)所有節點入簇完成,轉為資料傳輸階段,簇內的普通節點比較到簇頭和Sink節點的距離,若到Sink節點的距離更小,則直接傳輸資料到 Sink節點,減少能量的消耗,
(7)簇頭節點接收簇內非簇頭節點的資料,通過計算、融合后將資料發送給Sink節點,該階段運行一輪后,進入下一輪,轉至步驟(2) ,計算剩余能量
E
l
E_l
El?,
二、演算法流程圖

三、仿真實驗與分析
仿真網路中有100個節點且隨機地分布在100m×100m范圍內,Sink 節點的位置固定,每個節點的初始能量為0.5J,仿真引數如表1所示,

圖2~4分別是存活節點數目、網路剩余能量、基站接收的資料量隨輪次的變化曲線,



四、參考文獻
[1] Heinzelman W R , Chandrakasan A , Balakrishnan H . Energyefficient communication protocol for wireless microsensor networks. 2000.
[2] 韓廣輝,張麗翠.基于LEACH協議的無線傳感網能效分簇演算法[J].吉林大學學報(資訊科學版),2017,35(01):26-31.
[3] 何書前, 嚴晨, 鄧正杰,等. 無線傳感器網路路由優化中的能量均衡LEACH改進演算法[J]. 現代電子技術, 2020, 043(005):6-9.
五、Matlab代碼
下載地址:
https://download.csdn.net/download/weixin_43821559/16831682
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279328.html
標籤:其他
上一篇:LCD1602自定義符號的使用
下一篇:STM32入門培訓
