主要内容

物理量和测量尺度

简介

决定使用定点硬件只是选择以特定形式表示数字。这种表示通常在功耗、大小、内存使用、速度和最终产品的成本方面具有优势。

物理量的测量可以采用多种数值形式。例如,水的沸点是100摄氏度,212华氏度,373开尔文,或671.4兰金度。无论给定什么数,物理量都是完全相同的。数字不同是因为使用了四种不同的尺度。

众所周知的标准刻度,如摄氏度,便于信息交换。然而,在某些情况下,创建和使用独特的非标准尺度是有意义的。这些情况通常涉及到充分利用有限的资源。

例如,非标准比例尺允许地图绘制者在固定尺寸的纸张上获得最大的细节。典型的美国道路地图集将在两页的显示屏上显示每个州。英寸到英里的刻度在大多数州都是独一无二的。通过使用英里与英寸的大比例,整个德克萨斯州可以装在两页纸上。对罗德岛使用同样的比例尺会使这一页的利用率降低。使用更小的英里与英寸的比例可以让罗德岛尽可能详细地展示出来。

拟合嵌入式处理器内部变量的测量值类似于拟合一张纸上的状态图。地图比例尺应该允许所有州的边界都适合页面。类似地,测量的二进制刻度应该允许最大和最小可能的值适合。地图的比例也应该充分利用纸张,以获得最大的细节。类似地,测量的二进制刻度应该充分利用处理器,以获得最大的精度。

使用标准尺度进行测量具有明确的兼容性优势。然而,有时打破常规,使用一种独特的非标准尺度是值得的。也有一些情况下,独特性和兼容性的混合是有意义的。有关更多信息,请参阅后面的部分。

选择测量尺度

假设您想测量液态水的温度,并且想用8位无符号整数表示这些测量值。幸运的是,液态水的温度范围是有限的。不管你用什么比例尺,液态水只能从冰点到沸点。因此,这是您必须使用256个可能的8位值捕获的温度范围:0、1、2、…、255。

表示温度的一种方法是使用标准比例尺。例如,整数的单位可以是摄氏度。因此,整数0和100分别表示水在冰点和沸点的温度。好的方面是,这个刻度给出了从整数到摄氏度的简单转换。缺点是,数字101-255没有使用。通过使用这个标准刻度,超过60%的数字范围被浪费了。

第二种方法是使用非标准量表。在这个刻度中,整数0和255分别代表水在冰点和沸点的温度。从好的方面来看,这个刻度提供了最大的精度,因为在冷冻和沸腾之间有254个值,而不是只有99个。缺点是,单位大约是每比特0.3921568摄氏度,因此转换为摄氏度需要除以2.55,这在大多数定点处理器上是一个相对昂贵的操作。

第三种方法是使用“半标准”量表。例如,整数0和200可以分别表示水在冰点和沸点的温度。这个刻度的单位是0.5摄氏度每比特。不利的是,该量表没有使用201-255之间的数字,这意味着浪费了21%以上。有利的一面是,这种比例尺可以相对容易地转换为标准比例尺。到摄氏度的转换需要除以2,这在大多数处理器上是一种简单的移位操作。

测量尺度:超越乘法

从一种刻度转换到另一种刻度的关键操作之一是乘法。前面的案例研究给出了三个从量化整数值转换的示例到真实世界的摄氏度值V这只涉及到乘法:

V One hundred. o C One hundred. 1 转换 1 One hundred. o C 255 2 转换 2 One hundred. o C 200 3. 转换 3.

从图形上看,转换是一条有斜率的直线年代,它必须经过原点。经过原点的直线称为纯线性变换。将自己限制在纯线性转换可能是浪费的,通常最好使用一条直线的一般方程:

V平方+B

通过添加一个偏差项B,当量化到有限位数时,您可以获得更高的精度。

直线的一般方程提供了一个有用的量子化尺度的转换。然而,像所有量化方法一样,精度是有限的,转换可能会引入误差。给出了具有量化误差的直线的一般方程

V 年代 + B ± E r r o r

如果是量化的值四舍五入到最接近可表示的数字,那么

年代 2 E r r o r 年代 2

也就是说,量化误差的数量是由比特数和刻度决定的。这个场景代表了最佳情况下的错误。对于其他舍入方案,误差可能是这个数字的两倍。

选择温度的测量尺度

在典型的电子控制内燃机上,燃料的流量在燃烧前被调节,以在气缸中获得所需的空气与燃料的比例。因此,需要了解当前的空气流速。一些制造商使用传感器直接测量空气流量,而其他制造商则通过测量相关信号来计算空气流量。这些变量之间的关系是由理想气体方程推导出来的。理想气体方程需要除以空气温度。为了得到正确的结果,必须在方程中使用绝对温标,如开尔文或兰金。然而,直接量化到绝对温标将导致不必要的大量化误差。

流入发动机的空气温度有一个有限的范围。在典型的发动机上,散热器的设计目的是使缸体低于冷却液的沸点。假设最大为225oF (380k)。当空气流经进气歧管时,它可以被加热到这个最高温度。在极端气候下,寒冷的启动温度可低至零下60度o因此,使用绝对开尔文标度,感兴趣的范围是222-380 K。

空气温度需要量化,由嵌入式控制系统进行处理。假设对3位无符号数进行不切实际的量化:0,1,2,…,7,精度最大的纯线性变换为

V 380 K 7.5

量化转换和兴趣范围如下图所示。

注意,有7.5个可能的量化值。这是因为只有一半的第一个比特对应的温度(实际值)大于零。

量化误差为-25.33 K/bit≤错误≤25.33 K/bit

量化转换的兴趣范围和量化误差的绝对值如下图所示。

作为纯线性转换的替代方案,考虑具有最大精度的一般线性转换:

V 380 K 222 K 8 + 222 K + 0.5 380 K 222 K 8

量化转换和兴趣范围如下图所示。

量化误差为-9.875 K/bit≤错误≤9.875 K/bit,这大约比与纯线性转换相关的误差小2.5倍。

量化转换的兴趣范围和量化误差的绝对值如下图所示。

显然,在感兴趣的范围内,一般线性标度比纯线性标度提供更好的精度。