一、理论基础
1、能耗模型
本文采用一阶无线电模型作为能量消耗模型。节点在发送数据时,采用发送电路发送数据,并且使用放大电路对信号进行放大;接收端接收数据时,采用接收电路解析数据。节点与节点间产生数据通信时,节点的能量消耗与发送端和接收端的距离大小有关。当发送端节点向间距为 d d d的接收端节点传送数据时,发送端消耗的能量大小为 E t x ( k , d ) = { k E e l e c + k ε f s d 2 , d < d 0 k E e l e c + k ε m p d 4 , d ≥ d 0 (1) E_{tx}(k,d)=\begin{dcases}kE_{elec}+k\varepsilon_{fs}d^2,\quad\, d<d_0\\kE_{elec}+k\varepsilon_{mp}d^4,\quad d≥d_0\end{dcases}\tag{1} Etx(k,d)={kEelec+kεfsd2,d<d0kEelec+kεmpd4,d≥d0(1)其中: k k k为数据量的大小,单位为bit; E t x E_{tx} Etx为传输数据能耗; E e l e c E_{elec} Eelec为传输1bit数据所需的能量; ε f s \varepsilon_{fs} εfs和 ε m p \varepsilon_{mp} εmp为不同信道传播模型下的功率放大电路能量损耗系数,其中,信道方式的选择受传输距离大小的影响; d 0 = ε f s / ε m p d_0=\sqrt{\varepsilon_{fs}/\varepsilon_{mp}} d0=εfs/εmp是传输距离阈值。当发送的间距小于或等于该值时,使用自由空间信道模型,放大电路能量消耗系数为 ε f s \varepsilon_{fs} εfs;若发送的间距大于该值,使用多路径衰减信道模型,放大电路能耗系数为 ε m p \varepsilon_{mp} εmp。
2、基于最佳簇半径的分簇路由算法
(1)分簇优化
每一轮次中,每个节点首先生成一个0~1之间的未知数 μ \mu μ,然后与阈值 T ( n ) T(n) T(n)比较,若小于阈值 T ( n ) T(n) T(n),则该节点被选作簇头。其中,阈值 T ( n ) T(n) T(n)的计算公式为: T ( n ) = { p 1 − p ⋅ ( r m o d 1 p ) ⋅ Q , n ∈ G 0 , o t h e r w i s e (2) T(n)=\begin{dcases}\frac{p}{1-p\cdot\left(rmod\frac1p\right)}\cdot Q,\quad n∈G\\0,\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\, otherwise\end{dcases}\tag{2} T(n)=⎩⎪⎨⎪⎧1−p⋅(rmodp1)p⋅Q,n∈G0,otherwise(2)其中: p p p为簇头占网络总节点数的比值; r r r为当前轮次; G G G为在最近的 1 / p 1/p 1/p轮次内未被选中簇头的集合。为减小能量低的节点和位置较远的节点被选择为簇头的概率,设置一个控制参数 Q Q Q,目的是使当前轮次能量更多,位置距离更近的节点更容易被选择为簇头。其中, Q Q Q的计算公式为: Q = α ⋅ E i ( r ) E a v g ( r ) + β ⋅ D a v g ( r ) D i ( r ) (3) Q=\alpha\cdot\frac{E_i(r)}{E_{avg}(r)}+\beta\cdot\frac{D_{avg}(r)}{D_i(r)}\tag{3} Q=α⋅Eavg(r)Ei(r)+β⋅Di(r)Davg(r)(3)其中: α , β \alpha,\beta α,β为权重因子,它们之间的关系为 α + β = 1 \alpha+\beta=1 α+β=1,可通过改变两个因子的值来控制节点能量和节点位置的比重; E i ( r ) E_i(r) Ei(r)为第 r r r轮该节点的自身能量; E a v g ( r ) E_{avg}(r) Eavg(r)为第 r r r轮当前网络的平均能量,计算公式为: E a v g ( r ) = ∑ i ∈ G E i ( r ) n ( r ) (4) E_{avg}(r)=\frac{\displaystyle\sum_{i∈G}E_i(r)}{n(r)}\tag{4} Eavg(r)=n(r)i∈G∑Ei(r)(4)第 r r r轮节点的当前自身能量越大,阈值 T ( n ) T(n) T(n)也会越大,节点变成簇头的可能性也会变大,如此加大了能量高的这一类节点被选作簇头的概率。 D a v g ( r ) D_{avg}(r) Davg(r)为第 r r r轮整个网络中剩余节点与基站间的平均距离: D a v g ( r ) = ∑ i ∈ G D i ( r ) n ( r ) (5) D_{avg}(r)=\frac{\displaystyle\sum_{i∈G}D_i(r)}{n(r)}\tag{5} Davg(r)=n(r)i∈G∑Di(r)(5) D i ( r ) D_i(r) Di(r)为当前节点到基站的距离: D i ( r ) = ( x i − x 0 ) 2 + ( y i − y 0 ) 2 (6) D_i(r)=\sqrt{(x_i-x_0)^2+(y_i-y_0)^2}\tag{6} Di(r)=(xi−x0)2+(yi−y0)2(6)相同条件下, D i ( r ) D_i(r) Di(r)越大,该节点至基站位置的间距也更大,则该节点对应的阈值就会相应的变小,当选簇头的概率也会减小。减小位置远的节点被选作簇头的概率,增加位置近的节点被选作簇头的概率,从而达到减小因距离过大产生的能耗。
(2)簇间通信
若簇头与基站间距较近,则簇头把数据单跳发送至基站,而间距基站远的簇头则通过多跳的方法进行数据传送,选择路径上其他簇头当作中继节点。先将数据发送至该中继节点,再通过中继节点发送至基站。若有 A , B A,B A,B两个簇头节点,基站为BS,距离之间关系如下: d 2 ( A , B S ) > d 2 ( A , B ) + d 2 ( B , B S ) (7) d^2(A,BS)>d^2(A,B)+d^2(B,BS)\tag{7} d2(A,BS)>d2(A,B)+d2(B,BS)(7)则由距离计算其能耗,能耗之间的关系为: E ( A , B S ) > E ( A , B ) + E ( B , B S ) (8) E(A,BS)>E(A,B)+E(B,BS)\tag{8} E(A,BS)>E(A,B)+E(B,BS)(8)由式(8)可以看出,多跳传送的能耗方式要小于单跳。因此在数据传输时,若簇头节点间满足式(7),则簇头通过满足条件的另一簇头作为中继节点传输数据至基站。
二、仿真实验
实验采用 Matlab 仿真软件做对比仿真,主要观察各种算法的网络生命周期,网络能量消耗对比。
实验仿真设置200个节点分布在200×200m大小监测范围内的分布图。基站坐标设置在图中原点(0,0)位置。该对比仿真实验一共为2000轮次。图1显示了网络有效工作时间内各算法每一轮存活节点的曲线。具体仿真参数设置如表1所示:
图2呈现了网络工作过程中每一轮次各个算法的网络总剩余能量,展示了LEACH-OR算法及其他三种算法的能量消耗速度对比。由图2可以看出,LEACH算法的能量损耗最快,LEACH-OR算法相对于其他两种算法的能耗速度都要缓慢,能量损耗更加平均;且在相同工作时间内,LEACH-OR算法的节点剩余存活数量要高于其他算法,能有效地加长网络的工作时间。
三、参考文献
[1] 武一, 李家兴, 范书瑞, 等. 基于最佳簇半径的无线传感器网络分簇路由算法[J]. 现代电子技术, 2021, 44(4): 23-26.
[2] 韩广辉, 张丽翠. 基于LEACH协议的无线传感网能效分簇算法[J]. 吉林大学学报(信息科学版), 2017, 35(1): 26-31.
[3] 黄利晓, 王晖, 袁利永, 等. 基于能量均衡高效WSN的LEACH协议改进算法[J]. 通信学报, 2017, 38(Z2): 164-169.