主要内容

无线传感器网络中蓝牙网格节点的能量分析

这个例子展示了使用蓝牙协议的通信工具箱™库对蓝牙网格网络中不同类型节点的能量分析。能量计算是基于终端节点、低功率节点、朋友节点和中继节点在传输、监听、休眠和空闲状态下的时间分布。使用这个例子,你可以:

  • 创建并配置一个蓝牙网状网络

  • 可视化网格消息交换对终端节点、LPN、朋友节点和中继节点能量性能的影响

  • 通过改变源-目的对、朋友节点- lpn对数量和应用流量来观察网格节点的能量消耗。

  • 根据硬件特定的能量参数估计节点的生存期

  • 修改硬件特定的能量参数以适应您的要求

  • 探讨轮询超时和接收窗口大小对节点生存期的影响

仿真计算具有指定配置和硬件特定能量参数的LPN的寿命。研究结果证实,LPN总是通过睡眠时间更长而消耗更少的能量,从而节约能量,延长寿命。

蓝牙网栈

蓝牙核心规范[1]包括用于低速率无线个人区域网络的低功耗版本,称为低功耗蓝牙(BLE)或蓝牙智能。BLE栈由通用属性配置文件GATT (generic attribute profile)、属性协议ATT (attribute protocol)、安全管理协议SMP (security manager protocol)、逻辑链路控制和适配协议L2CAP (logical link control and adaptation protocol)、链路层LL (link layer)和物理层组成。特别兴趣组(SIG)将BLE添加到低能耗设备的蓝牙标准中,这些设备产生少量数据,如用于家庭自动化、医疗保健、健身和物联网(IoT)等应用的通知警报。有关BLE协议栈的更多信息,请参见蓝牙协议栈

