【基于多智能体系统仿真的时间同步】时间同步协议使用低通信带宽,并且对节点和链路故障具有鲁棒性(Matlab代码实现)

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

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

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

a

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

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献 

🌈4 Matlab代码、文档讲解


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

摘要
无线传感器网络应用,与其他分布式系统类似,通常需要一种可扩展的时间同步服务,以实现数据一致性和协调性。本文描述了一种洪泛时间同步协议(Flooding Time Synchronization Protocol, FTSP),特别适用于在资源受限的无线平台上需要严格精度的应用。所提出的时间同步协议使用低通信带宽,并且对节点和链路故障具有鲁棒性。FTSP通过周期性地洪泛同步消息以及隐式动态拓扑更新来实现其鲁棒性。通过利用MAC层时间戳和全面的误差补偿(包括时钟偏斜估计),FTSP达到了独特的高精度性能。本文详细分析了消息传输中的延迟和不确定性来源,并提出了减轻其影响的技术。FTSP已在伯克利Mica2平台上实现,并在一个包含60个节点的多跳设置中进行了评估。每跳的平均同步误差在1微秒范围内,这一结果明显优于现有的RBS和TPSN算法。

由数千台这样的设备构建的复杂网络预计将影响我们生活的许多方面。无线传感器网络(WSN)的潜在应用包括:

  • 监测应用:非侵入性和非干扰性的环境监测有助于生物学家研究敏感的野生动物栖息地,同时,某些患有特定医疗状况的人可以通过传感器获得持续监测。传感器网络用于监测旧金山金门大桥的结构健康状况以及缅因州大鸭岛的微气候。

  • 移动商务、库存管理:通过持续测量不断变化的条件,WSN将影响商品向有需求的地点的流动。

  • 智能办公、幼儿园:包含无线传感器的系统将成为我们办公空间的组成部分。它们可以通过根据儿童的个体需求定制教育过程来改善教育效果,适应环境,并协调多个儿童的活动。

  • 军事应用:潜在应用包括监视、目标跟踪、反狙击系统或战场监测,这些系统可以将信息传播给参与战斗的士兵和车辆。

尽管WSN是大规模分布式系统,但其独特特性,尤其是严重的资源限制,要求我们重新评估传统分布式算法,即使是那些被认为已经解决的问题也不例外。传感器网络的基本中间件服务之一是时间同步。时间同步是实现一致的分布式感知和控制的必要条件。此外,WSN中的常见服务,如协调、通信、安全、电源管理或分布式日志记录,也都依赖于全局时间的存在。

在本文中,我们详细描述了用于无线传感器网络的洪泛时间同步协议(FTSP)。

FTSP算法作为反狙击系统的一个组件经过了大量测试。该系统利用了一个由Mica2节点组成的网络,每个节点都连接了一个定制的声学传感器板。传感器测量枪口爆音和冲击波,以精确确定射手的位置和子弹的轨迹。其基本原理很简单:利用声学事件到达不同传感器位置的时间,结合声速和传感器的位置信息(前提是传感器节点的时钟精确同步),可以精确计算出射手的位置。因此,时间同步协议是该系统的关键组成部分。

除了FTSP外,该应用还包含多种服务,例如消息路由、数据聚合、远程配置和调试服务,以及特定于应用的软件组件。一个典型的测试场景涉及在城市环境中分布的50到60个节点。网络大约有8跳宽。系统经过了4到8小时的连续运行测试。在测试过程中,一些节点被关闭和重新打开,环境的温度和湿度发生了剧烈变化,影响了晶体的稳定性。然而,在这些测试中,所有节点都保持了同步,但没有获得其他明确的时间同步数据。然而,反狙击系统的整体性能(在城市环境中3D定位精度约为1米)以及没有随时间出现性能下降的事实,清楚地验证了FTSP表现良好。

第8节 结论与进一步改进

