一种智能电表RTC校正方法与流程

文档序号:34703867发布日期:2023-07-07 08:10阅读:220来源:国知局

本发明涉及一种智能电表中实时时钟即rtc的校正方法


背景技术:

1、在国内使用的智能电表都具有实时时钟,根据行业标准,要求其在工作温度范围内精度满足小于1s/day(11.5ppm),在23℃时满足小于0.5s/day(ppm)。在实际应用中还要考虑到晶体的老化及校准误差等因素影响,rtc时钟误差在厂家校准应该至少做到8ppm 以下。但是由于晶振的不稳定性,时钟对晶振质量的要求极高,出于成本考虑,电能表产品不可能采用价格高昂的晶振。而mcu内置rtc,由于成本较低,同时可通过软件对rtc误差进行校正,采用mcu内置rtc目前已经成为电能表设计的首选方案。

2、晶振的温度曲线,接近二次曲线y=β(t-t0)2+s0,其中t为实际工作温度,y为在该工作温度下的时钟误差,即为频率偏差(f-f0)/f。根据晶体厂家提供的参数,β一般为-0.035士0.0012ppm, t0一般为23士2℃。这种单温度点校准相当于β和t0使用固定值,只校准s0。根据二次曲线y=β(t-t0)2+s0,假如β为-0.035,和预制值一致, t0预置23℃与实际值25℃偏差2℃时,并且考虑到温度误差0.5℃,即t0预置22.5℃。则在温度-25℃时,t0预置22.5℃时与实际值25℃时分别获得时钟误差,两者之间的偏差为8.5ppm,在工作温度–40℃和85℃时偏差达到-11ppm。这几个偏差值还不包括晶体实际曲线与二次曲线的偏差,β及校准s0偏差以及晶体本身的老化影响。从上面可以看出采用单点校准方法一定会导致部分rtc在高低温下超差,故如何提高内置rtc的时钟精度就显得异常重要。


技术实现思路

1、根据上述现有技术中时钟校准误差较大的不足,本发明提供一种实现宽范围高精度的误差修正的智能电表rtc校正方法。

2、本发明过以下技术方案来实现:

3、一种智能电表rtc校正方法,根据晶振的频率温度特性曲线公式y=β(t-t0)2+s0,将以顶点温度t0士15℃作为分界线,将原本一条抛物线分为三部分,分别为低温段曲线、常温段曲线、高温段曲线,分别获取低温系数值βl、常温系数值βn和高温系数值βh,并对s0进行微调补偿,对曲线公式y=β(t-t0)2+s0进行修正,公式中,t为实际工作温度,y为该实际工作温度下的时钟误差,β为温度系数值,t0为顶点温度,s0为补偿基准值,β、t0为晶体厂家提供的出厂参数,其具体步骤如下:

4、(1)取一只电表,时钟无任何补偿情况下,在恒温箱中t0温度下测量时钟误差,从而取得顶点温度t0的时钟误差,即为补偿基准值s0;

5、(2)在时钟已补偿s0的基础上,在恒温箱低温段tl温度下测量得到低温时钟误差,根据曲线公式y=β(t-t0)2+s0,获取低温段的温度系数值,即为低温系数值βl;

6、(3)直接将常温系数值βn设为晶体厂家提供的出厂参数;

7、(4)在时钟已补偿s0的基础上,在恒温箱高温段th温度下测量得到高温时钟误差,根据曲线公式y=β(t-t0)2+s0,获取高温段的温度系数值,即为高温系数值βh;

8、(5)恒温箱分别调至tl-2℃、tl、tl+2℃低温段温度下,对曲线公式进行微调:在tl-2℃温度下,通过曲线公式y=β(t-t0)2+s0获取时钟误差,在计算时,β为βl,t为tl-2℃,s0为步骤(1)中求得的s0,将公式获得的时钟误差与实际测量得到的时钟误差之间的差值作为补偿值kl0,同理,分别获得tl、tl+2℃温度下补偿值kl1、kl2,将这低温系数值βl、3个温度值与补偿值kl0、kl1、kl2保存作为查表值;

9、(6)恒温箱调至tn -2℃、tn、tn +2℃ 常温段温度下,对曲线公式进行微调:在tn -2℃温度下,通过曲线公式y=β(t-t0)2+s0获取时钟误差,在计算时,β为βn即为出厂参数,t为tn-2℃,s0为步骤(1)中取得的s0,将公式获得的时钟误差与实际测量得到的时钟误差之间的差值作为补偿值kn0,同理获取tn、tn+2℃ 温度下各自补偿值kn1、kn2,将这常温系数值βn、三个温度值与补偿值kn0、kn1、kn2保存作为查表值;

