CN101498741A - 一种多功能电能表的温度补偿方法 - Google Patents

一种多功能电能表的温度补偿方法 Download PDF

Info

Publication number
CN101498741A
CN101498741A CNA2008102097792A CN200810209779A CN101498741A CN 101498741 A CN101498741 A CN 101498741A CN A2008102097792 A CNA2008102097792 A CN A2008102097792A CN 200810209779 A CN200810209779 A CN 200810209779A CN 101498741 A CN101498741 A CN 101498741A
Authority
CN
China
Prior art keywords
temperature
electric energy
energy meter
multifunctional electric
temperature compensation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008102097792A
Other languages
English (en)
Inventor
于高波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HAIERBIN ELECTRIC INSTRUMENT INSTITUTE
Original Assignee
HAIERBIN ELECTRIC INSTRUMENT INSTITUTE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HAIERBIN ELECTRIC INSTRUMENT INSTITUTE filed Critical HAIERBIN ELECTRIC INSTRUMENT INSTITUTE
Priority to CNA2008102097792A priority Critical patent/CN101498741A/zh
Publication of CN101498741A publication Critical patent/CN101498741A/zh
Pending legal-status Critical Current

Links

Abstract

一种多功能电能表的温度补偿方法,本发明涉及一种电能信息监测装置的温度补偿方法,它克服了现有技术中只对多功能电能表局部进行温度补偿的缺陷,全面解决了多功能电能表温度补偿的问题,提高了电能表的精度。所述的温度数据采集电路由数字式温度测量芯片、处理器MCU和外围辅助电路组成。温度测量芯片将采集到的温度数据,根据1-Wire总线协议把数字化的温度数据通过I/O口传给处理器MCU,处理器MCU应用温度补偿算法对多功能电能表测量的电力数据进行针对性的补偿。本发明能够保证多功能电能表在恶劣温度条件下的测量精度,具有电路设计简洁、温度补偿全面的特点。

Description