我们描述了用于无线传感器网络的洪泛时间同步协议(FTSP)。该协议在运行TinyOS的加州大学伯克利分校Mica和Mica2平台上实现。通过提供实验结果,展示了单跳场景下1.5微秒的精度以及多跳情况下每跳平均0.5微秒的精度。这种性能明显优于同一平台上其他现有时间同步方法的性能。

所展示的FTSP时间戳协议可以应用于现有的多跳时间同步协议,使这些协议更加精确。它与以前的时间戳算法不同之处在于,它利用单个广播消息在消息的发送者和接收者之间建立同步点,同时消除了大多数同步误差来源,除了传播时间。由于其性能、最小开销和简单性,它可以作为其他(不一定是时间同步)协议中最基本的时间同步原语。所展示的多跳FTSP通过在动态领导者选举算法的背景下利用FTSP时间戳协议的良好特性,并将其与时钟漂移补偿算法相结合,实现了其性能和鲁棒性。

FTSP在实际应用中经过了测试,其性能得到了验证。这具有重要意义,因为该服务并非孤立运行,而是作为复杂应用的一部分运行,在这种情况下,资源限制以及组件之间的有意和无意交互通常会导致不良影响。此外,该系统在野外运行了较长时间,而不是在实验室条件下运行。这证明了该协议及其实现的鲁棒性。

我们计划在节点数量多得多(数千)的网络中进行进一步实验。一个活跃的研究领域是通过在协议中使用两个不同的广播周期来提高多跳情况的收敛速度:一个较短的周期用于初始同步阶段(直到所有节点都同步),一个较长的周期用于时间同步协议的正常运行。

📚2 运行结果

 

 

部分代码:

%%  plot results for visualization
figure('name','Sychronization offset error');
hold on; cla; plot(1:k,yerr(indTheta,1:k), '-.');

      
        figure(3)
        subplot(2,2,1)
        for kk=1:2:2*nNode-1
            plot([1:szsim],xx(kk,:));hold on
        end
      %    legend('节点1 offset状态值','节点2 offset状态值','节点3 offset状态值','节点4 offset状态值','节点5 offset状态值','节点6 offset状态值','节点7 offset状态值','节点8 offset状态值','节点9 offset状态值','节点10 offset状态值','节点11 offset状态值','节点12 offset状态值');
        xlabel('n');ylabel('状态值');
        
        subplot(2,2,2)
        for kk=2:2:2*nNode
            plot([1:szsim],xx(kk,:));hold on
        end
       % legend('节点1 skew状态值','节点2 skew状态值','节点3 skew状态值','节点4 skew状态值','节点5 skew状态值','节点6 skew状态值','节点7 skew状态值','节点8 skew状态值','节点9 skew状态值','节点10 skew状态值','节点11 skew状态值','节点12 skew状态值');
        xlabel('n');ylabel('状态值');
        
        subplot(2,2,3)
      for kk=1:2:2*nNode-1
            plot([1:szsim],y(kk,:));hold on
        end
       % legend('节点1 offset输出值','节点2 offset输出值','节点3 offset输出值','节点4 offset输出值','节点5 offset输出值','节点6 offset输出值','节点7 offset输出值','节点8 offset输出值','节点9 offset输出值','节点10 offset输出值','节点11 offset输出值','节点12 offset输出值');
        xlabel('n');ylabel('输出值');
        
        subplot(2,2,4)
        for kk=2:2:2*nNode
            plot([1:szsim],y(kk,:));hold on
        end
        % legend('节点1 skew输出值','节点2 skew输出值','节点3 skew输出值','节点4 skew输出值','节点5 skew输出值','节点6 skew输出值','节点7 skew输出值','节点8 skew输出值','节点9 skew输出值','节点10 skew输出值','节点11 skew输出值','节点12 skew输出值');
        xlabel('n');ylabel('输出值');
      
      % 
        for kk=1:2*nNode
            var_xx(kk)=var(xx(kk,:));
        end
      mean_xx=mean(xx,2);

🎉3 参考文献 

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)

🌈Matlab代码、文档讲解

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值