【三维异构Dvhop定位】基于灰狼优化算法的三维异构Dvhop定位算法【Matlab代码#93】

文章目录


【可更换其他算法,获取资源请见文章第5节:资源获取】


1. Dvhop定位算法

根据距离矢量和 GPS定位原理,2001年,Nieuleseu等人提出了 DV-Hop传感器节点定位算法,其只包含少数锚节点,剩余节点为未知节点,需要通过定位算法来确定它们的位置,具有无需测量距离,硬件要求低等点,在硬件条件有限的WSN得到了广泛的应用。

DV-Hop算法的定位步骤如下:

(1)各锚节点向通信范围内的邻居节点广播自身的位置信息。接收节点则记录到每个锚节点的最小跳数,同时忽略来自同一个锚节点的较大的跳数信息,而后将跳数值加1转发给邻居节点。

(2)每个锚节点根据所记录的其他锚节点的坐标信息和跳数,通过式(1)估算网络平均跳距距离。

式中(少了z坐标),j为锚节点i数据表中的其他锚节点号,hopSij为锚节点i和j之间的跳数。

锚节点将所计算的平均跳距广播至整个网络后,未知节点仅记录所收到的第一个平均跳距,并向邻居节点转发,未知节点接收到平均跳距后,跟据所记录的跳数信息,按式(2)估算未知节点 i 到某个锚节点的距离:

(3)设P1(x1,y1,z1), ... ,Pn(xm,ym,zm)表示m个锚节点的坐标位置,待定位节点D的位置为(x,y,z),其与标节点估计距离分别为d1, d2, ... , dm,可以建立如下方程。

用线性方程组表示为AL= b,其中,

采用最小二乘法得到方程组的解为:

该仿真需要设定节点覆盖范围,总节点数,信标节点数,通信半径等参数,未知节点数等于总节点数减去锚节点数。(下面式子中少了z坐标)采用归一化平均定位误差作为评价指标:

2. 异构Dvhop定位算法


图1 异构无线传感器网络示意图

同构无线传感器网络指的是网络中的所有传感器节点具有相同的硬件配置、能量储备、计算能力以及通信能力,这意味着通信半径一致:每个节点能够与相同距离范围内的其他节点进行通信。

而区别于同构无线传感器网络,异构无线传感器网络由不同类型的传感器节点组成,这些节点可以有不同的硬件配置、能量储备、计算能力和通信能力,在这种网络中通信半径不一致:不同的节点可能具有不同的通信半径。例如,某些节点可能只能与近距离的节点(短通信半径)通信,而其他节点则可能拥有更强大的无线电设备,从而允许它们与较远距离的节点(长通信半径)进行通信。从上面图1可以看出来,U1节点的通信距离相比于A1节点要小一点,所以U1节点仅可直接A1、U2节点通信,而A1节点可以与U1、U2、U3、U4节点直接通信。

3. 部分代码展示

matlab 复制代码
%% 计算每个信标节点的校正值(计算每个锚节点的平均每跳距离)
    hBeacon = h(1:BeaconAmount,1:BeaconAmount);%跳数
    DBeacon = Dall(1:BeaconAmount,1:BeaconAmount);%距离
    for i = 1:BeaconAmount
        dhop(i) = sum(DBeacon(i,:)) / sum(hBeacon(i,:));
    end

    %% 计算每个未知节点的校正值
    clear dhopUN
    DUN = Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount); %BeaconAmount行UNAmount列  信标节点到未知节点的距离
    for i = 1:BeaconAmount
        for j = 1:UnAmount
            if min(DUN(:,j)) == DUN(i,j)
                dhopUN(j) = dhop(i); %未知节点从最近的信标获得校正值
            end %用离该未知节点最近的锚节点的平均每跳距离作为该节点的每跳距离
        end
    end

    %% 用跳数估计距离(计算每个未知节点到各锚节点的距离)
    hop1 = h(1:BeaconAmount,(BeaconAmount+1):end); %未知节点到信标跳数,BeaconAmount行,UnAmount列
    clear d
    for i = 1:UnAmount
        hop = dhopUN(i); %hop为从最近信标获得的校正值
        d(:,i) = hop * hop1(:,i); %BeaconAount行UnAmount列
    end

4. 仿真结果展示

5. 资源获取

可更换其他群智能优化算法,获取完整代码资源。👇👇👇👀名片

相关推荐
tyatyatya17 小时前
MATLAB中进行视觉检测入门教程
开发语言·matlab·视觉检测
2zcode1 天前
基于Matlab可见光通信系统中OOK调制的误码率性能建模与分析
算法·matlab·php
听情歌落俗2 天前
MATLAB3-1变量-台大郭彦甫
开发语言·笔记·算法·matlab·矩阵
XIAOYU6720132 天前
金融数学专业需要学哪些数学和编程内容?
开发语言·matlab·金融
听情歌落俗2 天前
MATLAB3-2数据存储-台大郭彦甫
开发语言·数学建模·matlab·矩阵
slandarer2 天前
MATLAB | 这是屎吗?抱歉打错了,这是什么?
开发语言·matlab
茜茜西西CeCe3 天前
数字图像处理-巴特沃斯高通滤波、低通滤波
图像处理·opencv·计算机视觉·matlab·巴特沃斯高通滤波·巴特沃斯低通滤波
电力程序小学童3 天前
基于密集型复杂城市场景下求解无人机三维路径规划的Q-learning算法研究(matlab)
算法·matlab·无人机
通信小呆呆3 天前
OCDM 波形通信感知一体化:从原理到 MATLAB 实现
matlab·信息与通信·通信感知一体化·ocdm
2zcode3 天前
基于Matlab不同作战类型下兵力动力学模型的构建与稳定性分析
开发语言·matlab