精度和分辨率是传感器非常重要的两个参数,但这两个概念很容易混淆。
精度是指传感器测量值与真实值之间的差值,又叫测量误差。
分辨率是指传感器最小能读到的数值,即被测量变化多少才能引起传感器响应。
从中可以看出,其分辨率为1mm(通过刻度最小就能读到1mm,要它读0.1mm是不可能的),量程在500mm以下的的尺子精度为±0.15mm。
注意:虽然通过估读能读到1mm以下,但这是依靠人的能力(可以称作系统外技能),尺子本身的能力只能到1mm。大部分传感器是不支持估读的,如温湿度传感器、ADC、姿态检测传感器、压力传感器等,都是将结果直接显示,没有估读的空间。
不考虑估读,这把直尺读取结果只能是5mm,7mm,56mm这样的数字,即没有小数位。
相应的,由于精度只有±0.15mm,所以真实值范围为:5±0.15mm,7±0.15mm,56±0.15mm。
从中可以看出,其分辨率为0.02mm(最小就能读到0.02mm,要它读0.01mm或者0.001mm是不可能的),量程为0~150mm的尺子精度为±0.03mm。
注意:游标卡尺就不支持估读
也就是说这把游标卡尺读取结果只能是5.48mm,7.62mm,56.08mm这样的数字,即只能有两位小数,且最后一位小数只能为偶数(0也是偶数)。
相应的,由于精度只有±0.03mm,所以真实值范围为:5.48±0.03mm,7.62±0.03mm,56.08±0.03mm。
从中可以看出,其分辨率为0.1℃(最小就能读到0.1℃,要它读0.01℃是不可能的),精度为±1℃。
注意:该温度表不支持估读
也就是说这个温度表读取结果只能是25.1℃,34.5℃,19.0℃这样的数字,即只能有1位小数。
相应的,由于精度只有±1℃,所以真实值范围为:25.1±1℃,34.5±1℃,19.0±1℃。
ADC其实是一个电压测量传感器。它可以将电压模拟量转化为数字量。
STM32F103自带ADC,其分辨率为12位。
注意:ADC有自己特有的分辨率与精度描述方式
12位即将0-VREF分为2^12=4096份,如果VREF=3.3V,则该ADC的分辨率为3.3/4096=0.806mV。
LSB (Least Significant Bit),意为最低有效位,是ADC描述精度的单位,这里LSB的值即为0.806mV。
从下表可以看出该ADC的综合误差最大为±2,所以精度为±2*0.806mV=±1.61mV。
TT80是瑞士TESA公司生产的高分辨率位移传感器。
其分辨率可以达到10nm,精度如下图所示:
精度是跟量程相关的。具体多少待研究,但应该比分辨率要大不少。
从上面的例子可以看出,除了例1,其余都是精度大于分辨率。
要回答问题1,就必须搞清楚精度的决定因素。
考虑一种实际情况方便分析:
一把分辨率为1mm的普通直尺,用它测量一个真实值为5.57mm长度的物体。
用这把尺子测量只能得到5mm的结果(这里不考虑估读,原因在例1中有解释),那么误差就有0.57mm,事实上处于[5mm,6mm)区间内的物体测量结果都是5mm,也就是说测量误差最多有1mm,刚好与分辨率相等,这也就是说传感器分辨率会导致误差。
当是还得考虑尺子刻度本身精度的问题,尺子相邻刻度之间真的有1mm吗?它是有制造工艺以及环境因素决定的,温度变化导致的热胀冷缩,尺子受力弯曲导致的变形等等都会使精度变化。
同样测量一个真实值为5.57mm长度的物体,由于工艺问题,测出来为4mm是完全有可能的,这时误差就达到1.57mm。考虑一种极限情况,将一把15cm的尺子拉长为15m,刻度间隔因此扩大了100倍,这时测量5.57mm的物体结果就是0mm(因为此时1mm刻度实际长100mm),这样的测量结果就很搞笑了,当然如果有人的参与就会发现这种荒谬的结果,尺子自己是不会有这种觉悟的。这也就是说制造工艺以及环境温度、机械应力等都会导致误差。
因此我们得到了该问题的答案。
精度由两种因素决定
(1)分辨率;
(2)系统误差,包括制造工艺以及环境因素。
上面的例子也提醒我们,由分辨率导致的误差是有上限的(上面的情况下为1mm),而系统原因导致的误差是没有上限的。最终的精度取决于两种因素的叠加效果。
正是因为没有上限,所以在标注精度的时候都得对环境条件进行限制,如温度控制在20℃等等。
想象一种极限情况,即一个传感器所能达到的极限状态是什么?
是将分辨率完全利用,然后精度无限高?
不对,真正的极限情况是分辨率完全得到利用,而测量误差仅由分辨率决定,没有系统误差。
对于一把分辨率为1mm的尺子,上述条件可以描述为:刻度与刻度之间间距严格控制在1mm,温度恒定,没有机械应力导致变形,这时尺子的精度将完全取决于分辨率,这里精度就是1mm,不会更大了。
在这种极限情况下,或者叫做理想情况下,分辨率为1mm,精度就是1mm,分辨率为1um,那精度就是1um,精度完全取决于分辨率。
然而现实中没有这种理想情况,传感器总是要受环境影响,使精度在分辨率影响的基础上进一步降低。
这就是为什么精度总是大于分辨率。
上面例1中之所以精度小于分辨率,是因为它标明的精度是系统误差的一部分,即制造工艺带来的误差,没有考虑系统误差里的环境因素以及分辨率导致的误差。
只有分辨率高,精度才有可能高。分辨率低,精度高的情况是不可能发生的。而之所以不是充分条件是还得考虑系统误差。
1、分辨率与精度的区别:https://blog.csdn.net/zmq5411/article/details/6700869#:~:text=%E2%80%9C%E7%B2%BE%E5%BA%A6%E2%80%9D%E6%98%AF%E7%94%A8%E6%9D%A5%E6%8F%8F%E8%BF%B0,%E5%8F%96%E7%9A%84%E6%9C%80%E5%B0%8F%E5%8F%98%E5%8C%96%E5%80%BC%E3%80%82
2、准确的理解ADC中的LSB和MSB:
https://wenku.baidu.com/view/2757a24e4bd7c1c708a1284ac850ad02de80070a.html