如何把一条曲线,加个公式修正后变成直线。

[复制链接]
7975|25
 楼主| feng993032 发表于 2010-10-30 09:55 | 显示全部楼层 |阅读模式
单片机采集一个行程传感器的数据再输出一条0.5-4.5V的曲线。如果直接输出的话,是一条如图所示的曲线,客户要求是个直线。怎样价格修正的公式使其变成直线(如白色线)。谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
gx_huang 发表于 2010-10-30 09:59 | 显示全部楼层
为什么要公式呢?不就插值计算好了,自己搞一个输入和输出的表格。
 楼主| feng993032 发表于 2010-10-30 10:12 | 显示全部楼层
要用公式的,单片机是实时采集传感器的信号,再实时输出的。图上的红黄2线就是直接把采集的数据无任何变化输出来的。
gx_huang 发表于 2010-10-30 10:21 | 显示全部楼层
真是和你说不通,那你去搞一个公式钻你的牛角尖吧。
 楼主| feng993032 发表于 2010-10-30 10:23 | 显示全部楼层
哦,请指教。
yewuyi 发表于 2010-10-30 10:27 | 显示全部楼层
呵呵,你图都给出来,不就已经有结论了吗?
xwj 发表于 2010-10-30 10:28 | 显示全部楼层
凡是非直线的曲线,必然存在高次成分,只要求导、再求导... 即可。

如果你有确切的数学模型,当然可以从数学上去获得公式,但公式准确的前提是你要知道所有的影响因素和影响规律(实际上很难很难);
而另一种方法就是不管公式,从数据中去总结规律,然后用变化的K值分段拟合即可。
maychang 发表于 2010-10-30 10:31 | 显示全部楼层
5楼:
2楼已经说得很清楚,自己做个输入输出的表格,单片机采集到的数据查表后输出。
如果表格太大,用查表再线性插值的方法。
jack_shine 发表于 2010-10-30 10:41 | 显示全部楼层
路过学习
zjp8683463 发表于 2010-10-30 11:36 | 显示全部楼层
本帖最后由 zjp8683463 于 2010-10-30 11:38 编辑

用最小二乘法拟合.不过你这样也太做假了,如果线性度满足要求的话,不做处理也没有关系的.
如果是线性度不能满足要求,那么建议你换传感器或硬件
李冬发 发表于 2010-10-30 15:10 | 显示全部楼层
LS这位说的不对哦。
线性度不好关系不大,要是重复性不好问题就严重了。
HWM 发表于 2010-10-30 15:42 | 显示全部楼层
非线性度校正,通常是无公式可循的,除非完全知晓其解析模型。一般方法就是做表插值。

最小二乘拟合则是用于测量数据存在正态分布时(假设期望值为理论值)得出总均方差最小的那条曲线。一般认为模型曲线已知或采用多项式近似(基于泰勒展开)而求其参数。LZ所求自然不是此类。
batsong 发表于 2010-10-30 17:34 | 显示全部楼层
一般都是分段折线,matlab或者可以给出你这个曲线的表达式
223178825 发表于 2010-10-30 20:45 | 显示全部楼层
学习学习
linqing171 发表于 2010-10-30 22:51 | 显示全部楼层
用x=f(y),拟合出来三次函数f,y从最大值,折半搜索,直到最接近的x。
输出y。
t.jm 发表于 2010-10-31 08:45 | 显示全部楼层
MatheMatica 等数学软件可以对你的数据做非线性回归,得出最佳拟合方程。
diweo 发表于 2010-10-31 09:50 | 显示全部楼层
热敏电阻的线性化方法之一,就是再串一个电阻参与分压。或许LZ说的是那个意思。
举个例子如图(我用了二次函数,实际热敏电阻是指数函数)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
lxfstephen 发表于 2010-10-31 09:54 | 显示全部楼层
学习了!
zjp8683463 发表于 2010-10-31 16:07 | 显示全部楼层
11# 李冬发

单单重复性好,或线性好都没用.如果你想用查表法,滞环也要很小.而且必须在一定环境下使用.查表法基本就是骗人的.
李冬发 发表于 2010-11-7 16:16 | 显示全部楼层
重复性都好了,那还有滞环一说,或说滞环已经在允许范围了吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

30

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部