一种无线传感器网络拥塞控制方法及系统与流程

文档序号:20583904发布日期:2020-04-29 01:40阅读:250来源:国知局
一种无线传感器网络拥塞控制方法及系统与流程

本发明涉及一种无线传感器网络拥塞的控制,具体涉及一种无线传感器网络拥塞控制方法及系统。



背景技术:

随着智能传感技术的快速发展,wsns(wirelesssensornetworks,无线传感器网络)在环境监测、灾害预警、公共安全、军事领域等方面都有着广泛的应用,但由于无线传感器网络节点受到计算能力、存储能力和电源供电能力等方面的限制,导致网络节点在大量突发数据发生或节点死亡失效时,易造成网络产生局部或全网拥塞,进而导致丢包率升高、延迟增加、能源效率降低,从而严重影响网络的生存周期与传输效率。因此,如何缓解和避免无线传感器网络拥塞问题是亟待解决的技术问题。目前,可以通过对wsn网络进行分簇控制,该方法具有维护简单、便于管理以及鲁棒性高的优点使其在无线智能监测中得到大量的应用。分簇结构的网络拓扑是按照一定的需求和规则进行网络划分,整个网络结构被划分成若干子网络,子网络中节点被划分成簇首(clusterhead)节点和成员节点,簇首用于管理该子网络内的信息收集和数据转发,成员节点负责事件监测。分簇方法中簇首节点不但要接收和转发簇内数据,还要作为中间节点转发其他簇首的数据,受限于能量和缓存空间,簇首极易成为拥塞发生节点。因此,分簇网络结构中簇首节点的拥塞控制是解决网络拥塞问题的核心。在无线传感器网络中,簇首节点产生拥塞有两个主要原因,第一是数据包到达速率超过节点最大承载量,而节点处理速度较慢导致包的服务速率与到达速率不匹配进而引起网络拥塞;第二是节点的竞争、信号的干扰以及链路的误码率引起的网络拥塞。对于前者引起的网络拥塞,可以通过减少数据的产生率来控制拥塞;对于后者引起的网络拥塞可通过路由方式的调整来控制拥塞。但在不同的监测任务和不同的网络结构中拥塞产生的原因是多样的,既可能是由于簇间数据传输引起的,也可能是由于簇内大量突发数据引起的簇首拥塞。

常用的无线传感器网络拥塞控制方法有多种,最为典型的控制策略主要包括数据传输速率调节和网络流量控制两方面。基于速率调节的算法有coda、esrt、pccp等。其中,coda(congestiondetectionandavoidance)算法在网络发生局部拥塞时通过反压消息告知上游节点降低数据传输速率或丢包缓解网络拥塞,发生全局拥塞时则根据源节点和sink节点之间的闭环反馈动态调节网络中数据传输速率,但降低数据传输速率和丢包会降低链路传输的可靠性。因此,现有的分簇网络中拥塞控制存在可靠性较低的技术问题。



技术实现要素:

本发明所要解决的技术问题在于如何提供一种无线传感器网络拥塞控制方法及系统以提高可靠性。

本发明通过以下技术手段实现解决上述技术问题的:

本发明实施例提供了一种无线传感器网络拥塞控制方法,其特征在于,所述方法包括:

1)、针对目标通信网络,获取下一时刻目标通信网络中各个节点簇的簇首节点;

2)、针对每一个簇首节点,利用卡尔曼滤波预测算法预测出所述簇首节点的待发送数据的队列长度;

3)、根据所述队列长度获取所述簇首节点的拥塞状态;并根据所述簇首的拥塞状态,判断是否需要为所述簇首节点确定协助节点;

4)、若是,在所述簇首节点对应的节点簇中获取协助节点,根据所述簇首节点的拥塞程度确定所述协助节点的工作状态,以使所述协助节点根据所述工作状态调节出力大小,其中,所述工作状态包括:簇首节点的拥塞程度;

5)、若否,将下一时刻的下一时刻作为下次控制过程中的下一时刻,并返回执行步骤1),直至完成控制。

应用本发明实施例,基于卡尔曼滤波理论,依据当前簇首缓存占用情况,预测下一时刻簇首队列长度,并根据队列长度对网络拥塞程度进行预判;当簇首可能要发生拥塞或已发生拥塞时,在簇内寻找一个协助节点协助簇首进行数据缓存和转发以达到控制和缓解网络拥塞,本发明实施例中,并不会延缓数据包的发送,也不会丢弃一些数据包,因此可靠性高于现有技术。

可选的,所述步骤2),包括:

21)、根据上一时刻的状态估计值,利用公式,计算下一时刻的预测值,即tn时刻队列长度的预测值,其中,

为第i个簇首节点在下一时刻,即第tn时刻的预测值;mi为状态转移矩阵,且ti为第i个簇首节点的采样周期,即下一时刻tn与上一时刻tn-1的时间差;为第i个簇首节点在第tn-1时刻的估计值;

22)、利用公式,p′(tn)=mip(tn-1)mit+q,计算tn时刻的预测误差协方差矩阵,其中,

p′(tn)为tn时刻的预测误差协方差矩阵;p(tn-1)为第i个簇首节点在第tn-1时刻的预测误差协方差矩阵;mit为状态转移矩阵的转置矩阵;q为过程激励噪声协方差矩阵;

