一种分布式矿震监测系统的时间同步方法与流程

文档序号:11234330阅读:1771来源:国知局
一种分布式矿震监测系统的时间同步方法与流程

本发明涉及一种时间同步方法,尤其涉及一种分布式矿震检测系统的时间同步方法。



背景技术:

一般煤炭企业都是采用分布式矿震检测系统进行监测预警,而分布式矿震监测系统中时间同步是一项重要支撑技术。统一的时钟标准是分布式矿震监测系统中的数据传输调控和数据分析应用的必要条件。硬件平台和操作系统有所不同,导致各节点时钟的硬件实现和编程接口标准各异,另外各个节点的石英晶体振荡器和时钟中断更加影响时钟源的统一性。由于制造工艺的不同,即使是同一型号的晶振,频率也不尽相同,同时,由于节点所处的环境不同,温度、湿度、压强、磁场强度都会影响晶振的稳定性。因此定期调整无线传感网络中的时钟是非常有必要的。

现有的多种时间同步协议,适用于多种条件和场景,然而分布式微震监测系统节点数量大、能量受限、硬件性能弱、拓扑结构多变。另外,已有的时间同步协议在应用在煤矿井下时都会受到一定的限制,如结构式时间同步协议无法适应大规模无线网络,而分布式时间同步协议无法快速有效地完成时间同步操作。因此,设计井下无线传感器网络的时间同步协议仍然面临诸多挑战,如同步精度与通信延时的关系、收敛速度与低功耗的平衡等。在设计一个传感器网络时,有许多重要因素需要考虑,容错率、时效性、可扩展性、网络拓扑约束、硬件约束条件、成本、功耗等。



技术实现要素:

本发明要解决的问题是提供一种针对分层簇型同步方法中的两个过程提出的两种时间同步算法之间的相互配合以完成分布式矿震监测系统网络的时间同步工作,具有较高的鲁棒性、可扩展性以及较高的时间同步精度的分布式矿震监测系统的时间同步方法。为此,现提出如下技术方案:

一种分布式矿震监测系统的时间同步方法,包括如下步骤:

(1)设置在地面上的授时器通过与gps系统中各个卫星的原子钟进行时钟同步,获得高精度的时间信号;井下环网中的时间同步交换机通过ieee1588时间同步协议与井上授时器进行同步;锚节点同样通过有线方式与时间同步交换机相连,通过有线时间同步方式完成时间同步;

(2)矿震监测系统中的簇内节点通过簇内斜率一致性时间同步算法使所有节点的时钟同步至一个全网统一的虚拟逻辑时钟;

(3)矿震监测系统中簇首节点与锚节点通过簇间的简化时钟相偏频偏联合估计算法进行时间同步,进而实现簇首节点之间的同步操作,簇首节点通过簇间的简化时钟相偏频偏联合估计算法估算全网虚拟时钟与锚节点时钟之间的相偏估计与频偏估计,估算出这两个参数后,进行一次广播,簇内节点更新自己的逻辑时钟。

对上述方案的进一步改进,所述簇内斜率一致性时间同步算法包括如下步骤:

(1)每一个矿震监测系统中的监测节点在t0时刻都有一个状态量ci(t0),同时定义网络中所有节点在时刻t的状态向量为:c(t)=[c1(t),c2(t),...,cl(t)]t;则节点的一致性时钟模型可以表述成:

(2)令则上述方程可表述成矩阵动态方程:c(t+1)=a(t)c(t),式中,a(t)为非负矩阵,其由ωij(t),i,j∈u组成;

(3)则全网统一逻辑虚拟时钟可以表示为:lu(t)=ωut+φu。

对上述方案的进一步改进,所述簇内斜率一致性时间同步算法的具体执行过程如下:

(1)对于节点i,(i∈u),设定同时为每个节点设置相同的计数周期t;

(2)当节点本身的硬件计数值为t的整数倍时,节点将本身的时钟读数ci(t)、广播给其邻居节点;

(3)节点j,(j∈u),在t1时刻收到了其邻居节点i的同步数据包,则记录本地时钟读数cj(t1),并将接收到的数据存储为

(4)如果节点i的本地存储里面有数据[ci(t0),cj(t0)],则通过公式计算出ωij,qij;

(5)当qij>1时:

(6)当qij=1时:不做改变;

(7)当qij<1时:执行与qij>1时的相反操作;

