发明内容
本发明的目的是:为了解决传统数字温度补偿***精度不高的问题,本发明提供一种数字温度补偿***及方法。
本发明的技术方案是:一种数字温度补偿***,所述温度补偿***由恒流源1、压力传感模块3、压力信号放大器5、温度信号放大器8、多路复用开关9、A/D转换模块6和处理器7组成,压力传感模块3由压力传感器2和温度补偿电阻4组成,所述温度补偿电阻4连接于压力传感器2的激励端;恒流源1两端加载于压力传感模块3的激励端,所述温度信号放大器8连接于压力传感模块3的激励端,压力信号放大器5连接于压力传感模块3的信号输出端,所述压力信号放大器5及温度信号放大器8经过多路复用开关9连接于A/D转换模块6,A/D转换模块6连接于处理器7;
恒流源1为压力传感器2提供激励电流,温度补偿电阻2对压力传感器2进行温度补偿,压力传感模块3检测压力和温度信号并转化为电压信号,压力信号放大器5和温度信号放大器8将压力、温度信号放大,A/D转换模块6将模拟信号转化为数字信号送入处理器7中,处理器7对信号进行处理。
所述恒流源1由基准电压源10、OP400芯片11组成。
一种数字温度补偿方法,利用到上述一种数字温度补偿***,包括以下步骤:
步骤一:***的标定:同时建立标定值数据表及标定二进制值数据表:
建立标定值数据表:
(1)确定标定温度的范围T0~Tn,Tn为标定温度点,温度间隔ΔT,Tn=T0+ΔT*(n-1),温度范围的确定需要结合数字温度补偿***的耐温性及使用环境,优选的是-20~60℃,温度间隔ΔT根据***的分辨率和精度要求确定,优选的是1℃≤ΔT≤10℃;
(2)确定标定压力范围P0~Pm,Pm为标定压力点,压力间隔ΔP,Pm=P0+ΔP*(n-1),压力范围的确定根据所选压力传感器的量程确定,压力间隔ΔP根据***精度要求确定;
(3)建立标定值数据表:
T0 |
T1 |
T2 |
T3 |
Ti |
Tn |
P0 |
P0 |
P0 |
P0 |
P0 |
P0 |
P1 |
P1 |
P1 |
P1 |
P1 |
P1 |
P2 |
P2 |
P2 |
P2 |
P2 |
P2 |
Pj |
…… |
…… |
…… |
Pj |
…… |
Pm |
Pm |
Pm |
Pm |
Pm |
Pm |
建立标定二进制值数据表:
根据实际采集得到的温度的标定二进制值TCn及压力的标定二进制值PCn·m建立标定二进制值数据表
TC0 |
TC1 |
TC2 |
TC3 |
TCi |
TCn |
PC0·0 |
PC1·0 |
PC2·0 |
PC3·0 |
…… |
PCn·0 |
PC0·1 |
PC1·1 |
PC2·1 |
PC3·1 |
…… |
PCn·1 |
PC0·2 |
PC1·2 |
PC2·2 |
PC3·2 |
…… |
PCn·2 |
PC0·j |
…… |
…… |
…… |
PCi·j |
…… |
PC0·m |
PC1·m |
PC2·m |
PC3·m |
…… |
PCn·m |
其中,TCn是标定温度点Tn对应的温度二进制值,PCn·m为标定温度点Tn下的标定压力点Pm对应的压力二进制值;
步骤二:***温度标定结果的存储:
将标定值数据表及标定二进制值数据表存储到数字温度补偿***的处理器[7]内部的FLASH存储器中;
步骤三:测量温度的补偿:
***测量得到测量温度二进制值TC及测量压力二进制值PC,对应的测量温度及测量压力分别为T、P;
(1)当TC是标定温度点时,也即在标定二进制值数据表中存在TCi点等于TC,则Ti即为T,查标定二进制值数据表:
若标定二进制值数据表中有PCi·j等于PC,则P即为标定值数据表中的Pj;
若标定二进制值数据表中没有PCi·j等于PC,则查找与PC数值最接近的两个值,PCi·k及PCi·(k+1),且PCi·k≤PC≤PCi·(k+1),PCi·k及PCi·(k+1)对应在标定值数据表的标定压力点分别为Pk和P(k+1),则利用公式(1)计算P:
若PC数值超出标定二进制值数据表,则如果PC小于标定二进制值数据表中的最小值,则该最小值对应在标定值数据表上的压力值即为P,如果PC大于标定二进制值数据表中的最大值,则该最大值对应在标定值数据表上的压力值即为P;
(2)当TC不是标定温度点时,也即在标定二进制值数据表中不存在TCi点等于TC;则查找与TC数值最接近的两个值,TCk及TC(k+1),且TCk≤TC≤TC(k+1)
根据公式(1),计算出PC在TCk温度下的Pl和PC在TC(k+1)温度下的P(l+1),则
(3)当TC数值超出标定二进制值数据表,则如果TC小于标定二进制值数据表中的最小值,则该最小值对应在标定值数据表上的温度值即为T,如果TC大于标定二进制值数据表中的最大值,则该最大值对应在标定值数据表上的压力值即为T,则利用公式(1)算出P。
本发明的优点是:本发明一种数字温度补偿***通过压力传感模块的设计,对压力传感器增加温度补偿电阻将其温度特性放大,实现了自动温度补偿,既便于安装和维护,又实现既是压力传感器又是温度传感器的功能。本发明一种数字温度补偿方法,利用了压力传感模块的温度转换效应来做作为温度补偿基础,实现任意温度、压力条件下的自动温度补偿,使其具有更高的测试精度,提高了压力测量精度,满量程误差小于±0.02%。
具体实施方式
下面结合附图并通过具体实施方式对本发明作进一步的详细说明,请参阅图1及图2。
请参阅图1,一种数字温度补偿***,所述温度补偿***由恒流源1、压力传感模块3、压力信号放大器5、温度信号放大器8、多路复用开关9、A/D转换模块6和处理器7组成,其特征在于,压力传感模块3由压力传感器2和温度补偿电阻4组成,所述温度补偿电阻2连接于压力传感器2的激励端;恒流源1两端加载于压力传感模块3的激励端,所述温度信号放大器8连接于压力传感模块3的激励端,压力信号放大器5连接于压力传感模块3的信号输出端,所述压力信号放大器5及温度信号放大器8经过多路复用开关9连接于A/D转换模块6,A/D转换模块6连接于处理器7;
恒流源1为压力传感器2提供激励电流,温度补偿电阻2对压力传感器2进行温度补偿,压力传感模块3检测压力和温度信号并转化为电压信号,压力信号放大器5和温度信号放大器8压力、温度信号放大,A/D转换模块6将模拟信号转化为数字信号送入处理器7中,处理器7对信号进行处理。
优选地,所述恒流源1由基准电压源10、OP400芯片11组成。
本发明一种数字温度补偿***在硬件设计上利用了压力传感器2的温度转换特性,在传感器的激励端加入温度补偿电阻4。加入温度补偿电阻4后,压力传感器2内部的电桥电阻虽然不会有太大变化,但是整个激励端的阻抗随温度变化会有明显的变化。由于电压=电流×电阻,所以此时激励电压就随温度变化而变化,此时就可以将激励电压当做温度相关参数来处理,省去了传统的热敏电阻测温度。此时的压力传感器模块3比压力传感器2对温度更加敏感,使得压力传感器模块3既作为压力传感器又作为温度传感器,这样测量的温度值作为温度补偿值比起传统方法更为准确。再采用温度标定实现更大范围的精度提高,同时此方法不用另外搭建温度采集***,因此硬件更加简单。
实例:
一种数字温度补偿***,压力传感器2选择±30kPa量程压力传感器,所选择压力传感器2所需激励电流为1.5mA。本***恒流源1由基准电压源10、OP400芯片11组成,其中,基准电压源10采用MAX6225AESA芯片,与OP400芯片11连接,为OP400芯片11提供2.5V基准电压;OP400芯片11再与压力传感器模块3连接,并将基准电压转换为基准电流为压力传感器模块3提供1.5mA激励电流。电流转换电阻R为1.6667KΩ。压力信号放大器5采用AD620实现1∶100的差分输出。温度信号放大器8采用AD620实现1∶1的差分输出。多路复用开关9采用MAX307实现温度值和压力值的通道选择。A/D转换模块6采用MAX1132芯片将模拟信号转换为数字信号。处理器7采用EM9160处理器,实现数据的采集、存储以及***的智能管理。温度补偿电阻4的选择较为重要,具体如述所示:
在电阻的选取上,压力传感器模块3的激励端输出电压(即,温度信号电压)不能超过产生激励电流OP400的供电电压15V和MAX1132芯片的压摆率12V,而温度信号放大器8的放大倍数为1,综合考虑上述条件则有:
(RS+Rt)·1.5mV<12V
其中,Rs为压力传感器2激励端内阻,阻值为3.6KΩ左右。
则,Rt<4.4KΩ
另外,选用温漂为100ppm电阻(即,温度每变化1摄氏度,阻值变化百万分之几)。
温漂系数RT=ΔT·Rt
ΔV=RT·I
其中,ΔT为温度变化量,Rt为所选温度补偿电阻4的阻值大小,ΔV电阻上电压的变化量,I为电阻上的电流值,即为激励电流值I=1.5mA。
由于***中MAX1132芯片为16位芯片,且输出电压范围为-12V~+12V,MAX1132芯片的最小分辨电压为24V/65536=0.366mV。再考虑温度信号放大器8的放大倍数为1,若要求温度变化量ΔT=1℃,输出电压变化量ΔV能被分辨,则要求该电压变化量ΔV至少要不小于0.366mV,即有
ΔV·1倍=ΔT·Rt·I·1倍≥0.366mV即,
则,Rt≥2.4KΩ
若要求温度变化量ΔT=10℃,同理可计算出Rt≥0.24KΩ。
若要求温度变化量ΔT=0.5℃,同理可计算出Rt≥4.8KΩ。
可以看出,电阻值的范围越宽温度的分辨率越低。
实际中,很难将环境温度稳定在1℃以内,又希望温度补偿***有较高的温度分辨率,综合上述分析,本***采用Rt=2.4KΩ。
利用到上述数字温度补偿***实现的数字温度补偿方法:
步骤一:***的标定:同时建立标定值数据表及标定二进制值数据表:
建立标定值数据表:
(1)确定标定温度的范围T0~Tn,n=0、1、2、3......,Tn为标定温度点,温度间隔ΔT,Tn=T0+ΔT*(n-1),由于温度范围的确定需结合数字温度补偿***的耐温性即使用环境。实例中的数字温度补偿***均采用工业级芯片耐温范围一般为-40~85℃,而该数字温度补偿***的使用环境温度一般为0~50℃,综合这两点考虑,我们再留一部分温度余量,所以温度范围选择-20~60℃,温度间隔ΔT根据***的分辨率和精度要求确定。举例中温度补偿电阻采用100ppm阻值为2.4KΩ,则有:
则ΔT≥1℃
实例中压力传感模块3在整个温度范围内的输出是非线性的,而温度间隔ΔT越小即标定温度点数越多温度曲线拟合的精度越高,但是标定温度点数标定过程和检测算法越复杂,且需要的处理器具有更大的数据存储空间和处理能力,处理器EM9160的性能和其FLASH存储器为16M。因此,优选温度间隔ΔT为5℃。
(2)确定标定压力范围P0~Pm,Pm为标定压力点,压力间隔ΔP,Pn=P0+ΔP*(n-1),压力范围的确定根据所选压力传感器的量程确定。压力传感器2选择±30kPa量程压力传感器,所以,该方法的压力范围为-30kPa~+30kPa。压力间隔ΔP根据精度要求确定。压力传感器2在整个量程范围内的输出是非线性的,而压力间隔ΔP越小即标定压力点数越多压力曲线拟合的精度越高,但是标定压力点数标定过程和检测算法越复杂,且需要的处理器具有更大的数据存储空间和处理能力,考虑到处理器EM9160的性能和其FLASH存储器为16M,因此,优选压力间隔为5kPa。
(3)建立标定值数据表如下:(下表为标定值数据表的部分内容)
T0=0 |
T1=5 |
T2=10 |
T3=15 |
…… |
T9=45 |
T10=50 |
P0=-30 |
P0=-30 |
P0=-30 |
P0=-30 |
…… |
P0=-30 |
P0=-30 |
P1=-25 |
P1=-25 |
P1=-25 |
P1=-25 |
…… |
P1=-25 |
P1=-25 |
…… |
…… |
…… |
…… |
…… |
…… |
…… |
P6=0 |
P6=0 |
P6=0 |
P6=0 |
…… |
P6=0 |
P6=0 |
P7=5 |
P7=5 |
P7=5 |
P7=5 |
…… |
P7=5 |
P7=5 |
…… |
…… |
…… |
…… |
…… |
…… |
…… |
P11=25 |
P11=25 |
P11=25 |
P11=25 |
…… |
P11=25 |
P11=25 |
P12=30 |
P12=30 |
P12=30 |
P12=30 |
…… |
P12=30 |
P12=30 |
其中温度的单位为℃,压力的单位为kPa。
建立标定二进制值数据表:
根据实际采集得到的温度的标定二进制值TCn及压力的标定二进制值PCn·m建立标定二进制值数据表如下:(下表为标定二进制值数据表的部分内容)
TC0=26134 |
TC1=26288 |
TC2=26461 |
TC3=26633 |
…… |
TC9=27717 |
TC10=27906 |
PC0·0=-24311 |
PC1·0=-24337 |
PC2·0=-24371 |
PC3·0=-24383 |
…… |
PC9·0=-24442 |
PC10·0=-24435 |
PC0·1=-20261 |
PC1·1=-20290 |
PC2·1=--20327 |
PC3·1=-20339 |
…… |
PC9·1=-20394 |
PC10·1=-20385 |
…… |
…… |
…… |
…… |
…… |
…… |
…… |
PC0·6=-51 |
PC1·6=-93 |
PC2·6=-140 |
PC3·6=-169 |
…… |
PC9·6=-210 |
PC10·6=-195 |
PC0·7=3985 |
PC1·7=3939 |
PC2·7=3889 |
PC3·7=3857 |
…… |
PC9·7=3814 |
PC10·7=3832 |
…… |
…… |
…… |
…… |
…… |
…… |
…… |
PC0·11=19995 |
PC1·11=19929 |
PC2·11=19863 |
PC3·11=19823 |
…… |
PC9·11=19766 |
PC10·11=19787 |
PC0·12=23960 |
PC1·12=23892 |
PC2·12=23822 |
PC3·12=23779 |
…… |
PC9·12=23717 |
PC10·12=23738 |
其中TC10是标定温度点T10对应的温度二进制值,PC10·12为标定温度点T10下的标定压力点P12对应的压力二进制值,其他数据依次类推。
步骤二:***温度标定结果的存储;
将步骤一中建立的标定值数据表及标定二进制值数据表存储到数字温度补偿***的EM9160处理器内部的FLASH存储器中;
步骤三:测量温度的补偿:
***测量得到的测量温度二进制值TC及测量压力二进制值PC,对应的测量温度及测量压力分别为T、P;
(1)当TC是标定温度点时,设TC=TC3=26633,查标定二进制值数据表:
若压力二进制值PC是标定压力点二进制值,设PC=PC3·7=3857,则对应到标定值数据表中,测量压力P=5kPa。
若压力二进制值PC不是标定压力点二进制值,设PC=3600,则查找到与PC最接近的两个值PC3·6=-169及PC3·7=3857,且PC3·6≤PC≤PC3·7,PC3·6及PC3·7对应在标定数值表的标定压力点P6=0kPa和P7=5kPa,计算P:
若压力二进制值PC超出标定二进制值数据表,如果PC小于二进制值数据表中的TC温度下的压力二进制值的最小值,设PC=-25000即PC≤PC3·0=-24383,P=P0=-30kPa;如果PC大于二进制值数据表中的TC温度下的压力二进制值的最大值,设PC=24000即PC≥PC3·12=23779,P=P12=30kPa。
(2)当TC不是标定温度点时,设TC=26500,PC=21000;查找与TC数值最接近的两个值TC2=26461及TC3=26633,且TC2≤TC≤TC3。
查标定二进制值数据表可知PC在TC2温度下有PC2·11≤PC≤PC2·12,其中PC2·11=19863、PC2·12=23822。PC2·11及PC2·12对应在标定数值表的标定压力点P11=25kPa和P12=30kPa.根据公式(1)计算PC在TC2温度下的压力测量值Pl:
同理,查标定二进制值数据表可知PC在TC3温度下有PC3·11≤PC≤PC3·12,其中PC3·11=19823、PC3·12=23779。PC2·11及PC2·12对应在标定数值表的标定压力点P11=25kPa和P12=30kPa.根据公式(1)计算PC在TC3温度下的压力测量值P(l+1):
根据公式(1),则有
(3)度二进制值TC超出标定二进制值数据表,如果TC小于二进制值数据表中的温度二进制值的最小值TC0=26134,设TC=25000即TC≤TC0,则认定TC=TC0=25000,T=T0=0℃;如果TC大于二进制值数据表中的温度二进制值的的最大值TC10=27906,设TC=28000即TC≥TC10,则认定TC=TC0=27906,T=T0=50℃。
此方法的实施效果:
给***一个标准压力输入值,温度补偿***自动温度补偿后会得到一个对应的测量值,将这个两组值对比结果如下表所示:
标准值(kPa) |
测量值(kPa) |
误差 |
-30 |
30.001 |
-0.002% |
-27 |
-27 |
0 |
20 |
--20.001 |
-0.002% |
标准值(kPa) |
测量值(kPa) |
误差 |
-12 |
-12.007 |
-0.012% |
-10 |
-10.002 |
-0.003% |
-3 |
-3.008 |
-0.013% |
0 |
0.001 |
0.002% |
3 |
2.993 |
-0.012% |
10 |
10 |
0.000% |
12.001 |
12 |
0.002% |
20 |
20 |
0% |
27.008 |
27 |
0.013% |
30.002 |
30 |
0.003% |
其中,标准值就是指标准压力输入值。误差是***测量压力的满量程误差,且误差
综上所述本发明利用了压力传感模块3的温度转换效应来做作为温度补偿基础;对压力传感器2增加温度补偿电阻4将其温度特性放大,实现了自动温度补偿,提高了压力测量精度,满量程误差小于±0.02%。