基于WSN覆盖问题及自愈算法的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:针对无线移动传感器网络的覆盖控制问题,在机会网络环境模拟器one的基础上进行模拟器模块的添加和修改,实现了三种覆盖控制算法,并比较了算法的性能,最后选择虚拟力覆盖控制算法进行进一步分析。
通过实验研究输出采样间隔、模拟采样间隔、节点通信半径、虚拟力距离阈值等参数对覆盖控制的影响,并分析得知虚拟力距离阈值的调整可以控制传感器网络节点之间的疏密程度,进而通过减少重叠区域实现覆盖率的增加。
最后进行实验分析验证了算法改进的可行性和有效性。
关键词:无线传感器网络;覆盖控制;虚拟力;动态阈值
中图分类号: tn711?34; tp393 文献标识码: a 文章编号: 1004?373x(2016)01?0027?04
1 系统设计
1.1 算法实现
1.1.1 虚拟力覆盖控制算法
虚拟力覆盖控制算法的实现类为virtualforcecovercontrol。
该类包含一系列属性用于保存算法的各个参数,并实现两个方法init()和run()。
init()用于从setting类读取[xmax](最大横坐标),[ymax](最大纵坐标),[rtransmit](通信半径),[rcover](传感半径),[tmax](模拟运行总时间),[tstep](模拟采样率),[tspan](输出采样率),[rdth](虚拟力距离阈值)等参数。
run()为算法主体,模拟虚拟力覆盖控制的过程并输出节点运动的坐标和时间戳。
本文全部研究过程中,节点的移动速度[3]默认为1 m/s。
1.1.2 自布置覆盖控制算法
自布置覆盖控制算法基于voronoi图实现,算法的核心在于voronoi图的计算。
该算法的实现类为voronoicovercontrol类。
该类包含一系列属性用于保存算法的各个参数,并实现三个方法init(),run()和voronoi()。
init()用于从setting类读取[xmax](最大横坐标),[ymax](最大纵坐标),[rtransmit](通信半径),[rcover](传感半径),[tmax](模拟运行总时间),[tstep](模拟采样率),[tspan](输出采样率)等参数。
run()为算法主体,模拟覆盖控制的过程并输出节点运动的坐标和时间戳。
voronoi()是算法的核心,根据输入的一组节点坐标计算相应的voronoi图。
1.1.3 gaf覆盖控制算法
gaf覆盖控制算法基于分簇策略,通过将平面区域划分为大小刚好能被一个节点完全覆盖的栅格,并控制节点在栅格之间转移实现覆盖控制。
该算法的实现类为gafcovercontrol 类。
该类包含一系列属性用于保存算法的各个参数,并实现两个方法init(),run()。
init ()用于从setting类读取[xmax](最大横坐标),[ymax](最大纵坐标),[rtransmit](通信半径),[rcover](传感半径),[tmax](模拟运行总时间),[tstep](模拟采样率),[tspan](输出采样率)等参数。
run()为算法主体,模拟gaf覆盖控制的过程并输出节点运动的坐标和时间戳[4]。
2 覆盖控制算法分析
2.1 三种覆盖控制算法的比较
为了在三种覆盖控制算法中挑选出一个比较优秀的算法并进行改进,需要横向比较三种算法的性能优劣,设计以下实验。
三种覆盖控制算法的共同参数一致,取值如下:最大时间[tmax=]1 000,最大横纵坐标[xmax=720,][ymax=]400,节点通信半径[rtransmit=]100,节点传感覆盖半径[rcover=]50,模拟采样间隔[tstep=1,]输出采样间隔[tspan=100,]节点数[nsensor=50;]虚拟力算法的距离阈值[rdth=]1.732 050 8。
由图1,表1可知,实验数据的初始覆盖率为0.684,虚拟力算法的最终覆盖率为0.948,
自布置算法的最终覆盖率为0.938,gaf 算法的最终覆盖率只有0.864。
从曲线的趋势上看,虚拟力算法的收敛速度非常快,在100 s时已经达到0.9以上,500 s时已经非常接近最终覆盖结果;自布置算法收敛速度较慢,在500 s时才达到0.9以上,之后覆盖率比较高,但是波动较大,可见算法的稳定性较差,这个特征符合自布置算法的特性,在移动一个节点到未覆盖的voronoi图顶点时,可能在节点原来位置产生新的空白;gaf算法整体效果较差,从曲线趋势可以看出gaf算法调度节点的效率较低,且难以达到较好的覆盖效果[5]。
综上可知,虚拟力覆盖控制算法覆盖效果好、算法收敛快,相较另外两种算法有明显优势,因此之后的研究可基于虚拟力覆盖控制算法展开。
2.2 虚拟力覆盖控制算法参数分析
根据以上的实验结果,选择虚拟力算法作为本文研究的重点。
为了找出算法可能存在的提升空间,首先需要对算法的各个参数进行实验分析,找出对算法的结果影响比较大的参数,并选择合理的取值。
下面对算法的主要参数逐个进行分析[6]。
2.2.1 输出采样间隔对覆盖控制的影响
实验条件:三组实验的虚拟力覆盖控制算法除输出采样间隔[tspan]外的参数一致,取值如下:最大时间[tmax=300,]最大横纵坐标[xmax=720,][ymax=400,]节点通信半径[rtransmit=100,]节点传感覆盖半径[rcover=50,]模拟采样间隔[tstep=1,]节点数[nsensor=50;]虚拟力算法的距离阈值[rdth=]1.732 050 8;
第一组实验的输出采样间隔[tspan=20;]第二组实验的输出采样间隔[tspan=30;]第三组实验的输出采样间隔[tspan=50,]分别以上述参数运行模拟程序,得到覆盖控制算法运行记录,如图2所示。
观察图2可知,三组实验的覆盖率曲线高度吻合,三次实验均在前100 s时间内迅速收敛,覆盖率在[t=]100 s左右时达到0.957,最后[t=300 ]s时均为0.962。
实验结果表明,三种输出采样间隔之下覆盖控制算法的运行过程和结果基本一致。
实验结论:输出采样间隔[tspan]与覆盖控制程序的运行效果无关,只决定了数据采样的频率。
因此对覆盖控制算法的优化不必考虑输出采样间隔。
2.2.2 模拟采样间隔对覆盖控制的影响
实验预期:模拟采样间隔数值越大,覆盖控制的效果越差。
实验条件:三组实验的虚拟力覆盖控制算法除模拟采样间隔[tstep]之外的参数一致,取值如下:最大时间[tmax=]1 000,最大横纵坐标[xmax=720,][ymax=400,]节点通信半径[rtransmit=100,]节点传感覆盖半径[rcover=50,]输出采样间隔[tspan=100,]节点数[nsensor=50;]虚拟力算法的距离阈值[rdth=]1.732 050 8;
第一组实验的模拟采样间隔[tstep=1;]第二组实验的模拟采样间隔[tstep=2;]第三组实验的模拟采样间隔[tstep=5;]第四组实验的模拟采样间隔[tstep=10;]第五组实验的模拟采样间隔[tstep=20,]分别以上述参数运行模拟程序,得到覆盖控制算法运行记录,如图3所示。
实验结果:观察图3,发现实验结果与预期并不吻合,模拟采样间隔为1 s时,覆盖控制的最终覆盖率最低,仅有0.948;模拟采样间隔为2 s和5 s时,覆盖控制的效果最好,最终达到0.984;当模拟采样间隔增加到10 s时,覆盖控制的收敛速度最快,在系统时间100 s时已达到0.962的覆盖率,但是在500 s之后呈现出一定波动,最终覆盖率与第二、三组实验接近;当模拟采样间隔增加到20 s时,覆盖控制在算法运行一段时间后已经呈现覆盖率较大的波动。
根据最后一组实验数据的曲线显示,覆盖率在系统时间400~600 s之间呈下降趋势[7]。
2.2.3 节点通信半径对覆盖控制的影响
实验预期:节点通信半径在传感覆盖半径的2倍左右时覆盖控制效果最好。
实验条件:五组实验的虚拟力覆盖控制算法除节点通信半径外的参数一致,取值如下:最大时间[tmax=1 000,]最大横纵坐标[xmax=720,][ymax=400,]节点传感覆盖半径[rcover=]50,模拟采样间隔[tstep=5,]输出采样间隔[tspan=100,]节点数[nsensor=50;]虚拟力算法的距离阈值[rdth=]1.732 050 8;
第一组实验的节点通信半径[rtransmit=75,]即传感覆盖半径的1.5倍;第二组实验的节点通信半径[rtransmit=]90,即传感覆盖半径的 1.8倍;第三组实验的节点通信半径[rtransmit=100,]即传感覆盖半径的2倍;第四组实验的节点通信半径[rtransmit=120,]即传感覆盖半径的2.4倍;第五组实验的节点通信半径[rtransmit=150,]即传感覆盖半径的3倍。
分别以上述参数运行模拟程序,得到覆盖控制算法运行记录,如图4所示。
实验结果:通过图4可以观察到,当[rtransmit=150]时覆盖控制没有正常进行。
剩余四组实验曲线非常接近,收敛都很迅速,其中当[rtransmit=90]时,算法有最高的覆盖率,达到0.987,[rtransmit=100]时覆盖率稍低,但明显高于另外两组实验的覆盖率。
实验表明,节点通信半径在90~100,即传感覆盖半径的1.8~2倍时覆盖率最高且收敛速度足够快。
针对[rtransmit=150]时的反常情况,分析曲线可知覆盖率在300 s前迅速下降,并且在之后保持0.3的覆盖率不变。
2.2.4 虚拟力距离阈值对覆盖控制的影响
由之前的实验可知,虚拟力距离阈值对虚拟力覆盖控制算法的结果影响非常明显,合适的阈值可以有效提高覆盖率和收敛速度。
为了进一步分析虚拟力距离阈值对覆盖控制的影响,设计以下实验。
实验预期:虚拟力阈值对覆盖控制过程影响明显。
阈值越高节点分布越稀疏,阈值越低节点分布越密集。
实验条件:各组实验的虚拟力覆盖控制算法除虚拟力阈值和节点个数以外的参数一致,取值如下:最大时间[tmax=]1 000,最大横纵坐标[xmax=]720,[ymax=400,]节点通信半径[rtransmit=100,]节点传感覆盖半径[rcover=50,]模拟采样率[tstep=5,]输出采样率[tspan=100。