(8)删除存储[ci(t0),cj(t0)],替换为[ci(t1),cj(t1)]。

对上述方案的进一步改进,所述簇间的简化时钟相偏频偏联合估计算法包括系统构建、相偏估计和频偏估计三个步骤。

对上述方案的进一步改进,所述簇间的简化时钟相偏频偏联合估计算法具体包括如下步骤:

(1)系统构建:

节点一、二通过双向交换的机制进行时钟同步操作,其中t1,k至t4,k均为节点一或者节点二的本地时刻,以作为参考点,则节点二的第k次上下行信息的时间戳为:其中式中d是固定时延,xi、yi为可变时延,φ节点的时钟偏移。相互独立的随机变量且服从均值为0,方差为σ2的高斯分布;

(2)相偏估计:

因为在n次同步中,是均值为μ,方差为σ2相互独立且同为高斯分布的随机变量,基于观测量的似然函数为:将上述公式取对数然后求导得:因此,时钟相位偏移的估计为:其中,式中分别代表的样本均值;

(3)频偏估计:

根据节点二的第k次上下行信息的时间戳的计算公式可以得到可以得到定义时间戳差值为其中式中,xn,x1,yn,y1都服从高斯分布,方差为σ2,所以p和r是服从均值为零,方差为2σ2的高斯分布,因此p和r的概率密度为:因此,简化观测模型的似然函数形式为:其中式中将对数似然函数对ω′求导后可得高斯延迟模型下的最大似然估计式为将两个节点之间的延迟观测量集合改写成:所以相偏估计为:

对上述方案的进一步改进,估算出相偏估计与频偏估计后,簇内节点更新自己的逻辑时钟为:

相比现有技术,本发明的有益效果在于:

(1)矿震监测节点的布置地点为煤矿井下的煤层及地层中,所处的环境极其恶劣,节点极易出现故障导致失效,工作人员很难对其进行更换或维修。本发明采用簇内斜率一致性时间同步算法,矿震监测系统中的每个节点都根据本地晶振设定的计数周期向邻居节点广播本地的时钟参数,当某一节点从邻居节点收到同步消息时,比较其时钟斜率和本地的斜率,当邻居节点的斜率更加接近于1时,则该节点选择这个邻居节点的逻辑时钟作为参考进行相位和频率的补偿,每一个节点只需要知道其邻居节点的时钟信息便可实现时钟同步,当有些节点出现故障时,时钟显示依然能够同步,具有很强的鲁棒性及可扩展性。

(2)本发明提出簇间的简化时钟相偏频偏联合估计算法更适合矿震监测系统的实际需求。此算法以增大均方差为代价减少了计算量,并且独立于实际时延的分布,因为节点的时钟是一个线性模型,由此可以得出,同步周期的开始阶段和结束阶段之间的时间差异最大,利用这个特性,可以通过交换开始阶段和结束阶段的时间戳来简化最大似然函数,从而简化了原有的时间同步算法,减短了反应时间。

附图说明

图1分布式矿震监测系统的节点分布图。

图2监测节点的发送程序流程图。

图3监测节点接收程序流程图。

图4监测节点斜率收敛效果图。

图5监测节点正常工作状态图。

图6监测节点死亡或加入状态图。

图7同步过程量化分析图。

图8简化算法前后精度对比图。

图9简化前高斯时延模型下的均方误差图。

图10简化后高斯时延模型下的均方误差图。

图11矿震监测系统同步精度分析图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

一种分布式矿震监测系统的时间同步方法,包括如下步骤:

(1)设置在地面上的授时器通过与gps系统中各个卫星的原子钟进行时钟同步,获得高精度的时间信号;井下环网中的时间同步交换机通过ieee1588时间同步协议与井上授时器进行同步;锚节点同样通过有线方式与时间同步交换机相连,通过有线时间同步方式完成时间同步;

(2)矿震监测系统中的簇内节点通过簇内斜率一致性时间同步算法(sts算法)使所有节点的时钟同步至一个全网统一的虚拟逻辑时钟,其中sts算法包括如下步骤:

1、每一个矿震监测系统中的监测节点在t0时刻都有一个状态量ci(t0),同时定义网络中所有节点在时刻t的状态向量为:c(t)=[c1(t),c2(t),...,cl(t)]t;则节点的一致性时钟模型可以表述成:

