传感器(二)响应曲线

我们之前学到传感器通过将物理特性作为输入,并将电气特性作为输出。一张展示输入与输出关系的图表被称为传感器响应曲线。传感器响应曲线可以用来定义和理解许多不同的传感器特性,包括传感器常见的错误类型。我们将首先看一个假设的例子,再来看一些实际的例子。

作为一种可变电阻传感器,电位计(Potentialmeter)将旋转角度(物理输入)转换为电阻(电气输出)。因此,电位计的传感器响应曲线会以旋转角度为X轴,以电阻为Y轴。在传感器响应曲线中,物理特性总是在X轴上,电气特性在Y轴上。需要注意的是,传感器可能会有不止一种电气输出。例如,我们可以规定电位计需要5伏的输入,然后我们可以在Y轴上放电压而不是电阻。

图片

传感器响应曲线定义了这两个特性之间的关系。为了得到曲线,我需要对传感器进行实验。将电位计旋钮放在0度角开始,用一个好的万用表读取电阻值,这给了曲线上的一个点。接着将旋钮移动到稍微更高的角度,再次读取电阻值。重复这个过程,直到旋钮达到最大位置。然后反转过程,从最大位置开始,逐渐减少角度,每个角度读取电阻值。接下来,我会一遍又一遍地重复实验,从收集的所有数据点中,可以定义出一些传感器特性和错误。

图片

在本章中,我们将定义并展示以下误差和特性:量程(Range)或全量程(Full Scale)、零偏移(Zero Offset)、零漂移(Zero drift)、非线性误差(Nonlinearity Error)、灵敏度(Sensitivity)、滞后(Hysteresis)、精度(Precision)、准确度(Accuracy)、噪声(Noise)、响应时间(Response Time)和带宽(Bandwidth)。

首先,最小角度与最大角度之间的差异就是传感器量程,有时也叫全量程。

图片

现在假设当物理特性设置为零时,电气输出并不是零。实际上,这确实是我们电位计的情况,即使当旋钮完全转到最小位置时,仍然存在一些非零电阻。这被称为零偏移。

图片

现在假设随着时间的推移,这个传感器的零偏移量发生了变化,这被称为零漂移。零漂移通常比零偏移更糟糕,因为可以很容易地在代码中补偿已知的零偏移量,但零漂移量的变化可能是不可预测的或不一致的,因此补偿零漂移比补偿零偏移更难。

图片

如果测试点在最小和最大值之间形成了一条完全直线,那就很好,说明我的传感器没有非线性误差,或者我们可以说这是一个完全线性的传感器。但许多传感器的响应曲线并不是完全的直线,在这种情况下,我们可以计算非线性误差的量。

图片

通常传感器数据表中描述非线性误差有三种方式。

第一种方式是用输入单位表示。以这个例子为例,首先用一条直线拟合传感器响应曲线,有时这条线是通过连接第一个和最后一个点得出的,其他时候则使用最小二乘误差法进行拟合。然后,找到曲线上离这条直线水平方向最远的点,用输入单位表示这个非线性误差。比如这个例子中,可能有10度的非线性误差。

图片

第二种方式是用输出单位表示非线性误差。在这种情况下,非线性误差将以欧姆或伏特为单位,具体取决于我们在y轴上标注的内容。例如,规格书上可能会显示存在100欧姆的非线性误差。

图片

第三种方式是将非线性误差表示为全量程百分比,通常缩写为FS。记住我们之前提到过,传感器的量程,也就是输入的最小值和最大值之间的差值,也叫做满量程。例如,如果这个电位计的满量程是360度,而非线性误差是10度,那么数据表上可能会显示非线性误差为10/360,即2.7% FS,也就是满量程的百分比。非线性误差的概念与下一个传感器属性—灵敏度密切相关。

图片

