APP下载

频率稳定度实时评估系统的设计与实现

2014-06-21刘彪李变杨剑青朱张林王惜康

时间频率学报 2014年3期
关键词:原子钟稳定度绘图

刘彪,李变,杨剑青,朱张林,王惜康



频率稳定度实时评估系统的设计与实现

刘彪1,2,李变1,3,杨剑青1,2,朱张林1,2,王惜康1,2

(1. 中国科学院国家授时中心,西安 710600;2. 中国科学院大学,北京 100049;3. 中国科学院时间频率基准重点实验室,西安 710600)

为了实时计算原子钟的频率稳定度,设计了一种频率稳定度实时评估系统。利用现有理论基础(稳定度测量原理及其算法等)以及软件技术开发了一种实时计算并以图形显示原子钟稳定度的测量分析软件。该软件使用VC++的多媒体定时器实现数据的实时不间断采集及计算,同时采用双缓存绘图技术显示计算结果。测试结果表明该软件工作稳定,计算结果可靠、可信。

频率稳定度;双缓存绘图;Allan方差;双对数坐标系

0 引言

对于一台高精度的原子钟,如果不了解其频率稳定度特性[1-2],就无法恰当地应用它。目前大部分计算稳定度的软件都属于事后分析计算软件,不能实时地发现问题,实时地加以控制和解决,并且事后分析需要大量的人工操作。另外在原子时实时计算领域,原子时的计算需要对多台钟的数据通过一定的算法处理才能实现。由于各台钟的性能不同,因此在原子时的计算中,需要估算它们之间的权重比值,而它们之间的权重比值与稳定度的评估结果有关,所以为了得到原子时的实时计算结果,也需要对原子钟的频率稳定度进行实时评估。为此,我们研制了一种频率稳定度实时评估系统。

1 频率稳定度实时评估系统的硬件构成

图1是频率稳定度实时评估系统的硬件构成图[1]。

图1 频率稳定度实时评估系统的硬件构成图

2 软件功能及其设计与实现

频率稳定度实时计算软件主要由数据采集模块、数据预处理模块、数据处理模块、数据保存模块以及图形显示模块等5部分组成。下面主要对数据采集模块、数据处理模块和图形显示模块作简要介绍。

2.1 数据采集模块

数据采集模块是采用串口通信技术实现的。目前,在Windows下编程时,常用的串口通信主要有3种方法:1)用Windows API进行编程;2)用MSComm通信控件;3)用第三方提供的一些串口通讯类进行编写[3-5]。

利用Windows API编写串口程序,特别是编写复杂的多线程串口程序时,对于程序员的能力要求较高。除了需要程序员熟练掌握和使用众多的API函数,能编写很多底层代码之外,还必须熟悉线程的编程方法,因此,一般不建议普通程序员使用这种方式。

在只需对单个串口操作的情况下,利用MSComm控件会使编程快捷简单。然而,由于做了大量的封装,降低了编程的可控性和灵活性,因此在多线程多串口编程时,需要做许多复杂处理的情况下,最好不使用MSComm控件。

CerialPort类是一个采用Windows API技术开发的串口通信类。这个类基于多串口、多线程技术,只需要将这个类添加到编写的程序框架中,就可以使用其成员函数开发程序。利用CSerialPort类进行串口编程时,既可以使编程效率高,程序可控性强,扩展性好,又比Windows API编程简单。

比较以上3种串口通信方式,可以发现使用第三方的CSerialPort类,是实现Windows下的多线程串口编程的较好的选择[3-5]。

通常,对于单个串口的操作主要包括:打开串口、设置串口参数、使用串口(写串口、读串口)和关闭串口等。当使用CSerialPort类时,其串口通信模型框图如图2所示。

图2 CSerialPort类串口通信模型框图

CSerialPort类工作流程是:对接收数据而言,首先设置好串口参数,再开启串口监测线程,串口监测线程监测到串口接收到的数据、流控制事件或其他串口事件后,就以消息方式通知主程序,激发消息处理函数。对发送数据而言,可直接向串口发送。

2.2 数据处理模块

