本发明属无线传感器网络技术领域,涉及一种可充电无线传感器网络自适应分簇路由方法,特别是涉及一种新的分簇路由算法(CREW),对簇首选择机制进行了相应的改进,还提出了一种自适应簇首间数据传输机制。
背景技术:
无线传感器网络(Wireless Sensor Networks,WSNs)是一种全新的信息获取方式,它不需要固定网络支持,以其随机布置、自组织、抗毁性强、适应苛刻环境等优势,具有在多种场合满足信息获取的实时性、准确性、全面性等需求的能力。由于无线传感器网络的应用前景愈来愈广泛,已引起了许多国家学术界和工业界的高度重视,被认为是对21世纪产生巨大影响力的技术之一。
在无线传感器网络技术领域中,传感器节点的电池容量是传统WSNs能够持续工作的一个主要瓶颈。为了延长WSNs的生命周期,已有大量的研究工作针对能量高效的网络算法进行了研究,其中就包括基于分簇的路由算法。分簇WSNs一般由一个Sink节点和一定数量的簇组成,每一个簇又由一个簇首节点(CH)和一些簇节点(CM)组成。在每一个簇中,簇节点负责环境信息的采集,而簇首节点则接收本簇内簇节点的数据,并将收集的数据通过直接传输或者多跳传输的方法发送给Sink节点。然而,只要节点的电池容量是有限的,节点的能量耗尽将不可避免。
近年来,能量收集技术已经在WSNs中得到应用,从而克服节点能量有限的缺陷。通过给传感器节点安装一个能量收集模块,传感器节点就可以从外部资源中获取能量,例如:太阳能、热能、风能、振动引起的能量和能量等。在其工作过程中,除了遇到硬件的故障问题,只要节点消耗的能量低于其获取的能量,那么可充电无线传感器网络(EH-WSNs)就将可以持续地工作。然而,传统WSNs和EH-WSNs的不同能量供应模式使得基于传统WSNs的分簇路由协议并不能应用到EH-WSNs中。此外,在EH-WSNs的实际工作过程中,不同的传感器节点具有不同的能量获取效率。例如,对于以太阳能作为能量来源的传感器节点而言,处于阳光充足区域的节点所获取的能量要多于处于阴暗区域的节点,此外,节点在夜间也并不能获取能量。因此,为了保持持续工作,可充电传感器节点在可充电的时间范围内必须保存一定的能量以供未来需要时使用。但是,传感器的可充电电池的容量是有限的,如果该电池一旦充满,那么可获取的能量将直接丢失。因此基于以上特征,针对EH-WSNs,设计合理的分簇路由协议就显得尤为重要。
技术实现要素:
本发明所要解决的技术问题是提供一种可充电无线传感器网络自适应分簇路由方法,特别是涉及一种新的分簇路由算法(CREW),对簇首选择机制进行了相应的改进,还提出了一种自适应簇首间数据传输机制,有效解决了可充电无线传感网络中节点不稳定和不均衡问题,提高了节点的剩余能量的利用率和其充电效率。
本发明的一种可充电无线传感器网络自适应分簇路由方法,包括簇建立阶段和数据传输阶段,同时针对簇首的数据传输策略,还提出了一种自适应簇首间数据传输机制,包括以下步骤:
(a)簇建立阶段:
(1)初始化每个节点的网络梯度值和节点类型,分别设为0和CM。
(2)Sink节点发出分簇信号Partion_Cluster()。
(3)节点i,根据接收到的信号强度计算节点距离li,并根据节点距离li、剩余能量比
RaRE(i)和能量收益GaE(i)更新网络梯度NetG(i)、用于竞争簇首的传输半径ATRC(i)和竞
争簇首的等待时间WTC(i)。
(4)比较节点i的剩余能量Eres(i)和其邻居节点的平均剩余能量如果那么该节点就成为候选簇首节点;否则,该节点就成为簇节点。
(5)Sink节点发出簇首选择信号CH_Select()。
(6)依据WTC(i)和ATRC(i),选择相应的候选簇首节点当选为最终的簇首节点。
(b)数据传输阶段:
(7)在一个数据收集周期结束后,簇首节点i计算其剩余能量Eres(i)和该簇内所有簇节点的平均剩余能量
(8)如果(簇首i的剩余能量大于该簇内所有簇节点的平均剩余能量),那么根据节点能耗模型,簇首i计算其直接发送所收集的数据到Sink节点所需要的能量(li是在分簇节点就已经计算好的)。
(9)如果(在直接发送数据至Sink情况下,簇首i仍然处于充电状态),那么该节点采用直接通信的方式将数据传输给Sink节点;否则,将采用多跳的方式进行数据传输。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(1)中网络梯度具体为:
1)网络梯度(NetG)。根据节点与Sink节点的聚类,将整个EH-WSN分成多层,这样的多层网络称为网络梯度。处于同一梯度内的传感器节点具有相同的网络梯度值,表示NetG(i)=m,其中,0≤m≤M(M为NetG的最大值),i为传感器节点的ID(1≤i≤|V|)。
2)网络梯度的宽度(BreG)。具有相同的NetG值的节点区域宽度定义为BreG。对NetG=m,其BreG可以表示为:
其中,L是传感器节点到Sink节点距离的最大值,α为BreG的调整参数,且0<α≤1。如果α值固定,那么m的值越小,相应的BreGm的值也就越小。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(3)中剩余能量比RaRE(i)具体为:
对于节点i,RaRE定义为
RaRE(i)=Eres(i)/Emax(i),
其中,Eres(i)和Emax(i)分别表示节点i的当前剩余能量和可充电电池的最大容量。RaRE(i)的值越大,表明该节点的剩余能量越多。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(3)中能量收益GaE(i)具体为:
对于节点i,GaE定义为
GaE(i)=Ehar(i)-Econ(i),
其中,Ehar(i)和Econ(i)分别表示一个时段内(例如轮),节点i从外界获取的能量和消耗的能量。如果GaE(i)是个正数,则表明节点i在该时段内从外界获取的能量大于其消耗的能量;如果在该时段内,节点i的电池处于未饱和状态,则在该时段内节点i的电池处于充电的状态,否则,收获的多余能量将被丢失。如果GaE(i)是个负数,则表明节点i在该时段内从外界获取的能量小于其消耗的能量,节点处于耗能状态。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(3)中用于竞争簇首的传输半径ATRC(i)具体为:
对于节点i,ATRC(i)定义为
ATRC(i)=β×rini×NetG(i)/M,
其中,β是传输半径调整因子,rini是节点的初始传输半径。m的值越大,ATRC(i)的半径也就越大。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(3)中竞争簇首的等待时间WTC(i)具体为:
对于节点i,WTC(i)定义为节点i收到Sink节点发出的簇首竞争信息到其自身发射簇首竞争信息的等待时间,表示为:
其中,max(GaE(i))和min(GaE(i))分别表示节点i工作的历史数据中GaE(i)的最大值和最小值。WTC(i)与RaRE(i)和GaE(i)成反比
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(4)中簇节点、簇首节点具体为:
整个EH-WSNs被分成多个簇,每个簇又有簇首节点和簇节点组成。簇节点的主要任务是环境信息的采集并将采集的信息发送给本簇的簇首节点;簇首节点的主要任务是接收本簇簇节点的数据并将这些数据通过直接通信或者多跳方式传输给Sink节点;同时,当采用多跳传输时,簇首节点还负责为相应簇的数据传输承担中继的任务。Sink节点的任务是收集整个网络的数据并将其提供给用户,同时负责复杂的计算和决策等。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,步骤(8)中节点能耗模型具体为:
1.传感器节点传输k位数据到距离为d的节点所消耗的能量可以表示为:
传感器节点接收k位数据所消耗的能量为:
ERX(k)=ERX_elec×k;
通常有:
ETX_elec=ERX_elec=Eelec;
其中,Eelec为对1位数据进行编码调制所消耗的能量;εdn表示发送1位数据时电路的放大器能量消耗,εdn通常是由通信距离和电路误码率决定的;εfs和εmf是信号的传播损耗系数;参数n的值是由传输距离决定的,如果传输距离d小于阈值那么n=2,否则,n=4。因此,如果节点没有足够的能量用于信息传输,那么传感器节点通过单跳直接与Sink节点通信的方式应当尽量地减少,而采用耗能较少的多跳短距离传输方式。
如上所述的一种可充电无线传感器网络自适应分簇路由方法,其特征在于,算法中所用的一些概念具体如下表:
本发明涉及一种可充电无线传感器网络自适应分簇路由方法,提出了一种新的分簇路由算法(CREW),CREW由簇建立阶段和数据传输阶段组成。在簇建立阶段,CREW利用网络梯度将整个可充电无线传感器网络(EH-WSNs)划分成多个不均匀的簇,并利用簇首选择等待时间选择簇首。在数据传输阶段,CREW利用自适应的簇间通信机制,已达到充分利用和存储从外界收获的能量。同时针对簇首的数据传输策略,还提出了一种自适应簇首间数据传输机制,如果簇首节点的剩余能量大于该簇内所有节点的平均剩余能量,且簇首节点的能量获取效率大于能量消耗效率,那么该簇首节点就采用与Sink节点直接通信的模式进行数据传输,否则,该簇首节点将选择簇首间的多跳路由模式进行数据传输。本发明有效解决了可充电无线传感网络中节点不稳定和不均衡问题,提高了节点的剩余能量的利用率和其充电效率。有益效果
1、提出了一种新的分簇路由算法(CREW)CREW将整个EH-WSNs分成多个不均匀簇,远离Sink节点的簇要大于靠近Sink节点的簇,这样靠近Sink节点的簇就可以节省相应的能量用于数据的中继传输;
2、对簇首选择机制进行了相应的改进,主要是考虑了节点的剩余能量和其充电效率,包括能量获取效率和能量消耗效率;
3、针对簇首的数据传输策略,还提出了一种自适应簇首间数据传输机制。如果簇首节点的剩余能量大于该簇内所有节点的平均剩余能量,且簇首节点的能量获取效率大于能量消耗效率,那么该簇首节点就采用与Sink节点直接通信的模式进行数据传输,否则,该簇首节点将选择簇首间的多跳路由模式进行数据传输。
附图说明
图1是本发明的新的分簇路由算法(CREW)流程图;
图2是本发明的簇首节点质量的比较图;
图3是本发明的簇首节点在能量收获节点的能量增加情况比较图;
图4是本发明的丢包率实验的比较结果图。
具体实施方式
下面结合具体实施方式,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
实施例1
本发明的一种可充电无线传感器网络自适应分簇路由方法,包括簇建立阶段和数据传输阶段,同时针对簇首的数据传输策略,还提出了一种自适应簇首间数据传输机制,其中算法流程图见图1,图2是从CRAW和CRAS中随机选择10个簇进行比较得到的簇首节点质量的比较图;图3簇首节点在能量收获节点的能量增加情况比较图;图4是丢包率实验的比较结果图;包括以下步骤:
为了验证CREW的性能,在MATLAB R2010a中进行了仿真,并将其与CRAS进行了比较。CRAS也是EH-WSNs情况下的分簇路由算法。仿真所用机器配置为:Windows 7操作系统,Intel(R)Core(TM)i5-3470(3.2GHz)处理器,4GB内存。仿真环境为:300个可充电传感器节点部署在500m×500m的二维空间中,Sink节点位于(250m,250m)。每个传感器都配备一个可充电电池和一块10mm×10mm的太阳能电板,其电池容量上限为100J。采用太阳能数据作为太阳能充电依据,同时设定20%的节点位于阴暗区域,在阴暗区域的节点其能量获取率为处于光照区域节点的能量获取率的30%。
其他的相关参数设定:
(a)簇建立阶段:
(1)初始化每个节点的网络梯度值和节点类型,分别设为0和CM。
其中:网络梯度的宽度(BreG)。具有相同的NetG值的节点区域宽度定义为BreG。对NetG=m,其BreG可以表示为:
其中,L是传感器节点到Sink节点距离的最大值,α为BreG的调整参数,且0<α≤1。如果α值固定,那么m的值越小,相应的BreGm的值也就越小。
(2)Sink节点发出分簇信号Partion_Cluster()。
(3)节点i,根据接收到的信号强度计算节点距离li,并根据节点距离li、剩余能量比RaRE(i)和能量收益GaE(i)更新网络梯度NetG(i)、用于竞争簇首的传输半径ATRC(i)和竞争簇首的等待时间WTC(i)。其中涉及的相关概念如下:
1)用于竞争簇首的传输半径调整(ATRC)。ATRC仅仅用于簇建立阶段的簇首竞争。
对于节点i,ATRC(i)定义为
ATRC(i)=β×rini×NetG(i)/M;
其中,β是传输半径调整因子,rini是节点的初始传输半径。m的值越大,ATRC(i)的半径也就越大。
2)剩余能量比(RaRE)。
对于节点i,RaRE定义为
RaRE(i)=Eres(i)/Emax(i);
其中,Eres(i)和Emax(i)分别表示节点i的当前剩余能量和可充电电池的最大容量。RaRE(i)的值越大,表明该节点的剩余能量越多。
3)能量收益(GaE)。
对于节点i,GaE定义为
GaE(i)=Ehar(i)-Econ(i);
其中,Ehar(i)和Econ(i)分别表示一个时段内(例如轮),节点i从外界获取的能量和消耗的能量。如果GaE(i)是个正数,则表明节点i在该时段内从外界获取的能量大于其消耗的能量;如果在该时段内,节点i的电池处于未饱和状态,则在该时段内节点i的电池处于充电的状态,否则,收获的多余能量将被丢失。如果GaE(i)是个负数,则表明节点i在该时段内从外界获取的能量小于其消耗的能量,节点处于耗能状态。
4)竞争簇首的等待时间(WTC)。对于节点i,WTC(i)定义为节点i收到Sink节点发出的簇首竞争信息到其自身发射簇首竞争信息的等待时间,表示为:
其中,max(GaE(i))和min(GaE(i))分别表示节点i工作的历史数据中GaE(i)的最大值和最小值。WTC(i)与RaRE(i)和GaE(i)成反比。
(4)比较节点i的剩余能量Eres(i)和其邻居节点的平均剩余能量如果那么该节点就成为候选簇首节点;否则,该节点就成为簇节点。
(5)Sink节点发出簇首选择信号CH_Select()。
(6)依据WTC(i)和ATRC(i),选择相应的候选簇首节点当选为最终的簇首节点。
(b)数据传输阶段:
(7)在一个数据收集周期结束后,簇首节点i计算其剩余能量Eres(i)和该簇内所有簇节点的平均剩余能量
(8)如果(簇首i的剩余能量大于该簇内所有簇节点的平均剩余能量),那么根据节点能耗模型,簇首i计算其直接发送所收集的数据到Sink节点所需要的能量(li是在分簇节点就已经计算好的)。其中,传感器节点传输k位数据到距离为d的节点所消耗的能量可以表示为:
传感器节点接收k位数据所消耗的能量为:
ERX(k)=ERX_elec×k;
通常有:
ETX_elec=ERX_elec=Eelec;
其中,Eelec为对1位数据进行编码调制所消耗的能量;εdn表示发送1位数据时电路的放大器能量消耗,εdn通常是由通信距离和电路误码率决定的;εfs和εmf是信号的传播损耗系数;参数n的值是由传输距离决定的,如果传输距离d小于阈值那么n=2,否则,n=4。因此,如果节点没有足够的能量用于信息传输,那么传感器节点通过单跳直接与Sink节点通信的方式应当尽量地减少,而采用耗能较少的多跳短距离传输方式。
(9)如果(在直接发送数据至Sink情况下,簇首i仍然处于充电状态),那么该节点采用直接通信的方式将数据传输给Sink节点;否则,将采用多跳的方式进行数据传输。
为了体现比较的有效性,从CRAW和CRAS中随机选择10个簇进行比较。
如图2所示,CRAW和CRAS的比值均大于1,这说明了两种算法均选择了剩余能量较多的节点作为簇首节点。但CREW的比值要明显优于CRAS,这是由于CREW选择簇首节点是依据WTC的值,而WTC的值又由节点的剩余能量和节点的能量收益决定。虽然CRAS在选择簇首时也考虑了节点的剩余能量,但簇首的选择还是由0~1之间的随机数决定,从而导致部分具有较少剩余能量的节点也会当选为簇首节点。
如图3所示,在能量收获阶段,CREW的簇首比CRAS的簇首在每轮中增加了更多的能量。虽然CREW和CRAS都采用了自适应的簇间通信机制,但是它们的实施机制并不相同。在CRAS中,即使在簇首具有较少的剩余能量的情况下,当簇首节点的收获能量大于直接发送数据到Sink节点的能量,簇首就直接发送数据给Sink节点。而在CREW中,簇首直接发送数据给Sink节点只发生在簇首节点的剩余能量大于本簇所有簇节点的平均剩余能量,且簇首节点的收获能量大于直接发送数据到Sink节点的能量时。当簇首节点的剩余能量小于本簇所有节点的平均剩余能量时,CREW采用短距离的多跳路由进行数据传输,从而有限地节省了能量消耗。因此,CREW中的簇首节点在其能量收获节点存储的能量要多余CRAS中的簇首节点,这也为该簇首节点后续作为簇节点工作预留了相应的能量。
如图4所示,比较了两种算法的丢包率,CREW算法的丢包率要优于CRAS算法,这主要是由于以下两个原因:首先在CRAS中,簇首节点与Sink节点直接通信的采用率要大于CREW。在WSNs中,数据的丢包率是与传输距离成正比的,因此,CRAS产生了更多的数据丢包。其次,在CRAS中,在选择簇首节点时,节点的能量收益情况并没有考虑;此外,在采用自适应簇间通信时,簇首节点的剩余能量也没有考虑。而在WSNs中簇首节点承担了大量的数据传输任务,也将导致快速的能量消耗。在CRAS中,每轮的后半部分,簇首节点的能量均已较少,从而引起了大量的数据丢包现象。