【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码

简介: 【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码

1 内容介绍

无线传感器网络(WirelessSensorNetwork,WSN)是由若干个分布在被监控范围内的传感器节点构成的网络,这些节点以随机或者确定位置分布的形式布置在被监测范围内,可以收集温度、湿度、光照条件、地震活动等方面的数据,在军事和民用环境中有着非常广泛的应用。由于传感器节点数量较多,计算能力、内存和传感器的电源功率有限,能量问题就成了无线传感网络需要解决的关键技术之一[1]。为了解决上述问题,无线传感器网络中的路由算法的设计极为重要。无线传感器网络中,路由协议技术主要有两种:平面型路由协议以及分层型路由协议[2]。在第一种平面型路由技术中,所有节点都被平等对待,比较有利于相互协作。在网络中,一些协议要求部分节点不仅仅只是要收集、存储周围的数据,还需要作为中继节点转发来自其他节点的数据,使得这类传感器节点的能量消耗过快而提前失去工作能力,从而致使网络的瘫痪失效[3]。在第二种分层型路由算法中,通过分层的形式将整个大网络分成多个互不相关的集群,将这个集群称为簇[4]。每个簇由簇内成员节点和簇头组成,其中,簇头承担数据转发的功能,负责收集节点收集的信息,并将其传送给基站,而且可以缩短传输距离,进而降低能耗。本文提出一种基于最佳簇半径的分簇路由算法LEACH⁃OR(LowEnergyAdaptiveClusteringHierarchybasedonOptimalclusterRadius)算法。该算法主要思想是根据网络范围大小和簇头数目初步划分网络,首先计算出每个小网络的最优半径,按照该半径对网络进行划分,使簇的分布更加均匀。其次在进行簇头选取时,加入节点当前剩余能量和距离的控制因子。优化簇头的选举阈值公式,使簇头选举更加均衡合理,簇与基站之间的数据传输采用多跳的方式,以减小通信间的能耗。对比仿真验证了该路由算法的优越性,其可以有效地平衡网络的能量损耗,提高能量利用效率,最终实现增加网络寿命的目标。

文献[5]提出的LEACH(LowEnergyAdaptiveClusteringHierarchy)算法是一种最具代表性的分层型路由算法。通过设计好的分层算法和节点轮流当选簇头的工作方式来平衡网络的能量损耗,但是在LEACH算法中簇头的选取和分布具有随机性,当能量小或者位置较为偏远的节点被选择为簇头时会加快节点的失效。韩广辉等人提出了一种节能路由协议LEACH⁃improved算法[6]。LEACH⁃improved算法通过增加间距算子、剩余能量算子和节点密度算子对阈值公式进行优化,解决了随机选择簇头造成网络能耗过快的问题。黄利晓等人提出了LEACH⁃E(LEACHbasedonEnergy)算法[7]。该算法在簇头选择的阈值公式里引入了节点的剩余能量和网络当前平均能量,使得节点能量比平均能量多的成员节点具有更大概率被选作簇头。普通节点的数据包中含有节点的能量数据,将其转发给基站以获取当前整个网络的能量平均值,使基站也可当作簇头以降低网络的能耗。LEACH⁃improved与LEACH⁃E两种算法通过改进阈值的计算公式,一定程度上可以减小能耗,但其没有解决簇头分布不均匀以及单跳传送能耗过大的问题。

1.1网络模型

1.假设在一个设定范围大小的监测范围内,随机布置多个传感器节点,并且这些节点持续对该区域进行监测。这些传感器节点具有以下性质[8]:

1)监测范围大小已知,传感器节点在监测范围内随机布置。

2)传感器节点的电量是有限的,放置后每个节点的ID固定不变,且坐标公开。

3)网络中传感器和基站的位置确定后均不会产生变动。

4)每个节点拥有的功能一样,具有同样的计算和数据融合能力。

5)节点布置完成后将不能修复,即传感器不能进行二次充电。

6)所有节点的传输功率可以依据传输的距离自动调整。

1.2能耗模型

本文采用一阶无线电模型作为能量消耗模型。节点在发送数据时,采用发送电路发送数据,并且使用放大电路对信号进行放大;接收端接收数据时,采用接收电路解析数据[9]。节点与节点间产生数据通信时,节点的能量消耗与发送端和接收端的距离大小有关。当发送端节点向间距为d的接收端节点传送数据时,发送端消耗的能量大小为:

2 仿真代码

clc;

clear;


%% 1.初始参数设定模块

%.传感器节点区域界限(单位 m)

xm = 200;

ym = 200;

% (1)汇聚节坐标给定

sink.x = 0;

sink.y = 0;

% 区域内传器节数

n = 200;

% 簇头优化比例(当选簇头的概率)

p = 0.1;

% 能量模型(单位 J)

% 初始化能量模型

Eo = 0.5;

% Eelec=Etx=Erx

ETX = 50*0.000000001;

ERX = 50*0.000000001;

% Transmit Amplifier types

Efs = 10*0.000000000001;

Emp = 0.0013*0.000000000001;

% Data Aggregation Energy

EDA = 5*0.000000001;

% 最大循环次数

rmax = 2000;

% 算出参数 do

do = sqrt(Efs/Emp);

% 包大小(单位 bit)

packetLength = 4000;        % 数据包大小



%% 绘图比较

r = 0:rmax;

figure;

plot(r, STATISTICS.DEAD, 'r', 'linewidth', 2);

xlabel 'Time(Round)'; ylabel 'Number of nodes dead';

figure;

plot(r, STATISTICS.ALIVE, 'r', 'linewidth', 2);

xlabel 'Time(Round)'; ylabel 'Number of nodes alive';

figure;

plot(r, STATISTICS.PACKETS_TO_BS, 'r', 'linewidth', 2);

xlabel 'Time(Round)'; ylabel 'Total number of packets received by base station';

figure;

plot(r, STATISTICS.COUNTCHS, 'r', 'linewidth', 2);

xlabel 'Time(Round)'; ylabel 'Number of cluster heads selected';

%STATISTICS,结构体数组,包括下面的5个变量;

%countCHs(r+1),每一轮所选出的簇头数目;

%packets_TO_BS(r+1),基站收到的数据包总数;

%PACKETS_TO_CH(r+1),簇头收到的数据包总数;

%first_dead,第一个节点死亡的时间;

%teenth_dead=r,10%的节点死亡的时间;

%dead(r+1),每一轮的死亡节点数;

%alive(r+1),每一轮的活动节点数。

3 运行结果

4 参考文献

[1]武一, 李家兴, 范书瑞,等. 基于最佳簇半径的无线传感器网络分簇路由算法[J]. 现代电子技术, 2021, 44(4):4.

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

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


相关文章
|
3月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
104 0
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
349 0
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
142 8
|
2月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
195 4
|
2月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
287 5
|
2月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
3月前
|
存储 算法 安全
即时通讯安全篇(三):一文读懂常用加解密算法与网络通讯安全
作为开发者,也会经常遇到用户对数据安全的需求,当我们碰到了这些需求后如何解决,如何何种方式保证数据安全,哪种方式最有效,这些问题经常困惑着我们。52im社区本次着重整理了常见的通讯安全问题和加解密算法知识与即时通讯/IM开发同行们一起分享和学习。
299 9
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
214 2
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
124 0
|
3月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)

热门文章

最新文章