按观测域的不同,频率稳定度分为时域频率稳定度和频域频率稳定度。所谓时域频率稳定度,就是对受噪声影响的输出频率用一个时间函数来描述,从时域的角度来分析噪声对输出频率的影响。对于频率稳定度的时域表征,除了常用的阿伦方差(AVAR),还有修正阿伦方差(MVAR)、哈达玛方差(HVAR)等[6-12]。在该数据处理模块中,采用了多种方差对稳定度进行评估。在运行软件后,可以对方差类型进行选择,根据不同的钟,去选择不同的算法对钟进行分析。

2.3 图形显示模块

对于图形显示模块,下面主要介绍双对数坐标系的绘制和双缓存绘图技术。

2.3.1 双对数坐标系的绘制

该双对数坐标系可以以任意数据为起点、任意数据为终点,并能对坐标进行缩放。在这里我们定义1×10(=…,-2,-1,0,1,2,3,…)的相应数据点为标准数据。在对数坐标系中,任意3个数据值1,2,3和在屏幕上的对数坐标系中的对应点的坐标1,2,3是一一对应的(如图3所示)。它

图3 数据和屏幕上点的坐标对应关系图

们之间的关系可表达为

在绘图时,首先要找出起始数据(数据最小值)和终止数据(数据最大值),然后确定起始标准数据和终止标准数据,画出标准数据线,然后根据标准数据线画出其他数据线。起始标准数据就是第一个大于起始数据的标准数据,终止标准数据就是最后一个小于终止数据的标准数据。

根据我们计算结果的数据,有2种绘图情况:

1)起始数据≤起始标准数据<终止标准数据≤终止数据,如图4所示。在这种情况下,在确定坐标系范围后,先画出起始标准数据线和终止标准数据线。对于起始数据和起始标准数据之间的部分,由起始标准数据(设起始标准数据为1×10)向起始数据方向递减地画出表示9×10-1,8×10-1,7×10-1,…的虚线;对于终止标准数据和终止数据之间的部分,由终止标准数据(设终止标准数据为1×10)向终止数据方向递增地画出表示2×10+1,3×10+1,4×10+1,…的虚线;对于起始标准数据和终止标准数据之间的部分,首先确定二者之间的标准数据,然后根据标准数据画出其间的虚线。

图4 绘图情况1

2)起始数据<起始标准数据=终止标准数据<终止数据,如图5所示。这种情况是第1种情况的特例,由于起始标准数据=终止标准数据,相比于第1种情况,减少了画出起始标准数据与终止标准数据之间部分的虚线的过程。

图5 绘图情况2

当坐标系确定后,根据式(1),可以确定任意数据点在屏幕上对数坐标系中的位置。纵坐标的处理同上。

2.3.2 双缓存绘图

在GDI的绘图系统中,每一次调用区域绘图操作,图形显示系统就会在屏幕中对指定的区域进行刷新操作。如果频繁地进行区域绘制操作的话,就会出现屏幕闪烁。产生闪屏的原因是每次在进行DC绘图时都要把相关的显示数据发送到显卡,经显卡处理后在显示器上显示。我们可以通过减少数据与显卡之间的交互次数来提高绘图效率。双缓存绘图技术有利于改善闪屏情况,因为在双缓存绘图技术中,首先把更新操作中的所有绘制数据写入内存,然后调用函数BitBlt一次性地把所有数据发送到显卡上[13]。

2.4 软件自动实时性的实现

软件的自动实时性,主要是通过采用VC++中的多媒体定时器技术来实现的。VC++定时器的定时精度可以达到毫秒级,因此在本软件中可以达到实时采集并计算的要求[14]。具体过程如下:用户打开软件后,首先对参数进行设置,设置的参数包括数据的采样间隔(多长时间采集一个数据)和系统的计算间隔(系统多长时间进行一次数据的保存、计算并显示),这2个参数的单位都是秒。然后对下拉列表框中的方差类型进行选择,点击自动计算按钮,软件就开始对发送到串口的数据进行定时的采集,当软件运行的时间到达我们所设置的时间间隔时,软件就会把显示在对话框中的数据保存到名为FHASEData00.txt,FHASEData01.txt,FHASEData02.txt…的文件中,在这里我们设置了延迟时间参数为100ms,经过延迟时间,我们对保存在FHASEData00.txt,FHASEData01.txt,FHASEData02.txt…的文件中的数据进行预处理,把计算结果保存到一个名为FASEDATA.txt的文件中,再调用数据处理模块中的时域频率稳定度算法对数据进行处理,把计算结果保存到一个名为SATADATA.txt的文件中,最后我们调用图形显示模块中的算法对图形进行显示。这就是软件的单次运行流程,如图6所示。定时器的设置,会让软件重复执行该流程,达到定时刷新的效果。总之,系统会不间断地对数据进行采集、保存、运算并显示。

