这几天翻阅检测技术的时候,发现一个问题,我们在计算模拟电路采集后精度的时候,往往都是按照AD转化后的数值计算的。通常的做法是求出物理量比如电压值单片机采样值的函数:
ADC=F_transfer(V,p1,p2,p3,p4)
得出
采样后的典型值 ADC_nm
采样后的最大值 ADC_mx
采样后的最小值 ADC_mn
求取的精度是按照
ACC_l=(ADC_mx-ADC_nm)/ADC_nm
ACC_u=(ADC_mn-ADC_nm)/ADC_nm
实际上这并不是完全正确的,因为我们知道AD转化后的值,软件是通过一定的算法转化成原物理量的,比如最简单的方法是无误差的反函数:
V=f_rever(ADC)
然后将ADC_mx和ADC_mn转化成V_t_mx,和V_t_mn,真正的精度应该是:
ACC_l=(V_t_mx-Vin)/Vin
ACC_u=(V_t_mn-Vin)/Vin
这是因为AD的典型值往往并不是无误差的理想函数,而是由电路的典型值所组成的。这就导致了我们用前一种方法计算出来的误差上下边不一致的情况发生。
值得我们关注的是,软件中可能并不是使用公式来整理的,如果采用查表的方式进行,用ADC的精度就更加无法整理出系统的精度了。因此统一折成原物理量来计算精度是必由之路,这个例子可以用热电阻的精度来表示,因为热电阻本身具有的非线性是很难体现在ADC数值之中的,ADC的值主要反映的是热电阻的调理电路本身的误差。因此这点也是我们需要牢记的。
在汽车电子上面,模拟量一般有电阻,电压,和电流,这些物理量的控制和检测需要我们小心的去处理的,(一部分诊断的输出口也是占用单片机AD资源的大户,前面已经谈过了HSD诊断的三段线性化,软件拟合的误差也需要反映在整个精度上)
用户1513040 2010-3-11 11:11
用户1289612 2010-3-10 09:44
用户1272890 2010-3-8 12:44
用户1042259 2010-3-7 16:24
用户1475825 2010-3-4 21:18