温度标定
发布时间:2012/6/19 20:00:35 访问次数:1915
使用单片机测定温度时,需要考虑BD6775EFV-E2传感器的误差。由于单片机测温是使用片上二极管测温,所以误差比较大。在不经标定的情况下,可能只有±10℃的精度,所以需要使用标定方法来提高精度。对于电子测量来说,我们是用电信号来表达另一个物理量,也就是用电压来表示温度,并用ADC来转换为数字量。因此,我们需要电压与温度的函数关系,才能够用电压值来反推温度值。显然,我们需要知道单片机测量到的真实温度。我们可以用一个较高精度的温度计来获得温度值,市售的玻璃水银温度计、指针温度计或远程温度计均可,也可使用万用表附赠的热电偶,或着是经过激光标定的传感器,比如18820。如果Geek精神够足,使用冰水混合物等非主流方法亦可,可行性请咨询物理老师。
得知温度后,接下来就是建立电压与温度的函数关系。由于我们最终要由ADC转换为数字量,所以数字量输出和温度的函
数关系也是等价的。理想的情况下,我们要取到尽可能多的温度点,使任何一个输出值都被覆盖到,使用查找表即可用输出值反推温度值。但是,这么多温度点的覆盖往往是不现实的,我们只能采集有限个数据点,并拟合出函数曲线。一般来说,函数的次数要低于采样的数据点数,可以使用最小二乘法来拟合曲线。如果只需要结果,excel就能做到这一点。另外,如果想知道穿过所有点曲线的形状,可以尝试使用拉格朗日插值法来获得函数。一般工程上,采用等距离采集多个数据点,然后分段直线拟合就能得到比较不错的效果。
这个制作由于对精度要求不高,而且追求简单,我们假设数字量输出和温度的函数关系是线性的,而且每1℃的变化对应数字输出量变化1。我们只需要1个点就能确定函数的位置。当然,这一点处于待测区间之中会使精度蓓寸些。在这种情况下t只要把待测点的输出值和标定点的输出值求差,并把这个差加到标定点的真实温度值上,就可以求到待测点的真实温度值。虽然精度仍然不高,但对于这个制作绰绰有余。
另外,传感器测定出的温度值可能会有少许的抖动,这会导致系统在临界温度上在两种模式间来回切换。所以,在温度的判定上,我采用了滞回算法,即在温度土升到40℃时切换到高温模式,而下降到35℃才能切换回普通模式。低温也应用类似算法。这样,系统不会被传感器的抖动所干扰,工作较为稳定。
使用单片机测定温度时,需要考虑BD6775EFV-E2传感器的误差。由于单片机测温是使用片上二极管测温,所以误差比较大。在不经标定的情况下,可能只有±10℃的精度,所以需要使用标定方法来提高精度。对于电子测量来说,我们是用电信号来表达另一个物理量,也就是用电压来表示温度,并用ADC来转换为数字量。因此,我们需要电压与温度的函数关系,才能够用电压值来反推温度值。显然,我们需要知道单片机测量到的真实温度。我们可以用一个较高精度的温度计来获得温度值,市售的玻璃水银温度计、指针温度计或远程温度计均可,也可使用万用表附赠的热电偶,或着是经过激光标定的传感器,比如18820。如果Geek精神够足,使用冰水混合物等非主流方法亦可,可行性请咨询物理老师。
得知温度后,接下来就是建立电压与温度的函数关系。由于我们最终要由ADC转换为数字量,所以数字量输出和温度的函
数关系也是等价的。理想的情况下,我们要取到尽可能多的温度点,使任何一个输出值都被覆盖到,使用查找表即可用输出值反推温度值。但是,这么多温度点的覆盖往往是不现实的,我们只能采集有限个数据点,并拟合出函数曲线。一般来说,函数的次数要低于采样的数据点数,可以使用最小二乘法来拟合曲线。如果只需要结果,excel就能做到这一点。另外,如果想知道穿过所有点曲线的形状,可以尝试使用拉格朗日插值法来获得函数。一般工程上,采用等距离采集多个数据点,然后分段直线拟合就能得到比较不错的效果。
这个制作由于对精度要求不高,而且追求简单,我们假设数字量输出和温度的函数关系是线性的,而且每1℃的变化对应数字输出量变化1。我们只需要1个点就能确定函数的位置。当然,这一点处于待测区间之中会使精度蓓寸些。在这种情况下t只要把待测点的输出值和标定点的输出值求差,并把这个差加到标定点的真实温度值上,就可以求到待测点的真实温度值。虽然精度仍然不高,但对于这个制作绰绰有余。
另外,传感器测定出的温度值可能会有少许的抖动,这会导致系统在临界温度上在两种模式间来回切换。所以,在温度的判定上,我采用了滞回算法,即在温度土升到40℃时切换到高温模式,而下降到35℃才能切换回普通模式。低温也应用类似算法。这样,系统不会被传感器的抖动所干扰,工作较为稳定。
热门点击