WSN覆盖率
来源:互联网 发布:淘客发单软件 编辑:程序博客网 时间:2024/06/11 19:24
一、问题描述
传感器网络随机部署在单位正方形内,假设通信半径=覆盖半径,求出WSN覆盖率。
A WSN randomly deployed in a unit square. Node communication radius = Node coverage radius ,Determine COMPOW to ensure network connectivity. Find the WSN coverage ratio.
二、问题分析
首先,建立一个WSN模型,假设在单位正方形内随机部署100个传感器,逐渐增加通信半径,使WSN网络恰好连通,然后将单位正方形虚拟分割成N*N个方格,当N足够大的时候,微积分思想出现了,以每个交叉点代表小方格,判断交叉点是否被覆盖来解决覆盖率问题,在这里假设N=1000.
关于WSN网络是否连通,我们首先判断两点直接的连接情况,构建邻接矩阵,采用矩阵幂算法,对于邻接矩阵M,有S矩阵S=M+M^2+M^3+...+M^(N-1);其中N是M的行数或列数,若S中有元素为零,则不连通。
网络连通性参考文献:《基于邻接矩阵图的连通性判定准则》(贾进章,刘剑,宋寿森辽宁工程技术大学学报 第22卷第2期 2003年4月)
WSN的连通性判断解决之后,WSN覆盖率就可以用单位正方形交叉点被覆盖总数除以所有交叉点。
《基于邻接矩阵图的连通性判定准则》
利用图论和集合论的知识,对节点邻接矩阵进行深入分析,提出了有向图和无向图的连通性判定准则及图中任意两节点间 不连通的判定准则;对路径及节点邻接矩阵的概念进行了更为严格的数学描述;确定了路径的极限长度。文中提出的图的连通性判定准则具有程序思想简单、逻辑性强、方便快捷的优点,对于图的连通性判定、连通块的划分等都具有指导意义。
三、MATLAB代码展示
N=100;%在单位正方形内部署100个点 M=(1000+1)*(1000+1); r=0; flag = zeros(1,M);%用来标记每个方格交叉点是否被覆盖 %%Increasing COMPOW gradually to approximate the minimum COMPOW (below) x=rand(1,N);%传感器位置横坐标 y=rand(1,N);%传感器位置纵坐标 adjacencyMatrix=zeros(N);%定义传感器互联邻接矩阵 for R=0:0.01:1 for i=1:1:N for j=(i+1):1:N if (x(i)-x(j))^2+(y(i)-y(j))^2<R^2 adjacencyMatrix(i,j)=1; adjacencyMatrix(j,i)=1; end end end %此时已经产生了传感器的邻接矩阵 S=zeros(N); for m=1:1:N-1 S=S+adjacencyMatrix^m; %对于M,有S矩阵 %S=M+M^2+M^3+...+M^(N-1); %其中N是M的行数或列数 %若S中有元素为零,则不连通; %S中无零,则连通, %《基于邻接矩阵图的连通性判定准则》查到的 if all(all(S))==1 %判断S向量是不是全为非零元素 r=R; break; end end if(r~=0) break; end end r %Increasing COMPOW gradually to approximate the minimum COMPOW (above) 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),'b'); axis([0,1,0,1]); axis equal; hold on; end %画图 for i=0:0.001:1 for j=0:0.001:1 %把单位正方形分成1000*10000个表格 for m=1:N %鉴于乘法运算速度要慢于加法运算,这里是对算法进行优化 %通过第一个if排除掉一些传感器,减少运算量 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; break; end end end end end sum(flag==1)/M %求出覆盖率
- WSN覆盖率
- WSN覆盖率求解
- 最小发射功率下WSN的连通性和覆盖率
- WSN
- wsn
- 覆盖率
- WSN Overview
- WSN学习计划
- WSN术语
- wsn笔记
- WSN资源
- WSN初控
- WSN相关的链接
- 开始WSN旅程
- wsn之--地铁
- WSN仿真软件汇集
- WSN定位算法
- WSN TinyOS学习
- CentOS7安装mysql
- bzoj1040: [ZJOI2008]骑士
- java基础-内部类
- lucene、solr、quartz、linux
- 自定义QGraphicsItem的继承顺序
- WSN覆盖率
- Android中的各种访问权限Permission含义
- MQTT项目完成总结笔记
- find_literal.sql
- spring mybates 自增字段返回id
- android学习记录(一)
- Rocketmq整体分析
- 封锁阳光大学
- HMM基础-HMM训练-前向后向算法