23)、根据tn时刻的观测值以及预测值,利用公式,计算tn时刻的测量偏差,其中,

为tn时刻的测量偏差;yi(tn)为tn时刻的观测值;为第i个簇首节点在tn时刻的预测值;

24)、利用公式,对tn时刻的预测值进行校正,将所述校正后的预测值作为tn时刻的估计值,其中,

k(tn)为tn时刻的卡尔曼增益;hit为第i个簇首节点观测矩阵的转置矩阵,且hi=[1,0];r为观测噪声协方差矩阵;为校正后的tn时刻的估计值;为第i个簇首节点在tn时刻的预测值;为tn时刻的测量偏差;

25)、利用公式,p(tn)=(i-k(tn))p′(tn),更新下一时刻的估计误差协方差矩阵,并将所述下一时刻作为下次预测过程的上一时刻,将下一时刻的下一时刻作为下一次预测过程的下一时刻,返回执行21),其中,

p(tn)为tn时刻的估计误差协方差矩阵,且p(t1)=diag[σ22],其中xi(tn)为第i个簇首节点在tn时刻的状态;xi(tn)=mix(tn-1)+ωi(tn-1),mi为状态转移矩阵,且ti为第i个簇首节点的采样周期;x(tn-1)为第i个簇首节点在tn-1时刻的状态;ωi(tn-1)为第i个簇首节点在tn-1时刻的预测高斯白噪声,且μin-1为第i个簇首节点在tn-1时刻的差值高斯参数;νin-1为第i个簇首节点在tn-1时刻的比值高斯参数;i为单位矩阵。

可选的,所述步骤3),包括:

根据所述队列长度计算对应的簇首节点的缓存区占用率;

在公式,bo≤α1,成立的情况下,判定所述簇首节点为正常状态,其中,bo为簇首节点的缓存区占用率;α1为第一预设阈值;

在公式,成立的情况下判定簇首节点即将进入拥塞状态,其中,α2为第二预设阈值,且第二预设阈值大于第一预设阈值;tr为簇首节点的实时吞吐量;trmax为簇首节点的最大吞吐量;

在公式,成立的情况下,判定簇首节点已经处于拥塞状态;

在簇首节点处于即将进入拥塞状态以及已经处于拥塞状态时判定簇首节点需要协助节点。

可选的,所述簇首节点对应的节点簇中获取协助节点,包括:

利用公式,计算簇首节点所在簇中的成员节点的能量,其中,

λ为簇首节点所在簇中的成员节点的能量;λi为簇首节点所在簇中的成员节点的剩余能量;λmax为簇首节点所在簇中的成员节点的初始最大能量;

利用公式,计算簇首节点所在簇中的成员节点的参与度,其中,

η为簇首节点所在簇中的成员节点的参与度;ηi为簇首节点所在簇中的成员节点的当前数据包数量;ηmax为簇首节点所在簇中的成员节点的数据包最大缓存数量;

利用公式,计算簇首节点所在簇中的成员节点的信号质量,其中,

ω为簇首节点所在簇中的成员节点的信号质量;为簇内其他节点到簇首节点的距离;

针对簇首节点所在簇中的每一个其他节点,利用公式,tquality=(α×λ)+[β×(1-η)]+(γ×ω),计算其他节点的节点质量,其中,

tquality为簇内其他节点的节点质量;α为簇内其他节点的能量对应的权重;β为参与度对应的权重;γ为簇内其他节点的信号质量对应的权重,且α+β+γ=1;

将簇首节点所在簇中的成员节点中节点质量最好的节点作为协助节点。

可选的,所述根据所述簇首节点的拥塞程度确定所述协助节点的工作状态,包括:

在所述簇首节点处于即将进入拥塞状态时,协助节点向对应的簇首节点以及除自身以外的其他节点发送启动协助节点的通知,并进行簇内数据的接收、转发或者处理中的一种或组合;

在所述簇首节点处于拥塞状态时,协助节点进行簇内数据的收集、缓存、转发以及处理。

本发明实施例还提供了一种无线传感器网络拥塞的控制系统,所述系统包括:

获取模块,用于针对目标通信网络,获取下一时刻时目标通信网络中各个节点簇的簇首节点;

预测模块,用于针对每一个簇首节点,利用卡尔曼滤波预测算法预测出所述簇首节点的待发送数据的队列长度;

判断模块,用于根据所述队列长度和簇首吞吐量获取所述簇首节点的拥塞状态;并根据所述簇首的拥塞状态,判断是否需要为所述簇首节点确定协助节点;

确定模块,用于在所述判断模块的判断结果为是的情况下,在所述簇首节点对应的节点簇中获取协助节点,根据所述簇首节点的拥塞程度确定所述协助节点的工作状态,以使所述协助节点根据所述工作状态调节出力大小,其中,所述工作状态包括:簇首节点的拥塞程度;

设置模块,用于在所述判断模块的判断结果为否的情况下,将下一时刻的下一时刻作为下次控制过程中的下一时刻,并返回执行步骤1),直至完成控制。

可选的,所述预测模块,用于:

