传感器温度补偿
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
传感器温度补偿算法分析
从数学上来看,压力传感器的输出u(正比于传感器的数字量/AD码)可当作相关的环境温度T和被测压力P的二元函数
Y被测压力 X 压力传感器采集的数字量/ad码
前言:
首先我们对传感器线性化之后,进行温度补偿,如图我们在T0温度下对传感器进行了线性化。
再进行一个温度点,两个压力点的标定,当标定压力为P1,此时处于A状态点,然后升温至T1,达到状态点B(XB,YB,T1),由XB和T0温度下线性化关系求得标定前的压力值为YC,得到虚拟点C(XC,YC,T0),至此完成一个压力点的标定。
然后更改标定压力为P2,到达状态点D(XD,YD,T1),可求虚拟点
E(XE,YE,T0)。
至此标定工作完成。
T0时刻为传感器标定曲线,是一条基准曲线,其他温度时的曲线存在但是不知道形式,但是其上的标定点是已知的,当处于BCED区域内任意点F(XF,YF,T)状态点时,T为温度传感器AD码,XF为压力传感器AD码,YF为此时的被测压力,如果不补偿此时显示压力为YH(也就是一个基准值),我们需要求得YF和YH之间的增量,因为YG到YH温度变化了T0-T1,作比值即得每温度变化了多少压力(变化率),而H到F变化T-T0,所以YF和YH之间的增量为 (YG-YH)/(T1–
T0)*(T-T0)。
但是G点未知,我们需要通过已知点D点B去得到G的逼近点M,同理得H的逼近点N,
正文:
设y=f(x,T)函数图像如图
分析一个温度点,两个压力点的标定。
Y为被测压力X为压力传感器AD码。
处于T0温度时,对传感器进行线性化(找到被测压力和传感器AD码的曲线)
选择标定值PI,也就是在图中A点,然后升温至T1,根据此时传感器值XB 和T0时刻的线性化关系求出YC(也就是温度补偿前压力值),得到
B(XB,YB,T1) C(XC,YC,T0)。
更换择标定值P2温度仍为T1则处于 D状态点,根据此时传感器值XD和T0温度下的线性化关系求出YE(也就是温度补偿前压力值),得到
D(XD,YD,T1) E(XE,YE,T0),标定过程完成。
补偿后,当温度改变压力改变,至F状态点,我们想根据该点的传感器的AD 码求出此时的被测压力,
先保持T不变,沿DB,EC对x进行插值,分别求得H的逼近点N,G的逼近点M,
YM=YD+(YB-YD)/(XB-XD)*(XM-XD)
YN=YE+(YC-YE)/(XC-XE)*(XN-XE)
保持X不变沿NM对T进行插值
YF=YN+(YM-YN)/(T1–T0)*(T-
T0) ……………………………………………………..(※ )
解释对T插值的实际意义:如果未补偿则为YH,(YM-YN)/(T1–T0)为此传感器值下每温度变化压力值,通过此传感器值下温度变化量(T-T0)求出N到F的压力变化量(YM-YN)/(T1–T0)*(T-T0)在加上YN即此时要求的YF。
以上为两点标定压力的算法,当标定压力三点时通过二次插值(三个点带入二次插值算式)求得对应的YMYN,当标定压力点为一点时,即标定压力即YM,计算对应的补偿前压力即YN.当多温度点标定,根据实际温度处于哪一个温度区间选择对应的标定点去求YMYN。
(至此所求YF为实际Y值的一个逼近值)
升温至T2标定BD两点
附录:
拉格朗日一次插值
二次插值
牛顿插值
Newton Ln(x),只是形式不同牛顿插值具有递归的特点,形式更适合编程
插值多项式的次数是随插值节点的增加而升高的,一般总以为插值多项式的次数越高对f(x)逼近的程度越好,但实际并非完全如此。
n 越大,端点附近抖动越大,称为Runge 现象。
所以根据实际温度选定温度区间再进行插值(对温度进行分段线性插值)。