1. 引言
准确全面地感知供水侧和需水侧水雨情、工情、墒情,以及与农作物生长密切相关的各种环境因子和农业生产环境控制信息等,是实施和科学管理决策精准灌溉的基础。灌区(特别是大、中型灌区)信息监测网络测点多,主干监测网和前端(未端)微网组网监测范围广。近年来,在灌区水利及相关的精准农业等领域,针对需水侧的微网(特别是农田环境应用中)建设,无线传感器网络(wireless sensor networks, WSN)技术正在成为解决实际应用问题的研究焦点 [1] [2] [3] [4]。
需水侧微网的监测区域通常距灌区供水侧中心较远,需要通过主干通信网接入管理系统。这些微网监测的信息不仅包括农田中不同作物生长状态、气候环境、水/肥状况以及田间工程的工情等,还可能包括远离灌区供水侧中心的水情/工情/墒情等独立测点。WSN具有成本较低、无线组网灵活、部署方便、监测范围大等特点,是灌区需水侧微网设计的一种可行、有效方案。然而,布设的WSN节点受应用环境限制,能量供给困难。使用电池供电条件下,电池能量、计算能力、传输距离等受限。通过对WSN网络协议(路由协议)的改进研究,是保障网络节点间有效通信以及数据的可靠传输,实现WSN能耗降低和网络生命周期延长的一种技术解决方案 [1] [3] [4] [5] [6]。
以LEACH路由协议为代表的分簇路由算法 [7],相比于平面多跳和静态分层算法,可以将网络生命周期延长15%。但应用于灌区需水侧WSN系统,仍存在着影响整个网络生存时间的某些缺陷:1) LEACH的簇首(cluster head)是随机选举的,未考虑被选举节点的剩余能量;2) 簇首与汇聚节点(sink nodes, SN)间采用一跳通信方式,当距离较远时,数据传输会消耗簇首更多的能量;3) 分簇的大小无规律,形成的子网规模较大时,可能导致所在子网的簇首负担过重。对此,许多学者对LEACH分簇路由算法做了改进 [3] [4] [8] - [13],部分工作针对簇首的选举,部分工作针对多跳通信机制或其他路由机制,还有部分工作针对特定的监测应用领域做改进研究等。如,基于对簇首选举环节的改进,Arumugam等提出EE-LEACH (energy-efficient LEACH)分簇路由算法 [10]。Saxena等综合了节点剩余能量与地理位置的簇首选举,以及簇首间多跳与SN通信方式等因素,提出MMH-LEACH (modified multi-hop LEACH)分簇路由算法 [11]。Sonam等面向监测农业区域的WSN应用,使用模糊逻辑控制技术选择最佳的簇首,利用基于敏感阈值的路由协议将监测的数据传输到基站 [3]。
灌区需水侧WSN的部署应用,与工业、煤矿、农田、油气管道等特定的监测应用有着一定的差别,直接移植使用现有的路由算法存在一定的局限性。为此,本文从灌区需水侧WSN部署的实际应用需求出发,针对灌区监测范围大,WSN规模较大,各节点布设分散且大多与汇聚节点SN距离较远,以及在地形复杂地区,灌渠沿线及周边需水区域呈带状(strip shape)的特征,为降低灌区WSN能耗和延长网络生命周期,提出一种簇首选举优化与多跳机制结合的路由通信算法。该研究可为解决灌区需水侧WSN节点的电池能量、传输距离、网络生存期受限等问题提供参考。
2. 灌区需水侧WSN系统模型和组网
灌区需水侧监测区域:灌渠沿线及周边需水区。假定为长L,宽为W的矩形区域,呈带状特征,面积大小为L × W,其中L是W的数倍。测点均为固定式传感器节点,均匀分布在监测区域内,通过邻近的汇聚节点SN接入灌区主干通信网,或经邻近SN转发其它SN再接入。SN为太阳能板供电(能量不受限),对系统寿命没有影响。无线传感器网络WSN系统由N个传感器节点组成,每个节点同时具备无线收发功能,且具有相同的能量供给和计算功能,都有唯一的身份标识号码ID。节点能感知自身的剩余能量,当节点能量低于节点收发数据实际可用的最大能量时,节点不能进行收发。节点可通过接收到的信号强度估算出发送节点与自身的距离,并可以根据通信距离的长短调整发射功率的大小。
灌区WSN系统为分层结构网络,基于层次型拓扑控制的分簇策略组网,WSN可划分M个簇,每个簇由一个簇首节点和簇成员节点组成,动态形成M个子网,各子网簇首可直接跳传(一跳)、或以子网间多级转跳的通信传输方式与SN联网。簇首负责管理簇内节点、收集和融合簇内信息,直接或经簇间跳传,再向SN发送。WSN内所有节点都有成为簇首的可能,通过算法周期性地循环竞争选举簇首,从而将整个网络的能量负载均衡分配到每个传感器节点上,以此延长整个网络的生存期。
3. 簇首选举优化与多跳机制结合的分簇路由算法
3.1. 分簇路由算法的计算步骤
灌区WSN分簇路由算法主要包括分簇(包含有选举簇首和建立簇群两个部分)、簇群数据融合处理、簇首与汇聚节点SN路由通信等几个功能模块。每个簇群的簇首是根据簇内节点的剩余能量和通信距离择优选举出的节点承担,WSN中的簇群的数目是据簇线划分策略得到,簇群的规模是根据簇首与SN的距离成正比的规则确定的,弥补了传统LEACH分簇算法选举簇首的随机性以及簇群规模大小无规律的不足。另外,基于多跳通信机制,选择最少能耗路径实现簇首与SN的通信。主要计算步骤:
Step 1:初始分区,根据最优簇群数目对网络进行初始分区,将网络先均匀划分成P个区。在初始分区的基础上,后续的计算步骤根据所定义的能量–距离因子选举簇首,并根据所设置的簇线划分簇群及确定簇群规模。
Step 2:考虑节点能量、簇内位置和通信距离等要素,定义能量–距离因子,根据能量–距离因子选举首轮(初始的周期)簇首;采用簇线划分策略,通过簇线划分簇群,优化各簇群规模,以及控制距离SN较近簇群的规模,完成首轮的分簇。接下来的周期性分簇是在首轮分簇基础上延续进行的。
Step 3:簇首对簇内数据的收集,簇内各节点在分配的时间内向簇首发送数据,不进行传输的节点则自动休眠;簇首对收到的簇内所有节点数据进行融合和去冗余后,再向SN跳转发送。
Step 4:簇首与SN节点组网,定义簇首与其他簇首、及与SN之间的通信能耗为能量路径,构建能量路径图;通过最短通信路径Floyed算法 [4] [14] 求得最少能耗路径;若该路径产生的能耗少于簇首直接与SN通信产生的能耗,则簇首通过多跳实现与SN的通信,否则簇首直接(一跳)与SN通信。
Step 5:判断WSN系统数据采集过程结束否,若继续采集,则进入下一轮(周期)路由执行流程。
3.2. 定义“能量–距离”因子
传统的LEACH分簇路由算法,以随机方式选举簇首,未考虑被选节点的剩余能量;另外,当簇首与簇内某些节点间的距离较远时,会消耗簇首更多的通信能量 [4] [6]。为此,综合考虑节点剩余能量和位于簇群中的地理位置,根据“能量–距离”因子选举簇首。
定义能量–距离因子
:
(1)
式中,
是能量因子,
是距离因子。
和
分别是能量因子和距离因子的权重,代表能量或距离对簇首选举的影响程度,可根据具体应用情况做调整。当节点i在簇群内的剩余能量越多,即
越大,且
越小,即该节点i与簇群内其他所有节点的通信距离之和越小,则能量–距离因子
的值就会越大,该节点i也越适合成为簇首。因此网络在每一“轮”(周期性)阶段,每个节点都计算自身的能量–距离因子,通过能量–距离因子的大小来衡量节点成为簇首的优先级别。
能量因子
是i节点当前所剩余能量占初始能量的比重,若剩余能量越多,越适合选为簇首。距离因子
定义为:
(2)
式中,设簇群内节点总个数n,
为簇群内的所有节点与簇首通信的距离之和,反映了不同位置的簇首对簇群能耗的影响。距离因子越小,说明该节点作为簇首时,簇首与簇内节点的通信距离之和就越小,通信能耗也越少,因此该节点适合成为簇首。
图1示意了均匀分布着9个节点的2个簇群,以及A节点和B节点成为簇首的情况。设节点分布的上下间隔距离都为d,若选择节点A为簇首,则簇内所有其他节点与簇首通信的距离之和为
,选择节点B为簇首,则簇内通信的距离之和为
(参见图1)。
设定通信距离在
内,传输数据量为DS,根据经典的无线传输能耗模型 [15] [16],计算同一个簇群中两种通信路径下的无线通信能耗,以节点A为簇首比以节点B为簇首的网络能耗少
。分别选择节点A和B为簇首的网络能耗仿真结果如图2所示。橫坐标表示距离d,单位:m,纵坐标表示簇群能量消耗,单位:Joule。距离d的增大,模拟WSN网络部署的节点间距离的增加。蓝颜色的曲线(节点B作为簇首)表示的簇群能量消耗随着d的增大也会显著增大,而红颜色的曲线(节点A作为簇首)表示的簇群能量消耗少于节点B作为簇首的情况;说明了A节点选择为簇首是合适的,而B节点不合适成为簇首。这也反映了定义的距离因子
,能够直观地表示出不同位置的簇首选择对簇群内通信能耗的影响。
Figure 1. An example of selecting cluster heads based on the distance factor
图1. 依据距离因子
选择簇首的示例
Figure 2. Nodes A and B are the communication energy consumption of cluster head respectively
图2. 节点A和B分别为簇首的通信能耗
3.3. 簇首选举
LEACH一类的分层路由算法采取“轮”更新的周期性方式,簇首节点每轮都会进行更新,本文规定每一轮结束前会为下一轮选举好簇首。以某一簇群的簇首选举为例,簇首选举的流程包括:根据
选举簇首、簇群内节点将自身编号和
发送给本轮簇首、簇首确认
最大的节点及编号、簇首广播发布
最大的节点为下一轮的簇首等计算步骤。
3.4. 根据簇线划分簇群
灌区WSN各节点布设分散,簇首与汇聚节点SN之间需采取多跳通信方式,使得距离SN较近的簇首可能会受到来自本簇群内和本簇群外的双重能耗压力。因此,本文采取簇线划分策略,对灌渠沿线及周边需水区域呈带状特征的WSN进行划分,保证距离SN越近的簇群,其规模越小,从而减少簇首间接力跳传和对自身簇群内数据收集的压力,均衡网络能耗。由于划分簇线是在簇首的基础上划分簇线,对此还需要进行初始的分区得到首轮簇头完成首分簇 [4]。
1) 簇线
WSN中簇群间的分界线定义为簇线,对于带状的监测区域来说,每一个簇群可由两条簇线划分。带状区域的簇线示意于图3。假设WSN网络中有K个簇群,则对应K个簇首,每个簇首表示为
,其坐标为
,
,其中簇首节点到SN的距离为
。每个簇头
都有一条对应的簇线
,并且规定簇线
和簇线
分别为带状监测区域的左右边界线。
Figure 3. Schematic diagram of cluster line
图3. 簇线示意
簇线的表达式如下:
(3)
上式中,
,
是比例系数,通过
可以确定簇线的位置,表达式为:
(4)
表达式中,q反映了簇群规模受簇首到SN通信距离的限制程度,q越大表示簇群规模受簇首与汇聚节点的距离越大,距离SN较近的簇群规模被更多地限制,即簇群内的节点数应更少些,q值可以根据应用场合实际情况进行调整。
簇线的斜率以m表示,通过m可以确定簇线的方向,公式表示:
(5)
综上所得,簇线
的最终表达式:
(6)
在已知所有簇首位置以及簇首与SN距离的情况下,可以通过上式得出每个簇首对应的簇线,进而完成簇群的建立。
每个簇首都有一条对应的簇线,但具体簇群的建立需要结合另一个簇首的簇线,即
所在的簇群是由其自身簇线
以及
的簇线
划分而成。如图4所示,假定网络被划分为5个簇群,共会产生6条簇线,簇线
和簇线
分别为带状区域的左右边界线。簇头
所在的簇群位于簇线
与
之间,其他簇群依次类推。
Figure 4. Cluster line division and clustering diagram
图4. 簇线划分与分簇示意
2) 最优簇群数目的确定和初始分区
设WSN在灌区的应用中存在最优簇群数目K,根据无线传输能耗模型计算网络传输一次数据的能耗,再对K求偏导可得到最优簇群数:
(7)
式中N网络中节点的数目,
是自由空间模型下的放大器能耗,
为多路衰减模型下的放大器能耗,M是正方形区域的边长,
是指簇首到SN的平均距离,大小为0.765 × M/2。而对于L × W的带状区域,最优的簇群数计算式 [15] [16]:
(8)
根据最优的簇群数目,对网络进行初始分区。首先将网络均分为K份,然后根据簇首因子选举出每个初始区域内的簇首,然后建立簇群,完成首轮分簇。初始分区和首轮分簇过程示意于图5。初始分区的目的是根据初始区域内节点的簇首因子,完成首轮簇首的选举,然后进行簇群划分,完成首轮分簇。初始分区为接下来路由通信提供了起始条件。同时,初始分区是按照最优簇群数进行分区,保证了接下来的簇群数能够适应于网络,避免簇群数目的过多或者过少。
Figure 5. Schematic diagram of initial partition and first round of clustering
图5. 初始分区以及首轮分簇示意
3.5. 簇首与汇聚节点间的路由通信
簇首与汇聚节点间的路由通信是根据通信能耗来判断是否采取多跳,具体是通过最短通信路径Floyd算法来实现的。Floyd算法是一种利用动态规划的策略寻找给定的加权图中多源点之间最短路径的算法,是在加权图的基础上,通过构建能量路径图实现的 [4] [14]。在簇间路由通信中,将簇首节点之间的通信能量消耗记为能量路径,将节点CH1与CH2之间通信产生的能耗记为能量路径为E2,其他节点之间由同样的方式得到能量路径,最终以目标簇首为起点,SN为终点得到能量路径图。以CH1为例,CH1直接与SN通信的能量路径为E1,若通过Floyed算法得出CH1分别经过CH2与CH3多跳的通信路径
小于E1,则CH1采用经过CH2与CH3多跳的方式完成与SN的通信。通过能量路径图的建立以及Floyed算法的使用,能够消耗最少的能量来实现簇首与SN的通信。图6给出了能量路径选择的示例。
Figure 6. Energy path selection diagram
图6. 能量路径选择示意
在灌区WSN应用中,通常SN能量不受限,且能够感知网络中所有节点的位置,因此可以通过SN来完成能量路径图。分簇完成后,SN可得知所有簇首的位置,并且计算簇首节点之间通信产生的能耗,最终构建能量路径图,并通过Floyed算法可得到最少能耗通信路径 [4]。比较该路径与直接通信的能耗大小,若最少能耗通信路径产生的能耗小于直接通信产生的能耗,则SN通知簇首通过多跳进行传输,并将路径信息发送给簇首,完成簇首与SN的路由通信。簇首与汇聚节点SN之间的路由通信具体流程如图7所示。
Figure 7. Route communication flow between cluster head and SN
图7. 簇首与SN的路由通信流程
4. 算法仿真实验与分析
4.1. 仿真实验环境与参数
算法的仿真实验在“windows10 + matlab2018”环境下进行,主要参数列于表1。基于本文提出的新算法、节能型EE-LEACH算法 [10] 和改进的多跳MMH-LEACH算法 [11] 的拓扑控制组网,其技术特征的对比情况列于表2。
Table 1. Main simulation parameters
表1. 主要的仿真参数
Table 2. Comparison of technical features of topology control networking
表2. 拓扑控制组网的技术特征对比
4.2. 仿真实验结果与分析
1) 网络整体能量消耗
网络整体能量消耗的仿真实验结果示于图8。横坐标代表周期数(number of periods),即轮(round)数,纵坐标代表执行三种算法的WSN网络总能量消耗,单位:焦耳(Joule)。从图中可以看出,新算法的能量消耗在整体上要优于其它两种算法。在0~300轮期间EE-LEACH算法消耗能量速度较快,因为灌区WSN的实际情况是边缘区域的节点距离SN较远,EE-LEACH采取簇首与SN直接通信的方式耗费了大量的能量。MMH-LEACH算法与本文提出的新算法都采用了多跳的方式,避免了大量边缘节点直接与SN通信,从而降低了能量的消耗,而新算法在总体上的能耗又低于MMH-LEACH。虽然MMH-LEACH采取了多跳的通信方式,但新算法能够根据网络中节点的地理位置分布情况,对靠近SN或远离SN的簇群规模加以区别控制和分簇,从而保证了网络的总消耗能量低于MMH-LEACH。经1200周期后,新算法的网络消耗为84 J,而EE-LEACH和MMH-LEACH分别达到92 J、90 J。
Figure 8. Overall energy consumption curve of the network under three algorithms
图8. 三种算法下网络总体能耗的仿真曲线
2) 存活节点个数
图9是三种算法下网络中存活节点个数的仿真实验结果,横坐标代表轮数,纵坐标代表网络中存活节点的个数,存活节点的个数能够直观的反映网络的生命周期。从图中可以明显看出基于EE-LEACH的节点失效速度较快,基于MMH-LEACH或基于本文新算法的节点失效较为缓慢,网络的寿命得到了延长。基于新算法的节点虽然在前800轮的存活数要少于MMH-LEACH,但相差不大。在800轮之后,基于新算法的节点存活数明显要多于基于MMH-LEACH的节点存活数。设定死亡节点数量超过70%,即意味着网络完全失效,从图中可以看出,EE-LEACH算法下网络的寿命大约在700轮左右,MMH-LEACH算法下大约在1230轮左右,新算法下能够运行到1300轮左右,新算法下的网络生存时间比EE-LEACH大约长85.7%,比MMH-LEACH大约长5.4%。
Figure 9. Simulation curve of the number of surviving nodes under three algorithms
图9. 三种算法下存活节点个数的仿真曲线
3) 平均的节点能耗
图10是三种算法下平均的节点能耗的仿真实验结果,横坐标代表轮数,纵坐标代表网络中平均每个
Figure 10. Simulation curve of average nodes consume energy
图10. 平均节点消耗能量的仿真曲线
节点消耗的能量。平均的节点能耗能够说明网络中的能耗是否均衡在每个节点上。从图中可以看出,基于新算法的节点平均能耗低于EE-LEACH或MMH-LEACH。例如,在经过1200轮后,EE-LEACH的节点平均能耗约为4.2 J,MMH-LEACH的节点平均能耗约为2.5 J,新算法的节点平均能耗约为1.6 J,说明了新算法在节点能耗的均衡方面具有优势。
5. 结论
面向灌区需水侧无线传感器网络WSN监测应用的现实需求,设计了适用于需水侧水雨情、工情、墒情,以及农田信息采集的无线传感器网络组网通信优化的解决方案,包括簇首选举、簇群划分以及簇首与汇聚节点路由通信的改进设计等。仿真实验结果表明,本文提出的簇首选举优化与多跳机制结合的路由通信算法,与EE-LEACH和MMH-LEACH相比较,在节省能耗、延长网络生命周期方面具有优越性。