2、令则上述方程可表述成矩阵动态方程:c(t+1)=a(t)c(t),式中,a(t)为非负矩阵,其由ωij(t),i,j∈u组成;

3、则全网统一逻辑虚拟时钟可以表示为:lu(t)=ωut+φu。

sts算法具体的执行过程为

对于节点i,(i∈u),设定同时为每个节点设置相同的计数周期t;

当节点本身的硬件计数值为t的整数倍时,节点将本身的时钟读数ci(t)、广播给其邻居节点;

节点j,(j∈u),在t1时刻收到了其邻居节点i的同步数据包,则记录本地时钟读数cj(t1),并将接收到的数据存储为

如果节点i的本地存储里面有数据[ci(t0),cj(t0)],则通过公式计算出ωij,qij;

当qij>1时:

当qij=1时:不做改变;

当qij<1时:执行与qij>1时的相反操作;

删除存储[ci(t0),cj(t0)],替换为[ci(t1),cj(t1)]。

为了直观的验证sts算法的有效性及可行性,以及其在分布式矿震监测系统中实际性能,现采用实际矿震监测节点对该算法进行了实验验证。因矿震采集节点数量有限,本次实验共采用了9个节点,具体分布如图1所示,采用节点1充当簇首节点,其余8个节点作为单个簇内采集节点,9号节点作为基站,与计算机相连,用以收集所有节点的时钟信息。矿震监控节点采用32khz的外部晶振,所以实验中1tick的精度为1s/32k=30.5us。

在硬件实验过程中,每个节点都运行sts同步算法,节点中运行的程序可以分为接收和发送两部分。普通节点的发送与接收软件流程如图2与图3所示。

9号节点每200ms会广播一个命令报文,所有节点收到报文后立即汇报本地逻辑时钟。9号节点收集到数据后上传到计算机上存储起来,最后通过matlab对数据进行分析。从节点时钟斜率、同步效果、算法的可扩展性与鲁棒性、同步误差等几方面分别对sts算法的性能进行分析。

其中节点斜率收敛效果如图4所示,从图4中可以看出,节点的初始斜率误差较大,且分散不均匀。实验前期斜率误差收敛速度较快,80次迭代后期放缓,但是在经过150次迭代左右就将自身斜率误差调整至0附近,且随着迭代周期的增长,斜率误差愈加趋近于0,节点时钟斜率非常稳定且接近于真实时间斜率,可以看出sts算法可以有效地对时钟斜率进行调整。

图5为sts算法的同步状态图,节点1充当簇首节点,簇首节点时钟调整的目标对象为锚节点,所以时钟参数在sts算法中保持不变。节点2~8为簇内节点。为了更加贴近矿震监测系统的真实使用情况,所有节点不可能完全同时启动。节点是依次顺序启动的。从图5中可以看出,节点2~5则是在全局逻辑时钟建立完成后快速建立了全局虚拟逻辑时钟,并与簇首节点1完成了同步。节点6~8由于启动稍晚,所以在启动之前,网络的逻辑时钟已经建立,所以节点可以迅速将时钟调整至全局虚拟逻辑时钟。网络从启动到首次建立全局虚拟逻辑时钟大约需要60个周期,而逻辑时钟建立之后新加入的节点只需要5次周期即可同步至全局逻辑时钟。

图6为节点死亡或加入状态图,可表示sts算法的鲁棒性和可扩展性,矿震节点在实际使用时,被布置在环境恶劣的煤矿井下、煤层以及地层中,硬件节点损坏的情况时有发生,在所有节点完成同步之后,手动将节点3、节点4的电源关闭一段时间后重启,以模拟节点的死亡与新节点的加入。如图6所示,网络完成时间同步操作之后,局部节点的故障并不能影响整个网络的同步效果,并且节点在重新开启后能够迅速地同步至全局统一逻辑时钟。另外,当簇首节点的时钟失效的情况,手动将节点1的电源关闭,由结果可以看出,簇内节点的同步情况在簇首节点失效后仍能继续保持全网时间同步。

