本发明涉及通信技术领域,尤其涉及无线传感网技术领域,具体是指一种异构无线传感网的传感节点调度方法。
背景技术:
相对于有线的固定数据收集设备,无线传感网(wirelesssensornetworks,wsns)是一种有用、高效、简单的数据收集解决方案。wsns主要由具有数据感知、数据处理和无线通信的密集分布式自治传感节点组成。这些无线传感节点是具有轻便、小型、低成本、电池驱动、易于安装等特点的电子设备。wsns可应用到环境监测、智能交通、智能养老、智能家居、智慧工厂等工业和民用领域,具有较大的应用价值和市场潜力。
在wsns中,节点的能量约束限制了网络覆盖、生存时间等基本功能。网络覆盖能确保从传感节点收集的数据可准确表示整个监控区域。根据感知对象的不同,网络覆盖可分成目标覆盖、栅栏覆盖和区域覆盖。其中,目标覆盖要求传感节点能覆盖到所有目标点。当目标点遍布于监测区域且数量足够多时,目标覆盖问题可转换成区域覆盖问题。栅栏覆盖要求传感节点能完整覆盖一条直线。当直线数量足够多时,栅栏覆盖问题也可转换成区域覆盖。区域覆盖问题是网络覆盖的基本问题之一,可应用到环境监测、智慧工厂等多个领域。网络生存时间是指wsns收集整个网络数据的有效工作时间。网络生存时间越大,wsns的寿命越长,其应用成本越短。因此在环境监测等应用领域,wsns的设计应保持令人满意的区域覆盖和持续几个月或几年时间收集所需的感知数据(如温度),并传输给基站。
目前,wsns的网络覆盖方法研究取得一定的成果。有些学者侧重于研究同构静态传感节点的覆盖问题。同构静态传感节点的覆盖算法考虑所有传感节点的性能一致,但是在一些特殊应用中,传感节点存在感知范围、能量等方面的异构。因此,另一些学者研究异构静态传感节点的覆盖问题。但是较多异构静态传感节点的相关覆盖优化算法没有考虑网络生存时间和当关键传感节点失效引起覆盖盲区的修复问题,容易造成网络的过早分裂,关键节点的过早失效。
技术实现要素:
为提高异构无线传感网的区域覆盖率和网络生存时间,本发明考虑传感节点的感知覆盖异构情况,提供了一种异构无线传感网的传感节点调度方法,该方法可提高网络生存时间,提高传感节点存活个数,保持平均节点能耗在较低水平。
为了实现上述目的,本发明具有如下构成:
该异构无线传感网的传感节点调度方法,所述的方法包括汇聚节点和传感节点的邻居传感节点调度计算方法和传感节点的工作方法,其中,所述汇聚节点和传感节点的邻居传感节点调度计算方法包括:
(a1)初始化当前节点;
(a2)向周围邻居传感节点广播信息收集包;
(a3)接收邻居传感节点返回的节点状态信息包;
(a4)根据邻居传感节点的节点状态信息包建立调度模型;
(a5)根据所述调度模型计算得到邻居传感节点的调度方案;
(a6)根据所述邻居传感节点的调度方案,向邻居传感节点发送调度状态确认包。
可选地,所述节点状态信息包中包括邻居传感节点的位置、感知范围、剩余能量和是否调度信息,所述步骤(a4)中,根据如下方式建立所述调度模型:
(a4-1)分析
其中,
(a4-2)以自身位置为中心,将周围区域分解成大小一致的单位区域网格,根据如下公式判断如果该区域网格中心在处于工作状态的传感节点的感知覆盖区域内,则该网格被覆盖,
其中,
其中,ngrid表示网格的个数;
根据如下公式建立区域覆盖增量优化模型:
max(△coveri)
其中,s.t.是subjectto的缩写,表示需要满足以下条件,cover(xi)表示根据节点调度状态集合xi的区域覆盖率,
(a4-3)根据传感节点的位置,分析传感节点间的关系,当计算传感节点相交时,计算被其他传感节点覆盖的圆弧覆盖区间βab,建立圆弧覆盖增量优化模型;
(a4-4)分析各个传感节点的剩余能量,根据如下公式建立剩余能量优化模型:
其中,
(a4-5)根据区域覆盖增量优化模型、圆弧覆盖增量优化模型和剩余能量优化模型,根据如下公式获得综合函数,建立多目标调度模型:
s.t.w1+w2+w3=1
其中,f(xi)表示综合目标函数,w1,w2和w3是权重因子且其和为1,
可选地,所述步骤(a4-3)中,分析传感节点间的关系,包括如下步骤:
已知两传感节点的位置坐标为(xa,ya)和(xb,yb),其感知半径分别为ra和rb且rb>ra,令
可选地,所述步骤(a4-3)中,计算被其他传感节点覆盖的圆弧覆盖区间βab包括如下步骤:
(a4-3-1)当rb≤dab≤|ra+rb|时,传感节点a的感知圆和传感节点b的感知圆存在参照图3~图6的4种相交情况相交,令经过传感节点a的垂直线与传感节点a的感知圆的上圆弧的交点为c,且θ1=∠bac,θ2=∠bad,θ1和θ2的值为:
其中,
当xb≥xa且θ1≥θ2,βab=[θ1-θ2θ1+θ2];
当xb≥xa且θ1<θ2,βab=[2π+θ1-θ22π]∪[0θ1+θ2];
当xb<xa且θ1≥θ2,βab=[2π-θ1-θ22π-θ1+θ2];
当xb<xa且θ1<θ2,βab=[2π-θ1-θ22π]∪[0θ2-θ1];
(a4-3-2)当|rb-ra|<dab<rb时,其圆弧覆盖区间是对称情况的圆弧覆盖区间的补,因此令
则根据如下公式计算被其他传感节点覆盖的圆弧覆盖区间βab:
可选地,所述步骤(a4-3)中,根据如下公式建立圆弧覆盖增量优化模型:
其中,
可选地,所述步骤(a5)中,根据所述调度模型计算得到邻居传感节点的调度方案,包括如下步骤:
(a5-1)单跳收集邻居传感节点的节点状态信息包;
(a5-2)根据自身节点的位置,感知半径和未调度传感节点集合vz中每一个传感节点的位置和感知半径,判断不等式dab≤|rb-ra|,|rb-ra|≤dab≤|rb+ra|和|rb+ra|≤dab,计算全覆盖、相交和远离的邻居传感节点集合;
(a5-3)让全覆盖的传感节点处于睡眠状态,添加到vs中,获得相交节点集合
(a5-4)
(a5-5)选择
(a5-6)k=k+1,如果
(a5-7)判断
(a5-8)根据当前的调度信息,向邻居传感节点发送调度状态确认包,计算刚进入工作状态的传感节点圆弧覆盖区间,向弧未全覆盖的传感节点发送调度计算启动包。
可选地,所述传感节点的工作方法包括如下步骤:
(b1)将传感节点标注为未调度,并初始化参数;
(b2)判断是否接收到传感节点或者其他传感节点的调度状态确认包;如果接收到其他节点的调度状态信息包,则判断是否是该调度状态确认包的目标节点,如果是,则读取该调度状态确认包的信息,确认自身工作状态,进入并标注对应状态,跳到步骤(b3),否则,直接跳到步骤(b3);
(b3)判断是否接收到传感节点或者其他传感节点的调度计算启动包,如果是,则启动所述传感节点的邻居传感节点调度计算方法,判断周围未调度传感节点的工作状态,发送调度状态确认包和调度计算启动包,跳到步骤(b5),否则跳到步骤(b4);
(b4)判断是否超出调度判断时间后仍未收到调度确认包或调度计算启动包,如果是,则寻找传感节点的路径;如果存在到传感节点的路径,则调度路径中的睡眠传感节点进入工作状态,并启动所述传感节点的邻居传感节点调度计算方法,判断周围未调度传感节点的工作状态,发送调度状态确认包和调度计算启动包,跳到步骤(b5),否则,进入并标注为睡眠状态,并跳到步骤(b2);
(b5)判断是否接收到邻居传感节点的能量失效通知包,如果是,则延迟预设时间间隔后,启动覆盖盲区的修复,跳到步骤(b6),否则,直接跳到步骤(b6);
(b6)判断是否接收到传感节点的路由信息包,如果是,则更新其邻居节点信息表,跳到步骤(b7),否则,直接跳到步骤(b7)
(b7)判断传感节点是否在工作状态,如果是,则感知数据,并将数据传给传感节点,跳到步骤(b2),否则,直接跳到步骤(b2)。
可选地,所述步骤(b5)中,启动覆盖盲区的修复,包括如下步骤:
(b5-1)接收到邻居传感节点的失效通知包,延时与剩余能量成正比的预设延迟时间后启动睡眠节点的调度;
(b5-2)预设延时时间到后,不考虑失效的邻居传感节点,判断自身感知弧是否全覆盖,如果已经全覆盖,则跳出,否则计算未覆盖圆弧区间β1;
(b5-3)从邻居信息表中获知睡眠状态的传感节点和个数nl,根据公式计算每一个邻居传感节点与自身传感节点的圆弧覆盖区间βi,令k2=1;
(b5-4)选择一个邻居节点,判断自身节点被其覆盖的圆弧覆盖区间是否包含β1,如果不存在,k2=k2+1,重新跳到步骤(b5-4),否则获知所有的传感节点可性能,跳到步骤(b5-5);
(b5-5)计算所有传感节点可能性,计算增加每一种可能性后,区域覆盖率增量,自身节点的弧覆盖率增量和平均剩余能量,通过公式计算每一种可能性权值;
(b5-6)选择一种最大权值的传感节点方案,通知睡眠的传感节点进入工作状态,从睡眠状态进入工作状态的传感节点广播通知其周围邻居节点,其邻居节点更新邻居信息表。
采用该发明的异构无线传感网的传感节点调度方法,提出了区域覆盖增量优化模型,圆弧覆盖增量优化模型和剩余能量优化模型,建立多目标调度模型,解决了传感节点感知异构的调度模型问题;提出启发式求解方法求解调度模型,可获得传感节点的最优调度方案,在保证区域覆盖率的前提下,提高了网络生存时间;提出唤醒睡眠传感节点的覆盖盲区修复方法,充分利用传感节点的能量,最大化区域覆盖率;总之,本方法提高了网络生存时间和传感节点存活个数,保持平均节点能耗在较低的水平。
附图说明
图1是本发明的汇聚节点和传感节点的邻居传感节点调度计算方法的工作流程图;
图2是本发明的传感节点的工作流程图;
图3~图6是本发明的相交圆间的圆弧覆盖区间计算方法示例图;
图7是本发明的圆的对称变化示例图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
参照图1~7,本发明提出了一种异构无线传感网的传感节点调度方法,包括汇聚节点和传感节点的邻居传感节点调度计算方法和传感节点的工作方法。
参照图1,汇聚节点和传感节点的邻居传感节点调度计算方法如下:
(a1)初始化节点;
(a2)向周围邻居传感节点广播信息收集包;
(a3)接收邻居传感节点的包含位置、感知范围、剩余能量、是否调度等内容的信息包;
(a4)建立调度模型。调度模型的建立方法如下:
(a4-1)分析
其中,
(a4-2)以自身位置为中心,将周围区域分解成大小一致的单位网格。如果该区域网格中心在处于工作状态的传感节点的感知覆盖区域内,该网格被覆盖,即
其中,
其中,ngrid表示网格的个数。建立区域覆盖增量优化模型。
max(△coveri)(4)
其中,s.t.是subjectto的缩写,表示需要满足以下条件,cover(xi)表示根据节点调度状态集合xi的区域覆盖率,
(a4-3)根据传感节点的位置,分析传感节点间的关系。当计算传感节点相交时,计算被其他传感节点覆盖的圆弧覆盖区间βab,建立圆弧覆盖增量优化模型。
传感节点间的关系分析方法如下:参照图3~图6,已知两传感节点的位置坐标为(xa,ya)和(xb,yb),其感知半径分别为ra和rb且rb>ra,令
dab≤|rb-ra|(5)
当两传感节点间距离大于其感知半径的和,两传感节点没有相交。当两传感节点间距离大于其感知半径的差且小于其感知半径的和,两传感节点相交,计算传感节点a被传感节点b覆盖的圆弧覆盖区间。
自身传感节点被其他传感节点覆盖的圆弧覆盖区间βab的计算方法如下:
(a4-3-1)当rb≤dab≤|ra+rb|时,传感节点a的感知圆和传感节点b的感知圆存在参照图3~图6的4种相交情况。令经过a点的垂直线与上圆弧的交点为c,且θ1=∠bac,θ2=∠bad。θ1和θ2的值为
其中,
当xb≥xa且θ1≥θ2,参照图3所示,
βab=[θ1-θ2θ1+θ2](8)
当xb≥xa且θ1<θ2,参照图4所示,直线ab将βab分成两部分,即
βab=[2π+θ1-θ22π]∪[0θ1+θ2](9)
当xb<xa且θ1≥θ2,参照图5所示,
βab=[2π-θ1-θ22π-θ1+θ2](10)
当xb<xa且θ1<θ2,参照图6所示,直线ab将βab分成两部分,即
βab=[2π-θ1-θ22π]∪[0θ2-θ1](11)
(a4-3-2)当|rb-ra|<dab<rb时,参照图7,寻找圆点关于直线de对称,且半径仍为rb的圆,则可转换成参照图7中的情况,其圆弧覆盖区间是对称情况的圆弧覆盖区间的补。因此令
则
建立的圆弧覆盖增量优化模型如下。
其中,
(a4-4)分析节点的剩余能量,建立剩余能量优化模型。
其中,
(a4-5)根据优化模型(4),(14)和(15),获得综合函数,建立多目标调度模型。
s.t.w1+w2+w3=1
约束条件(4.a),(14.a)-(14.d),(15.a)-(15.b)
其中,f(xi)表示综合目标函数,w1,w2和w3是权重因子且其和为1。
(a5)求解该调度模型获得邻居节点的调度方案。调度模型的求解方法如下:
(a5-1)单跳收集邻居传感节点的位置、感知半径、剩余能量等信息。
(a5-2)根据自身节点的位置,感知半径和未调度传感节点集合vz中每一个传感节点的位置和感知半径,判断不等式dab≤|rb-ra|,|rb-ra|≤dab≤|rb+ra|和|rb+ra|≤dab,计算全覆盖,相交和远离的邻居传感节点集合。
(a5-3)让全覆盖的节点处于睡眠状态,添加到vs中,获得相交节点集合
(a5-4)
(a5-5)选择
(a5-6)k=k+1。如果
(a5-7)判断
(a5-8)根据当前的调度信息,向邻居传感节点发送调度状态确认包。计算刚进入工作状态的传感节点圆弧覆盖区间,向弧未全覆盖的传感节点发送调度计算启动包。
(a6)根据传感节点调度方案,向邻居传感节点发送调度状态确认包,向未全覆盖传感节点发送调度工作启动包,启动新一轮调度计算。
传感节点的工作方法如下步骤:
(b1)传感节点标注为未调度,并初始化参数;
(b2)判断是否接收到汇聚节点或者其他传感节点的调度状态确认包;如果接收到其他节点的调度状态信息包,则判断是否是该包的目标节点。如果是,则读取该包的信息,确认自身工作状态,进入并标注对应状态。跳到步骤(b3),否则,直接跳到步骤(b3);
(b3)判断是否接收到汇聚节点或者其他传感节点的调度计算启动包,如果是,则启动传感节点的邻居传感节点调度计算方法,判断周围未调度传感节点的工作状态,发送调度状态确认包和调度计算启动包,跳到步骤(b5),否则跳到步骤(b4);传感节点的调度计算方法和汇聚节点的调度计算方法相同;
(b4)判断是否超出调度判断时间后仍未收到调度确认包或调度计算启动包,如果是,则寻找汇聚节点的路径;如果存在到汇聚节点的路径,则调度路径中的睡眠传感节点进入工作状态,并启动传感节点的邻居传感节点调度计算方法,判断周围未调度传感节点的工作状态,发送调度状态确认包和调度计算启动包,跳到步骤(b5)。否则,进入并标注为睡眠状态,并跳到步骤(b2);传感节点的调度计算方法和汇聚节点的调度计算方法相同;
(b5)判断是否接收到邻居传感节点的能量失效通知包,如果是,则延迟10s时间后,启动覆盖盲区的修复。跳到步骤(b6),否则,直接跳到步骤(b6);
其中,覆盖盲区的修复方法具体步骤如下:
(b5-1)接收到邻居传感节点的失效通知包,延时与剩余能量成正比的时间后启动睡眠节点的调度。
(b5-2)延时时间到后,不考虑失效邻居传感节点,判断自身感知弧是否全覆盖。如果已经全覆盖,则跳出,否则计算未覆盖圆弧区间β1。
(b5-3)从邻居信息表中获知睡眠状态的传感节点和个数nl,根据公式(6)-(11)计算每一个邻居传感节点与自身传感节点的圆弧覆盖区间βi。令k2=1。
(b5-4)选择一个邻居节点,判断自身节点被其覆盖的圆弧覆盖区间是否包含β1。如果不存在,k2=k2+1,重新跳到步骤(b5-4),否则获知所有的节点可性能,跳到步骤(b5-5)。
(b5-5)计算所有节点可能性,计算增加每一种可能性后,区域覆盖率增量,自身节点的弧覆盖率增量和平均剩余能量,通过公式(17)计算每一种可能性权值。
(b5-6)选择最大一种权值的传感节点方案,通知这些睡眠传感节点进入工作状态。从睡眠状态进入工作状态的传感节点广播通知其周围邻居节点,其邻居节点更新邻居信息表。
(b6)判断是否接收到传感节点的路由信息包,如果是,则更新其邻居节点信息表。跳到步骤(b7),否则,直接跳到步骤(b7);
(b7)判断传感节点是否在工作状态,如果是,则感知数据,并将数据传给汇聚节点。跳到步骤(b2),否则,直接跳到步骤(b2);
采用该发明的异构无线传感网的传感节点调度方法,提出了区域覆盖增量优化模型,圆弧覆盖增量优化模型和剩余能量优化模型,建立多目标调度模型,解决了传感节点感知异构的调度模型问题;提出启发式求解方法求解调度模型,可获得传感节点的最优调度方案,在保证区域覆盖率的前提下,提高了网络生存时间;提出唤醒睡眠传感节点的覆盖盲区修复方法,充分利用传感节点的能量,最大化区域覆盖率;总之,本方法提高了网络生存时间和传感节点存活个数,保持平均节点能耗在较低的水平。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。