基于聚类和模糊系统的无线传感器网络分簇路由协议的制作方法

文档序号:15849453发布日期:2018-11-07 09:37阅读:254来源:国知局
基于聚类和模糊系统的无线传感器网络分簇路由协议的制作方法

本发明属于无线传感器网络技术领域,尤其是一种基于聚类和模糊系统的无线传感器网络分簇路由协议。

背景技术

无线传感器网络(wirelesssensornetworks,wsn)是由大量部署在监测区域内的廉价微型传感器节点组成,通过无线网络传输方式形成的一个多跳的自组织、自适应的智能网络系统,其目的是合作地感知、收集并处理网络覆盖区域的信息并发送给管理者。由于传感器节点计算能力、电源能量和通信能力等资源有限,同时又具有网络规模大、自组织等特性,因此实现网络的能量有效利用、延长其网络生存时间是一个很大的挑战。

在wsn中采用分簇路由协议可以显著降低网络功耗,平衡节点之间的能量消耗,延长网络的生存时间。分簇路由协议是将网络中的节点分成若干个簇,每个簇中选举出一个特殊的节点,此节点叫做簇头。簇头节点收集本簇内的其他节点接收到的信息,通过计算将数据融合后传送给汇聚节点,通常汇聚是拥有丰富的计算和能量资源的节点,其将数据处理后通过互联网或者卫星等传输给云服务器或者终端用户。通过这样的方式,每轮仅簇头节点需要与汇聚节点通信,采用合适的分簇路由协议便可以大大降低能耗,但是,现有集中式协议需要汇聚节点决定每轮的簇头,每轮需要和节点直接通信,而分布式的协议需要节点自己计算,必须采取简单的协议,而又很难保证网络的性能。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种设计合理、能耗低且性能稳定的基于聚类和模糊系统的无线传感器网络分簇路由协议。

本发明解决其技术问题是采取以下技术方案实现的:

一种基于聚类和模糊系统的无线传感器网络分簇路由协议,包括以下步骤:

步骤1、汇聚节点采用聚类算法通过迭代将无线传感器网络分为k个最优的固定簇;

步骤2、汇聚节点用基于模糊系统的分簇算法计算出模糊规则,将模糊规则以及每个节点自身的节点到汇聚节点的距离dtos、节点到簇的中心点的距离dtoc和所属的簇的编号分发给每个节点;

步骤3、首轮汇聚节点通过模糊系统计算出每个簇中簇头的优先度pchoose的最大值,拥有最大簇头的优先度pchoose的节点为所在簇的簇头,汇聚将簇头的节点id以及对应簇的编号广播,节点识别出并记录所在簇的簇头id;

步骤4、簇内通信采用tdma方式,簇头节点给各个簇内节点分配时隙,每轮最后一个时隙空出,用来广播下轮簇头的节点id;簇内节点在自己的时隙内将自己的剩余能量、汇聚节点的距离dtos、节点到簇的中心点的距离dtoc和采集的数据发送给簇头,簇头接收、融合簇内节点采集的数据,处理后将数据包转发给汇聚节点;

步骤5、簇头节点在完成本轮簇内节点数据传输后,将收到的簇内各节点的剩余能量归一化,计算节点的剩余能量eres,采用模糊系统计算出最大簇头的优先度pchoose,找出最大的pchoose的节点id,作为下一轮簇头,并将其广播;

步骤6、网络正常工作时,重复步骤4和步骤5。

所述步骤1采用k-means++聚类算法进行节点分簇,其具体方法如下:

⑴从节点的坐标集合x={x1,x2,..,xm,..,xn}中随机选择一个节点作为第一个簇的中心点,记作c1;

⑵计算每个节点到新的簇的中心点的距离,计算方法为:从x中选取一个新的节点xm作为新的簇的中心点cp,节点xm到cj的euclidean距离记作d(xm,cj),xm被选取的概率为:

其中p∈{1,...,k};

⑶重复步骤⑵直到k个簇的中心点被选出来;

⑷计算每个节点到每个簇的中心点的距离,将节点分配给距离最近的簇中心,节点xi∈cp,cp簇的中心点cp所在簇的节点的集合;

⑸对每个簇p∈{1,...,k},将其新的簇的中心点定为

⑹计算函数其中当xi∈cp时,rim为1,时,rim为0;