蓝牙网格配置文件[2定义了BLE实现网状网络解决方案的基本要求。网状层位于BLE核心规范的顶部,由模型层、基础模型层、接入层、上层传输层、下层传输层、网络层和承载层组成。蓝牙网状网络可以在智能照明、工业自动化、传感器网络、资产跟踪和许多其他物联网解决方案等应用中实现大规模设备网络。金宝搏官方网站有关蓝牙网格堆栈的更多信息,请参见蓝牙网状网络

每个蓝牙网格节点可以拥有一些可选的特性,使它们能够获得额外的、特殊的功能。这些特性包括继电器、代理、朋友和低功耗特性。具有这些特征的蓝牙网格节点分别称为中继节点、代理节点、朋友节点和低功耗节点(lpn)。为了降低LPN的占空比,节约能源,LPN必须建立一个友谊一个支持Friend特性的网格节点金宝app。这友谊在LPN和Friend节点(支持Friend特性的mesh节点)之间,Friend节点可以存储和转金宝app发到LPN的消息。只有当LPN唤醒并轮询Friend节点等待发送的消息时,Friend节点才会进行转发。这一机制使所有的lpn都能保存能量并工作更长时间。

有关蓝牙网状网络中的设备、节点和友谊的更多信息,请参见蓝牙网状网络

这个例子的主要目标是:

  1. 创建并配置一个蓝牙网状网络

  2. 可视化信息泛滥

  3. 分析了蓝牙网状网络中友谊的行为

  4. 描述蓝牙网状网络中每个节点消耗的能量

检查支持包安装情况金宝app

%检查“蓝牙协议的通信工具箱库”%支金宝app持包是否安装。comm金宝appSupportPackageCheck (“蓝牙”);

蓝牙网格能量分析仿真

在模拟中,源节点发起并将样本网格消息转发给目标节点。为了将网格消息中继到多个目的节点,源节点将消息传输到一个共同的组地址。在仿真过程中,Friend节点和lpn交换Friend消息。每个节点计算在各种状态(传输、监听、空闲和休眠)所花费的时间,并计算其生命周期。

创建和可视化网格网络,使用helperBLEMeshNodehelperBLEMeshVisualizeNetwork类。指定节点数量(NumberofNodes)和节点位置类型(NodePositionType)helperBLEMeshVisualizeNetwork函数。节点位置的默认类型是“Grid”。要指定您自己的网络,请设置的值NodePositionType到'UserInput'和节点位置职位

%设置随机数生成器种子为“默认”sprev = rng (“默认”);%指定网格网络中的节点数totalNodes = 55;使用helperBLEMeshNode类型的对象初始化'bleMeshNodes'向量meshNodes(1, totalNodes) = helperBLEMeshNode();%配置每个网格节点的唯一标识符nodeIdx = 1:totalNodesmeshNode。标识符= nodeIdx;meshNodes (nodeIdx) = meshNode;结束从MAT文件加载节点位置负载(“bleMeshNodesPositions.mat”);创建和配置蓝牙网格网络的可视化对象meshNetworkGraph = helperBLEMeshVisualizeNetwork ();meshNetworkGraph。NumberOfNodes = totalNodes;%设置节点位置分配的类型为“Grid”或“UserInput”meshNetworkGraph。NodePositionType=“UserInput”%根据节点数量设置节点位置(适用于'UserInput'),%在米meshNetworkGraph。职位= bleMeshNodesPositions;%根据节点位置设置附近范围,单位为米meshNetworkGraph。VicinityRange = 25;%设置标题为网络可视化meshNetworkGraph。Title =蓝牙网状网络中的能量分析

使用。指定源和目的对的个数sourceDestinationPairs变量。要指定Friend节点和LPN对,请使用friendLowPowerPairs变量。若要指定网络中的中继节点,请使用relayNodeIDs变量。配置与每个网格节点相关的网格节点对象。的路径变量存储每个源和目标对获得的路径。

%指定模拟时间(单位:毫秒)simulationTime = 6000;%启用或禁用可视化enableVisualization = true;%在可视化中启用或禁用动画。如果% "enableVisualization"设置为false,模拟不考虑%”enableAnimation”。enableAnimation = false;%指定源对和目标对。源节点传输样本% mesh消息到目标节点。sourceDestinationPairs = [1 52;]1 17;12 7;6 53个;54 51;9 33;18 52个;...29 52个;31日7;12 9;54 53个;55 1;9 17;18 35];%指定每个节点的生存时间(TTL)值(范围为[0,127])源和目标对TTL = [20 23 35 21 23 30 22 20 23 35 21 23 30 22];%指定Friend节点和LPNfriendLowPowerPairs = [16 52];%指定每个Friend和LPN的接收窗口,单位为毫秒%。取值范围[120,255]。receiveWindow = 180;%指定每个Friend和LPN对的轮询超时时间(单位为秒)。的%的取值范围为[2秒,95.9小时]。pollTimeout = 20;%指定中继节点relayNodeIDs =[3 4 5 8 10 11 15 19 20 21 23 25 28 30 32 34 36 37 38 39 41 .参数参数说明取值relayNodeIDs = [3 4 5 8 10 11 15 19 20 21 23 25 28 30 32 34 36 37 38 39 41 ....42 43 44 45 46 47 48 49 26 2 16 13 27];%模拟蓝牙网状网络[meshNodes, paths] = helperBLEMeshSimulation(meshNodes, totalNodes,...simulationTime, sourceDestinationPairs, ttl, friendLowPowerPairs, receiveWindow,...pollTimeout, relayNodeIDs, enableVisualization, enableAnimation);%恢复之前的随机数生成设置rng (sprev);

仿真结果

在每个网格节点上,仿真捕获这些统计数据。

  • 传输状态所花费的时间

  • 花在倾听状态上的时间

  • 处于睡眠状态的时间

  • 在空闲状态下花费的时间

  • 节点发送的消息数

  • 节点接收到的消息数

  • 节点转发的消息数

  • 在节点丢弃的消息数

  • 接收到CRC (cyclic redundancy check)失败的消息数

工作空间变量,statisticsAtEachNode,包含网络中所有节点上述统计信息的累积值。对于给定的模拟运行,您可以查看前5个节点的统计信息。网络中前5个节点的网络统计数据为:

%前5个节点的统计信息statisticsAtEachNode = helperBLEMeshNodesStatistics (meshNodes);statisticsForFirstFiveNodes = statisticsAtEachNode(1:min(totalNodes, 5),:)
statisticsForFirstFiveNodes = 5x14 table NodeType TransmittedMsgs ReceivedMsgs ReceivedMsgs fromlpn ReceivedApplicationMsgs RelayedMsgs DroppedMsgs CRCFailedMsgs TotalTransmittedBytes TotalReceivedBytes SleepTime(毫秒)IdleTime(毫秒)ListenTime(毫秒)TransmissionTime(毫秒)________ _______________ _______________________________ _______________________ ___________ ___________ _____________ _____________________ __________________ ________________________ _______________________ _________________________ _______________________________ Node_1结束6 10 0 0 1 0 9 0 171 284 123.5 5871 1.368 Node_2继电器15 6 0 0 5 0 1 0 426 170 187 5800 3.408 Node_3继电器15 24 0 0 5 19 0 426 685 0 178 5809 3.408 Node_4 Relay 12 20 0 0 4 14 2 339 566 0 168 5821.5 2.712 Node_5 Relay 12 10 0 0 4 42 339 285 0 168 5821.5 2.712 . Node_4 Relay

这张图显示了不同类型的网格节点在不同状态下所花费的平均时间。结果表明,LPN大部分时间处于睡眠状态,从而节省了能量,延长了寿命。

流('不同蓝牙网格节点的平均时间统计为:\n');meshNodesAvgStats = helperBLEMeshNodeAverageTime (meshNodes)
不同蓝牙网格节点的平均时间统计为:meshNodesAvgStats = 4 x5表类型的蓝牙网格节点传输时间(单位为毫秒)听的时间(单位为毫秒)空闲时间(毫秒)睡眠时间(毫秒 ) ___________________________ ________________________________ __________________________ ________________________ _________________________ 低功率节点2.304 720 103 5166.5的朋友node 6.192 5771.5 205.5 0 Relay node 3.3869 5801.4 185.7 0 End node 0.4836 5907.4 90.3 0

仿真包括从源节点到目的节点的单消息传输。配置网格节点之间的流量pushModelMessage周期性的函数。End节点上的传输时间取决于应用程序流量。LPN上的传输时间取决于轮询超时时间。

进一步的探索

计算LPN的生存期

使用helperBLEMeshNodeLifetime函数,在仿真的最后计算蓝牙网格网络中节点的生存期。若要计算节点的生存期,则simulationTime和网格节点对象的类型helperBLEMeshNode是作为helperBLEMeshNodeLifetime函数。利用硬件相关的能量参数计算节点的生存期。要更新这些硬件参数,请使用helperBLEMeshNodeLifetime函数。

%获取一个低功耗节点来计算生存期meshNode = meshNodes (52);lifeTime = helperBLEMeshNodeLifetime(meshNode, simulationTime);流('节点%d的生存期为%。4 f天。\ n”, meshNode。标识符,一生);
1200mah电池的配置硬件参数如下:Hardware parameters = 7x2 table硬件参数配置值(mA) __________________________ ______________________自放电0.0013699 37路传输7.57 38路传输7.77 39路传输7.7 Listening 10.3 Sleep 0.2 Idle 1.19 52节点统计:statisticsAtNode = 4x2表时间变量时间(毫秒)_________________ ___________________传输时间2.304监听时间720休眠时间5166.5空闲时间103节点52的生存时间为34.8927天。

通过改变轮询超时的LPN生存时间

LPN的生存期取决于节点处于监听状态的时间。在给定的轮询超时中,LPN大部分时间处于监听或休眠状态。LPN的每个轮询请求的接收窗口决定了侦听状态所花费的时间。在传输状态下所花费的时间可以忽略不计。

方法可视化轮询超时和接收窗口对LPN生命周期的影响helperBLEMeshLPNLifetimeVSPolltimeout函数。

从前面的图中可以看出,LPN的生存期与轮询超时成正比。轮询超时是指一个LPN连续两次向Friend节点请求的最大时间间隔。随着轮询超时时间的增加,LPN处于休眠状态的时间会增加,从而导致LPN的生存期增加。

这个示例演示了如何创建和配置一个多节点蓝牙网状网络,并分析网络中的消息交换。通过本示例还可以分析Friend节点与LPN之间的Friend行为及其优势。为了计算每个节点在不同状态下所花费的时间,使用多个好友和低功耗节点对模拟蓝牙网格节点。每个节点在不同状态下的平均时间曲线图显示,lpn在睡眠状态下花费的时间越多,消耗的能量就越少。您可以通过改变轮询超时和接收窗口值来进一步研究LPN的能量分析。

附录

这个例子使用了这些特性:

这个例子使用了这些助手:

选定的参考书目

  1. 蓝牙特殊兴趣组(SIG)。“蓝牙核心规范”。5.0版。https://www.bluetooth.com/

  2. 蓝牙特殊兴趣组(SIG)。“蓝牙网格配置文件”。1.0版。https://www.bluetooth.com/

相关的话题