21)、根据上一时刻的状态估计值,利用公式,计算下一时刻的预测值,即tn时刻队列长度的预测值,其中,

为第i个簇首节点在下一时刻,即第tn时刻的预测值;mi为状态转移矩阵,且ti为第i个簇首节点的采样周期,即下一时刻tn与上一时刻tn-1的时间差;为第i个簇首节点在第tn-1时刻的估计值;

22)、利用公式,p′(tn)=mip(tn-1)mit+q,计算tn时刻的预测误差协方差矩阵,其中,

p′(tn)为tn时刻的预测误差协方差矩阵;p(tn-1)为第i个簇首节点在第tn-1时刻的预测误差协方差矩阵;mit为状态转移矩阵的转置矩阵;q为过程激励噪声协方差矩阵;

23)、根据tn时刻的观测值以及预测值,利用公式,计算tn时刻的测量偏差,其中,

为tn时刻的测量偏差;yi(tn)为tn时刻的观测值;为第i个簇首节点在tn时刻的预测值;

24)、利用公式,对tn时刻的预测值进行校正,将所述校正后的预测值作为tn时刻的估计值,其中,

k(tn)为tn时刻的卡尔曼增益;hit为第i个簇首节点观测矩阵的转置矩阵,且hi=[1,0];r为观测噪声协方差矩阵;为校正后的tn时刻的估计值;为第i个簇首节点在tn时刻的预测值;为tn时刻的测量偏差;

25)、利用公式,p(tn)=(i-k(tn))p′(tn),更新下一时刻的估计误差协方差矩阵,并将所述下一时刻作为下次预测过程的上一时刻,将下一时刻的下一时刻作为下一次预测过程的下一时刻,返回执行21),其中,

p(tn)为tn时刻的估计误差协方差矩阵,且p(t1)=diag[σ22],其中xi(tn)为第i个簇首节点在tn时刻的状态;xi(tn)=mix(tn-1)+ωi(tn-1),mi为状态转移矩阵,且ti为第i个簇首节点的采样周期;x(tn-1)为第i个簇首节点在tn-1时刻的状态;ωi(tn-1)为第i个簇首节点在tn-1时刻的预测高斯白噪声,且μin-1为第i个簇首节点在tn-1时刻的差值高斯参数;νin-1为第i个簇首节点在tn-1时刻的比值高斯参数;i为单位矩阵。

可选的,所述判断模块,用于:

根据所述队列长度计算对应的簇首节点的缓存区占用率;

在公式,bo≤α1,成立的情况下,判定所述簇首节点为正常状态,其中,bo为簇首节点的缓存区占用率;α1为第一预设阈值;

在公式,成立的情况下判定簇首节点即将进入拥塞状态,其中,α2为第二预设阈值,且第二预设阈值大于第一预设阈值;tr为簇首节点的实时吞吐量;trmax为簇首节点的最大吞吐量;

在公式,成立的情况下,判定簇首节点已经处于拥塞状态;

在簇首节点处于即将进入拥塞状态以及已经处于拥塞状态时判定簇首节点需要协助节点。

可选的,所述确定模块,用于:

利用公式,计算簇首节点所在簇中的成员节点的能量,其中,

λ为簇首节点所在簇中的成员节点的能量;λi为簇首节点所在簇中的成员节点的剩余能量;λmax为簇首节点所在簇中的成员节点的初始最大能量;

利用公式,计算簇首节点所在簇中的成员节点的参与度,其中,

η为簇首节点所在簇中的成员节点的参与度;ηi为簇首节点所在簇中的成员节点的当前数据包数量;ηmax为簇首节点所在簇中的成员节点的数据包最大缓存数量;

利用公式,计算簇首节点所在簇中的成员节点的信号质量,其中,

ω为簇首节点所在簇中的成员节点的信号质量;为簇内其他节点到簇首节点的距离;

针对簇首节点所在簇中的每一个其他节点,利用公式,tquality=(α×λ)+[β×(1-η)]+(γ×ω),计算其他节点的节点质量,其中,

tquality为簇内其他节点的节点质量;α为簇内其他节点的能量对应的权重;β为参与度对应的权重;γ为簇内其他节点的信号质量对应的权重,且α+β+γ=1;

将簇首节点所在簇中的成员节点中节点质量最好的节点作为协助节点。

可选的,所述确定模块,用于:

在所述簇首节点处于即将进入拥塞状态时,协助节点向对应的簇首节点以及除自身以外的其他节点发送启动协助节点的通知,并进行簇内数据的接收、转发或者处理中的一种或组合;

在所述簇首节点处于拥塞状态时,协助节点进行簇内数据的收集、缓存、转发以及处理。

本发明的优点在于:

应用本发明实施例,基于卡尔曼滤波理论,依据当前簇首缓存占用情况,预测下一时刻簇首队列长度,并根据队列长度对网络拥塞程度进行预判;当簇首可能要发生拥塞或已发生拥塞时,在簇内寻找一个协助节点协助簇首进行数据缓存和转发以达到控制和缓解网络拥塞,本发明实施例中,并不会延缓数据包的发送,也不会丢弃一些数据包,因此可靠性高于现有技术。

附图说明

图1为本发明实施例提供的一种无线传感器网络拥塞控制方法的流程示意图;