⑺重复步骤⑷和步骤⑸,直到函数j与上一轮的函数j相差小于设定的阈值或者达到设定的代数。

所述步骤2使用的模型系统由模糊器、模糊规则、模糊推理以及解模糊器构成,模型系统有如下三个输入:节点到汇聚节点的距离、节点到簇的中心点的距离以及节点的剩余能量,三个输入经过模糊器模糊化后送入模糊推理,模糊推理根据模糊规则输出推理结果,将推理结果通过解模糊器解模糊化得到输出。

所述模型系统的三个输入需要进行归一化处理,归一化处理后的节点到汇聚节点的距离、节点到簇的中心点的距离以及节点的剩余能量分别记作dtos、dtoc和eres;并且将dtos和dtoc分为3个等级,采用梯形隶属度函数,将eres分为5个等级,采用三角形隶属度函数,输出为节点成为簇头的优先度记为pchoose,分为9个等级,采用三角形隶属度函数。

本发明的优点和积极效果是:

本发明采用k-means++聚类算法通过迭代将网络分为k个最优的固定簇,首轮簇头由汇聚节点通过模糊系统计算各个节点的优先度,排序后指定簇内优先度最大的节点为簇头节点;随后每轮开始,簇头节点记录簇内节点距离和能量信息,通过模糊系统计算优先度,排序后将优先度最大的作为下轮簇头,由于仅在第一轮时参与簇头选举,之后簇头选举便分布式运行,每轮的簇头节点可以直接决定下轮簇头的节点id,无需簇内节点与汇聚节点直接通信,大大降低了能耗,提高了网络性能。

附图说明

图1为本发明的模糊系统结构图;

图2a是dtos隶属度函数图;

图2b是dtoc隶属度函数图;

图2c是eres隶属度函数图;

图2d是pchoose隶属度函数图;

图3是仿真节点部署图;

图4是不同协议的网络生存时间比较图。

具体实施方式

以下结合附图对本发明实施例做进一步详述。

本发明针对的wsn是由随机分布在二维目标区域的一个汇聚节点和大量传感器节点构成,传感器节点持续收集目标区域的数据并将数据传给汇聚节点,汇聚节点将数据处理后转发给云端服务器或者用户。其网络描述符合如下假定:

(1)传感器节点和汇聚节点一旦部署,位置不发生变化,汇聚节点已知每个节点的位置坐标,每个节点有唯一的id;

(2)传感器节点具有相同的处理和传输性能;

(3)传感器节点由电池供电,具有相同的初始能量,能量为0时节点死亡,丧失工作能力;

(4)汇聚节点由电源供电,计算能力强,没有能量限制;

(5)节点可以依据所需传输距离自我调节发射功率。

本发明中,我们采用first-order无线模型。该模型中,通信时信号发送端能耗为射频功放的能耗和节点内部电路能耗之和,接收端能耗只有内部电路能耗。在射频功放的能耗根据距离选用和多路径衰减模型。传感器节点发送l字节能耗etx为:

传感器节点接收l字节能耗erx为:

erx=eelec*l(2)

其中,d为发送端和接收端的距离,eelec为节点内部的处理电路能耗,εfs和εmp分别为自由空间模型和多路衰减模型下的单位字节射频功放能耗。d0为阈值,由公式(3)得出。

一种基于聚类和模糊系统的无线传感器网络分簇路由协议,包括以下步骤:

步骤1、汇聚节点采用k-means++聚类算法通过迭代将网络分为k个最优的固定簇。

本发明在节点分簇时,采用k-means++聚类算法将其改造后适用于wsn的分簇。汇聚节点根据网络节点的位置,将节点分成k个簇。设节点的坐标集合为x={x1,x2,..,xm,..,xn},k-means++聚类算法流程如下所示:

(1)从集合x中随机选择一个节点作为第一个簇的中心点,记作c1;

(2)计算每个节点到新的簇的中心点的距离。从x中选取一个新的节点xm作为新的簇的中心点cp,节点xm到cj的euclidean距离记作d(xm,cj),xm被选取的概率为:

其中p∈{1,...,k};

(3)重复步骤(2)直到k个簇的中心点被选出来;

