技术领域
本发明涉及实时时钟校准技术领域,具体涉及一种基于时域分段插值补偿提高RTC校准精度的方法。
背景技术
随着售电业务进一步的放开,现货交易必将在未来电力市场占据核心位置。智能电能表做为整个电网中的基础单元,现货交易的实现必须要通过采集智能电表的基础数据进行负荷分析,现货交易的本质是负荷在不同时间段的分割和计算。这就必然要求智能电能表具备精准的实时时钟功能。现在一般智能电能表都具备实时时钟功能,根据行业标准,要求其在工作温度范围内精度满足小于1s/day(11.5ppm),在23℃时满足小于0.5s/day(5.75ppm)。
根据行业标准要求,以0.5s/day为例,如果经过一个月后时间就会偏差15秒,从现货交易的角度讲,时间的不准确必然会影响交易的公平性。所以未来对实时时钟的精度要求必然越来越高,在一些国家实验室检测中也提出了更高的精度要求,现在最高的要求是0.02s/day。但是现在使用的一些主控制器内置RTC,如瑞萨电子的R7F0C004的最小补偿分辨率为((1/32768)*1/32)秒,也就是实际上是每32秒插入若干个时钟;将“((1/32768)*1/32)”转为ppm单位,于是补偿的步长为:((1/2^20)*(10^6),大约为0.96ppm。也即每写入一个值补偿0.08s/day。这是远远达不到0.02s/day这个精度要求的。
目前智能电能表行业都采用了主控芯片带RTC的方式做为时钟,时钟的准确度完全依赖于外置的32.768kHz晶振的曲线的一致性以及对曲线的校准,32.768kHz晶振的温度和频率偏差曲线见图1,一般晶振手册推荐的曲线为一个接近于2次曲线的公式Ferr=B*(T-T0)
发明内容
本发明目的是要在不增加硬件成本的基础上,通过一种基于时域分段插值补偿方法,实现实时时钟的高精度校准,达到0.02s/day的最高特性检测要求,以满足时钟精准度的要求。具体的技术方案如下:
一种基于时域分段插值补偿提高RTC校准精度的方法,包括如下步骤:
步骤一、数学建模:建立RTC晶振频率误差补偿值Ferr与温度T关系的n次曲线数学模型公式:
Ferr=C
其中,C
步骤二、晶振校验:通过校验设备获取RTC晶振在n+1个不同温度点时的Ferr校验值:Ferr
步骤三、建立方程:将步骤二得到的所述Ferr校验值和对应的温度点数据代入到步骤一的n次曲线数学模中,形成以所述误差补偿待定系数C
步骤四、方程求解:求解步骤三中的所述(n+1)元一次方程组,得到误差补偿待定系数C
步骤五、补偿值计算:每分钟进行多次温度测量,取平均值,代入数学模型公式后,计算得到频率误差补偿值Ferr;
步骤六、时域分段插值补偿:将所述频率误差补偿值Ferr通过时域分段插值补偿的方法进行补偿;所述时域分段插值补偿的方法如下:
(1)以RTC芯片中能够写入到补偿寄存器的最小补偿步长的ppm值作为基准补偿值f;
(2)设置一个预定长度的补偿时域周期,并将所述补偿时域周期分割为若干个时间分段,所述时间分段的时长为t;所述若干个时间分段由k1个正补偿时间分段、k2个负补偿时间分段和k3个零补偿时间分段所组成;
(3)进行分段补偿:在所述补偿时域周期的每一个正补偿时间分段内,在补偿寄存器中增加一个基准补偿值f即+f;在所述补偿时域周期的每一个负补偿时间分段内,在补偿寄存器中减去一个基准补偿值f即-f;在所述补偿时域周期的每一个零补偿时间分段内,保持补偿寄存器中的值不变即+0;通过设置适当的k1、k2和k3,实现在所述补偿时域周期内所需的频率误差补偿值Ferr。
优选的,所述n次曲线数学模型中的n≥5。
更优选的,所述n次曲线数学模型中的n≥5。
作为本发明中补偿时域周期的一种优选方案,所述补偿时域周期为60s,所述时间分段的时长为5s。(备注:其中的s即为时间单位秒,下同)
其中,在所述补偿时域周期内各所述时间分段的补偿起始点分别为第3s、第8s、第3s、第13s、第18s、第23s、第28s、第33s、第38s、第43s、第48s、第53s、第58s。
其中,所述RTC芯片中能够写入到补偿寄存器的最小补偿步长为0.96ppm,换算成补偿值为0.08s/day。
当所述补偿时域周期内的日计时误差的初始值为-0.04s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为+f,-f,+0,+0,+f,-f,+0,+0,+f,-f,+0,+0,+0,从而实现-0.02s/day的精度补偿结果。
当所述补偿时域周期内的日计时误差的初始值为-0.05s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为+f,+0,-f,+0,+f,+0,-f,+0,+f,+0,-f,+0,实现-0.01s/day的精度补偿结果。
当所述补偿时域周期内的日计时误差的初始值为+0.04s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为-f,+f,+0,+0,-f,+f,+0,+0,-f,+f,+0,+0,实现+0.02s/day的精度补偿结果。
当所述补偿时域周期内的日计时误差的初始值为+0.05s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为-f,+0,+f,+0,-f,+0,+f,+0,实现+0.01s/day的精度补偿结果。
其中,所述基准补偿值f为0.08s/day。
考虑到温度测量存在一定的误差,本身会存在0.01的偏差,所以最好根据温度变化引起的不同的日计时误差,其所述补偿时域周期的补偿起始点相互错开设置,从而把温度的影响降低到最小。
本发明的有益效果是:
第一,本发明的一种基于时域分段插值补偿提高RTC校准精度的方法,在不增加硬件成本的基础上,通过一种基于时域分段插值补偿方法,实现实时时钟的高精度校准,达到0.02s/day的最高特性检测要求,以满足时钟精准度的要求。通过这个方法极大的提高了日计时的精度,从而使时钟精度也得到了提高,从而为精准的现货交易提供公平性。
第二,本发明的一种基于时域分段插值补偿提高RTC校准精度的方法,建立了通过校验设备校正的RTC晶振频率误差补偿值Ferr与温度T关系的高次曲线数学模型公式,相比传统的Ferr计算公式其精度更高。
附图说明
图1是本发明的一种基于时域分段插值补偿提高RTC校准精度的方法的实现原理图;
图2是晶振的温度和频率偏差曲线。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1:
如图1至2所示为本发明的一种基于时域分段插值补偿提高RTC校准精度的方法的实施例,包括如下步骤:
步骤一、数学建模:建立RTC晶振频率误差补偿值Ferr与温度T关系的n次曲线数学模型公式:
Ferr=C
其中,C
步骤二、晶振校验:通过校验设备获取RTC晶振在n+1个不同温度点时的Ferr校验值:Ferr
步骤三、建立方程:将步骤二得到的所述Ferr校验值和对应的温度点数据代入到步骤一的n次曲线数学模中,形成以所述误差补偿待定系数C
步骤四、方程求解:求解步骤三中的所述(n+1)元一次方程组,得到误差补偿待定系数C
步骤五、补偿值计算:每分钟进行多次温度测量,取平均值,代入数学模型公式后,计算得到频率误差补偿值Ferr;
步骤六、时域分段插值补偿:将所述频率误差补偿值Ferr通过时域分段插值补偿的方法进行补偿;所述时域分段插值补偿的方法如下:
(1)以RTC芯片中能够写入到补偿寄存器的最小补偿步长的ppm值作为基准补偿值f;
(2)设置一个预定长度的补偿时域周期,并将所述补偿时域周期分割为若干个时间分段,所述时间分段的时长为t;所述若干个时间分段由k1个正补偿时间分段、k2个负补偿时间分段和k3个零补偿时间分段所组成;
(3)进行分段补偿:在所述补偿时域周期的每一个正补偿时间分段内,在补偿寄存器中增加一个基准补偿值f即+f;在所述补偿时域周期的每一个负补偿时间分段内,在补偿寄存器中减去一个基准补偿值f即-f;在所述补偿时域周期的每一个零补偿时间分段内,保持补偿寄存器中的值不变即+0;通过设置适当的k1、k2和k3,实现在所述补偿时域周期内所需的频率误差补偿值Ferr。
优选的,所述n次曲线数学模型中的n≥5。
更优选的,所述n次曲线数学模型中的n≥5。
作为本发明中补偿时域周期的一种优选方案,所述补偿时域周期为60s,所述时间分段的时长为5s。(备注:其中的s即为时间单位秒,下同)
其中,在所述补偿时域周期内各所述时间分段的补偿起始点分别为第3s、第8s、第3s、第13s、第18s、第23s、第28s、第33s、第38s、第43s、第48s、第53s、第58s。
其中,所述RTC芯片中能够写入到补偿寄存器的最小补偿步长为0.96ppm,换算成补偿值为0.08s/day。
当所述补偿时域周期内的日计时误差的初始值为-0.04s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为+f,-f,+0,+0,+f,-f,+0,+0,+f,-f,+0,+0,+0,从而实现-0.02s/day的精度补偿结果。
当所述补偿时域周期内的日计时误差的初始值为-0.05s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为+f,+0,-f,+0,+f,+0,-f,+0,+f,+0,-f,+0,实现-0.01s/day的精度补偿结果。
当所述补偿时域周期内的日计时误差的初始值为+0.04s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为-f,+f,+0,+0,-f,+f,+0,+0,-f,+f,+0,+0,实现+0.02s/day的精度补偿结果。
当所述补偿时域周期内的日计时误差的初始值为+0.05s/day,通过将所述补偿时域周期内从第3s开始到第58s的各时间分段的分段补偿方法依次设置为-f,+0,+f,+0,-f,+0,+f,+0,实现+0.01s/day的精度补偿结果。
其中,所述基准补偿值f为0.08s/day。
考虑到温度测量存在一定的误差,本身会存在0.01的偏差,所以最好根据温度变化引起的不同的日计时误差,其所述补偿时域周期的补偿起始点相互错开设置,从而把温度的影响降低到最小。
实施例2:
本实施例用于建立RTC晶振频率误差补偿值Ferr与温度T关系的三次曲线数学模型公式,并根据该数学模型公式进行RTC校正补偿,其可以不依赖晶振的固有B值和T0值,也即在校准中可以把温度的测量误差进行消除。
根据该数学模型公式得到补偿值后,需要把这个值写入到芯片的寄存器中,芯片就会按照这个值进行相应的频率补偿,但是有很多芯片的补偿的步长较大,达到了0.96PPM,也即为0.08s/day,想要提升到0.24ppm,也即为0.02s/day,必须使用插值算法才能进一步提升校准精度。
具体步骤如下:
1.建立多次曲线的数学模型:
Ferr=C
2.根据模型可知,如果想要得到一个完整的曲线,只需要知道(n+1)个温度点需要进行的补偿值即可,根据最小二乘法原理可知曲线越多次方,最后的结果值越精准。
3.假设我们进行四次曲线补偿,就需要获取5个温度点的补偿值,5个点选取可以为-25℃,0℃,25℃,45℃,65℃,整体算式如下:
Ferr1=C
Ferr2=C
Ferr3=C
Ferr3=C
Ferr3=C
其中,Ferr1、Ferr2、Ferr3、Ferr4,Ferr5是通过校验设备得到的日计时误差换算成写入到芯片中的寄存器值。由以上算式就可以计算出C
补偿值计算时,每分钟进行多次温度测量,取平均值,代入曲线公式后,计算出Ferr,写入到芯片的寄存器中。由此可以实现全温度范围内精准补偿。
4.通过以上的校准,由于步长是0.08s/day,最终的校准分辨率为±0.04s/day,如需在此上面再做提升,我们用60秒做为一个时间段,如果要把日计时误差校准到±0.02s/day以内,必须在时域上做插值补偿才可以,具体算法如下:我们以5s为一个时间分割点,为避开00秒这个比较特殊的时间点,选择从03秒开始,具体见下表:
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
机译: 基于精度提高的精度运动估计的帧插值装置及其方法
机译: 一种提高基于块的运动补偿精度的方法
机译: 一种提高基于块的运动补偿精度的方法