传感器灵敏度是指当输入发生特定变化时,输出变化的幅度。由于输出通常位于 y 轴,而输入位于 x 轴,你可能会意识到灵敏度与传感器响应曲线的斜率相似,这是正确的。因为直线或曲线的斜率是“上升量”除以“前进量”,所以传感器的灵敏度与传感器响应曲线的斜率相同。因此,只有完全线性的传感器才具有一个恒定的灵敏度值。具有非线性误差的传感器,其灵敏度将取决于输入值。例如,传感器可能在较低输入值时具有较高的灵敏度,而在较高输入值时灵敏度较低。

现在回想一下,当我描述我们用传感器进行测试以获取传感器响应曲线时,我提到我们是从一个低值开始,并逐步增加到一个高值,然后反向进行测试,从一个高值开始,逐步减小到一个低值。我们这样做是为了揭示滞后误差。滞后是指传感器在从低到高与从高到低的情况下响应不同的误差。我们可以用类似于非线性误差的方式来表达滞后误差,可以用输入单位、输出单位或满量程的百分比来表示。

图片

我记得当我第一次了解到滞后误差时,我感到非常困惑。我根本无法理解为什么传感器在一个方向上的响应会与在另一个方向上的响应不同。所以现在我将给你展示一个为什么传感器可能会产生滞后误差的例子。这是一种称为压阻传感器(piezo resistive sensor)的传感器类型,它是一种用于测量力的可变电阻传感器。它的工作原理如下:

这是由一种电绝缘材料(例如橡胶)制成的弹性体材料。在这种材料内分散着微小的导电材料(如铜)的颗粒。当对材料施加压力使其压缩时,这些导电颗粒会靠得更近,因此材料的电阻会减小。当对材料施加相反方向的力或释放压缩力,使材料恢复其形状或伸展时,这些导电颗粒会变得更远,因此电阻增加。因此,通过测量材料的电阻,我们可以推断出用于压缩或拉伸它的力。

现在,当力使材料变形时,一部分能量用于使材料变形,并储存为弹性或弹簧能量,但有一部分能量会转化为热量而损失掉。因此,当力被释放时,一部分能量会从弹簧的势能中释放出来,但由于部分能量已经在变形过程中损失了,所以无法恢复。这种能量的损失导致了滞后误差。因此,当我们释放压阻材料时,它无法完全恢复到预期的形状或位置,因为压缩时使用的一部分能量已经损失,无法在材料恢复原形时回收。因此,并非所有传感器都有滞后误差,但一般来说,所有涉及材料变形的传感器由于在材料变形过程中有部分能量转化为热量而损失,都会有一定的滞后误差。

好了,现在我们来谈谈精度和准确度,这两个特性是密切相关的。准确度指的是传感器测量的值与实际值的接近程度,而精度指的是当我们用传感器测量同一数量时,多次测量结果的一致性。

举个例子,假设我们已经为电位器创建了传感器响应曲线,由于有了这个传感器响应曲线,我们知道如何将电阻读数转换为角度位置。现在我们将电位器的旋钮放置在正好 90 度的位置,测量其电阻,并使用我们的传感器响应曲线来计算该电阻对应的角度。然后我们将旋钮移到其他位置,再放回 90 度的位置,再次测量电阻,并使用传感器响应曲线来计算该电阻对应的角度。我们反复进行这个过程,得到一系列在旋钮位于 90 度时的读数。如果我们取这些读数的平均值,平均值与 90 度的差异就是我们的准确度;读数的标准差则代表精度。

假设我们有四个不同的电位器,并对它们进行相同的测试,得到如下读数。

图片

假设四个电位器给出的读数如下:

  1. 电位器 A:非常精确且非常准确。
  2. 电位器 B:非常精确但不太准确。
  3. 电位器 C:非常准确但不太精确。
  4. 电位器 D:既不精确也不准确。

你能分辨出哪一个是哪个吗?

一种识别方法是将这些数字想象成投向飞镖盘的飞镖。如果飞镖紧密地聚集在一起,那么这些飞镖具有较高的精度。如果飞镖靠近飞镖盘的中心,那么它们具有较高的准确度。例如,这个飞镖盘显示的是非常精确但不太准确的情况:飞镖紧密地聚集在一起,但都远离飞镖盘的中心。

图片

