仿真软件源码位置在:http://download.csdn.net/detail/dijkstar/5565111,http://www.pudn.com/downloads552/sourcecode/windows/other/detail2276765.html
1 原理
假设一个采样系统,AD部分可以得到数字量,对应的物理量为电压(或其他);
① 若在“零点”标定一个AD值点Xmin,在“最大处”标定一个AD值点Xmax,根据“两点成一条直线”的原理,可以得到一条由零点和最大点连起来的一条直线,这条直线的斜率k很容易求得,然后套如直线方程求解每一个点X(AD采样值),可以得到该AD值对应的物理量(电压值):
上图中的斜率k:
k =(Ymax-Ymin)/(Xmax-Xmin)
(因为第一点为“零点”,故上面的Ymin = 0)
所以,上图中任一点的AD值对应的物理量:
y = k×(Xad- Xmin)+0
② 上面的算法只是在“零点”和“最大点”之间做了标定,如果使用中间的AD采样值会带来很大的对应物理量的误差,解决的办法是多插入一些标定点。
如下图,分别插入了标定点(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4) 四个点:
这样将获得不再是一条直线,而是一条“折现”(相当于分段处理),若欲求解落在x1和x2之间一点Xad值对应的电压值:
y = k×(Xad– X1)+ y1
由上看出,中间插入的“标定点”越多,得到物理值“精度”越高。
2 仿真软件
按照上述想法,实现了一个线性标定校准仿真软件,该软件具有:
a “标定点”集合的管理(加入、删除、保存、读取);
b 计算一个新AD值对应的物理量
仿真软件每次启动初始化时,读取“标定点”集合(保存在“配置.ini”中);当加入一个新的标定点时,按排序查找插入到相应的位置;输入一个要求解的AD值对应的电压,该AD值查找到“标定点”集合中适合位置,按直线方程计算出该AD对应的物理量。
该软件需配合“配置.ini”文件使用。标定(校准)的实现全部在Acq.h、Acq.cpp中。