【三维异构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. 资源获取

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

相关推荐
鹿屿二向箔13 小时前
阀门流量控制系统MATLAB仿真PID
开发语言·matlab
没有黑科技13 小时前
0.雷达信号
matlab
QQ__176461982421 小时前
Matlab安装tdms插件
开发语言·matlab·tdms插件
小白狮ww1 天前
Retinex 算法 + MATLAB 软件,高效率完成图像去雾处理
开发语言·人工智能·算法·matlab·自然语言处理·图像识别·去雾处理
机器学习之心1 天前
区间预测 | QRTCN时间卷积神经网络分位数回归时间序列区间预测模型(Matlab完整源码和数据)
matlab·回归·cnn·分位数回归·时间卷积神经网络·qrtcn·区间预测模型
Matlab光学2 天前
MATLAB仿真:Ince-Gaussian光束和Ince-Gaussian矢量光束
开发语言·算法·matlab
东雁西飞2 天前
MATLAB 控制系统设计与仿真 - 33
开发语言·算法·matlab·机器人·自动控制
落雨封海2 天前
Matlab基础知识与常见操作【无痛入门】
matlab
唯_ww2 天前
CST学习笔记(三)MATLAB与CST联合仿真-远场数据批量导出
matlab·电磁学