首页 > 行业资讯 > 【WSN】基于COMPOW协议下的网络连通率和覆盖率附matlab代码

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

时间:2022-07-21 来源: 浏览:

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

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集

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 部分代码

%参数初始化、矩阵初始化 clc clear all close all N= 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 份,逐一判断是否在覆盖范围内,并置标志位为 1 for i= 0 : 0 . 001 : 1 %把矩阵分成 1000 * 1000 for j= 0 : 0 . 001 : 1 for m= 1 :N if (i-r)<x(m) && x(m)<(i+r) &&(j-r)<y(m) && y(m)<(j+r) if (x(m)-i)^ 2 +(y(m)-j)^ 2 <r^r flag( int32(i* 1000 * 1001 +j* 1000 )+ 1 )= 1 ; %将已经被覆盖的地方标记,从 1 开始,转化成整型 break ; %已被覆盖就不用再计算 end end end end end %计算覆盖率 for i= 1 :M if flag(i)== 1 sum=sum+ 1 ; end end sum double(sum/M) %输出覆盖率,转为double显示 0 . 1600 0 . 9760 % sum(flag== 1 )/M %输出覆盖率

3 仿真结果

4 参考文献

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

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

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