传感器的温度补偿-是使用传感器时常遇到的问题,尤其是需要传感器工作在一个较宽的温度范围时,这个问题更加突出。这里描述的方法是在使用某型冷媒泄漏、压力传感器时,这种方法不一定是最好的,但是它比较简单,适用范围也比较广。我在几种不同类型的传感器上应用了这个方法,效果还不错。
首先,不考虑温度的影响,在某一固定的温度下,设传感器的输入输出值可以用多项式函数表示:


这里x 是传感器的输出(比如电压值或直接就是数字量),y 是传感器所测量的物理量的真实值。实际上,只要传感器的响应可以表示为单调连续函数,就可以利用多项式函数来逼近到任意精度,因此,一般情况下上面的式子是可以成立的。ai可以根据实验数据利用最小二乘拟合(LMS)的方法计算出来,唯一需要注意的是对于N次多项式,至少需要N+1个数据点才可以计算出。实际应用中,N的取值不宜过大,一般取为4以下就足够了,而数据点则是多多益善。
上面的式子可以写成矩阵的形式:


然后考虑温度的影响,不同温度下,上面公式中ai的 会发生变化。也就是说ai是温度t 的函数。类似的,也可以用多项式函数来逼近:

                                   
最终输出则可以表示为:


只要将这里的bij 确定下来就可以完成温度修正工作了,同样,上面的公式也可以表示为矩阵形式。


写为矩阵形式后的表达式非常的简洁,同时也易于在程序中实现。下面再多说一句,多项式函数可以通过一个小小的变型来减少乘法的次数。


这种方法称之为多项式的Horner 算法,也被称为秦九韶算法(虽然知道这个名称的人不多)。
上面的计算都是假设bji已经求出来了,但还都没有说明如何计算bji。下面将讨论这个问题。最直观的方式就是在一系列不同温度下,用最小二乘拟合的方法计算出一系列的多项式系数ai(t)。ai(t)是M次多项式函数,因此我们至少要计算出M+1个不同温度下的系数,也就是说要至少先进行M+1次多项式拟合。然后根据ai(t)拟合出bji,很显然,这里又需要进行N+1次多项式拟合。前后两次总共要进行至少M+N+2 次的多项式拟合才能求出所有的系数。
另一种方法是直接去求所有的bji。将所有的bji排成一个列向量:

    
定义一个辅助矩阵:

上述公式中的下标是标注的是第几次的测量值,xp表示第p个测量值。
则传感器的经过温度修正后的测量值为:


而传感器测量量的真实值为:


则我们的目标就是求b使得矢量 y-z 最小,这个最小如果是在2-范数的意义下的最小则是最小二乘拟合。这也就等效于求下列线性代数方程的最小二乘意义下的最优解。


这个方程的解法很多,比如说转换成下面的普通的线性代数方程:

上式中FT是F的转置。其他的方法还有奇异值分解一类的数值算法。想详细研究这个问题的话可以参考各种版本的数值分析课本。

总结,本文描述的方法比较简单、粗暴,之所以这么说是因为它不去探究温度漂移的物理本质,只是用简单的多项式函数来补偿温漂的结果。但就是因为它不依赖于某个具体的物理模型,可应用的范围才会很广。

