传感器信息系统中的节能收集研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

部署由电池电量和无线通信有限的节点组成的传感器网络,以从现场收集有用的信息。以节能的方式收集感测信息对于传感器网络的长期运行至关重要。在W. Heinzelman等人(Proc. Hawaii Conf. on System Sci., 2000)中,定义了数据收集问题,在一轮通信中,每个传感器节点都有一个数据包要发送到遥远的基站。如果每个节点将其感测数据直接传输到基站,那么它将迅速耗尽其功率。W. Heinzelman等人提出的LEACH协议是一种优雅的解决方案,其中形成集群以在传输到基站之前融合数据。通过随机分配选择传输到基站的集群头,与直接传输相比,LEACH 实现了 8 倍的改进,以节点死亡时间来衡量。在本文中,我们提出了PEGASIS(传感器信息系统中的节能收集),这是一种接近最优的基于链的协议,是对LICACH的改进。在PEGASIS中,每个节点仅与近邻通信,并轮流向基站发送信号,从而减少了每轮消耗的能量。仿真结果表明,当100%、300%、1%和20%的节点在不同的网络规模和拓扑下死亡时,PEGASIS的性能比利奇好约50%至100%。

能够进行大量计算和无线通信的廉价传感器正在变得可用[2],[4]。可以部署传感器节点网络以从现场收集有用的信息,例如,在恶劣的物理环境中[13]。这些传感器节点收集音频、地震和其他类型的数据,并协作以在网络中执行高级任务,传感器节点受到可用电池电量的严重限制,限制了网络的使用寿命和质量。由于无线通信消耗大量电池电量,传感器节点应花费尽可能少的能量来接收和传输数据[5],[10],[12]。通信协议必须最大化节点的生存期[9],通过使用节点之间的本地协作来减少带宽消耗,并容忍节点故障[14]。

📚2 运行结果

部分代码:

SN(i).dts=0;    % nodes distance from the sinkSN(i).role=0;   % node acts as normal if the value is '0', if elected as a cluster head it  gets the value '1' (initially all nodes are normal)SN(i).pos=0;SN(i).closest=0;SN(i).prev=0;SN(i).dis=0;	% distance between two nodes headin towards to the cluster head from position 1SN(i).dis2=0;   % distance between two nodes headin towards to the cluster head from position 2SN(i).order=0;SN(i).sel=0;    % states if the node has already operated for this round or not (if 0 then no, if 1 then yes) SN(i).rop=0;    % number of rounds node was operationalSN(i).tel=0;    % states how many times the node was elected as a Cluster Headorder(i)=0;hold on;figure(1)plot(x,y,xm,ym,SN(i).x,SN(i).y,'ob',sinkx,sinky,'*r');title 'Wireless Sensor Network';xlabel '(m)';ylabel '(m)';end% Calculates Distance Between Each Node and the Sink (Base Station) %for i=1:nSN(i).dts=sqrt((sinkx-SN(i).x)^2 + (sinky-SN(i).y)^2);SN(i).Esink=Eelec*k + Eamp*k*(SN(i).dts)^2;T(i)=SN(i).dts;endA=sort(T,'descend'); % Creates array A containing the distance between each node and the sink,% sorted in an asceding orderA_id(1:n)=0;% Creates array A_id which is sorted in a way that it's elements are% aligned with those of A. Contains the node IDfor i=1:nfor j=1:nif A(i)==SN(j).dtsA_id(i)=SN(j).id;endend