图2为本发明实施例提供的网络拥塞的原理示意图;

图3为本发明实施例提供的一种无线传感器网络拥塞控制方法中拥塞程度的判断示意图;

图4为本发明实施例的cmkco算法关于队列长度预测准确性的示意图;

图5为本发明实施例的cmkco算法相对于coda算法关于网络时延变化的比较示意图;

图6为本发明实施例提供的一种无线传感器网络拥塞控制系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

图1为本发明实施例提供的一种无线传感器网络拥塞控制方法的流程示意图,如图1所示,所述方法包括:

s101:针对目标通信网络,获取下一时刻目标通信网络中各个节点簇的簇首节点。

在网络处于分簇结构下的无线传感器网络数据传输以簇首节点为核心,以逐跳的方式把数据发送给sink节点,簇首既要承担簇内数据的收集、处理和转发,又要作为其他簇的中继节点进行数据包的转发,因此簇首是网络拥塞产生的根源。一旦监测事件发生,将会有大量数据包在簇首节点聚集,导致簇首节点队列出现缓存溢出及数据丢失,进而引起网络的局部拥塞。如果不及时处理网络局部拥塞,就会蔓延至整个网络。

图2为本发明实施例提供的网络拥塞的原理示意图,如图2所示,分簇结构网络层次分明、结构清晰,但以簇首为中心加快了簇首自身的能量和资源的消耗,进而影响了网络的使用寿命。导致簇首节点产生拥塞原因主要有两个方面,一是待发送数据分组超过了簇首的处理能力,进而引起缓存队列的溢出和网络时延增加造成网络拥塞;二是多个节点同时向簇首发送数据,因竞争导致信道过载导致的网络拥塞。

当网络发生或将要发生拥塞时,可使用显式通告和隐式通告两种方式来调节网络流量。但在分簇结构下,各簇功能结构相互独立、耦合较小,通过告知源节点拥塞信息,减少源节点数据发送速率,会影响整个网络性能。

需要强调的是,簇首节点可以是预先划分的;还可以是对各个节点簇中的各个节点进行打分后选举出来的节点,例如,为每一个节点的剩余能量、信息处理能力、信号辐射范围等指标分别赋予权重,利用权重乘以各个指标的得分得到该节点的得分,将得分最高的节点作为簇首节点。

s102:针对每一个簇首节点,利用卡尔曼滤波预测算法预测出所述簇首节点的待发送数据的队列长度。

卡尔曼(kalman)滤波是以最小均方误差为估计准则的递归滤波算法,算法基本思想是以下一时刻tn的当前测量值与上一时刻的估计值偏差作为下一次预测的基础,通过预测与校正的不断迭代来提高预测精度。该算法在迭代过程中只需储存前一时刻的计算参数,占用储存空间少,计算相对简单。因此,kalman滤波方法非常适合于实时处理,尤其是无线传感器网络资源受限场合的应用。本发明实施例基于kalman滤波算法,建立簇首队列长度离散时间随机系统预测模型,实现簇首队列长度的实时预测。

可以在网络中随机布置n个传感器节点,依据heed(ahybrid,energy-efficientdistributedclusteringapproach,固定簇半径的分簇协议)协议从n个传感器节点中随机产生p个节点作为簇节点,进而可以得到包含p个簇的网络拓扑结构。

利用公式,计算第i簇首tn时刻所处的状态变量,其中,

ln表示tn时刻的簇首队列长度,是ln的队列长度变化量即队列长度一阶微分形式。需要强调的是,状态变量是用于表征簇首节点的队列长度的量。

然后,使用xi(tn)表示第i簇首tn时刻所处的状态变量,用来表示该簇首节点tn时刻队列长度以及下一时刻队列的变化情况,则网络中在tn时刻簇首状态量为:x(tn)=[x1(tn),x2(tn),...xp(tn)],其中,p为簇首节点的数量。

进一步的,由于队列长度变化量受多重因素影响,如簇首接收数据包的数量、簇首处理数据包的能力以及转发给上游簇首的等待时延等。此外,簇首队列长度变化量的大小取决于簇首数据包接收率与转发率之比,为此引入比值高斯噪声参数νn;队列长度大小取决于上一时刻簇首数据包接受率与转发率之差,为此引入差值高斯噪声参数μn,以便更好地刻画系统的变化情况。所以,在tn+1时刻的可表示为:

因此,第i个簇首在下一时刻的状态方程可由上一时刻状态量进行计算。

因此,根据矩阵的运算原理,可以将上述公式改写,改写后得到的公式为:

xi(tn+1)=mixi(tn)+ωi(tn),然后可以计算簇首节点在下一时刻的状态,其中,m状态转移矩阵,ωi(tn)为预测高斯白噪声,

同时,系统的观测方程即为下一时刻簇首队列实际长度,可表示为yi(tn)=hixi(tn)+ηi(tn),其中,

hi为第i个簇首节点观测矩阵,且hi=[1,0];ηi(tn)为第i个簇首节点在tn时刻的观测噪声;在本模型中tn时刻缓存队列实际长度为确定值,所以观测噪声ηi(tn)=0。

