原创 曲线拟合在摸数转换精度优化上的应用

2013-12-16 15:49 1042 17 19 分类: 消费电子

        ADC在嵌入式领域的应用非常广泛,比如触摸屏,传感器控制,电量检测等等。ADC转换精度很大程度上是取决于处理器的转换分辨率。目前微处理器的ADC转换分辨率有9bit、10bit、12bit、14bit不等。分辨率越高,当然处理器也就越贵了。有时候项目出于成本的考虑,选择了分辨不高的处理器,但是又想要有好的转换精度,这时候就要在软件做一些处理了。

 

         那么怎么处理呢?在进入正题之前,我们先了解一下产生ADC误差的一些主要因素。网上一搜很多专业的描述,比如偏移误差,增益误差,微分性线误差,积分线性误差,仔细一看完全是一门专业性的学科。那我们做工程的是不是要了解的那么多呢?我想等了解完了,花了都谢了。我们做工程的还是要本着一切从实际出发,理论指导实践原则来。我们不防试着用曲线拟合的方法来优化ADC转换结果。曲线拟合是一种数值计算方法,在众多工程领域都有用到,尤其是在数据处理中应用非常普遍。有关曲线拟合的数学理论,不在这里阐述,但是这样的数学理论,实际上已经被许多应用软件实现。比如说matlab,有人可能说没有用过,这个问题不大,微软的EXECL都用过吧,没错,EXECL里面也是有曲线拟合的功能的。

 

         好了,下一步就我自己的工程实践给大家介绍一下,我是怎样用曲线拟合来优化ADC转换结果的。这个工程是我刚工作没多久的一个项目,项目名称叫做智能无线温控器,主要应用于智能家居和智能楼宇温度监测及控制。温控器最重要当然是温度传感器的数据采集和控制了。我们当时先择的微处理器是无线带12bitADC功能的芯片,温度传感器本身也是有一定的误差范围。我们所选的温度传感器的工作原理是它本身就是一个可变电阻,它的阻值会随着温度的变化而变化,温度传感器本身的物理特性,我无法改变,为了让我们的产品达到+/-0.5度这样的误差范围内,我必需尽可能的降低ADC的误差。

 

         起初我们按照传统的方法生成的温度查询表(量程是从-50度到+50度),即传感器串联一个固定阻值的分压电阻,这样传感器在不同的温度环境下,有不同的阻值,进而传感器的分压值也是会随着温度的变化而变化。分得的电压值不同,自然对应到相应的ADC检测的数字量也是会变化的。基于这个基本的原理,我们生成了最初的温度,ADC值对照表。但是我们当时忽略了ADC本身是存在误差的,加上传感器本身的误差,我们在实验的时候发现温控器所测得的温度与实际温度最多相差1.0摄氏度,跟本达不到我们预先设定好的0.5度的精度范围。仔细分析之后我决定从ADC传换精度入手解决精度问题。

 

         首先我用高精度电阻去代替传感器,即我固定传感器阻值,从而得到一个实际分得的电压值,基于这个电压值,可以反推换算出理论的数字量。比如分得电压是1.65V,供电电压是3.3V,那么理论的AD值就是,2^12*(1.65/3.3)= 2048。而实际的数字量是可以通过设置断点进行代码调试查询ADC寄存器得到,比如是2029。这样在一个固定的阻值下我获得了一个理想值与实际值的偏差。同样的原理,从-50度到+50度的量程里取出若干个点。我取了15个点,即温度从低到高,每个点都用高精度的电阻去代替传感器,进而得到15个理想值与实际值的偏差。这个时候该典线拟合上场了,仔细观察这15个偏差值,发现他们从低到高偏差呈现出一定的归规,即理想值与实际值关系可以用一个数学表达式来表示。假设实际值为Y,理想值为X,我可以假设X,Y之间的关系为线性的,即Y = aX + b。我们可以通过曲线拟合的方法,计算出a和b(通过一些数学软件比如matlab或是EXECL),这样就可以把温度查询表里的ADC数字量理想值X优化成Y值,这样可以得到一个新的经过优化的查询表。从而优化温度控制器的测温精度。经过这么一折腾,温度控制器的精度确实提高了不少,可以达到+/-0.5度的精度。

 

       当然,也可以用二次曲线,三次曲线,指数函数曲线,幂函数曲线…去拟合实际值与理想值之间的关系,比如Y = aX^2+bX+C。但不是数学关系式越得复杂,优化效果就越好。重点还是要认真观察那15个样点分布图,样点取得越多,分布图呈现出的曲线图也就越清楚,这样也就更利于选择数学模型去拟合出关系式。 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1648651 2013-12-17 13:08

谢谢您的评论。。。

用户1079611 2013-12-17 11:44

您说的这个其实是多点标定的方法,如果温度传感器本身离散性大,就需要对每个传感器都这样做,那开发成本太高了。其实测温0.5C精度的要求对于12位ADC来说,ADC的误差不会影响这么大。恐怕是测量电路没有用对(简单的电阻分压不一定合适),不一定依赖软件来处理。
相关推荐阅读
用户1648651 2014-04-05 17:12
小学奥数题,求解答
一道小学奥数题,没做出来。求解答。   将图形平均分成大小相等,形状相同的四份.               下面是某位高人给出的答案。四种不同颜色分...
用户1648651 2014-03-17 14:08
中国工程师处于社会那一阶层
最近网络上出了一个最新中国社会的阶层划分模型,很有意思,先摘录如下:   1级:以在任委员、退休常委为代表,和2的区别在于,1对全国局势有控制能力2没有。   2级:以在任实权省部级干部、退休...
用户1648651 2013-08-15 16:13
敏捷无处不在
        今天出差回深圳的路上,与司机聊天,聊着聊着,就谈到他儿子的学习情况。         司机说:“学习的事情还是要看人,我儿子就很懒,学习成绩中等偏上,问他有什么兴趣,什么爱好都...
EE直播间
更多
我要评论
2
17
关闭 站长推荐上一条 /3 下一条