一种多功能电能表的温度补偿方法
技术领域
本发明涉及一种电能信息监测装置,特别涉及--种多功能电能表的温度补 偿方法。
背景技术
电能表精度的高低直接关系到用户的切身利益,尤其是用电量大的关键部 门。现有的高精度多功能电度表,在恶劣的温度条件下,尤其是在北方寒冷的 天气环境下,组成电能表的各个功能块,甚至元器件都受温度变化的影响,对
电能表的测量精度产生不同程度的影响。专利92203323. 4提出的互感器钕铁硼 阻尼体温度补偿法仅是对互感器进行了温度补偿,而对电能表的其他部件没有 提出温度补偿的解决方法,不能保证电能表整体的测量精度;采用热敏电阻对 晶振进行温度补偿的方法只是保证了晶振的精度,对于电能表的信号采集、信 号传输、运算处理等其他功能块的温度补偿没有进行考虑。所以上述方法都不 能全面解决温度变化对多功能电能表测量精度的影响,本发明为了克服上述问 题,为了从多功能电能表的整体角度解决多功能电能表的温度补偿问题,提供 了一种多功能电能表的温度补偿方法,从而提高了多功能电能表在温度影响下 的测量精度,满足了用户的需求。
发明内容
本发明为了克服现有技术的不足之处,为了全面保证多功能电能表的测量 精度,提供了一种多功能电能表的温度补偿方法。所述的温度数据采集电路由 数字式温度测量芯片、处理器MCU和外围辅助电路组成。温度测量芯片将采集 到的温度数据,根据l-Wire总线协议把数字化的温度数据通过I/O 口传给处理 器MCU,处理器MCU应用温度补偿算法对多功能电能表测量的电力数据进行针对 性的补偿。
所述的温度测量芯片采用数字温度测量芯片DS18B20,所述的处理器MCU 采用PIC18F6621,所述的温度补偿算法采用MPLAB8. 0的C语言环境编译。
与现有技术相比,本发明的有益效果是采用1-Wire总线式芯片DS18B20更 节省MCU资源;仅用一个芯片就实现了数字化的温度采集,电子线路更简洁可 靠,算法从整体性考虑更加全面完善。
附图说明
图l是系统整体原理框图;图2是计量功能块原理图;图3是前端信号调
3理功能块原理图;图4是MCU和DS18B20原理图。 具体实施方式
参照附图,本具体实施方式如下-
所述的温度数据采集电路由数字式温度测量芯片、处理器MCU和外围辅助 电路组成。温度测量芯片将采集到的温度数据,根据1-Wire总线协议把数字化 的温度数据通过I/O 口传给处理器MCU,处理器MCU应用温度补偿算法对多功能 电能表测量的电力数据进行针对性的补偿。
所述的温度测量芯片采用数字温度测量芯片DS18B20,所述的处理器MCU 采用PIC18F6621,所述的温度补偿算法采用MPLAB8.0的C语言环境编译。 DS18B20是单总线数字温度计,只需占用单片机的一个I/O 口位,其内部自带 A/D转换器,通过内部的温度采集、A/D转换等一系列过程,将温度数据以1-Wire 总线协议的规定格式转换并输出,处理器MCU可将该数据还原为温度值,其分 辨率可以达到12位;数字温度测量芯片DS18B20的测温范围为一55'C〜+ 125 °C ,固有测温分辨率为0. 5°C 。
多功能电能表工作时,因为有表壳保护,温度变化波动不是太快,所以为 了节省MCU资源,每隔五分钟向温度芯片索取一次温度数据即可。
如图1所示,多功能电能表温度补偿的工作流程如下:
多功能电能表上电工作后,处理器MCU每隔五分钟向温度芯片索取一次温 度数据,数字温度测量芯片DS18B20通过I/O 口根据1-Wire总线协议把数字化 的温度数据传给处理器MCU, MCU判断温度数据,进行补偿数据的选择。
如图2、图3所示,电力信号经前端信号处理采集电路的调制后,传递给以 ATT7022B为核心的电力计量电路,经计量芯片处理,转换为数字信号,等待MCU 索取数据。
如图4所示,数字温度测量芯片DS18B20采用了外部供电模式,外部供电 模式就是在数字温度测量芯片DS18B20的电源引脚VDD上外接一个5V电源,且 I/O 口线上不再需要接一个上拉的M0SFET,进行温度转换时MCU不再需要将 DS18B20的DQ引脚上拉到高电平,MCU通过第64脚I/O 口 RE2向温度测量芯片 DS18B20发送请求,DS18B20接收到请求,向MCU发送温度数据。
MCU根据接收到的系统温度数据,进行判断,是否进行温度补偿,如果需要 就根据温度的具体数值,用温度补偿算法来补偿采集的电量数据;如不需要, 就按原有的计量算法,该计算是由处理器MCU进行计算的。
数字温度测量芯片DS18B20内部有8个字节的暂存存储器,其中头两个字
4节表示测得的温度读数,数据格式如下表所示:
<table>table see original document page 5</column></row> <table>
a温度寄存器高8位 <table>table see original document page 5</column></row> <table> b温度寄存器低8位
当测得温度为正时,s二0;当测得温度为负时,s:l;其余低位以二进制补码 形式表示。
当DS18B20配置为12位分辨率时,温度寄存器中的所有位都是有效数据, 能分辨的最小温度值为0. 0625°C ;当DS18B20配置为n位分辨率时,温度寄存器 中的位0无效,能分辨的最小温度值为0. 125°C;当DS18B20配置为10位分辨 率时,温度寄存器中的位0和位1无效,能分辨的最小温度值为0.25°C;当 Dsl8B20配置为9位分辨率时,温度寄存器中的位O、位1和位2无效,能分辨 的最小温度值为0. 5。C。表1给出了 DS18B20在12位分辨率时温度/数据的对应 关系。
表l DS18B20温度/数据的对应关系
温度(/c) 输出的二进制码 对应的十六进制码
+125.00 0000 0U1醒0000 07D0H
+ 85,00 0000 0101 0101 0000 0550H
+ 25.06 0000 0001 !001 , 0191H
+10,13 0000 0000 1010 , 00A2H
+0.50 0000 0000 0000讓 0008H
0.00 oopo 0000 0000 0000 OOOOH
-0.50 im im iiii讓 FFF8H
-10. B ini nil oioi "io FF5EH
-25.06 im麵oiio i出 FF6FH
-55.00 im画薩oooo FC90H
从表l中可以看出,根据DS18B20输出的二进制码及其配置的分辨率,经 过简单的计算就能得到测量的温度值。
程序部分:
/* Copyright (c) 2008,Harbin Research Institute of Electrical Instruments
* All rights Reserved.
* File Name: temperature—compensation.c
5* Dependencies: define.h/math.h/picl8.h
* Processor: PIC18F6621
* File ID: HBSsoftware081101 *Date: 01\11\2008
* Abstract: temperature compensation of the Multi一Fuction Meter
* Current Version: vl .0
* Author: YuGaobo*/
#include <picl8.h> #include <math.h> 新nclude <define.h> ^include <absacc.h> #define uchar unsigned char #define uint unsigned int
#define SETTEMP PI 〃定义PI 口为设定温皮
弁define SELECT P2 〃定义P2口为选择信号 sbit RE2 = P3A4; 〃定义ds 18b20通信端口
int tempi ,temp2,ID=0,set=0,blink;
int tempi =27,xs=5; 〃定义整数和小数 unsigned int max,mid,min,flag; /*-50° C~50。 C, 4° C/eachtime*/
/*D—Ua,D一Ub,D—Uc,D一Ia,D一Ib,D一lc,D—Uab,D—Ubc,D一Uca,D—【n,D—F,D—PHa,D—PHb,D一PHc,D一PH,D— Pa,D一Pb,D一Pc,D一P,D—Q4D一Qb,D—Qc,D—Q*/ const unsigned char Comp—tab[25][23]={
0x25,0x24,0x25,0x23,0x23,0x24,0x22,0x22,0x21 ,0x23,0x23,0x22,0x22,0x21 ,0x23,0x23,0x22,0x22,0x21,0x23,0x 23,0x22,0x22,〃-50° C
0x20,0xl f,0xl f,0x〗e,0x20,0x22,0x21 ,0x22,0x22,0x21 ,0x23,0x 1 f,0x1 e,0x20,0x22,0x 1 f'0x】e,0x20,0x22,0x21,0x2 2,0x21,0x23 ,〃-46° C
08,0x09,0x10,〃460 C
Oxl 1,0xl2,0)d 1,0xl3,0xl3,0xl4,0xl 1,0xl2,0xl 1,0x13,0x11,0x12,0x11,0xl3,0xl3,0xl4,0xll,0xl2,0xU'0xD,0x 13,Oxl4,0xl】,〃50° C
J; //根据该类多功能电能表试验所得补偿数据
6void ReadTemperature(void); 〃读取ds 18b20当前温度
int temperature—compensation—signed long Temper): 〃温度数据处理于函类女
void Ink—DS18B20(void); void delay—18B20(unsigned int i); unsigned char ReadOneChar(void); void WriteOneChar(uchar dat); void delay—18B20(unsigned int i); Ua=Ua*Comp—tab[TC][0];
〃dsl8b20初始化函数 〃ds脆0延迟于函数 〃dsl8b20读一个字节 〃dsl8b20 ^—个字节
〃上下限初始化
Q=Q*Comp_tab[TC][22]; 〃各项测M数据的温度补偿 int temperature—compensation(unsigned long Temper)
〃温度补偿的于函数,需要输入无符号长整型的温度数据
int main(void)
unsigned long Temper = 0; max=30; min=20; while①
{ mid=(max+min)/2;
motor();
—();
if(〖D=,
displaytemp();
temperature_compensation (); Ua=Ua*Comp—tab[TC][O]; Ub=Ub*Comp_tab[TC][ 1 ]; Uc=Uc*Comp—tab[TC][2]; la=Ia*Comp_tab[TC][3〗; Ib=fb*Comp—tab[TC][4]; Ic=lc*Comp_tab[TC][5]; Uab=Uab*Comp—tab[TC] [6]; Ubc=Ubc*Comp_tab[TC〗[7];
7Uca=Uca*Comp—tab[TC][8]; ln=ln*Comp—tab[TC][9]; F=F*Comp—tab[TC][10]; PHa=PHa*Comp—tab[TC][ 11 ]; PHb=PHb*Comp—tab[TC][12]; PHc=PHc*Comp—tab[TC][13]; PH=PH*Comp—tab[TC][14]; Pa=Pa*Comp—tab[TC][15]; Pb=Pb*Comp—tab[TC] [ 16]; Pc=Pc*Comp—tab[TC][ 17]; P=P*Comp—tab[TC][18]; Qa=Qa*Comp—tab[TC] [19]; Qb=Qb*Comp—tab[TC][20]; Qc=Qc*Comp—tab[TC][21]; Q=Q*Comp—tab[TC][22];
int temperature—compensation(unsigned long Temper)
unsigned int TC=0; 〃定义整数W参数TC=0
Temper=Temper+50; 〃温度加50,闪为温度测輦范围为-50° C至50° C,而温度
补偿数据二维数组的组标号最低是从零开始,所以为了对
照补偿数组,把温度提为止值。
Temper=Temper/4;
〃温度补偿每4° C 一组补偿数据
TC=ceil(Temper);
〃作为标号进行取整运算
return TC;
〃TC数值返冋主函数
/*********延时>1<*1|115,*' *12.00001112>11.0596有误差********/
void delayms(int ms)
uchar i;
while(ms—)for(i=250;i>0;i--);
/***********ds18b20延迟子凼数(晶振11.0596MHz ) *******/ void delay—18B20(unsigned int i)
while(i--);
Z**********dsl8b20初始化函数**********************/ void fnit一DS18B20(void)
unsigned char x=0; DQ = 1;
delayj犯20(8); DQ = 0;
delay一18B20(80); DQ= 1;
delayj 8B20(4); x=DQ;
delayj 8B20(20);
〃DQ复位ds】8b20通信端口 〃稍做延时 〃MCU将DQ拉低 〃精确延时人丁. 480us 〃拉高总线
Z/稍做延时后如果!^0则初始化成功x-l则初始化火败
Z***********dsl8b20 '虔—t^字 unsigned char ReadOneChar(void)
uchar i=0; uchar dat = 0; for (i=8;i>0;i—)
DQ = 0; dat»=l; DQ = 1; if(DQ) dat|=0x80;
〃高屯平拉成低电平时读周期开始 //给脉冲信号delayJ8B20(4);
ret,(dat);
Z*************dsl8b2G "~"个字 void WriteOneChar(uchar dat)
unsigned char i=0; for (i=8; i>0; i響-)
DQ = 0;
DQ = dat&0x01; delayj 8B20(5); DQ=1; dat》=l;
〃从高屯平拉至低屯平时,巧周期的开始 〃数据的最低位先^入 〃60us到120us延时
〃从最低位到最高位传入
"氺水承""氺""'虔取dsl8b20 ^前温度****沐*******/ void ReadTemperature(void)
unsigned char a=0; unsigned char b=0; unsigned char t=0; Init一DS18B20(); WriteOneChar(OxCC); 髓eOneChar(0x44); delay—18B20( 100); 1nit一DS18B20(); WriteOneChar(OxCC); WriteOneChar(OxBE); dday」8B20(100); a=ReadOneChar(); b=ReadOneChar();
//跳过读序号列号的操作 //启动温度转换 〃 this message is wery important
〃跳过读序号列号的操作
〃读取温度寄存器?(共可读9个寄存器)前两个就是温度
〃'虔取温度值低位 • 〃读取温度值高位temp 1 =b<<4; 〃高8位中后二位数的值
tempi+=(a&0xfD)>>4; //低8位中的高4位值加上高8位中后二位数的值 tempi
是温整数值
temp2=a&0x0f; 〃小数的值

Claims (4)

1、一种多功能电能表的温度补偿方法,其特征在于所述的温度数据采集电路由数字式温度测量芯片、处理器MCU和外围辅助电路组成;温度测量芯片将采集到的温度数据,根据1-Wire总线协议把数字化的温度数据通过I/O口传给处理器MCU,处理器MCU应用温度补偿算法对多功能电能表测量的电力数据进行针对性的补偿;
2、 根据权利要求1所述的一种多功能电能表的温度补偿方法, 其特征在于所述的温度测量芯片采用数字温度测量芯片DS18B20;
3、 根据权利要求1所述的一种多功能电能表的温度补偿方法, 其特征在于处理器MCU采用PIC18F6621;
4、 根据权利要求1所述的一种多功能电能表的温度补偿方法, 其特征在于所述温度补偿程序采用MPLAB IDE v8. 15编译。
CNA2008102097792A 2008-12-25 2008-12-25 一种多功能电能表的温度补偿方法 Pending CN101498741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008102097792A CN101498741A (zh) 2008-12-25 2008-12-25 一种多功能电能表的温度补偿方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008102097792A CN101498741A (zh) 2008-12-25 2008-12-25 一种多功能电能表的温度补偿方法

Publications (1)

Publication Number Publication Date
CN101498741A true CN101498741A (zh) 2009-08-05

Family

ID=40945904

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008102097792A Pending CN101498741A (zh) 2008-12-25 2008-12-25 一种多功能电能表的温度补偿方法

Country Status (1)

Country Link
CN (1) CN101498741A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662107A (zh) * 2012-05-18 2012-09-12 威胜集团有限公司 基于soc芯片电表的mcu内置基准温度补偿方法
CN103743933A (zh) * 2013-12-31 2014-04-23 江苏林洋电子股份有限公司 一种单相电能表对自热影响的补偿算法及单相电能表
CN109799473A (zh) * 2019-02-26 2019-05-24 西门子电力自动化有限公司 用于电力系统的测量数据校准方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662107A (zh) * 2012-05-18 2012-09-12 威胜集团有限公司 基于soc芯片电表的mcu内置基准温度补偿方法
CN102662107B (zh) * 2012-05-18 2014-07-09 威胜集团有限公司 基于soc芯片电表的mcu内置基准温度补偿方法
CN103743933A (zh) * 2013-12-31 2014-04-23 江苏林洋电子股份有限公司 一种单相电能表对自热影响的补偿算法及单相电能表
CN103743933B (zh) * 2013-12-31 2016-01-27 江苏林洋电子股份有限公司 一种单相电能表对自热影响的补偿方法
CN109799473A (zh) * 2019-02-26 2019-05-24 西门子电力自动化有限公司 用于电力系统的测量数据校准方法和装置

Similar Documents

Publication Publication Date Title
Liu et al. A temperature measurement system based on pt100
CN200993665Y (zh) 小型数字化比相测量装置
CN102200544B (zh) 可实现双向计量的智能电表的总电量累加方法
CN101498741A (zh) 一种多功能电能表的温度补偿方法
CN204515006U (zh) 一种八路数字电压采集系统
CN201413350Y (zh) 一种多功能电能表的温度补偿模块
WO2021023275A1 (zh) 物理不可复制功能标签产生电路及方法
CN103185645B (zh) 应用于风机控制系统的高精度温度检测装置及检测方法
CN203433041U (zh) 一种带通讯功能的电能表
CN103869275A (zh) 一种单相智能电能表的计量精度校准方法
CN103634009A (zh) 提高模拟量采集装置模数转换精度的方法
CN203337731U (zh) 三相电能表
CN202305666U (zh) 一种直流电能表
Hui-feng et al. Design of a simple DC digital voltmeter
CN206075274U (zh) 一种用于电力能源系统的soc芯片
CN204064497U (zh) 基于msp430f149的高精度测温装置
CN201091067Y (zh) 参数校正系统
CN105424212A (zh) 一种基于阻值比较法的高精度测温系统
CN202013246U (zh) 改进结构的温度记录仪器
CN203350357U (zh) 三相智能电能表
CN201984307U (zh) 基于ARM Cortex M0的数字时差转化MCU芯片
CN203132729U (zh) 一种电子标签温度传感器
CN106201986A (zh) 一种用于电力能源系统的soc芯片
CN201497594U (zh) 一种高精度铂电阻测温装置
CN201689086U (zh) 多参数水质分析仪

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090805