综合以上推理过程,并结合簇首队列长度变化时序性、随机性和离散性等特点,基于卡尔曼滤波理论系统模型的状态转移方程和观测方程可表示为:

其中,

xi(tn)为第i个簇首节点在tn时刻的状态;mi为状态转移矩阵,且ti为第i个簇首节点的采样周期;x(tn-1)为第i个簇首节点在tn-1时刻的状态;ωi(tn-1)为第i个簇首节点在tn-1时刻的预测高斯白噪声,且μin-1为第i个簇首节点在tn-1时刻的差值高斯参数;νin-1为第i个簇首节点在tn-1时刻的比值高斯参数;yi(tn)为第i个簇首节点在tn时刻的簇首队列长度;hi为第i个簇首节点观测矩阵,且hi=[1,0];ηi(tn)为第i个簇首节点在tn时刻的观测噪声。

因此,可以根据tn时刻的前一时刻tn-1状态估计值,利用公式xi(tn)=mix(tn-1)+ωi(tn-1),计算tn时刻的状态估计值;利用公式yi(tn)=hixi(tn)+ηi(tn),计算下一时刻的队列实际长度。

由于预测队列长度以队列变化率为基础,为了处理方便,在不影响预测准确度的情况下,可以忽略预测高斯白噪声。

根据以上理论过程,因此,本发明实施例中可以使用如下流程进行队列长度的预测:

21)、根据上一时刻的状态估计值,利用与状态转移方程等同的公式,计算下一时刻,即tn时刻的预测值,其中,

为第i个簇首节点在下一时刻,即第tn时刻的预测值;mi为状态转移矩阵,且ti为第i个簇首节点的采样周期,即下一时刻tn与上一时刻tn-1的时间差;为第i个簇首节点在第tn-1时刻的估计值;

22)、利用公式,p′(tn)=mip(tn-1)mit+q,计算tn时刻的预测误差协方差矩阵,其中,

p′(tn)为下一时刻的预测误差协方差矩阵;p(tn-1)为第i个簇首节点在第tn-1时刻的预测误差协方差矩阵;mit为状态转移矩阵的转置矩阵;q为过程激励噪声协方差矩阵;

23)、根据tn时刻的观测值以及预测值,利用公式,计算下一时刻的测量偏差,其中,

为下一时刻的测量偏差;yi(tn)为下一时刻的观测值;为第i个簇首节点在tn时刻的预测值;

24)、利用公式,对tn时刻的预测值进行校正,将所述校正后的预测值作为tn时刻的队列长度估计值,其中,

k(tn)为tn时刻的卡尔曼增益;hit为第i个簇首节点观测矩阵的转置矩阵,且hi=[1,0];r为观测噪声协方差矩阵;为校正后的tn时刻的估计值;为第i个簇首节点在第tn时刻的预测值;为tn时刻的测量偏差;

25)、利用公式,p(tn)=(i-k(tn))p′(tn),更新下一时刻的估计误差协方差矩阵,并将所述下一时刻作为下次预测过程的上一时刻,将下一时刻的下一时刻作为下一次预测过程中的下一时刻,返回执行21),其中,

p(tn)为tn时刻的估计误差协方差矩阵,且p(t1)=diag[σ22],其中xi(tn)为第i个簇首节点在tn时刻的状态;xi(tn)=mix(tn-1)+ωi(tn-1),mi为状态转移矩阵,且ti为第i个簇首节点的采样周期;x(tn-1)为第i个簇首节点在tn-1时刻的状态;ωi(tn-1)为第i个簇首节点在tn-1时刻的预测高斯白噪声,且μin-1为第i个簇首节点在tn-1时刻的差值高斯参数;νin-1为第i个簇首节点在tn-1时刻的比值高斯参数;i为单位矩阵。

s103:根据所述队列长度获取所述簇首节点的拥塞状态;并根据所述簇首的拥塞状态,判断是否需要为所述簇首节点确定协助节点,若是,执行s104;若否,执行s105。

图3为本发明实施例提供的一种无线传感器网络拥塞控制方法中拥塞程度的判断示意图,如图3所示,无线传感器网络拥塞度量通常以缓冲区占用率(bufferoccupancy,bo)和信道负载(channelloading)作为衡量依据。检测缓存区队列长度是否超过阈值来判断判断网络状况,较信道负载检测计算量小、操作方便。但现实中网络拥塞程度和bo不成正相关。

因此,本发明实施例中为了提高模型度量精度,引入簇首吞吐量(throughputrate,tr)作为辅助度量,结合卡尔曼滤波理论预测出未来簇首节点队列长度,综合考虑bo及tr作为判断网络拥塞的度量。

具体过程为:根据所述队列长度计算对应的簇首节点的缓存区占用率,其具体过程可以使用队列长度中包括的数据包的数量除以簇首节点的缓存区容量得到。

分簇结构下wsn通过降低簇首数据接收频率来缓解网络拥塞,这意味着部分数据包的丢失或延迟,进而影响网络数据的可靠性传输及网络时延。本发明实施例提出的协助节点解决方案,当预测簇首拥塞程度达到一定阈值时,立即在簇内寻找协助节点分担簇首数据转发,与簇首协同完成监测任务。簇内协同是在拥塞内部的解决方案,很好地避免了局部拥塞的扩散,充分体现了分层网络的各层独立的特点。