SN(i).dts=0;    % nodes distance from the sink
    SN(i).role=0;   % node acts as normal if the value is '0', if elected as a cluster head it  gets the value '1' (initially all nodes are normal)
    SN(i).pos=0;
    SN(i).closest=0;
    SN(i).prev=0;
    SN(i).dis=0;    % distance between two nodes headin towards to the cluster head from position 1
    SN(i).dis2=0;   % distance between two nodes headin towards to the cluster head from position 2
    SN(i).order=0;
    SN(i).sel=0;    % states if the node has already operated for this round or not (if 0 then no, if 1 then yes) 
    SN(i).rop=0;    % number of rounds node was operational
    SN(i).tel=0;    % states how many times the node was elected as a Cluster Head
    order(i)=0;

    hold on;
    figure(1)
    plot(x,y,xm,ym,SN(i).x,SN(i).y,'ob',sinkx,sinky,'*r');
    title 'Wireless Sensor Network';
    xlabel '(m)';
    ylabel '(m)';
    
end
 
    % Calculates Distance Between Each Node and the Sink (Base Station) %
 for i=1:n
    SN(i).dts=sqrt((sinkx-SN(i).x)^2 + (sinky-SN(i).y)^2);
    SN(i).Esink=Eelec*k + Eamp*k*(SN(i).dts)^2;
    T(i)=SN(i).dts;
 end
 
 
    A=sort(T,'descend'); % Creates array A containing the distance between each node and the sink,
                % sorted in an asceding order

     
     A_id(1:n)=0;
     % Creates array A_id which is sorted in a way that it's elements are
     % aligned with those of A. Contains the node ID
     for i=1:n
         for j=1:n
            if A(i)==SN(j).dts
               A_id(i)=SN(j).id;
            end
         end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码实现

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SecureCRT 自动测试脚本的使用方法

脚本示例(get_batteryifo_interval_2s.vbs): Sub Main Do While(1)crt.Screen.Send "pm_client batteryinfo" & chr(13)crt.Sleep 2000 Loop End Sub 1. 解压 SecureCRT 压缩包(网上下载)&#xff1b…

机器人制作开源方案 | 杠杆式6轮爬楼机器人

1. 功能描述 本文示例将实现R281b样机杠杆式6轮爬楼机器人爬楼梯的功能(注意:演示视频中为了增加轮胎的抓地力,在轮胎上贴了双面胶,请大家留意)。 2. 结构说明 杠杆式6轮爬楼机器人是一种专门用于爬升楼梯或不平坦地面…

基于JAYA优化的BP神经网络(分类应用) - 附代码

基于JAYA优化的BP神经网络(分类应用) - 附代码 文章目录 基于JAYA优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.JAYA优化BP神经网络3.1 BP神经网络参数设置3.2 JAYA算法应用 4.测试结果:5.M…

08 | Jackson 注解在实体里面如何应用?常见的死循环问题如何解决?

我们用 Spring Boot 里面默认集成的 fasterxml.jackson 加以说明,这看似和 JPA 没什么关系,但是一旦我们和 Entity 一起使用的时候,就会遇到一些问题,特别是新手同学,我们这一课时详细介绍一下用法。先来跟着我了解一下…

计算机毕业设计选什么题目好?springboot 美食推荐系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

clickhouse数据库简介,列式存储

clickhouse数据库简介 1、关于列存储 所说的行式存储和列式存储,指的是底层的存储形式,数据在磁盘上的真实存储,至于暴漏在上层的用户的使用是没有区别的,看到的都是一行一行的表格。 idnameuser_id1闪光10266032轨道物流10265…

基于秃鹰优化的BP神经网络(分类应用) - 附代码

基于秃鹰优化的BP神经网络(分类应用) - 附代码 文章目录 基于秃鹰优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.秃鹰优化BP神经网络3.1 BP神经网络参数设置3.2 秃鹰算法应用 4.测试结果:5.M…

性能优化-中间件tomcat调优

Tomcat作用 主要有三个: 管理Servlet应用的生命周期。Tomcat可以管理和控制Servlet应用程序的启动、停止、暂停和恢复等生命周期过程,确保Servlet应用的稳定运行和有序管理。把客户端请求的url映射到对应的servlet。Tomcat作为一个Web服务器,可以将客户端发送的HTTP请求URL…

DL Homework 3

