【WSN】基于COMPOW协议下的网络连通率和覆盖率附matlab代码

网友投稿 327 2022-09-05


【WSN】基于COMPOW协议下的网络连通率和覆盖率附matlab代码

1 简介

COMPOW (COMMON POWER)协议是一种简单的将功率控制与路由协议相结合的解决方案,其基本思想是:所有的传感器节点使用一致的发射功率,在保证网络连通的前提下将功率最小化。COMPOW建立各个功率级的路由表,在功率Pi级时,通过使用功率Pi交换HELLO消息建立路由表RTpi,所有可达节点都是路由表中的表项。COMPOW选择最小的发射功率使得与最大发射功率具有相同数量的表项,于是整个网络使用公共的发射功率但该协议只适用于节点分布均匀的情况,缺陷较为明显。

①在固定节点个数的前提下,仿真求得使网络保持连通的最小通信半径(最低能级、COMPOW协议)。

②在以上通信半径的前提下,假设连通半径等于覆盖半径,计算随机布撒的节点的覆盖率。

在1x1的单位矩形中随机部署100个传感器节点,假设每个节点的连通半径一样。对节点划分为5个能级(一级:r=0.08, 二级:r=0.12,三级:r=0.16,四级:r=0.20,五级:r=0.24),分别模拟出连通率随节点能级的变化趋势,进而判断出使网络节点连通的最低能级r。

网络节点连通性判断采用Warshell算法,使用邻接矩阵(adjacencyMatrix)表示各节点之间的连通性能。在该算法中,矩阵adjacencyMatrix是判断矩阵, 表示从i到j连通,由于是无向图,进而从i到j也连通。

2 部分代码

%参数初始化、矩阵初始化clcclear allclose allN=100;M=(1000+1)*(1000+1); %将矩阵分为1000*1000份r=0;flag=zeros(1,M); %这里定义为一维数组是为了在计算覆盖率的时候便于计算。先将其置零。sum=0; %被覆盖的额数x=rand(1,N);y=rand(1,N);r %输出最小能级对应的半径%绘制节点覆盖范围,并将其置为黑色。angle=0:pi/50:2*pi;for k=1:N figure(1); plot(r*cos(angle)+x(k),r*sin(angle)+y(k)); plot(x(k),y(k),'.'); axis([0,1,0,1]); axis equal; hold on ; figure(2); plot(r*cos(angle)+x(k),r*sin(angle)+y(k)); plot(x(k),y(k),'.'); fill(r*cos(angle)+x(k),r*sin(angle)+y(k),[0,0,0]); axis([0,1,0,1]); axis equal; hold on ;end%把矩阵分成1000*1000份,逐一判断是否在覆盖范围内,并置标志位为1for i=0:0.001:1 %把矩阵分成1000*1000份 for j=0:0.001:1 for m=1:N if (i-r)

3 仿真结果

4 参考文献

https://51dzw.com/embed/embed_78611.html

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【优化调度】基于改进的遗传算法求解带时间窗约束多卫星任务规划问题含Matlab源码
下一篇:【LSTM预测】基于双向长短时记忆(biLSTM)实现数据回归预测含Matlab源码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~