Knob Linearization

Jul 14, 2018

一种针对滑动变阻器AD值采集线性化处理算法

在项目中,用到了采集旋钮(滑动变阻器)的AD值,然后需要将数据发送给上位机。方法比较简单,但是有个要求就是:旋钮旋转的角度(输出阻止表示)需要和发送给上位机的数据(表示)成线性关系(正比例关系)。为了实现该要求,动用了一些数学思维,对整个过程进行了分析研究,达到了很好的线性效果。

未线性化处理的现象分析

滑动变阻器在AD采集的电路中如下图所示:

1531293573217

根据理论分析推导,该电路的旋钮输出阻值和AD值(),即无法成线性关系,推导如下:

假设变量:表示输入的模拟量,表示采集的数字量,为与旋钮串联的固定阻值,采集精度为10位采集精度(0-1024),5V的参考电压。

则:

那么:

由上式可以看出明显不成等比例关系,将函数进行变换,可以看出该函数其实是个反比例函数平移后的图像。可以大致画出该函数的图像如下图所示:

1531294546547

的变化随着增加不断趋于平缓,若要将发送给上位机的数字量与实际的Rx成线性关系,需要进行线性化处理。

线性化处理

要实现发送给上位机的数字量与实际的Rx成线性关系,需要对进行相关的变换得到Y,再将Y发送给上位机,使得。即求得函数关系式:,以满足的线性关系。

因为,则,代入上面得到的公式中,得:

化简得:

上式就是关系式。

实际测试

现采用总值50k的滑动旋钮,Rk选择2.2K电阻,AD采集分辨率为10位,5V供电。要求从0滑动到旋钮最大值,使得数据发送给上位机值为0~250范围:即范围为0~50K,范围为0~250,可得线性关系斜率(系数)

代入,得出以下曲线

1531295942877

误差分析(校正)

由于理论公式存在一定的误差,对于公式:Ua/5=Ud/1024,比如参考电压不一定精确为5V的现象,因此可能会对实际结果有一点影响。

方法:可以微调公式3里的1024的值,然后滑动旋钮到最大值和最小值,使得上位机数据Y也满足线性关系的最大值和最小值输出。

总结

可以看出能成很好的线性关系,达到所要求的目的,说明该算法具有较强的可行性和实用性!该算法不仅用于在旋钮的AD采集线性化处理,在其他方面的线性化处理也能提供参考。