一种基于核密度估计法的BDS与GPS双源秒脉冲无缝切换方法与流程

文档序号:12116497阅读:508来源:国知局
一种基于核密度估计法的BDS与GPS双源秒脉冲无缝切换方法与流程

本发明涉及一种基于核密度估计法(Kernel Density Estimate,KDE)的北斗卫星导航系统(BeiDou Navigation Satellite System,BDS)与全球定位系统(Global Positioning System,GPS)双源秒脉冲(1Pulse Per Second,1PPS)无缝切换方法,属于卫星授时技术领域。



背景技术:

移动通信以及智能电网和智能化变电站的快速推进要求全网协调一致,对时间同步的要求日益迫切,需要准确、安全、可靠的时钟信号为系统各类运行设备和业务提供精确的时间服务。

目前,在移动通信领域中,基站的时间同步要求为:①基站应支持通过1PPS信号和TOD信息输入获得同步定时信息,使基站与传输网络上游时间同步设备之间满足空口时间和频率精度要求的同步;②对于1PPS秒脉冲,采用上升沿作为准时沿,上升时间应小于50ns,脉宽应为20ms~200ms;③TOD信息波特率默认为9600,无奇偶校验,1个起始位(用低电平表示),1个停止位(用高电平表示),空闲帧为高电平,8个数据位,应在1PPS上升沿1ms后开始传送TOD信息,并在500ms内传完,此TOD消息标示当前1PPS触发上升沿时间。TOD协议报文发送频率为每秒1次。

电力系统对时间同步精度的要求是:①故障记录的同步精度要求1ms;②对状态量采集的同步精度要求40μs;③继电保护现场试验的同步精度要求10μs;④相量实时测量的同步精度要求5μs;⑤行波故障,若要达到300m的定位精度,同步精度要求1μs,考虑散射因素的影响,同步精度要求0.5μs左右。根据时间传播技术的现状和应用前景,电力系统统一时钟的精度可以定为0.5~1μs。

由于在通信系统和电力系统对时间同步的要求都很高,保证时钟同步的授时时钟源成为了系统核心设备,授时时钟源设备的失效将会引起整个系统的崩溃。为了增加授时时钟源的可靠性,我们需要配备多个时钟源并实现多个时钟源的在线无缝切换,因此研究多时钟源在线无缝切换方法对保证通信系统、电力系统的可靠性有较高的实际应用价值。



技术实现要素:

本发明的目的是提供一种基于核密度估计法(KDE)的中国北斗卫星导航系统(BDS)与全球定位系统(GPS)双源秒脉冲(1PPS)无缝切换方法,通过这种方法可以降低双源秒脉冲切换时的抖动,提高秒脉冲的授时精度。

为实现上述目的,本发明所采用的具体技术方案为:

一种基于核密度估计法的BDS与GPS双源秒脉冲无缝切换方法,包括以下步骤:

1、通过FPGA(Field Programmable Gate Array)的内部锁相环把外部的50MHz恒温晶振时钟CLOCK_50M进行扩频,获得200MHz高频时钟脉冲CLOCK_200M;

2、利用CLOCK_200M时钟脉冲驱动64位计数器,获得每个时钟的计数索引SystemCountIndex;同时在CLOCK_200M时钟脉冲驱动下,分别对BDS与GPS的秒脉冲上升沿进行检测,获得BDS与GPS的秒脉冲上升沿位置编号BDS_PulseEdgeCountIndex、GPS_PulseEdgeCountIndex,再根据前后的位置差获得BDS与GPS的秒脉冲宽度计数BDS_PulseEdgeSpan、GPS_PulseEdgeSpan;

3、利用核密度估计法计算BDS与GPS的秒脉冲宽度计数的统计特性,获得其概率密度函数、均值、标准方差,再根据三倍方差剔除法去除抖动较大的秒脉冲;

4、剔除抖动较大的秒脉冲后,根据BDS与GPS的秒脉冲宽度计数BDS_PulseEdgeSpan、GPS_PulseEdgeSpan,利用线性预测方法分别预测计算BDS与GPS当前的秒脉冲上升沿计数BDS_CalculatedEdgeCountIndex、GPS_CalculatedEdgeCountIndex及秒脉冲宽度计数BDS_CalculatedEdgeSpan、GPS_CalculatedEdgeSpan;

