异构无线传感器网络路由算法研究(Matlab代码实现)

news2025/1/11 20:51:17

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

​无线传感器网络(Wireless Sensor Networks, WSN)是一种新型的融合传感器、计算机、通信等多学科的信息获取和处理技术的网络,其在工业和军事领域具有广泛的应用前景。目前对于WSN的研究主要局限于同构WSN领域,与同构WSN不同,异构传感器网络中的传感器节点拥有不同的资源配置,如计算能力、通信能力、存储能力、电源能量等,更能满足实际应用场景对WSN的需求,因此设计合理的基于异构传感器网络的路由协议成为异构传感器网络领域的主要研究问题之一。 

📚2 运行结果

主函数部分代码:

clc;
clear all;
close all;
 
% Simulation Parameters
 
%Field dimensions in meters
xm = 200;
ym = 200;
 
%initial x and y coordinates of the Sink
sink.x = 0;
sink.y = ym*0.5;
 
%Number of Nodes in the field
n = 600;
 
%Optimal Election Probability of a node
%to become cluster head
p_opt = 0.1;
 
L = 4000;   % packet length
 
%Energy Model
Eo = 0.5;                      %Initial Energy
E_elec=50*0.000000001;         % energy consumed by radio electronics in transmit/receive mode(J/bit)
E_fs=10*0.000000000001;        %energy consumed by the power amplifier on the free space model(J/bit/m2)
E_mp=0.0013*0.000000000001;    %energy consumed by the power amplifier on the multi path model(J/bit/m4)
E_DA=5*0.000000001;            % energy consumed for data aggregation(J/bit/signal)
 
INFINITY = 999999999999999;
 
%maximum number of rounds
rmax=15000;
 
%threshold distance
do= 70;
 
m = 0.75;
a = 2;
m0 = 0.525;
b = 2.5;
m1 = 0.225;
u = 3;
 
c=0.02;
z=0.71;
T_absolute= z*Eo;
 
cr=5;                      % compression ratio
 
S = struct;
S.xd = zeros(n,1);
S.yd = zeros(n,1);
S.E = zeros(n,1);
S.type = zeros(n,1);
S.G = zeros(n,1);
S.CH = zeros(n,1);
S.D = zeros(n,1);
S.T = zeros(n,1);
S.min_dis_cluster= zeros(n,1);
S.dis_to_cluster= zeros(n,1);
 
C = struct;
C.id= zeros(25,1);
C.xd= zeros(25,1);
C.yd= zeros(25,1);
C.E= zeros(25,1);
C.member= zeros(25,1);
 
R = struct;
R.id= zeros(100,1);
R.xd= zeros(100,1);
R.yd= zeros(100,1);
 
p = zeros(n,1);
E = zeros(n,1);
DEAD = zeros(rmax,1);
RES = zeros(rmax,1);
 
% Creation of four-level heterogeneous network 
% Normal Nodes
for i=1:1:240
    S(i).xd = xm*rand(1,1);
    S(i).yd = ym*rand(1,1);
    S(i).E = Eo;
    S(i).type = 'N';
    S(i).G = 1;
    S(i).CH = 0;
    S(i).D = 0;
    S(i).R = 0;
    S(i).min_dis_cluster=0;
    S(i).dis_to_cluster=0;
    figure(3);
    plot(S(i).xd,S(i).yd,'o', 'MarkerSize', 3, 'MarkerFaceColor', 'g');
    hold on;
end

🎉3 参考文献

[1]王若霖. 基于群智能算法的异构WSN节点部署优化研究[D].哈尔滨工程大学,2020.

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/482358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu下跑通 nnUNet v2

网上关于nnUNet运行的教程大部分是针对nnUNet v1的。但由于nnUNet v2已经推出,而且相对于v1有了很大的更新。所以个人只能啃nnUNet的英文文档参考在Windows上实现nnU-Net v2的环境配置_netv2_无聊的程序猿的博客-CSDN博客 实现了代码的复现。 1.System requirement…

树与图的存储-邻接表与邻接矩阵-深度广度遍历

全部代码 全部代码在github acwing 上 正在更新 https://github.com/stolendance/acwing 图论 欢迎star与fork 树与图的存储 无论是树 还是无向图 都可以看成有向图 有向图可以采用邻接矩阵与邻接表进行存储 邻接矩阵 邻接矩阵 采用矩阵存储,graph[i][j] 代表i到j边的权重…

Python学习15:恺撒密码 B(python123)

描述 恺撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪…

Markdown编辑器快捷方式

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Linux安装离线版MySql客户端