另一个飞镖盘显示的是非常准确但不太精确的情况:如果我们将这些飞镖的位置平均,它们会非常接近飞镖盘的中心,但各个飞镖之间相距较远。

图片

这个飞镖盘显示的是既精确又准确的情况:飞镖紧密地聚集在一起,也非常接近飞镖盘的中心。

图片

因此,现在让我们回顾一下我们的四个电位器测试结果。你能看出哪个电位器是哪个吗?

图片

电位器 B 是那个非常精确但不太准确的。读数紧密地聚集在一起,但都没有接近实际的 90°位置。电位器 C 是那个非常准确但不太精确的。如果我们计算这些值的平均值,它会非常接近实际的 90°,但读数彼此之间差异较大。电位器 D 是那个既不精确也不准确的。读数分布范围很广,而且平均值也不接近 90°。电位器 A 是那个既精确又准确的,它的平均值非常接近实际的 90°,标准差也很小,表示数值分布范围小。

接下来,我们来看今天要讨论的最后三个传感器特性或误差:噪声、响应时间和带宽。这三个特性与传感器响应曲线没有直接联系。

噪声指的是传感器测量到的我们不希望测量的内容。最常见的传感器噪声是电气或磁性干扰。我们希望传感器的电信号仅来自于物理属性的变化,但情况并非总是如此。回想一下你在电路课或物理课上学到的关于电感的知识:自感和互感是电子运动产生电场,电场又产生磁场,磁场再产生电子运动的效应。因此,附近导线中的电子流动可能会在传感器中产生电信号,而这些信号并非由物理属性的变化引起的。如果你的传感器系统中发生了这种噪声,你可能需要使用某种屏蔽(Shielding)来改善问题。在机器人领域,我们尤其需要注意这种噪声,因为传感器通常放置在靠近相对高功率元件(如电机)的地方。我们要小心电机产生的电气噪声对传感器的影响。

还有其他类型的噪声是环境条件对传感器输出的影响。例如,传感器工程师中有一句带有些许玩笑意味的话:“所有传感器都是温度传感器。”这意味着温度对传感器输出的影响非常普遍。大多数传感器数据表会指定传感器在某些温度条件下测试的结果,可能会列出在特定温度下的灵敏度。另一个经常影响传感器输出的环境条件是湿度,特别是在电容式传感器(capacity sensor)中需要特别注意,因为电容式传感器依赖于特定的介电常数,而介电常数在涉及水分时可能会有所不同。

传感器的响应时间和带宽都是与时间相关的特性。响应时间告诉我们传感器对输入静态变化的响应需要多长时间。例如,假设你将电位器静止在某个角度,然后突然将其移动到另一个角度并保持在那里。你可能不想立即读出电压输出,而是要在移动和读取之间加入一点延迟。传感器的响应时间越长,你在移动和读取之间就需要等待的时间越长。

带宽告诉我们输入可以多快地反复变化,而我们仍能正确读取输出。例如,假设你来回转动电位器的旋钮,每秒钟完成一个来回周期。你的 PSoC(可编程片上系统)和 LCD 屏幕可能能够很好地跟随你的动作。现在,假设你开始更快地来回转动旋钮,比如每秒 10 个来回周期,然后是每秒 100 个来回周期。当你达到某个速度时,PSoC 和 LCD 屏幕将不再能够很好地跟随你的动作,读取的振幅会比实际的振幅小,并且当速度足够快时,旋钮的运动可能根本无法被读取。

传感器的带宽用赫兹(Hz)表示,即每秒钟的往返周期数。它告诉我们输入可以多快地反复变化,而输出仍能被充分读取。“充分读取”通常被认为是损失的振幅小于 3 分贝(decibels)。

总结一下,传感器的不同特性和误差,包括灵敏度、线性度、滞后、精度、噪声、响应时间和带宽,每一个都对传感器的性能有着重要的影响。理解这些特性可以帮助我们更好地选择和使用传感器,以满足特定的应用需求。

通过这段内容,你应该对传感器的工作原理、它们的误差来源以及如何评估它们的性能有了更深入的理解。希望这些知识能帮助你在涉及传感器的项目中做出更明智的决策。