• 大小: 903B
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: 质心定位  

资源简介

质心定位算法的MATLAB仿真,用于无线传感器网络的定位实验。

资源截图

代码片段和文件信息


% function [Accuracy]=dingwei(BeaconAmount) 
BorderLength=100;%正方形区域的边长 
UNAmount=60; 
BeaconAmount=20;
NodeAmount=UNAmount+BeaconAmount;%网络节点个数 
R=50;%节点的通信距离 
%D=zeros(NodeAmountNodeAmount);%未知节电到信标节点距离初始矩阵;BeaconAmount行NodeAmount列 
%X=zeros(2UNAmount);%节点估计坐标初始矩 
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~在正方形区域内产生均匀分布的随机拓扑
RandStream.setDefaultStream(RandStream(‘mt19937ar‘‘Seed‘sum(100*clock)))
C=BorderLength.*rand(2NodeAmount); 
C
pause
D=C.‘
pause
%figure(1);
%plot(D(:1)D(:2)‘ko‘)
%pause
%带逻辑号的节点坐标 
Sxy=[[1:NodeAmount];C]; 
Sxy
pause
Beacon=[Sxy(21:BeaconAmount);Sxy(31:BeaconAmount)];%信标节点坐标 
B=Beacon.‘
figure(1);
plot(B(:1)B(:2)‘ro‘)
hold on;
pause
UN=[Sxy(2(BeaconAmount+1):NodeAmount);Sxy(3(BeaconAmount+1):NodeAmount)];%未知节点坐标  
U=UN.‘
plot(U(:1)U(:2)‘ko‘)
pause
sume=0; 
for i=1:1:UNAmount   
    m=0; 
    sumx=0; %x的累积值
    sumy=0; %y的累积值 
    for j=1:1:BeaconAmount  %n为信标节点个数 
        if sqrt(abs(UN(1i)-Beacon(1j))^2+abs(UN(2i)-Beacon(2j))^2)<=R %x2、y2为网络节点坐标,S.xd、S.yd为目标坐标 
           m=m+1; 
           sumx=sumx+Beacon(1j); 
           sumy=sumy+Beacon(2j); 
        end 
     end 
     if m==0 
          X(1i)=0; 
          X(2i)=0; 
     end 
      T.xd(i)=sumx./m; 
      X(1i)= T.xd(i); %x的坐标平均值 
      T.yd(i)=sumy./m; 
      X(2i)=T.yd(i);  %y的坐标平均值 
      error(1i)=sqrt(abs(UN(1i)-X(1i))^2+abs(UN(2i)-X(2i))^2); 
      sume=sume+error(1i); 
end   
  figure;
  plot(error‘-o‘)
  pause
   Accuracy=sume/(UNAmount*R)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1666  2018-07-11 11:22  ZXDW.m

----------- ---------  ---------- -----  ----

                 1666                    1


评论

共有 条评论