根据卡尔曼滤波预测未来时刻队列长度来计算簇首的bo值,并结合簇首节点实时吞吐量作为辅助参考量。根据缓存区的特点,使用阈值α1、α2把缓存区分为三个区域:未拥塞区、临界拥塞区、拥塞区,并设trmax为节点最大吞吐量。

在公式,bo≤α1,成立的情况下,判定所述簇首节点为正常状态,其中,bo为簇首节点的缓存区占用率;α1为第一预设阈值;

在公式,成立的情况下判定簇首节点即将进入拥塞状态,其中,α2为第二预设阈值,且第二预设阈值大于第一预设阈值;tr为簇首节点的实时吞吐量;trmax为簇首节点的最大吞吐量;

在公式,成立的情况下,判定簇首节点已经处于拥塞状态;

在簇首节点处于即将进入拥塞状态以及已经处于拥塞状态时判定簇首节点需要协助节点。

本发明实施例相对于基于信道占用情况进行拥塞程度判断的技术方案,不以数据流在信道中繁忙程度来判断网络的拥塞状况,无需频繁采样计算所消耗的大量时间。另外相对于基于节点传输速率的方法,本发明实施例仅根据簇首节点进行判定,无需考虑路径复杂程度,进而可以提高准确率。

s104:在所述簇首节点对应的节点簇中获取协助节点,根据所述簇首节点的拥塞程度确定所述协助节点的工作状态,以使所述协助节点根据所述工作状态调节出力大小,其中,所述工作状态包括:簇首节点的拥塞程度。

无线传感器网络为避免检测区域出现盲区,经常在监测区域部署大量冗余无线传感器节点,因此,在wsn发生拥塞时,可利用位于簇内的冗余节点来缓解网络拥塞。分簇结构下无线传感器网络节点si可表示为:

其中(xi,yi)为节点坐标,λi表示节点剩余能量,ηi表示节点当前数据包数量,表示节点与簇首节点的距离,wi表示节点工作状态(wi=1,表示空闲状态;wi=0,表示工作状态;wi=-1,表示拥塞状态),mi表示节点身份(mi=1,表示成员节点;mi=0,表示簇首节点;mi=-1,表示sink节点)。

当预测到簇首缓存区队列长度达到拥塞阈值时,需要寻找一个协助节点,协助节点的寻找综合考虑节点能量λ、参与度η以及信号质量ω。

利用公式,计算簇首节点所在簇中的成员节点的能量,其中,

λ为簇首节点所在簇中的成员节点的能量;λi为簇首节点所在簇中的成员节点的剩余能量,剩余能量决定节点的生命周期,是正常工作的基本保障;λmax为簇首节点所在簇中的成员节点的初始最大能量;

利用公式,计算簇首节点所在簇中的成员节点的参与度,其中,

η为簇首节点所在簇中的成员节点的参与度,λ、η是节点级质量衡量标准,节点参与度可用事件发生时采集数据包的数量表示,采集数据量越大参与度越高;ηi为簇首节点所在簇中的成员节点的当前数据包数量;ηmax为簇首节点所在簇中的成员节点的数据包最大缓存数量;

电磁信号质量受传输距离和发射功率的影响,一般而言,无线传感器网络中节点所使用传感器型号和射频模块相同,各节点发射功率无明显差异。因此传输距离确定了信号质量的好坏,即传输距离越短信号质量越高,同时链路可靠性越高。因此可以利用公式,计算簇首节点所在簇中的成员节点的信号质量,其中,

ω为簇首节点所在簇中的成员节点的信号质量,ω是链路级衡量标准;为簇内其他节点到簇首节点的距离;

针对簇首节点所在簇中的每一个其他节点,利用公式,tquality=(α×λ)+[β×(1-η)]+(γ×ω),计算其他节点的节点质量,其中,

tquality为簇内其他节点的节点质量;α为簇内其他节点的能量对应的权重;β为参与度对应的权重;γ为簇内其他节点的信号质量对应的权重,且α+β+γ=1;节点tquality值越大则节点的剩余能量越多、距离簇首节点的距离越短以及节点工作状态越好,其被选为候选节点的优先级就越高。

为了更好地模拟层次结构的特点,缓解簇首工作压力,协助节点可首选与簇首直接通信且工作状态较好的成员节点,协助节点集合定义如下:

然后遍历集合,寻找最大tquality值的成员节点作为协助节点,辅助簇首的数据处理和转发。

在所述簇首节点处于即将进入拥塞状态时,簇首节点向邻居簇首以及簇内节点发送启动协助节点通知,由协助节点完成簇内数据的接收和处理,并根据簇首忙闲状况决定协助节点数据的转发去向,当簇首节点拥塞控制到安全水平时恢复正常路由机制。

在所述簇首节点处于拥塞状态时,即协助节点在拥塞区域内时,协助节点协助簇首进行数据的收集、缓存处理及转发,以提高簇首节点吞吐量、提高数据处理转发速率,较传统的速率调节和丢包策略网络更平滑。

s105:将下一时刻的下一时刻作为下次控制过程中的下一时刻,并返回执行步骤s101,直至完成控制。