传感器的温度补偿(温度修正算法)-Senior Mao相关推荐

  1. google地图经纬度偏移修正算法完美解决方案

    google地图经纬度偏移修正算法完美解决方案 参考文章: (1)google地图经纬度偏移修正算法完美解决方案 (2)https://www.cnblogs.com/moonvan/archive/ ...

  2. 系统辨识(六):最小二乘法的修正算法

    最小二乘法的修正算法主要包括: 广义最小二乘法(Generalized Least Squares Method,简称GLS) 辅助变量法(Instrumental Variable Method,简 ...

  3. android 加速度传感器测步数,基于加速度传感器的运动步数检测算法研究

    基于加速度传感器的运动步数检测算法研究 为解决人体运动过程中手腕摆动对步数检测干扰的影响,提出了一种区域峰值步数检测算法.该算法根据人体运动时的加速度信号特征,使用高斯滤波去除噪声对加速度信号的影响, ...

  4. 论文笔记——基于多传感器融合的移动机器人SLAM算法研究

    创新点: 1.松耦合地图匹配优化算法: 采用了独立运行各SLAM系统并通过附加的管理程序实现各SLAM系统数据的交互.由于激光SLAM在位姿估计精度上优于视觉SLAM,管理程序在SLAM运行过程中实时 ...

  5. SOC | 四种 SOC修正算法

    ​ 静态修正 BMS处于静态模式(不带载),查询OCV表格,根据OCV曲线得出现在电压和温度下对应的SOC值,再等待下个带载时刻开始修正SOC,以一定速率加快或者减慢安时积分平滑修正至目标值: 优点: ...

  6. ftt传感器_FTTTB温度传感器温度特性实验仪介绍及实验数据(新).doc

    FTTTB温度传感器温度特性实验仪介绍及实验数据(新).doc FD-TTT-B温度传感器温度特性实验仪 "溫度"是一种重耍的热学物理量,它不仅和我们的生活环境密切相尖,在科研及生 ...

  7. 火焰传感器+蜂鸣器 实现温度报警

    物联网小项目之火焰报警器 通过使用火焰传感器和蜂鸣器的组合,实现温度报警,模拟火焰报警器的作用. 一.火焰传感器的介绍 1. 认识火焰传感器 火焰传感器,由各种燃烧生成物.中间物.高温气体.碳氢物质以 ...

  8. java树莓派温度传感器_怎样使用树莓派读取传感器上的温度和湿度

    步骤1:连接 EzTemp使用串行端口在您的RaspberryPi上进行通信. 确定RaspberryPi上的串行引脚.然后将: RPiGND连接到EzTempGND. RPiTx到EzTempRx. ...

  9. 基于劈窗算法的地表温度反演算法

    1.计算BAND10.BAND11亮温温度 (1)辐射标定 其中,Qcal为影像原始值 Landsat8参数列表: RADIANCE_MULT_BAND_1 = 1.2970E-02RADIANCE_ ...

最新文章

  1. 微服务架构:注册中心 ZooKeeper、Eureka、Consul 、Nacos 对比!
  2. Spring_hibernate整合初步 based in annotation
  3. 在VMware环境Windows server 2003下测试磁盘阵列实验
  4. linux的各种版本,各种版本Linux系统下载
  5. 信息学奥赛一本通 1392:繁忙的都市(city) | 洛谷 P2330 [SCOI2005]繁忙的都市
  6. python qt5 增加文本框_Python用PyQt5制作弹出式输入框,Qt图形界面编程之QInputDialog...
  7. 大数据之-Hadoop3.x_Hadoop_HDFS_掉线时限参数设置---大数据之hadoop3.x工作笔记0079
  8. linux oracle异常处理,Oracle SQL 异常处理
  9. oracle支持ipv6,准备现有的网络以支持 IPv6
  10. linux基础(十四)定时任务和管理系统的临时文件
  11. linux程序休眠,Linux 休眠原理与实现
  12. VS2013+Ceres编译教程 Win7系统
  13. Work20230407
  14. ERP中英文缩写汇总
  15. 【初级班】517编程普及组 第一课 循环经典问题
  16. vue3实现微信公众号一次性订阅消息+ios和Android的63002 config:invalid signature问题
  17. Vue+EleMentUI实现el-table-colum表格select下拉框可编辑
  18. Python实现图像直方图规定化(直方图匹配)-附完整代码
  19. SAP FICO 批量成本估算
  20. 中移动收购米雷康姆在巴基斯坦子公司剩余股份

热门文章

  1. 有理函数在计算机中的应用,有理函数
  2. 用bat批量改文件夹中文件的名字
  3. Python实现,求解最小公倍数LCM的方法和效率
  4. vue做h5项目横屏
  5. partitionMagic:nbsp;error27nbsp;cannotnbsp;l…
  6. WebCruiser全版本注册机下载
  7. HTML5列表和超链接(1)
  8. SDR原理--FM部分
  9. 【C语言】练习题 - 菲姐游泳 - 附视频讲解
  10. 阐述《文明》之父Sid Meier的游戏人生