5、根据状态管理,利用BDS与GPS的秒脉冲上升沿计数BDS_CalculatedEdgeCountIndex、GPS_CalculatedEdgeCountIndex及BDS与GPS的秒脉冲宽度计数BDS_CalculatedEdgeSpan、GPS_CalculatedEdgeSpan计算系统当前的秒脉冲上升沿计数DTS_PulseEdgeCountIndex以及秒脉冲宽度计数DTS_PulseEdgeSpan,生成双源无缝切换的秒脉冲。

本发明提供了一种基于核密度估计法的BDS与GPS双源秒脉冲无缝切换方法,当给授时时钟源配备BDS与GPS双源时,通过这种方法可以降低双源秒脉冲切换时的抖动,提高秒脉冲的授时精度,进而能够大大提高授时时钟源的可靠性。

附图说明

图1为本发明基于核密度估计法的BDS与GPS双源秒脉冲无缝切换方法的系统框图。

图2为本发明一个小时秒脉冲的核密度估计结果。

具体实施方式

下面结合附图对本发明做进一步的详细说明。

如图1所示,本发明基于核密度估计法的BDS与GPS双源秒脉冲无缝切换方法包括以下步骤:

1、通过FPGA(Field Programmable Gate Array)的内部锁相环把外部的50MHz恒温晶振时钟CLOCK_50M进行扩频,获得200MHz高频时钟脉冲CLOCK_200M;

2、利用CLOCK_200M时钟驱动64位计数器,获得每个时钟的计数索引SystemCountIndex;同时在CLOCK_200M时钟驱动下,分别对BDS与GPS的秒脉冲上升沿进行检测,获得BDS与GPS的秒脉冲上升沿位置编号BDS_PulseEdgeCountIndex、GPS_PulseEdgeCountIndex,再根据前后的位置差获得BDS与GPS的秒脉冲宽度计数BDS_PulseEdgeSpan、GPS_PulseEdgeSpan;

3、利用核密度估计法计算BDS与GPS的秒脉冲宽度计数的统计特性,获得其概率密度函数、均值、标准方差,再根据三倍方差剔除法去除抖动较大的秒脉冲,以确保误差加大的秒脉冲不进入后续的切换计算,保证切换系统的稳定性;

4、剔除抖动较大的秒脉冲后,根据BDS与GPS的秒脉冲宽度计数BDS_PulseEdgeSpan、GPS_PulseEdgeSpan,利用线性预测方法分别预测计算BDS与GPS当前的秒脉冲上升沿计数BDS_CalculatedEdgeCountIndex、GPS_CalculatedEdgeCountIndex及秒脉冲宽度计数BDS_CalculatedEdgeSpan、GPS_CalculatedEdgeSpan;

5、根据状态管理,利用BDS与GPS的秒脉冲上升沿计数BDS_CalculatedEdgeCountIndex、GPS_CalculatedEdgeCountIndex及BDS与GPS的秒脉冲宽度计数BDS_CalculatedEdgeSpan、GPS_CalculatedEdgeSpan计算系统当前的秒脉冲上升沿计数DTS_PulseEdgeCountIndex以及秒脉冲宽度计数DTS_PulseEdgeSpan,生成双源无缝切换的秒脉冲。

在所述步骤2、3、4、5中,分别采用1PPS上升沿检测模块、KDE检查模块、KDE预测模块、1PPS上升沿切换计算模块作为核心模块对数据进行处理,以下详细说明各核心模块的具体处理过程。

一、所述步骤2采用的核心模块是1PPS上升沿检测模块,其具体处理过程为:

输入:1PPS方波脉冲;

输出:1PPS上升沿的200MHz 64位计数位置索引PulseEdgeCountIndex;

处理过程:

步骤101:初始化状态管理变量S为空闲状态,S=EDGE_CHECK_IDLE;状态维持计数SC=0;

步骤102:每个循环执行周期,当前周期计数为SystemCountIndex,按S的当前值执行不同的处理过程;如果S=EDGE_CHECK_IDLE执行“步骤103”,如果S=EDGE_CHECK_START执行“步骤104”,如果S=EDGE_CHECK_LOW执行“步骤105”,如果S=EDGE_CHECK_HIGH执行“步骤106”;

步骤103:如果1PPS为低电平:则检测SC大小,如果SC大于最高阈值,则设置状态为S=EDGE_CHECK_START,并且SC=0,否则SC累加一;如果1PPS为高电平计数重新开始SC=0;

步骤104:如果1PPS为低电平:则检测SC大小,如果SC大于最高阈值,则设置状态为S=EDGE_CHECK_LOW,并且SC=0,否则SC累加一;如果1PPS为高电平计数重新开始SC=0;