应用本发明实施例,基于卡尔曼滤波理论,依据当前簇首缓存占用情况,预测下一时刻簇首队列长度,并根据队列长度对网络拥塞程度进行预判;当簇首可能要发生拥塞或已发生拥塞时,在簇内寻找一个协助节点协助簇首进行数据缓存和转发以达到控制和缓解网络拥塞,本发明实施例中,并不会延缓数据包的发送,也不会丢弃一些数据包,因此可靠性高于现有技术。

本发明实施例提出一种基于卡尔曼滤波的分簇wsns拥塞检测与控制方法(congestionmitigationbaseonkalmanfilteringandcacheoccupancy,cmkco),该算法首先基于卡尔曼滤波理论,依据当前簇首缓存占用情况,预测下一时刻簇首队列长度,并结合簇首吞吐量对网络拥塞程度进行综合预判;当网络拥塞程度预测值超过设定阈值时,在簇内寻找一个最优节点协助簇首进行数据缓存和转发以达到控制和缓解网络拥塞;当簇首处于临界拥塞区域时,启动部分协助方案,即协助节点负责簇内数据接收和融合处理,然后转发给簇首;当簇首处于拥塞状态时,启动完全协助方案,协助节点既负责簇内数据的接收、存储和处理,还要负责把数据向汇聚节点方向下游簇首转发。簇首启动拥塞控制时,协助节点依据当前簇首拥塞程度选择簇内转发或簇外转发,以实现不同情况下的拥塞控制。图4为本发明实施例的cmkco算法关于队列长度预测准确性示意图,如图4所示,该算法能够较准确地预测未来簇首拥塞状况,能较好地缓解簇首压力,具有更好的网络特性。图5为本发明实施例的cmkco算法相对于coda算法关于网络时延变化的比较示意图,如图5所示,表明本发明实施例提供的cmkco方法在分簇结构网络中能很好地减少网络时延,提高网络吞吐量。

本发明实施例提供的基于拥塞区域内部的解决方案很好地避免了拥塞区域进一步扩散,充分利用簇内空闲节点提高了资源利用率。

在本发明实施例的一种具体实施方式中,为了简化模型、降低网络开销,簇首队列长度采用周期性检测替代实时检测,并根据检测结果,预测网络拥塞状况,为拥塞控制提供根据。

现有技术中esrt(event-to-sinkreliabletransport,面向事件的可靠传输)算法以信息保真度的大小来调节源节点数据传输速率,实现oop(optimaloperatingregion)动态平衡,但全局性速率调节导致网络公平性较差,难以适应大规模网络。pccp(priority-basedcongestioncontrolprotocol)算法根据传感器类型和位置赋予节点不同的权重,当收到下游节点拥塞消息时,根据自身权重和下游节点输入输出速率来调整转发速率。权重的划分保障了网络的公平性,但该算法仅适用于简单路径,在复杂路径网络结构算法复杂性较高。基于流量控制的拥塞控制算法如siphon算法,利用网络中多通信模块vs(virtualsinks,虚拟汇聚节点)节点组成二级网络,当网络发生拥塞时就把网络流量转移到二级网络,达到缓解网络拥塞的目的,但二级网络的拥塞控制和vs节点部署复杂性较高。现有技术中还存在一种分布式流量管理算法,上游在数据包中加入自身流量信息(输入速率和输出速率差值),利用广播扩散给下游节点,下游节点根据自身流量信息为其分配带宽,以达到拥塞控制的效果,但广播方式能耗较大,节点间平凡通信会减少网络寿命;cmetr(congestionmitigationbaseonedgmandthroughputrate,edgm:evendifferencegreymodel,基于簇首数据吞吐量短期预测的拥塞检测与控制)算法使用灰色模型预测未来簇首流量,根据簇首繁忙程度调整节点数据采集频率来控制簇首流量以缓解簇首拥塞,但变频采集方式增加了簇首的计算量。

实施例2

与本发明实施例1相对应,本发明实施例提供了一种无线传感器网络拥塞控制系统。

图6为本发明实施例提供的一种无线传感器网络拥塞控制系统的结构示意图,如图6所示,所述系统包括:

获取模块601,用于针对目标通信网络,获取下一时刻时目标通信网络中各个节点簇的簇首节点;

预测模块602,用于针对每一个簇首节点,利用卡尔曼滤波预测算法预测出所述簇首节点的待发送数据的队列长度;

判断模块603,用于根据所述队列长度获取所述簇首节点的拥塞状态;并根据所述簇首的拥塞状态,判断是否需要为所述簇首节点确定协助节点;

确定模块604,用于在所述判断模块的判断结果为是的情况下,在所述簇首节点对应的节点簇中获取协助节点,根据所述簇首节点的拥塞程度确定所述协助节点的工作状态,以使所述协助节点根据所述工作状态调节出力大小,其中,所述工作状态包括:簇首节点的拥塞程度;

设置模块605,用于在所述判断模块的判断结果为否的情况下,将下一时刻的下一时刻作为下次控制过程中的下一时刻,并触发获取模块601,直至完成控制。