(4)计算每个节点到每个簇的中心点的距离,将节点分配给距离最近的簇中心。节点xi∈cp,cp簇的中心点cp所在簇的节点的集合;

(5)对每个簇p∈{1,...,k},将其新的簇的中心点定为

(6)计算函数其中当xi∈cp时,rim为1,时,rim为0;

(7)重复步骤(4)(5),直到函数j与上一轮的函数j相差小于设定的阈值或者达到设定的代数;

经过k-means++算法,汇聚将每个节点分为k个簇,并将每个簇进行编号,将簇的中心点的位置和节点所属簇的编号广播给网络中的节点。

步骤2、汇聚节点用基于模糊系统的分簇算法计算出所用优化后的模糊规则,将模糊规则以及每个节点自身的dtos、dtoc和所属的簇的编号分发给每个节点。

在本步骤中,簇头的选举采用模糊系统来选择。在选取簇头时,节点的位置和能量是选取的主要依据,但是节点成为簇头的优先度很难定量用函数描述,采用模糊系统可以解决这一问题。如图1所示,模糊系统由四部分构成:模糊器、模糊规则、模糊推理以及解模糊器。输入经过模糊化后送入推理器,推理器根据模糊规则输出推理结果,将推理结果解模糊化得到输出。

模糊系统有三个输入,分别是节点到汇聚节点的距离、节点到簇的中心点的距离以及节点的剩余能量。为了便于处理,我们将这三个值进行归一化处理,将其映射到区间[0,1]中,本发明采用的归一化方法为min-max标准化,其转换函数如下:

其中,xmax为节点的变量在所属簇中的最大值,xmin为最小值。

节点到汇聚节点的距离、节点到簇的中心点的距离以及节点的剩余能量在归一化处理后的三个值分别记作dtos、dtoc和eres。本发明采用mamdani型模糊系统,我们将dtos和dtoc分为3个等级,分别为l、m和h,采用梯形隶属度函数。eres分为5个等级,分别为vl、l、m、h、vh,采用三角形隶属度函数。输出为节点成为簇头的优先度记为pchoose分为9个等级,分别为vvl、vl、l、rl、m、rh、h、vh、vvh,采用三角形隶属度函数。输入(dtos、dtoc、eres)与输出(pchoose)的隶属度函数具体如图2a、图2b、图2c所示。

步骤3、首轮汇聚节点通过模糊系统计算出每个簇中的pchoose的最大值,拥有最大pchoose的节点为所在簇的簇头,汇聚将簇头的节点id以及对应簇的编号广播,节点识别出并记录所在簇的簇头id。

步骤4、簇内通信采用tdma方式,簇头节点给各个簇内节点分配时隙,每轮最后一个时隙空出,用来广播下轮簇头的节点id。簇内节点在自己的时隙内将自己的剩余能量、dtos、dtoc和采集的数据发送给簇头,簇头接收、融合簇内节点采集的数据,处理后将数据包转发给汇聚节点;

步骤5、簇头节点在完成本轮簇内节点数据传输后,将收到的簇内各节点的剩余能量归一化,计算出eres,采用模糊系统计算出pchoose,找出最大的pchoose的节点id,作为下一轮簇头,并将其广播;

步骤6、网络正常工作,重复步骤4、5。

从以上方法可以看出:汇聚节点生成静态的簇,其仅在第一轮时参与簇头选举,之后簇头选举便分布式运行,每轮的簇头节点可以直接决定下轮簇头的节点id,无需簇内节点与汇聚节点直接通信,大大降低了能耗。

为了验证本发明的效果,进行如下仿真实验:

实验网络环境设置如下:使用matlab2016b作为仿真工具,仿真所采用的能耗模型参数如表1所示:

表1能耗模型仿真参数

其中,e0为节点的初始能量,eda为数据融合所消耗的能量,设定每轮每个节点的数据帧大小为4000bit。

本发明设定的监测区域为100mx100m的正方形区域,基站位于正方形的中央,随机生成200个节点,设置簇头占比为10%。成簇的终止条件为迭代次数,迭代10000次生成固定簇。采用图3节点部署下的leach协议、leach-c协议、sep协议以及本发明所有的协议进行仿真,运行100次得到的平均值如图4所示。从图4可知,相对于leach协议、leach-c协议和sep协议,本发明协议将网络生存时间提高了108%、100%和62.5%。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1