步骤105:如果1PPS为低电平:则检测SC大小,如果SC大于最高阈值,则设置状态为S=EDGE_CHECK_HIGH,并且SC=0,否则SC累加一;如果1PPS为高电平计数重新开始SC=0;

步骤106:如果1PPS为高电平:则检测SC大小,如果SC大于最高阈值,则设置状态为S=EDGE_CHECK_IDLE,输出结果PulseEdgeCountIndex,并且SC=0,否则SC累加一;如果1PPS为低电平计数重新开始SC=0,其中

PulseEdgeCountIndex=SystemCountIndex-最高阈值-1。

二、所述步骤3采用的核心模块是KDE检查模块,其具体处理过程为:

输入:1PPS上升沿的200MHz 64位计数位置索引PulseEdgeCountIndex;

输出:该位置索引是否通过检查;

处理过程:

步骤201:计算每秒t的计数宽度xt

其中,xt=PulseEdgeCountIndext–PulseEdgeCountIndex(t-1)

步骤202:计算概率密度函数p(x)的核密度估计定义为:

其中:K(.)为核函数(kernel function),h为窗宽,计算结果如图2所示;

步骤203:利用滑动窗口,选取1个小时3600个1PPS计数宽度xt计算均值:

E=x3600p(x3600)+...+x2p(x2)+x1p(x1)

步骤204:利用滑动窗口,选取1个小时3600个1PPS计数宽度xt计算方差:

D=(x3600-E)2p(x3600)+...+(x2-E)2p(x2)+(x1-E)2p(x1)

步骤205:根据方差计算标准差;

步骤206:根据三倍均方差准则检查当前脉冲计数:如果当前计数xt与均值E相减大于三倍标准差,则当前计数不通过检查,否则通过检查。

三、所述步骤4采用的核心模块是KDE预测模块,其具体处理过程为:

输入:通过检查的1PPS上升沿的200MHz 64位计数位置索引PulseEdgeCountIndex历史序列xi

输出:当前位置索引的预测结果x’0

处理过程:

步骤301:计算预测权重ai

步骤302:计算归一预测权重a’i

步骤303:计算居中脉冲位置索引:

x5=(a’ix0+a’ix1+a’ix2+a’ix3+a’ix4+a’ix6+a’ix7+a’ix8+a’ix9+a’ix10)/10;

步骤304:计算居当前冲位置索引:x’0=x5+6E。

四、所述步骤5采用的核心模块是1PPS上升沿切换计算模块,其具体处理过程为:

输入:BDS的1PPS方波预测脉冲BDS_CalculatedEdgeCountIndex、GPS的1PPS方波预测脉冲GPS_CalculatedEdgeCountIndex;

输出:无缝切换计算结果DTS_PulseEdgeCountIndex;

处理过程:

步骤401:初始化切换状态管理变量S为空闲状态,S=EDGE_PROCESS_IDLE;

步骤402:每个1PPS循环执行周期,按S的当前值执行不同的处理过程;如果S=EDGE_PROCESS_IDLE执行“步骤403”,如果S=EDGE_PROCESS_WAITPULSE执行“步骤404”,如果S=EDGE_PROCESS_RUNNING执行“步骤405”,如果S=EDGE_PROCESS_DONE执行“步骤406”;

步骤403:如果BDS与GPS的KDE预测计算均在空闲状态,切换状态为S=EDGE_PROCESS_WAITPULSE;

步骤404:如果BDS与GPS的KDE预测计算结果均有效,切换状态为S=EDGE_PROCESS_RUNNING,1PPS切换源为BDS;如果BDS预测计算结果有效,GPS预测计算结果无效,切换状态为S=EDGE_PROCESS_RUNNING,1PPS切换源为BDS;如果BDS预测计算结果无效,GPS预测计算结果有效,等待10ms后,如果BDS预测计算结果仍然无效,则切换状态为S=EDGE_PROCESS_RUNNING,1PPS切换源为GPS;如果BDS与GPS的KDE预测计算结果均无效,等待100ms后,再次检查仍然均无效,则切换状态为S=EDGE_PROCESS_RUNNING,1PPS切换源为内部计算DTS;

步骤405:如果1PPS切换源为BDS,则

DTS_PulseEdgeCountIndex=BDS_CalculatedEdgeCountIndex;

如果1PPS切换源为GPS,则

DTS_PulseEdgeCountIndex=GPS_CalculatedEdgeCountIndex;

如果1PPS切换源为DTS,则

DTS_PulseEdgeCountIndex=DTS_PulseEdgeCountIndex+E;

步骤406:如果该1PPS切换计算完成,则切换状态为S=EDGE_PROCESS_IDLE。

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