一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3698|回复: 16

[其他综合] 请教这个怎么计算呀。。电容式压力传感器

[复制链接]
发表于 2011-5-27 10:54 | 显示全部楼层 |阅读模式

我用电容式压力传感器和74HC02震荡,采样频率,得到的频率值和压力值成反比,如下。怎么计算出对应的压力值呢,













压力
频率值除以一千khz
0mmhg7922001000792.2
10mmhg7778001000777.8
20mmhg7630001000763
30mmhg7490001000749
40mmhg7353001000735.3
50mmhg7200001000720
60mmhg7050001000705
70mmhg6930001000693
80mmhg6770001000677
90mmhg6630001000663
100mmhg6490001000649
110mmhg6350001000635
120mmhg6200001000620
130mmhg6060001000606
140mmhg5920001000592
150mmhg5780001000578
160mmhg5640001000564
170mmhg5490001000549
180mmhg5350001000535
190mmhg5210001000521
200mmhg5010001000501
 楼主| 发表于 2011-5-27 11:31 | 显示全部楼层
压力范围0-399 还带小数点,查遍的话太复杂了,
有没有一个公式可以倒推出来呢?
回复

使用道具 举报

发表于 2011-5-27 12:23 | 显示全部楼层
matllab里边貌似有曲线近似,自动的
回复

使用道具 举报

发表于 2011-5-27 12:40 | 显示全部楼层
最简单的方法:编写一段校准程序(反正需要校准,因为生产过程中不可能做到产品完全一致),在若干个校准点进行校准(输入已知),将测试结果存储(“学习”的过程),在EEPROM里建立一张表。实际测量时根据测试结果去查这张表,定出区间,在这区间内进行“插值”运算,最最简单的插值可以采用线性插值,要有高的话可以采用非线性插值(比如说2次曲线),由于表里的数据是学习进去的,是准确可信的,而相邻的两个“学习”是个不大的区间,一般来说其非线性比较小,所以插值运算后的误差比较小可以满足要求。表的“学习点"越密表就越大精度也越好,但占空间。反之表就小,空间占得也小,但误差会大些(到底误差多大要看小区间内的非线性程度)。所以需要根据实际情况选择比较合理的“学习”点多少。
回复

使用道具 举报

发表于 2011-5-27 13:05 | 显示全部楼层
从给的数据看线性还是不错的
回复

使用道具 举报

 楼主| 发表于 2011-5-27 14:59 | 显示全部楼层
从给的数据看线性还是不错的
qzlbwang 发表于 2011-5-27 13:05 [url=https://www.yleee.com.cn/images/common/back.gif]https://www.yleee.com.cn/images/common/back.gif[/url]



    非常感谢您的指点,我还想请教一下,
关于两点之间的数怎么推算出来,
比如说 校正0mmhg  100mmhg    200mmhg,300mmhg

0~100的数字量中间值应该是50mmhg

可是在单片机里面怎么计算呢?
如果讲起来太麻烦的话,请介绍一下要学习单片机的那些知识。
谢谢了。
回复

使用道具 举报

发表于 2011-5-27 17:52 | 显示全部楼层
按你的数据举例:校准点:0mmhg的值是7922,100mmhg的值是6490
那么在这段区间的增量是6490-7922=-1432,也就是说每增加1mmhg的压力测量值就要减少14.32
如果我们测量值在这个区间内,比如说7000,那么增量就是7000-7922=-922,-922/-14.32=64.4
加上起始的0mmhg,实际压力就0+64.4=64.4mmhg
回复

使用道具 举报

发表于 2011-5-27 17:54 | 显示全部楼层
本帖最后由 huayuliang 于 2011-5-27 17:57 编辑

插值计算啊。很简单的,就是讲起来麻烦了点。
不会的话,就搜下google。

如果这些值的线性比较好,就用线性插值计算。
你还是看wiki吧:http://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E6%8F%92%E5%80%BC
http://upload.wikimedia.org/wikipedia/commons/6/68/Linear_interpolation.png

晕啦,图片咋不显示?


哦,如果是在几个分段内有较好的线性,那就分段处理。
回复

使用道具 举报

发表于 2011-5-27 18:01 | 显示全部楼层
继续,校准点:200mmhg的值是5010
在100--200mmhg这段区间的增量是5010-6490=-1480,也就是说每增加1mmhg的压力测量值就要减少14.8,如果我们的测量值是5600,那么显然数据是在这段区间
其增量是5600-6490=-890,-890/14.8=60.1,实际的压力就是100+60.1=160.1mmhg
回复

使用道具 举报

 楼主| 发表于 2011-5-28 08:42 | 显示全部楼层
非常感谢楼上两位的指点,我好好看看
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-5 06:02 , Processed in 0.036358 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表