给定训练集,将每个样本输入给前馈神经网络,得到网络输出为,其在数据集上的结构化风险为 首先简单解释一下这堆话,结构化风险经验风险正则化项,经验风险为,对于函数我们大多数采取的为交叉熵函数,,正则化项为,首先神经网…

C# InformativeDrawings 生成素描画

效果 项目 下载 可执行程序exe下载 源码下载

2.1、如何在FlinkSQL中读取写出到Kafka

目录 1、环境设置 方式1:在Maven工程中添加pom依赖 方式2:在 sql-client.sh 中添加 jar包依赖 2、读取Kafka 2.1 创建 kafka表 2.2 读取 kafka消息体(Value) 使用 format json 解析json格式的消息 使用 format csv 解析…

【从0开发】百度BML全功能AI开发平台【实操:以部署情感分析模型为例】

目录 一、全功能AI开发平台介绍二、AI项目落地应用流程(以文本分类为例)2-0、项目开始2-1、项目背景2-2、数据准备介绍2-3、项目数据2-4、建模调参介绍2-5、项目的建模调参2-6、开发部署2-7、项目在公有云的部署 附录:调用api代码总结 一、全…

百度车牌识别AI Linux使用方法-armV7交叉编译

1、获取百度ai的sdk 百度智能云-登录 (baidu.com) 里面有两个版本的armV7和armV8架构。v7架构的性能比较低往往需要交叉编译,v8的板子性能往往比较好,可以直接在板子上编译。 解压到ubuntu里面。这里介绍v7架构的。 2、ubuntu环境配置 ubuntu下安装软件…

Bootstrap-媒体类型

加上媒体查询之后,只有在特定的设备之下才能起作用!!!

Win10找不到hosts文件的解决方案

正常情况下,Windows10系统的C:\Windows\System32\drivers\etc目录下应该有hosts文件,但偏偏有些电脑没有,哪怕你打开了查看“隐藏的项目”也没见到hosts文件,如下: 解决方案 1、先点击查看,再点击选项&…

Ant Design Form.List基础用法

使用 Form.List 使用 项目中需要在新增可以多个如图 代码如下 // An highlighted block <Card title"产品信息" bordered{false}><Form.List name"productList" >{(fields, {add, remove}) > (<>{fields.map((field) > (<Ro…

苹果放出快捷指令专题介绍页面,大大提高了 Mac 使用效率

近日&#xff0c;苹果发布 macOS Sonoma 更新的同时&#xff0c;还上线了“《快捷指令》助你效率倍增”专题页面&#xff0c;其目标是在 Mac 上让好用的 App 更强大。 快捷指令功能可以让设备自动完成常用或繁琐的操作&#xff0c;大大提升 Mac 的效率。 快捷指令能帮你在《邮…

JVM上篇之类加载子系统

目录 类加载子系统 内存结构 类的生命周期 类的加载过程 加载 加载class文件方式 连接 验证 验证阶段 准备 解析 初始化 类加载器 介绍 作用 分类 引导类加载器 自定义类加载器 ClassLoader 获取ClassLoader途径 双亲委派机制 介绍 执行流程 好处 打破…

软件UI自动化测试应该怎么做?对软件产品起到什么作用?

在软件开发过程中&#xff0c;开发人员需要编写大量的代码来实现软件产品的功能。而这些功能往往需要在用户界面上进行展示和操作&#xff0c;称为UI(User Interface)。UI自动化测试是为了检测软件界面是否符合预期的设计和用户操作&#xff0c;通过自动化测试工具和脚本&#…

Idea执行Pom.xml导入jar包提示sun.misc.BASE64Encoder jar找不到---SpringCloud工作笔记197

奇怪之前都是好好的,这个是因为,jdk的版本不对,重新打开以后自动被选择成jdk11了...记录一下 原因是从jdk9的时候,这个jar包已经被删除了,所以会报错,如果你用的是jdk自带的这个jar包就会报错,那么还可以,修改,不让他用jdk的,让他用 用org.apache.commons.codec.binary.Base64…