本发明涉及无线传感器网络路由协议,特别是一种能量平衡的簇头节点选择算法。
背景技术:
由电池供电的多个微传感器节点组成的无线传感器网络(wsn)可形成自组织网络。作为一种新的信息获取和处理模式,已被广泛应用于军事、环境、医疗、工业和车载自组织网络等领域。在医疗保健方面,世界人口的老龄化已经迫使人们设计新的、更普遍的、成本消耗更少的医疗体系。在连续监测老年人安全而不影响其日常活动方面,无线传感器网络等分布式和网络化的嵌入式系统是最有吸引力的技术。在实时远程监测和计算机辅助康复应急响应系统方面,无线传感器网络取得了迅速的发展。
由于传感器节点的能量有限且难以充电,如何节省传感器节点的能量以延长网络寿命已成为研究热点。路由协议作为无线传感器网络的重要组成部分,直接影响着传感器节点的能耗。为了延长网络寿命,我们需要设计有效的路由协议。基于网络结构,无线传感器网络中的路由协议可以分为平面路由和集群路由。集群路由在能耗方面比平面路由更高效。低能量自适应聚类层次(leach)是heinzelman等人首次提出的一种集群路由算法。为了节能,该算法中减少了与基站(bs)通信的节点数量,并通过数据融合技术降低了数据的传输量。该算法以轮为工作周期,在每一轮中根据网络中所有节点分布的能量消耗情况随机选择一个新的簇头(ch)。但是,leach有一些缺点。一是簇头选择方法在节点数量和位置方面是不稳定的,不利于能量平衡。虽然有一些文献提到可以通过预测节点部署的策略来平衡能源消耗,但是这种方法需要大量的人力成本来部署传感器,不适合一般场景。二是簇头选择方法不考虑节点的剩余能量,因此低能量的节点充当簇头时将迅速耗尽能量。三是通过单跳发送信息到汇聚节点,远距离通信将消耗过多的能量。所以leach不适合大规模的网络使用。
近年来,研究人员对leach进行了改进,提出了许多基于leach的新型集群路由算法。例如,dchs,teen和apteen是基于从leach借用的聚类思想设计的。集群路由需要频繁更新集群结构,而随机或不合理的簇头选择方式会导致网络能耗不均。
技术实现要素:
为了解决现有技术中的不足,本发明的技术方案为一种能量平衡的簇头节点选择算法。包括以下步骤:
步骤1:部署n个传感器节点,通过基站向n个传感器节点发送广播消息,根据leach算法对n个传感器节点进行全局分簇,并传输k次数据包;
步骤2:传感器节点根据硬件检测接收到的广播消息的信号强度,结合步骤1中所述基站向n个传感器节点发送广播消息的信号强度,计算传感器节点与基站的距离;
步骤3:簇头节点为簇中非簇头节点分配时隙,计算簇头节点接收簇中非簇头节点传输的数据包消耗能量、簇头节点将接收到的数据包进行数据融合消耗能量、簇头节点将融合后的数据包传输给基站消耗能量,第1次数据包传输完成;
步骤4:第o(2≤o≤k)传输数据时保持步骤1中所述簇结构不变,第o(2≤o≤k)次传输数据包时簇中簇头节点向簇中非簇头节点发送广播消息,簇中非簇头节点收到广播消息后向簇头节点发送广播消息,根据广播消息进一步计算簇中各节点在第o(2≤o≤k)次传输数据包时簇中所有传感器节点若成为簇头节点后的剩余能量;
步骤5:选择剩余能量最大的传感器节点作为第o次传输数据包时的簇头节点,通过判断簇头节点的变化来更新簇中非簇头节点分配时隙,开始第o次传输数据包;
步骤6:重复执行步骤4和步骤5至k次传输数据包全部完成。
作为优选,步骤1中所述基站向n个传感器节点发送广播消息:
messageinfo={cinfo,powersend,k}
其中,cinfo表示全局分簇消息,powersend为基站向n个传感器节点发送广播消息的信号强度,k为数据包传输的分簇周期,即每进行k次数据包传输则进行一次步骤1中所述leach算法全局分簇;
步骤1中所述leach算法全局分簇完成后产生m个簇,簇的编号为c1,c2,…,cm,簇头节点的编号为h1,h2,…,hm,簇ci(i∈[1,m],i为正整数)中对应传感器节点的编号为
作为优选,步骤2所述传感器节点
其中,
其中,powersend为步骤1中所述基站向n个传感器节点发送广播消息的信号强度,c表示光速,f表示通信频率;
作为优选,步骤3中所述簇ci中簇头节点hi为簇中非簇头节点
其中,非簇头节点
簇头节点hi接收簇ci中
其中,l为传感器节点传输的数据包比特数,eelec为发送单位比特数据的电路能量耗损;簇头节点hi将接收到的数据包进行数据融合消耗能量为:
其中,l为传感器节点传输的数据包比特数,ef为融合单位比特数据消耗的能量;
簇头节点hi将融合后的数据包传输给基站消耗能量为:
其中,
模型参数,∈mp为多径衰落模型参数,d0为一阶无线电通信传输距离的阈值:
作为优选,步骤4中所述簇中非簇头节点收到广播消息后向簇头节点hi发送广播消息:
其中,
其中,
根据步骤3中所述簇头节点接收簇中非簇头节点传输的数据包消耗能量、簇头节点将接收到的数据包进行数据融合消耗能量、簇头节点将融合后的数据包传输给基站消耗能量
作为优选,步骤5中所述剩余能量最大的传感器节点为:
其中
其中,
与现有技术相比,本发明减少了簇结构变化并延长了节点的生命周期,同时有助于能量平衡。
附图说明
图1:是本发明实施例的方法流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本发明实施例的方法流程图,本发明提供一种能量平衡的簇头节点选择算法,包括以下步骤:
步骤1:部署n=100个传感器节点,通过基站向n=100个传感器节点发送广播消息,根据leach算法对n个传感器节点进行全局分簇,并传输k=5次数据包;
步骤1中所述基站向n=100个传感器节点发送广播消息:
messageinfo={cinfo,powersend,k}
其中,cinfo表示全局分簇消息,powersend为基站向n=100个传感器节点发送广播消息的信号强度,k=5为数据包传输的分簇周期,即每进行k=5次数据包传输则进行一次步骤1中所述leach算法全局分簇;
步骤1中所述leach算法全局分簇完成后产生m=5个簇,簇的编号为c1,c2,…,cm,簇头节点的编号为h1,h2,…,hm,簇ci(i∈[1,m],i为正整数)中对应传感器节点的编号为
步骤2:传感器节点根据硬件检测接收到的广播消息的信号强度,结合步骤1中所述基站向n=100个传感器节点发送广播消息的信号强度,计算传感器节点与基站的距离;
步骤2所述传感器节点
其中,
其中,powersend=25dbm为步骤1中所述基站向n=100个传感器节点发送广播消息的信号强度,c=3×108m/s表示光速,f=5mhz表示通信频率;
步骤3:簇头节点为簇中非簇头节点分配时隙,计算簇头节点接收簇中非簇头节点传输的数据包消耗能量、簇头节点将接收到的数据包进行数据融合消耗能量、簇头节点将融合后的数据包传输给基站消耗能量,第1次数据包传输完成;
步骤3中,簇ci中簇头节点hi为簇中非簇头节点
其中,非簇头节点
簇头节点hi接收簇ci中n-1个非簇头节点传输的数据包消耗能量为:
其中,l=4000bit为传感器节点传输的数据包比特数,eelec=50nj/bit为发送单位比特数据的电路能量耗损;
簇头节点hi将接收到的数据包进行数据融合消耗能量为:
其中,l=4000bit为传感器节点传输的数据包比特数,ef=5nj/bit为融合单位比特数据消耗的能量;
簇头节点hi将融合后的数据包传输给基站消耗能量为:
其中,
步骤4:第o(2≤o≤5)传输数据时保持步骤1中所述簇结构不变,第o(2≤o≤5)次传输数据包时簇中簇头节点向簇中非簇头节点发送广播消息,簇中非簇头节点收到广播消息后向簇头节点发送广播消息,根据广播消息进一步计算簇中各节点在第o(2≤o≤5)次传输数据包时簇中所有传感器节点若成为簇头节点后的剩余能量;
作为优选,步骤4中所述簇中非簇头节点收到广播消息后向簇头节点hi发送广播消息:
其中,
其中,l=4000bit为传感器节点传输的数据包比特数,eelec=50nj/bit为发送单位比特数据的电路能量耗损;
其中,l=4000bit为传感器节点传输的数据包比特数,ef=5nj/bit为融合单位比特数据消耗的能量;
其中,
根据步骤3中所述簇头节点接收簇中非簇头节点传输的数据包消耗能量、簇头节点将接收到的数据包进行数据融合消耗能量、簇头节点将融合后的数据包传输给基站消耗能量
步骤5:选择剩余能量最大的传感器节点作为第o次传输数据包时的簇头节点,通过判断簇头节点的变化来更新簇中非簇头节点分配时隙,开始第o次传输数据包;
步骤5中所述剩余能量最大的传感器节点为:
其中
其中,
步骤6:重复执行步骤4和步骤5至5次传输数据包全部完成;
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。