标题:Ds18B20还是Tsic506,我觉得什么技术修正到0.1度,都是瞎扯淡 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Fri, 29 Oct 2010 13:50:21 +0000 作者:jackxiang 地址:http://jackxiang.com/post/3704/ 内容: Tsic506这个能达到 ±0.1℃温感集成块还没有到货的时候,我们开始用市面上最为普通的DS18B20来进行原理图设计实验。DS18B20温感集成块的精度只有±0.5℃,虽然便宜(只要7元人民币),但是它与昂贵的Tsic506(100元人民币)使用的是同样的单总线结构,所以用来做原理图设计实验,足够了。 在查DS18B20相关的资料的时候,无意中发现一个惊喜:看到一篇文章《DS18B20的高精度温度传感器设计》,提供了如何降低误差的方法,并且表明 “可得到误差在0.1℃以内的温度精度” 。大学老师的大作,满篇图形、公式、矩阵……,一看就感觉让人信服! 兴奋啊,想想,100元 vs. 7元!如果能提高精度,别说±0.1℃,只要能到±0.2℃就行,这可是93元的成本差别啊! 于是,仔细研读。 …… …… 好景不长,因为,疑窦丛生: 1.前面四章讲的都是DS18B20原理,可以略过。第五章名为“采用最小二乘估计降低线性误差”,嗯,这是正题。 可是,一开始就感觉不对头。 第五章一上来就说“通过以上方法理论上可以得到0.1℃范围内的误差,但由于受各种因数的影响.往往误差范围能达到0.5℃。通过分析.得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差,并随温度的上升而误差增大……”。这是哪儿跟哪儿啊?前四章讲的都是该芯片的内部功能结构,凭什么理论作者们可以得到“ DS18B20官方文档上的误差曲线 点击在新窗口中浏览此图片 http://jackxiang.com/attachment.php?fid=146 通过以上方法理论上可以得到0.1℃范围内的误差”这个结论?!基于这个不靠谱的结论,又说“通过分析.得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差,并随温度的上升而误差增大”,凭什么?凭什么得到这几个结论啊? 2.看看DS18B20官方的文档中的误差曲线(见右图),就可以更加证明了,这篇文章的这几个推导(尤其是上面灰色字体中带下划线的部分)根本是错的!推导错了,这不是最严重的问题,这段话最严重的问题在于:没有论据,就敢如此推断! 3.作者们根据以上结论(不靠谱的结论),建立了误差模型:“为了提高估计精度,对于不同的温度区间应采用不同的修正系数.设该系统的线性误差模型如下: T=KTγ+C 其中,T为测量值,Tγ为真实值(采用更高精度MS6506测量而得).K为随温度变化的线性误差修正系数,C为误差补偿参数……” 而后,就是大学老师擅长的一堆高数理论,最小二乘估计、矩阵、维度、极限、梯度,一顿眼花缭乱的分析,得出结论“K=1.0408.C=-1.5256,该修正系数是在25℃~40℃温度下得到的。其他温度范围内也可采用相同方法获得修正系数。根据计算得到的修正系 数编写相应的单片机程序,就可得到误差在0.1℃以内的温度精度。基于以上的理论基础,可以设计出高精度、低性价比的温度传感器”。 我们来看看灰色字体部分中那些带下划线的部分: “K=1.0408.C=-1.5256”,如果我们用上面的这个官方的平均误差图来看,就知道这个结论是不准确的,比如说,假如我们用DS18B20去测一个30℃的温度,那么官方结论是:平均测量温度应该是在29.82℃。如果用这篇论文的计算方法,T=1.0408Tγ-1.5256,测量温度应该在29.6984℃。 “采用更高精度MS6506测量而得”。纵观整篇论文,其实验与推断的关键点在于:建立误差模型,然后通过测试,得到误差模型中的参数。所以,最后结论的准确性其实质是依赖测试的准确性。于是,我对这篇文章中两次被提及的“高精度MS6506”产生了兴趣:如果不贵,万元左右的,买一台,进行温感探头的校准,还是挺值得的,实在不行,租也可以啊。到网上一查,我的天,才几百元!几百元的温度测量设备,就能称作“高精度”?再查查,OMG,淘宝里大把的,你猜猜精度是多少?不是±0.01℃,也不是±0.1℃,也不是±0.5℃,而是±1℃! 拿±1℃的温度计去校准±0.5℃的温感探头?!这简直是太滑稽了吧! 难怪这篇文章里如此模糊地去提及这个测试设备啊,故意的吧! 不是故意的?那你这学术文章,也太不严谨了吧! Generated by Jackxiang's Bo-blog 2.1.1 Release