图7为同步过程量化分析图,可表示sts算法的精度,通过多次记录各节点的时钟参数,对矿震监测系统网络中的所有节点的同步误差取平均值,平均误差为0.505ticks,最大误差为1.1429ticks,误差基本控制在1tick以内。在晶振为32khz,1ticks=1s/32k=30.5us的精度下,平均误差为15.4025us。网络在120个周期左右时,完成同步的节点的百分比达到了百分之百,全局平均时间稳定增长平顺,基本不存在逻辑时钟的抖动问题,增强了节点时钟的长期稳定性,延长了同步周期,对存在丢包率的井下同步网络具有较强的鲁棒性。

(3)矿震监测系统中簇首节点与锚节点通过簇间的简化时钟相偏频偏联合估计算法(sjme算法)进行时间同步,进而实现簇首节点之间的同步操作,簇首节点通过簇间的简化时钟相偏频偏联合估计算法估算全网虚拟时钟与锚节点时钟之间的相偏估计与频偏估计,估算出这两个参数后,进行一次广播,簇内节点更新自己的逻辑时钟。其sjmle算法包括具体如下步骤:

1、系统构建:

节点一、二通过双向交换的机制进行时钟同步操作,其中t1,k至t4,k均为节点一或者节点二的本地时刻,以作为参考点,则节点二的第k次上下行信息的时间戳为:其中式中d是固定时延,xi、yi为可变时延,φ节点的时钟偏移。相互独立的随机变量且服从均值为0,方差为σ2的高斯分布;

2、相偏估计:

因为在n次同步中,是均值为μ,方差为σ2相互独立且同为高斯分布的随机变量,基于观测量的似然函数为:将上述公式取对数然后求导得:因此,时钟相位偏移的估计为:其中,式中分别代表的样本均值;

3、频偏估计:

根据节点二的第k次上下行信息的时间戳的计算公式可以得到可以得到定义时间戳差值为其中式中,xn,x1,yn,y1都服从高斯分布,方差为σ2,所以p和r是服从均值为零,方差为2σ2的高斯分布,因此p和r的概率密度为:因此,简化观测模型的似然函数形式为:其中式中将对数似然函数对ω′求导后可得高斯延迟模型下的最大似然估计式为将两个节点之间的延迟观测量集合改写成:所以相偏估计为:

也是由sts算法中搭建的硬件平台来分析sjmle算法的算法计算复杂度、同步精度、估计量的均方误差。一般的时间同步方法中所用的方法为jmle算法。

表1为stmle算法与jmle算法的计算复杂度对比,如表1所示,简化前后,算法的计算复杂度相差巨大,不过需要说明的是,表中给出的是最坏情况的操作次数,大多数情况下操作次数会少于表中的数目。并且处理器在进行数字运算时,除法是最难实现的运算,所以要尽量减少除法的应用。根据表中操作数,即使观测数目较少的情况下,如的时候,未简化的算法jmle的除法次数就达到了2200次,乘法200次;而简化算法sjmle仅仅需要2次除法,20次乘法。所以简化算法sjmle可以明显降低算法复杂度,减少能量消耗,且随着n的数目增大,这一优点也会体现的更加明显。

表1简化前后算法的复杂度对比

图8表示sjmle算法的同步时间精度,从图中可以看出,将简化前后以及没有联合估计的原始tpsn算法在同样的参数下进行了同步精度对比,简化算法的同步精度保持在正负2us之内,虽然简化前的同步精度更加优异,精度保持在正负1us之内,但是相较于简化后的精度提升并不明显,与其所消耗的计算能量与时间相比,弊大于利。而没有频偏估计的原始tpsn算法的同步误差明显大于有频偏估计的联合估计算法。

图9和图10分别表示jmle算法和sjmle算法估计量的均方误差,从图中可以看出,简化前后的估计算法都可以使得系统联合估计量的均方误差持续渐进有效的趋近于零。但是简化后sjmle估计算法相较于简化前的jmle估计算法,收敛速度与均方误差都稍显不足,但是简化后的算法在固定时延未知的情况下仍然能稳定工作。虽然牺牲了部分同步精度,但是同步精度能很好的满足矿震监测系统的需求,并且大大节约了节点能量,基本达到了设计要求。

因为簇内与簇间的同步工作相对独立,相关性不大,所以分布式矿震监测系统全网的同步误差为sts与sjmle两者之和。如图11所示,系统在达到稳定之前,同步误差较大,但在系统稳定工作以后,同步误差最大在正负17us,正常保持在15us以内,约等于sts算法与sjmle算法的误差之和,同步精度可以满足矿震监测系统的要求。

本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求范围内。

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