一种基于非均匀分簇和建立簇间路由的算法的无线传感器网络路由协议(Matlab代码实现)
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
本文准备了一种路由方法,该方法使传感器通过有效地使用能量将数据从发送方加载到接收器,因为它在 LEACH 协议中使用簇头形成。作为接收器的“水槽”在整个范围内从一个地方随机移动到另一个地方。
传感器节点最初是在给定范围内和相同能量中随机创建的,经过几轮后,传感器的能量发生变化,然后根据该能量选择集群头 ,死节点以红色表示。我们可以在使用寿命和平均能耗等两个因素中比较现有系统和我们提出的系统进行结果分析。
📚2 运行结果










主函数部分代码:
clc; clear; close all; warning off all; tic; %% Create sensor nodes, Set Parameters and Create Energy Model % %%% %%% %%% %%% %%% %%% %%% %%%Initial Parameters %%% %%% %%% %%% %%% %%% %%% %% n=100; % Number of Nodes inthe field[Area,Model]=setParameters(n); %Set Parameters Sensors and Network %%%%%%%%%%%%%%%%%%%%%%%%% configuration Sensors %%%%%%%%%%%%%%%%%%%% CreateRandomSen(Model,Area); % Create a random scenarioload Locations %Load sensor Location Sensors=ConfigureSensors(Model,n,X,Y); Sender=n+1; %Sink TotalCH=[]; ploter(Sensors,Model,Sender,TotalCH); %Plot sensors for i=1:ntext(Sensors(i).xd,Sensors(i).yd,int2str(i),'FontSize',10); end plot(Sensors(Sender).xd,Sensors(Sender).yd,'w*','MarkerSize',15); %%%%%%%%%%%%%%%%%%%%%%%%%% Parameters initialization %%%%%%%%%%%%%%%% countCHs=0; %counter for CHs flag_first_dead=0; %flag_first_dead deadNum=0; %Number of dead nodes initEnergy=0; %Initial Energy for i=1:ninitEnergy=Sensors(i).E+initEnergy; end SRP=zeros(1,Model.rmax); %number of sent routing packets RRP=zeros(1,Model.rmax); %number of receive routing packets SDP=zeros(1,Model.rmax); %number of sent data packets RDP=zeros(1,Model.rmax); %number of receive data packets Sum_DEAD=zeros(1,Model.rmax); CLUSTERHS=zeros(1,Model.rmax); AllSensorEnergy=zeros(1,Model.rmax); %%%%%%%%%%%%%%%%%%%%%%%%% Start Simulation %%%%%%%%%%%%%%%%%%%%%%%%% global srp rrp sdp rdp srp=0; %counter number of sent routing packets rrp=0; %counter number of receive routing packets sdp=0; %counter number of sent data packets rdp=0; %counter number of receive data packets %Sink broadcast start message to all nodes Receiver=1:n; %All nodes Sensors=SendReceivePackets(Sensors,Model,Sender,'Hello',Receiver); % All sensor send location information to Sink .Sensors=disToSink(Sensors,Model); % Sender=1:n; %All nodes % Receiver=n+1; %Sink % Sensors=SendReceivePackets(Sensors,Model,Sender,'Hello',Receiver); %Save metrics SRP(1)=srp; RRP(1)=rrp; SDP(1)=sdp; RDP(1)=rdp; %% Main loop program for r=1:1:Model.rmax % %%% %%% %%% %%% %%% %%% %%% %%% %%%Initialization %%% %%% %%% %%% %%% %%% %%%%This section Operate for each epoch member=[]; %Member of each cluster in per periodcountCHs=0; %Number of CH in per period%counter for bit transmitted to Bases Station and Cluster Headssrp=0; %counter number of sent routing packetsrrp=0; %counter number of receive routing packetssdp=0; %counter number of sent data packets to sinkrdp=0; %counter number of receive data packets by sink%initialization per roundSRP(r+1)=srp;RRP(r+1)=rrp; SDP(r+1)=sdp;RDP(r+1)=rdp; pause(1) %pause simulationhold off; %clear figure%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Sensors=resetSensors(Sensors,Model);%allow to sensor to become cluster-head. LEACH Algorithm AroundClear=10;if(mod(r,AroundClear)==0) for i=1:1:nSensors(i).G=0;endend
🎉3 参考文献
[1]马震. 关于无线传感器网络节能的若干关键问题研究[D].北京交通大学,2009.
部分理论引用网络文献,若有侵权联系博主删除。
相关文章:
一种基于非均匀分簇和建立簇间路由的算法的无线传感器网络路由协议(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨💻4 Matlab代码 💥1 概述 本文准备了一种路由方法,该方法使传感器通过有效地使用能量将数据从发送方加载到接收器,因为它在 LEAC…...
usb摄像头驱动打印信息
usb摄像头驱动打印信息 文章目录 usb摄像头驱动打印信息 在ubuntu中接入罗技c920摄像头打印的信息如下: [ 100.873222] usb 3-2: new high-speed USB device number 5 using xhci_hcd [ 101.230728] usb 3-2: New USB device found, idVendor046d, idProduct08e5 …...
银行半结构化和无领导群面注意事项
银行可以同时报考多家,因此部分同学也积累了不少宝贵的面试“失败”经验。今天小编就来给大家说说半结构化和无领导群面的注意事项,从如信银行考试中心了解到的整理如下: 一、半结构化面试注意事项: 半结构化面试更侧重于了解考生…...
今天公司来了个拿 30K 出来的测试,算是见识到了基础的天花板
今天上班开早会就是新人见面仪式,听说来了个很厉害的大佬,年纪还不大,是上家公司离职过来的,薪资已经达到中高等水平,很多人都好奇不已,能拿到这个薪资应该人不简单,果然,自我介绍的…...
SSM整合(单元测试、结果封装、异常处理)
文章目录 1,SSM整合1.1 流程分析1.2 整合配置步骤1:创建Maven的web项目步骤2:添加依赖步骤3:创建项目包结构步骤4:创建SpringConfig配置类步骤5:创建JdbcConfig配置类步骤6:创建MybatisConfig配置类步骤7:创建jdbc.properties步骤8:创建SpringMVC配置类步…...
C++ list
C list 📟作者主页:慢热的陕西人 🌴专栏链接:C 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容介绍了C中list和相关接口的使用 Clist C listⅠ. li…...
【JavaScript】ES6新特性(2)
5. 字符串扩展 5.1 includes函数 判断字符串中是否存在指定字符 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&q…...
CST-FSS/周期谐振单元的仿真
引言 这几天要仿真超表面,上下求索CST有关相关内容的教程,视频倒是有不少,不过发现很多人忽略了官方帮助文档。本文以官方帮助文档为基础,写一个有关使用CST实现FSS/超表面这类周期结构的笔记。 官方帮助文档 CST有关FSS的内容使用了一个金属谐振圆环作为例子,这是由于…...
重新理解RocketMQ Commit Log存储协议
最近突然感觉:很多软件、硬件在设计上是有root reason的,不是by desgin如此,而是解决了那时、那个场景的那个需求。一旦了解后,就会感觉在和设计者对话,了解他们的思路,学习他们的方法,思维同屏…...
ROS 开发环境搭建(虚拟机版本)(一)
相关工具,以及镜像(以后有用) 链接:https://pan.baidu.com/s/1xgtp-XGFFNCACV_-0TJO2A 提取码:ar1w 1. 下载vm虚拟机(我选择的官方最新的vm虚拟机),安装好 2.安装百度网盘里面的…...
vue3做项目是需要注意的事项
Vue.js是一款非常优秀的前端开发框架,其第三代版本Vue3已经发布了。Vue3在性能、体验和功能等方面有了很大的提升,因此它成为了前端工程师们关注的焦点之一。在使用Vue3做项目时,有一些需要注意的事项,以下是对这些注意事项的介绍…...
docker日志轮转
cat /etc/docker/daemon.json { "log-driver": "json-file", "log-opts": { "max-size": "250m", "max-file": "3" } }...
论文阅读_音频压缩_Encodec
论文信息 name_en: High Fidelity Neural Audio Compression name_ch: 高保真神经音频压缩 paper_addr: http://arxiv.org/abs/2210.13438 date_read: 2023-04-27 date_publish: 2022-10-24 tags: [‘深度学习’,‘音频’] author: Alexandre Dfossez, Meta AI, FAIR Team cod…...
第06章_多表查询
第06章_多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了…...
自学黑客(网络安全)有哪些技巧——初学者篇
很多人说,要想学好黑客技术,首先你得真正热爱它。 热爱,听着多么让人激情澎湃,甚至热泪盈眶。 但很可惜,“热爱”这个词对还没入门的小白完全不管用。 如果一个人还没了解过你就说爱你,不是骗财就是骗色…...
CMD与DOS脚本编程【第四章】
预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数,如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…...
Liunx安装Docker
Liunx在线安装Docker 简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不…...
docker:容器的数据卷
1 数据卷概念及作用 1.1 什么是容器数据卷 先来看看Docker的理念: 将应用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过…...
【TCP】对TCP三次握手的个人理解
三次握手 TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。三次握手的过程如下图: 一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态 …...
squid的基本代理
一、Squid代理服务器的概述 squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…...
Unity2020.3.40f1c1无法打开
使用unityhub或者直接点击exe都无法打开,但其他版本的如2022和unity6都正常可以打开,检查电脑里面是否安装过unity2017,unity5.x等不使用unityhub管理的老版本。如果有卸载他们即可,他们的licenses会冲突。...
Janus-Pro-7B显存优化:7B模型仅需2.1GB VRAM完成图文联合推理
Janus-Pro-7B显存优化:7B模型仅需2.1GB VRAM完成图文联合推理 1. 引言:突破性的显存优化方案 你是否曾经遇到过这样的情况:想要运行一个强大的多模态AI模型,却被显存限制卡住了?传统的7B参数模型通常需要8GB以上的VR…...
vLLM-v0.17.1:从MATLAB算法到生产部署的桥梁
vLLM-v0.17.1:从MATLAB算法到生产部署的桥梁 1. 科研与生产的鸿沟 在算法研发领域,MATLAB长期占据着不可替代的地位。它的矩阵运算能力、丰富的工具箱和直观的语法,使其成为科研人员和算法工程师的首选工具。然而,当这些精心设计…...
【多模态大模型——跨越感知与认知的鸿沟】第7章 视觉指令微调与数据工程 7.1 视觉指令数据的构建方法论
目录 第7章 视觉指令微调与数据工程 {视觉指令数据的构建方法论} {指令跟随数据的生成策略} {GPT-4V辅助的视觉指令生成(LLaVA方案)} \subsubsection{半自动化的人工验证流程} \subsubsection{多样性与复杂度的平衡控制} {细粒度视觉任务的指令设计} {区域级检测与定…...
Phi-4-mini-reasoning vLLM分布式部署:多GPU张量并行推理配置详解
Phi-4-mini-reasoning vLLM分布式部署:多GPU张量并行推理配置详解 1. 模型简介 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它经过专门微调以提升数学推…...
2026年主流产品深度对比与选型策略:eHR人力资源管理系统推荐
eHR人力资源管理系统是帮助企业实现人事管理数字化的核心工具,涵盖组织人事、薪酬核算、考勤排班、绩效管理、入离职流程等模块。 2026年的eHR市场已经从”功能够用就行”进入”AI驱动、体验优先、数据贯通”的新阶段,选型时不仅要看功能清单࿰…...
Qwen3-Reranker-4B实战教程:Qwen3-Reranker-4B在智能法务合同审查中的条款关联重排
Qwen3-Reranker-4B实战教程:Qwen3-Reranker-4B在智能法务合同审查中的条款关联重排 1. 引言 你有没有遇到过这样的情况?一份几十页的合同摆在面前,你需要快速找到所有与“违约责任”相关的条款,但它们在文档里散落各处ÿ…...
python 输出菱形(两种方法)
方法一rows int(input("请输入菱形的边长:")) row 1"""打印上层""" while row < rows:col 1while col < rows - row:print( ,end )col 1for i in range(row): print(*,end )print( ,end )print()row 1"…...
精度套利:藏在盘口缝隙里的稳定机会
我们先来看 BN 上一个交易对。现货侧,PEPE/USDT 的价格精度是 1e-8; 合约侧,1000PEPEUSDT 的价格精度是 1e-7。 如果把合约价格换算回 PEPE/USDT 的单位,那么它对应的价格精度其实是 1e-10。 这意味着,现货和合约在同一…...
OpenClaw+Qwen3.5-9B组合优势:3个不可替代的使用场景
OpenClawQwen3.5-9B组合优势:3个不可替代的使用场景 1. 为什么选择OpenClawQwen3.5-9B组合 去年夏天,当我第一次尝试用Python脚本自动化处理医疗研究数据时,遇到了一个尴尬的问题:要么忍受公有云API的数据隐私风险,要…...