本文采用rpm安装方式。 下载文件: mysql-community-libs-5.7.41-1.el7.x86_64 mysql-community-common-5.7.41-1.el7.x86_64 mysql-community-client-5.7.41-1.el7.x86_64 本文件可以在MYSQL官网进行下载 MySQL :: Download MySQL Community Server (Archive…

C语言入门篇——文件操作篇

目录 1、为什么使用文件 2、什么是文件 2.1程序文件 2.2数据文件 2.3文件名 3、文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 4、文件的顺序读写 5、文件的随机读写 5.1fseek 5.2ftell 5.3rewind 6、文本文件和二进制文件 7、文件读取结束的判定 8、文件…

玩转肺癌目标检测数据集Lung-PET-CT-Dx ——④转换成PASCAL VOC格式数据集

文章目录 关于PASCAL VOC数据集目录结构 ①创建VOC数据集的几个相关目录XML文件的形式 ②读取dcm文件与xml文件的配对关系③创建VOC格式数据集④创建训练、验证集 本文所用代码见文末Github链接。 关于PASCAL VOC数据集 pascal voc数据集是关于计算机视觉,业内广泛…

【五一创作】Pytroch nn.Unfold() 与 nn.Fold()图码详解

文章目录 Unfold()与Fold()的用途nn.Unfold()Unfold()与Fold() 变化模式图解 nn.Fold()单通道 滑动窗口无重叠模拟图片数据(b,3,9,9),通道数 C 为3,滑动窗口无重叠。单通道 滑动窗口有重叠。 卷积等价于:Unfold Matri…

Hadoop 2:MapReduce

理解MapReduce思想 MapReduce的思想核心是“先分再合,分而治之”。 所谓“分而治之”就是把一个复杂的问题,按照一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的结果,然后把各部分的结…

从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针

目录 1. 面向对象 1.1 类的引入 1.2 class 关键字 2. 类的访问限定符及封装 2.1 访问限定符 2.2 封装 2.2.2 封装的本质 3. 类的作用域和实例化 3.1 类定义的两种方式 3.2 类的作用域 3.3 类的实例化 3.3.1 声明和定义的区别 4. 类对象模型 4.1 计算类的存储大小…

Java开发者在Windows环境安装各类开发工具汇总

Java开发者在Windows环境安装各类开发工具汇总 前言Java JDK下载配置 Tomcat下载配置 Maven下载配置配置仓库 Nginx下载启动关闭 MySQL下载配置my.ini初始化MySQL数据文件安装MySQL服务启动MySQL登录MySQL重置登录密码 NodeJs下载安装与验证配置NPM Git下载配置git配置ssh免密登…

Oracle删除列操作:逻辑删除和物理删除

概念 逻辑删除:逻辑删除并不是真正的删除,而是将表中列所对应的状态字段(status)做修改操作,实际上并未删除目标列数据或恢复这些列占用的磁盘空间。比如0是未删除,1是删除。在逻辑上数据是被删除了&#…

【MATLAB数据处理实用案例详解(22)】——基于BP神经网络的PID参数整定

目录 一、问题描述二、算法仿真2.1 BP_PID参数整定初始化2.2 优化PID2.3 绘制图像 三、运行结果四、完整程序 一、问题描述 基于BP神经网络的PID控制的系统结构如下图所示: 考虑仿真对象,输入为r(k)1.0,输入层为4,隐藏层为5&…

04-Vue技术栈之组件化编程

目录 1、模块与组件、模块化与组件化1.1 模块1.2 组件1.3 模块化1.4 组件化1.5 传统方式编写应用1.6 组件方式编写应用 2、非单文件组件2.1 基本使用2.2 几个注意点2.3 组件的嵌套2.4 VueComponent2.5 一个重要的内置关系2.6 总结 3、单文件组件3.1 一个.vue 文件的组成(3 个部…

常用排序算法汇总—Python版

一、选择排序 1. 原理: 选择排序(Selection Sort)是一种简单直观的排序算法,它的基本思路是将数组按顺序分成已排序部分和未排序部分,然后每次从未排序部分中选择出最小的元素,将其添加到已排序部分的末尾…

计算机网络|第三章:传输层

前文回顾:第二章:应用层 目录 📚概述和运输层服务 🐇运输层和网络层的关系 🐇因特网传输概述 📚多路复用和多路分解 🐇无连接的多路复用与多路分解 🐇面向连接的多路复用与多路…

【硬件】嵌入式电子设计基础之分析电路

电子技术(electronics)是我们研究科技产品的基石,本文章通过一系列简单且使用的实例,带领大家走进电子技术的世界,并通过对这些实例的分析,掌握其中的知识点和实用的电路分析设计技能。 本篇文章围绕着模拟…

三数之和(Java实现)

文章目录 思路1.暴力算法(超出时间限制)解题思路复杂度 2.双指针算法解题思路&#xff1a;注意点复杂度 Problem: 15. 三数之和 思路 1.暴力算法 2.双指针算法 1.暴力算法(超出时间限制) class Solution {public List<List<Integer>> threeSum(int[] nums) {// 检查…

使用TrieTree(字典树)来实现敏感词过滤

使用TrieTree&#xff08;字典树&#xff09;来实现敏感词过滤 1. 字典树定义 字典树&#xff08;TrieTree&#xff09;&#xff0c;是一种树形结构&#xff0c;典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串,如01字典树&#xff09;。…

Hive本地开发/学习环境配置

前提 hive依赖hadoop的相关组件&#xff0c;需要启动Hadoop的相关组件。 Hive 版本&#xff1a;3.1.3 Hadoop版本&#xff1a;3.3.4 hive-env.sh export HADOOP_HOME$HADOOP_HOME export HIVE_CONF_DIR/usr/local/Cellar/hive/3.1.3/libexec/conf export HIVE_AUX_JARS_PATH/…