图6 软件单次运行流程图

3 软件测试及其结果

该软件可以实时自动地采集、保存和计算,并将结果以图形化的方式直观地展现给用户。我们对该软件进行以下2个方面的测试:1)软件的算法的准确性;2)软件的实时性、自动性。

stable32[11]是业内比较权威的稳定度分析软件,我们用本系统的计算结果与stable32的计算结果作对比,验证本文软件的准确性。

1)对软件的算法的准确性进行验证。

我们对2013年1月6日09:29:25到2013年1月7日09:30:52商品铷钟(型号FS725)相对于主钟铯钟(实验室编号Cs2145)的钟差数据进行分析,其中数据采样间隔为3s,由于铷钟存在频率漂移,用Hadamard方差分析,可以消除线性漂移频率漂移对频率稳定度的影响,因此我们采用Hadamard方差进行分析,图7为计算所得稳定度曲线。

图7 评估系统与stable32对铷钟FS725的分析结果对比

对于Cs钟,由于不存在频率漂移,一般采用Allan系列方差进行分析,下面我们对铯钟(实验室编号Cs98)相对于钟房主钟的1d(2013年10月6日10:15:25至10月7日10:15:25)的钟差数据进行分析,采样间隔为1s。图8为用Allan方差表征的稳定度曲线。

图8 评估系统与stable32对Cs98的分析结果对比(用1d的钟差数据)

下面我们对铯钟(Cs98)相对于钟房主钟的一个月(2011年2月)的钟差数据进行分析,采样间隔为3600s,图9为计算得的Allan方差所表征的稳定度曲线。

图9 评估系统与stable32对CS98分析结果对比(用一个月的钟差数据)

由图7至图9可知评估系统得到的稳定度结果与stable32的计算结果一致。

2)对软件的实时性、自动性进行验证。

在测量时,首先运行软件,在界面上进行参数设置,参数的设置界面如图10所示。参数设置包括串口参数设置、计算间隔设置、采样间隔设置以及方差类型(如AVAR、MVAR、HVAR等)的选择,然后点击按钮进行自动计算,数据采集模块就会对钟差数据进行采集,并根据设定的计算间隔进行钟差数据的保存并计算,计算结果也会随之自动保存并生成稳定度曲线图。

图10 软件参数设置界面图

下面我们选择商品铷钟(FS725)相对于主钟(铯钟Cs2145)的钟差数据进行分析,其数据采样间隔为3s,计算间隔为120s(可以自行设置),由于铷钟存在频率漂移,用Hadamard方差分析,可以消除线性漂移频率漂移对频率稳定度的影响,因此我们采用Hadamard方差进行分析。图11是该系统运行1d过程中自动形成的频率稳定度的部分截图。

以上测试表明本软件计算结果准确、可靠,并且弥补了stable32不能实时地对原子钟稳定度进行评估的不足,完全满足了自动控制的要求,只需人工设置参数,就可以自动对原子钟的稳定度进行评估。本软件还可以图形显示钟差数据,自动地判别钟的噪声类型,这方面内容暂不在此详述。

4 结语

本文从实时性的要求出发,设计并实现了一种频率稳定度实时评估系统。该系统可以对原子钟的稳定度进行实时的评估和图形显示。通过测试表明:该系统稳定、可靠,但仍然存在局限性,例如不能实时地对多台原子钟频率稳定度进行评估。计划在以后的工作中予以进一步完善。

[1] 胡永辉, 漆贯荣. 时间测量原理[M]. 香港: 香港亚太科学出版社, 2000.