10、(7)恒温箱调至th-2℃、th、th+2℃高温段温度下,对曲线公式进行微调:在th-2℃温度下,通过公式y=β(t-t0)2+s0获取时钟误差,在计算时,β为βh,t为th-2℃,s0为步骤(1)中取得的s0,将公式获得的时钟误差与实际测量得到的时钟误差之间的差值作为补偿值kh0,同理,分别获得th、th+2℃温度下补偿值kh1 、kh2,将这高温系数值βh、3个温度值与补偿值kh0、kh1 、kh2保存作为查表值;

11、(8)重复步骤(2)~(7)分别在低温段、常温段、高温段以3个点为一组取点直至满足精度需求,如总共9个点或18个点,分别获得相应的温度系数值β、补偿值k与温度值,将各个温度系数值β、补偿值k和温度值作为查表值存入电表;

12、(9)电表正常运行时,根据温度值在查表值中查找相应温度值下的温度系数值β以及补偿值k,如果温度值不在查表值内,则通过计算公式计算得出温度系数值和补偿值,温度系数值计算公式为β=(βp+1-βp)×(t-tp)/(tp+1-tp)+βp,补偿值计算公式为k=(kp+1-kp)×(t-tp)/(tp+1-tp)+kp,其中t表示实际工作温度,tp、tp+1表示查表值中与t相邻的两个温度,βp、βp+1、kp、kp+1表示查表值中对应tp、tp+1的温度系数值β和补偿值k;

13、(10)在不同温度段,用查表分别找到的相应的温度系数值以及补偿值对曲线公式进行微调,由此得到更为准确的rtc校正数据。

14、实际中晶振与温度的变化曲线并不是理想的抛物线且不对称,所以以二次曲线单温度点校准是不够准确的。本技术中t0士15℃作为分界线,将原本一条抛物线分为三部分,分别为低温段曲线、常温段曲线、高温段曲线,将温度系数值分为低温系数值βl、常温系数值βn和高温系数值βh,然后分别在低温段、常温段、高温段上以3点为一组,取多组温度值,获得各温度值下的温度系数值、补偿值与温度值,其中常温段的温度系数值直接采用出厂参数,作为查表数据存入于电表中,电表正常运行时,可以根据温度查找相应温度下的温度系数值和补偿值,从而进行精准校正。

15、本发明的有益效果:本发明将晶振与温度的变化曲线分为三段,对多个温度点进行校正,并且作为查表值存入于电表中,本发明直接利用单片机常规资源进行时钟误差校正,控制了电表成本,用查表方式实现温度宽范围内高精度的时钟误差修正,并且提高了高低温下电表时钟精度,此方式适用于对实际中晶振与温度的变化曲线并不理想的抛物线进行修正,本发明校正方式更加精确。

16、实施方式

17、下面根据具体实施方式对本发明进行进一步阐述。

18、一种智能电表rtc校正方法,根据晶振的频率温度特性曲线公式y=β(t-t0)2+s0,将以顶点温度t0士15℃作为分界线,将原本一条抛物线分为三部分,分别为低温段曲线、常温段曲线、高温段曲线,分别获取低温系数值βl、常温系数值βn和高温系数值βh,并对s0进行微调补偿,对曲线公式y=β(t-t0)2+s0进行修正。公式中,t为实际工作温度,y为该实际工作温度下的时钟误差,β为温度系数值,t0为顶点温度,s0为补偿基准值,β、t0为晶体厂家提供的出厂参数,β一般为-0.035士0.0012ppm, t0一般为23℃士2℃,本实施例中t0为25℃,故10℃、40℃分别为分界线。

19、具体步骤如下。

20、(1)取一只电表,时钟无任何补偿情况下,在恒温箱中t0温度25℃下测量时钟误差,从而取得顶点温度t0的时钟误差,即为补偿基准值s0。

21、(2)在时钟已补偿s0的基础上,在恒温箱低温段-25℃温度下测量得到低温时钟误差,根据曲线公式y=β(t-t0)2+s0,获取低温段的温度系数值,即为低温系数值βl。

22、(3)直接将常温系数值βn设为晶体厂家提供的出厂参数。此处,常温段的温度系数值直接采用出厂参数。

23、(4)在时钟已补偿s0的基础上,在恒温箱高温段60℃温度下测量得到高温时钟误差,根据曲线公式y=β(t-t0)2+s0,获取高温段的温度系数值,即为高温系数值βh。

24、(5)恒温箱分别调至-27℃、-25℃、-23℃低温段温度下,对曲线公式进行微调。在-27℃温度下,通过曲线公式y=β(t-t0)2+s0获取时钟误差,在计算时,β为βl,即步骤(2)中获得的值,t为-27℃,s0为步骤(1)中求得的s0,将公式获得的时钟误差与实际测量得到的时钟误差之间的差值作为补偿值kl0。同理,分别获得-25℃、-23℃温度下补偿值kl1、kl2,将这低温系数值βl、3个温度值t与补偿值kl0、kl1、kl2保存作为查表值。由于βl本身就是在-25℃时计算得出,所以此处kl1应该为0。