应用本发明实施例,基于卡尔曼滤波理论,依据当前簇首缓存占用情况,预测下一时刻簇首队列长度,并根据队列长度对网络拥塞程度进行预判;当网络可能要发生拥塞或已发生拥塞时,在簇内寻找一个协助节点协助簇首进行数据缓存和转发以达到控制和缓解网络拥塞,本发明实施例中,并不会延缓数据包的发送,也不会丢弃一些数据包,因此可靠性高于现有技术。

在本发明实施例一种具体实施方式中,所述预测模块602,用于:

21)、根据上一时刻的状态估计值,利用公式,计算下一时刻的预测值,即tn时刻队列长度的预测值,其中,

为第i个簇首节点在下一时刻,即第tn时刻的预测值;mi为状态转移矩阵,且ti为第i个簇首节点的采样周期,即下一时刻tn与上一时刻tn-1的时间差;为第i个簇首节点在第tn-1时刻的估计值;

22)、利用公式,p′(tn)=mip(tn-1)mit+q,计算tn时刻的预测误差协方差矩阵,其中,

p′(tn)为tn时刻的预测误差协方差矩阵;p(tn-1)为第i个簇首节点在第tn-1时刻的预测误差协方差矩阵;mit为状态转移矩阵的转置矩阵;q为过程激励噪声协方差矩阵;

23)、根据tn时刻的观测值以及预测值,利用公式,计算tn时刻的测量偏差,其中,

为tn时刻的测量偏差;yi(tn)为tn时刻的观测值;为第i个簇首节点在tn时刻的预测值;

24)、利用公式,对tn时刻的预测值进行校正,将所述校正后的预测值作为tn时刻的估计值,其中,

k(tn)为tn时刻的卡尔曼增益;hit为第i个簇首节点观测矩阵的转置矩阵,且hi=[1,0];r为观测噪声协方差矩阵;为校正后的tn时刻的估计值;为第i个簇首节点在tn时刻的预测值;为tn时刻的测量偏差;

25)、利用公式,p(tn)=(i-k(tn))p′(tn),更新下一时刻的估计误差协方差矩阵,并将所述下一时刻作为下次预测过程的上一时刻,将下一时刻的下一时刻作为下一次预测过程的下一时刻,返回执行21),其中,

p(tn)为tn时刻的估计误差协方差矩阵,且p(t1)=diag[σ22],其中xi(tn)为第i个簇首节点在tn时刻的状态;xi(tn)=mix(tn-1)+ωi(tn-1),mi为状态转移矩阵,且ti为第i个簇首节点的采样周期;x(tn-1)为第i个簇首节点在tn-1时刻的状态;ωi(tn-1)为第i个簇首节点在tn-1时刻的预测高斯白噪声,且μin-1为第i个簇首节点在tn-1时刻的差值高斯参数;νin-1为第i个簇首节点在tn-1时刻的比值高斯参数;i为单位矩阵。

在本发明实施例一种具体实施方式中,所述判断模块603,用于:

根据所述队列长度计算对应的簇首节点的缓存区占用率;

在公式,bo≤α1,成立的情况下,判定所述簇首节点为正常状态,其中,bo为簇首节点的缓存区占用率;α1为第一预设阈值;

在公式,成立的情况下判定簇首节点即将进入拥塞状态,其中,α2为第二预设阈值,且第二预设阈值大于第一预设阈值;tr为簇首节点的实时吞吐量;trmax为簇首节点的最大吞吐量;

在公式,成立的情况下,判定簇首节点已经处于拥塞状态;

在簇首节点处于即将进入拥塞状态以及已经处于拥塞状态时判定簇首节点需要协助节点。

在本发明实施例一种具体实施方式中,所述确定模块604,用于:

利用公式,计算簇首节点所在簇中的成员节点的能量,其中,

λ为簇首节点所在簇中的成员节点的能量;λi为簇首节点所在簇中的成员节点的剩余能量;λmax为簇首节点所在簇中的成员节点的初始最大能量;

利用公式,计算簇首节点所在簇中的成员节点的参与度,其中,

η为簇首节点所在簇中的成员节点的参与度;ηi为簇首节点所在簇中的成员节点的当前数据包数量;ηmax为簇首节点所在簇中的成员节点的数据包最大缓存数量;

利用公式,计算簇首节点所在簇中的成员节点的信号质量,其中,

ω为簇首节点所在簇中的成员节点的信号质量;为簇内其他节点到簇首节点的距离;

针对簇首节点所在簇中的每一个其他节点,利用公式,tquality=(α×λ)+[β×(1-η)]+(γ×ω),计算其他节点的节点质量,其中,

tquality为簇内其他节点的节点质量;α为簇内其他节点的能量对应的权重;β为参与度对应的权重;γ为簇内其他节点的信号质量对应的权重,且α+β+γ=1;

将簇首节点所在簇中的成员节点中节点质量最好的节点作为协助节点。

在本发明实施例一种具体实施方式中,所述确定模块604,用于:

在所述簇首节点处于即将进入拥塞状态时,协助节点向对应的簇首节点以及除自身以外的其他节点发送启动协助节点的通知,并进行簇内数据的接收、转发或者处理中的一种或组合;

在所述簇首节点处于拥塞状态时,协助节点进行簇内数据的收集、缓存、转发以及处理。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1