[2] 蔡勇. 频率稳定度测试仪软件的设计与实现[D]. 北京: 北京邮电大学, 2011.

[3] 苏岳龙, 李贻斌, 宋锐. 基于VC++ 6.0的高速串口通信数据采集系统[J]. 微计算机信息, 2005, 21(5): 147-148.

[4] 胡峪, 刘静. VC++高级编程技巧与示例[M]. 西安: 西安电子科技大学出版社, 2001.

[5] 杨峰, 桂卫华, 陈锋, 等. Win32环境下基于VC++ 6.0串口通信编程方法[J]. 计算技术与自动化, 2004, 23(2): 70-73.

[6] 张晖, 金玉雯, 李延. 频率稳定度的时域表征_阿仑方差[J]. 工业计量, 2001(增刊): 192-193.

[7] 郭海荣, 郭树人, 焦文海, 等. 原子钟时域频率稳定性计算方法[J]. 飞行器测控学报, 2007, 26(2): 47-52.

[8] 杨洋, 董绪荣, 李晓宇, 等. 星载原子钟性能方法比较研究[J]. 科学技术与工程, 2012, 12(36): 9801-9804.

[9] GALLEANI L, TAVELLA P. The characterization of clock behavior with the dynamic Allan variance[J]. Proceeding of the 2003 Joint IEEE FCS/EFTF Meeting. 2003: 239-244.

[10] GALLEANI L, TAVELLA P. Tracking nonstationarities in clock noises using the dynamic Allan variance[J]. Proceeding of the 2005 Joint IEEE FCS/PTTI Meeting. 2003: 329-396.

[11] RILEY W J. Stable32 Frequency Stability Analysis USER MANUAL[K]. USA: 2005.

[12] 张敏. 原子钟噪声类型和频率稳定度估计的自由度分析与探讨[D]. 西安: 中国科学院国家授时中心, 2008.

[13] 张磊. 基于VC++的高效绘图—双缓冲技术[J]. 信息科学, 2009, 20: 61.

[14] 卓红艳, 赵平. 基于VC++的实时数据采集系统中定时器的使用与比较[J]. 现代电子技术, 2007, 18(257): 80-82.

Design and implementation of frequency stability real-time evaluation system

LIU Biao1,2, LI Bian1,3, YANG Jian-qing1,2, ZHU Zhang-lin1,2, WANG Xi-kang1,2

(1.National Time Service Center, Chinese Academy of Sciences, Xi′an 710600, China;2. University of Chinese Academy of Sciences, Beijing 100049, China;3. Key Laboratory of Time and Frequency Primary Standard, Chinese Academy of Sciences, Xi′an710600, China)

A frequency stability real-time evaluation system was designed for estimating the stability of atomic clock in real time. On the basis of the existing theory (measurement principle and algorithm of stability) and the software technology, a measuring-analyzing software was developed for estimating and displaying graphically the frequency stability of atomic clocks in real-time. In the software, theVC++multimedia timer is used forcontinuousacquisitionandcalculation of real-time data, and the double buffer memory drawing technique is adopted for displaying the calculationresults. The testresults show that thesoftwareis stable in operation and the calculation is reliable and credible.

frequency stability; double buffer memory drawing; AVAR; double logarithm coordinate system

TM935.12

A

1674-0637(2014)03-0137-08

10.13875/j.issn.1674-0637.2014-03-0137-08

2013-09-10

国家自然科学基金青年基金资助项目(11103025);中国科学院“西部之光”人才培养计划西部博士资助项目(中国科学院人教[2011]180号)

刘彪,男,硕士,主要从事原子钟性能分析。

猜你喜欢

原子钟稳定度绘图
来自河流的你
“禾下乘凉图”绘图人
高稳晶振短期频率稳定度的仿真分析
超高精度计时器——原子钟
用于小型铷如原子钟中介质谐振腔激励分析
基于HTML5 Canvas绘图技术应用
原子钟频跳快速探测方法
多MOSFET并联均流的高稳定度恒流源研究
工艺参数对橡胶球铰径向刚度稳定度的影响
Surfer和ArcView结合在气象绘图中的应用