25、(6)恒温箱调至23℃、25℃、27℃ 常温段温度下,对曲线公式进行微调。在23℃温度下,通过曲线公式y=β(t-t0)2+s0获取时钟误差,在计算时,β为βn即为出厂参数,t为23℃,s0为步骤(1)中取得的s0,将公式获得的时钟误差与实际测量得到的时钟误差之间的差值作为补偿值kn0。同理获取25℃、27℃ 温度下各自补偿值kn1、kn2,将这常温系数值βn、三个温度值t与补偿值kn0、kn1、kn2保存作为查表值。

26、(7)恒温箱调至58℃、60℃、62℃高温段温度下,对曲线公式进行微调。在58℃温度下,通过公式y=β(t-t0)2+s0获取时钟误差,在计算时,β为βh,t为58℃,s0为步骤(1)中取得的s0,将公式获得的时钟误差与实际测量得到的时钟误差之间的差值作为补偿值kh0。同理,分别获得60℃、62℃温度下补偿值kh1 、kh2,将这高温系数值βh、3个温度值t与补偿值kh0、kh1 、kh2保存作为查表值。由于βh本身是在60℃下获得,故kh1应该为0。

27、(8)重复步骤(2)~(7)分别在低温段、常温段、高温段以3个点为一组取点直至满足精度需求,至少共取9个点,或可18个点甚至更多,分别获得相应的温度系数值β、补偿值k与温度值t,将各个温度系数值β、补偿值k和温度值t作为查表值存入电表。

28、(9)电表正常运行时,根据温度值在查表值中查找相应温度值下的温度系数值β以及补偿值k,如果温度值不在查表值内,则通过计算公式计算得出温度系数值和补偿值,温度系数值计算公式为β=(βp+1-βp)×(t-tp)/(tp+1-tp)+βp,补偿值计算公式为k=(kp+1-kp)×(t-tp)/(tp+1-tp)+kp,其中t表示实际工作温度,tp、tp+1表示查表值中与t相邻的两个温度,βp、βp+1、kp、kp+1表示查表值中对应tp、tp+1的温度系数值β和补偿值k。即如果温度值不在表中,则温度系数值β以及补偿值k通过相同的计算方法从相邻数值中计算得出。例如当前温度为-24℃,补偿值k=(kp+1-kp)×(t-tp)/(tp+1-tp)+kp=(kp+1-kp) ×(-24℃-(-25℃))/ (-23℃- (-25℃))+kp=(kp+1-kp)×( 1/2)+ kp,kp、kp+1分别为温度-25℃、-23℃时的补偿值。

29、(10)在不同温度段,用查表分别找到的相应的温度系数值以及补偿值对曲线公式进行微调,由此得到更为准确的rtc校正数据。即根据温度,分别直接获得温度系数值以及补偿值,或者通过计算公式得出温度系数值和补偿值,然后将曲线公式中y=β(t-t0)2+s0中的β设为查表获得的温度系数值,将s0再加上查表获得的补偿值,由此得出精确校正数据进行校正。

30、实际中晶振与温度的变化曲线并不是理想的抛物线且不对称,所以以二次曲线单温度点校准是不够准确的。本技术中将t0士15℃作为分界线,将原本一条抛物线分为三部分,分别为低温段曲线、常温段曲线、高温段曲线,然后分别在低温段、常温段、高温段上以3点为一组取点,先分别获取中间点的温度系数值,低温系数值βl、常温系数值βn和高温系数值βh,然后在同组3点内采用相同温度系数值,再对s0进行微调,即将通过公式取得的时钟误差与实际测得的时钟误差,两者的差值作为补偿值,将相应温度系数值、补偿值、温度值作为查表数据存入于电表中。取9个点后,为了获得更大的精度,也可以再循环以3个点为一组取点获得该组的温度系数值和补偿值,并存入表中,比如18个点,27个点。当然,在常温段,温度系数值β可以直接采用出厂参数。在本发明中,采用了3点为一组,间隔为2℃也是为了对应国网测试。该查表数据适合于同一批次的内置rtc。

31、电表正常运行时,可以根据温度查找相应温度下的温度系数值和补偿值,从而进行精准校正。

32、本发明将晶振与温度的变化曲线分为三段,对多个温度点进行校正,并且作为查表值存入于电表中,本发明直接利用单片机常规资源进行时钟误差校正,控制了电表成本,用查表方式实现温度宽范围内高精度的时钟误差修正,并且提高了高低温下电表时钟精度,此方式适用于对实际中晶振与温度的变化曲线并不理想的抛物线进行修正,本发明校正方式更加精确。

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