第7节 Computational Circuits (修订中)
[TOC]
当有人提到“计算机”这个词时,通常会想到数字设备。_数字电路以二进制_格式表示数字量:1 和 0 的模式由在饱和或截止状态下运行的大量晶体管电路表示。然而,模拟电路也可用于表示数字量并执行数学计算,方法是使用可变电压信号而不是离散的开/关状态。
这是数字“二十五”的二进制(数字)表示与模拟表示的简单示例:


数字电路与基于模拟原理的电路非常不同。数字计算电路可能非常复杂,并且通常必须按顺序“步骤”执行计算才能获得最终答案,就像人类用铅笔和纸按步骤执行算术计算一样。另一方面,模拟计算电路相比之下非常简单,并且以连续、实时的方式执行它们的计算。但是,使用模拟电路来表示数字有一个缺点:不精确。上面显示的数字电路准确地代表了数字二十五。上面显示的模拟电路可能会或可能不会精确校准到 25.000 伏,但会出现“漂移”和错误。
在精度不重要的应用中,模拟计算电路非常实用和优雅。这里显示了一些用于执行模拟计算的运算放大器电路:
# 0.1. 计算运算放大器电路







这些电路中的每一个都可以以模块化方式使用,以创建能够进行多次计算的电路。例如,假设我们需要从另一个变量中减去一个变量的一部分。通过将除以常数电路与减法器电路相结合,我们可以获得所需的函数:

被称为_模拟计算机_的设备过去在大学和工程商店中很常见,其中数十个运算放大器电路可以通过可拆卸的跳线“修补”在一起以对数学语句进行建模,通常用于模拟一些基本方程已知的物理过程. 数字计算机已经使模拟计算机几乎过时,但在必要组件的纯粹优雅和经济性方面,模拟计算电路无法被数字击败。
通过在运算放大器反馈回路中使用电容器,模拟计算电路擅长于执行关于时间的微积分运算_积分_和_微分。_但是,要充分理解这些电路的操作和应用,我们必须首先掌握这些基本微积分概念的含义。幸运的是,运算放大器电路在涉及微积分的实际问题中的应用是教授基础微积分的绝佳手段。用 John I. Smith 的话来说,摘自他杰出的教科书《现代运算电路设计》:
“向某些读者提供了鼓励:积分是运算[放大器]电路利用的数学学科之一,并且在此过程中,它作为理解障碍而被拆除。” (第 4 页)
史密斯先生对模拟电路作为数学学习工具的教学价值的看法并不是独一无二的。考虑工程师 George Fox Lang 在 2000 年 8 月出版的《声音与振动》杂志上发表的一篇文章的观点,题为“模拟是不是电脑商标!”:
“创建由一组特定方程控制的真实物理实体(电路)并与之交互,可以对这些数学陈述提供独特的见解。对于物理和数学之间的相互作用,没有比体验这种相互作用更好的方法来培养“直觉”了。模拟计算机是一种强大的跨学科教学工具;它的过时令各个领域的许多教育工作者感到悲痛。” (第 23 页)
微分是初学者通常学习的第一个操作。简而言之,差异化是确定一个变量与另一个变量相关的瞬时变化率。在模拟微分器电路中,自变量是时间,因此我们处理的变化率是电子信号(电压或电流)相对于时间的变化率。
假设我们要测量一辆车的位置,从它的起点出发,沿着一条直接的路径(没有转弯)行驶。让我们将此测量称为_x_。如果汽车的移动速度使其与“起点”的距离随着时间的推移稳步增加,它的位置将在图表上绘制为_线性_函数(直线):

如果我们要计算汽车位置相对于时间的_导数_(即确定汽车位置相对于时间的变化率),我们将得到一个表示汽车速度的量。微分函数由分数符号_d/d_表示,因此当对位置 ( x ) 相对于时间 ( t ) 进行微分时,我们将结果(导数)表示为_dx/dt_:

对于_x_随时间变化的线性图,位置的导数 ( dx/dt ),或者更常见的称为_速度_,将是一条平线,值不变。数学函数的导数可以用图形理解为它绘制在图上的_斜率_,这里我们可以看到位置(x)图有一个恒定的斜率,这意味着它的导数(dx/dt)必须在时间。
现在,假设汽车行驶的距离随着时间呈指数增长:也就是说,它以缓慢的速度开始行驶,但随着时间的推移,行驶的距离会增加。然后我们会看到位置的导数 ( dx/dt ),也称为速度 ( v ),不会随着时间的推移保持不变,而是会增加:

速度图上点的高度对应于位置图上相应时间点的变化率或斜率:

这与模拟电子电路有什么关系?好吧,如果我们有一个模拟电压信号来表示汽车的位置(想想一个巨大的电位器,它的雨刷连接到汽车上,产生与汽车位置成正比的电压),我们可以将一个微分电路连接到这个信号并有该电路不断_计算_汽车的速度,并通过连接到微分电路输出的电压表显示结果:

回想一下上一章,微分电路输出的电压与输入电压_随时间的变化率_( d/dt ) 成正比。_因此,如果输入电压以恒定速率_随时间变化,则输出电压将处于恒定值。如果汽车以这样一种方式移动,其经过的距离随着时间的推移以稳定的速度增加,那么这意味着汽车以恒定速度行驶,并且微分器电路将输出与该速度成比例的恒定电压。如果汽车的经过距离随时间以非稳态方式变化,则微分器电路的输出同样将是非稳态的,但始终处于代表输入随时间变化率的水平。
请注意,记录速度的电压表(在微分器电路的输出端)以“反向”极性连接到运算放大器的输出端。这是因为所示的微分器电路是_反相_的:输出负电压以获得正输入电压变化率。如果我们希望电压表记录速度的正值,则必须将其连接到运算放大器,如图所示。尽管将巨型电位器连接到移动物体(例如汽车)可能是不切实际的,但概念应该很清楚:通过对表示位置的信号进行电子微分运算,我们获得表示速度的信号。
开始微积分的学生学习用于微分的符号技术。然而,这要求描述原始图形的方程是已知的。例如,微积分学生学习如何取_y = 3x_之类的函数,并通过简单地操作方程来找到它对_x_ ( d/dx ), _3的导数。_我们可以通过比较两个函数的图形来验证这种操作的准确性:

诸如_y = 3x 2_之类的非线性函数也可以通过符号方式进行微分。在这种情况下,y = 3x 2_关于_x_的导数是_6x:

然而,在现实生活中,我们通常不能用像_y = 3x_这样的简单方程来描述任何物理事件的行为,因此微积分学生所学类型的符号区分可能无法应用于物理测量。如果有人希望通过符号方式确定我们假设的汽车位置的导数(dx/dt = 速度),他们首先必须根据从真实实验中获取的位置测量值获得描述汽车位置随时间变化的方程——几乎除非汽车在精心控制的条件下运行,否则不可能完成任务,从而产生非常简单的位置图。然而,模拟微分器电路,通过利用电容器在电压、电流和时间方面的行为_i = C(dv/dt)_,自然地区分任何与时间相关的真实信号,并且能够在任何时刻输出对应于瞬时速度 ( _dx/dt ) 的信号。_通过使用图表记录器或其他数据采集设备记录汽车的位置信号和微分器的输出信号,两个图表自然会呈现出来以供检查和分析。
我们可以通过使用另一个微分器电路将微分原理应用于速度信号,从而将微分原理更进一步。换句话说,用它来计算速度的变化率,我们知道的就是位置的变化率。如果我们这样做,我们会采取什么实际措施?根据我们用来测量位置和速度的单位来考虑这一点。如果我们要以英里为单位测量汽车从起点开始的位置,那么我们可能会以英里_/小时_( dx/dt ) 为单位来表示它的速度。如果我们要区分相对于时间的速度(以英里/小时衡量),我们最终会得到一个每小时英里/小时的_单位_. 物理入门课程教学生关于坠落物体的行为、以米为单位测量位置、以_米__每秒为单位的速度以及以__米每秒、每秒为_单位的速度随时间的变化。最后的测量称为_加速度_:速度随时间的变化率:

表达式_d 2 x/dt 2_称为位置 ( x ) 关于时间 ( t ) 的__二阶导数。如果我们将第二个微分电路连接到第一个微分电路的输出,最后一个电压表将记录加速度:

从位置推导出速度,从速度推导出加速度,我们可以清楚地看到微分原理。这些并不是唯一以这种方式相互关联的物理测量,但它们可能是最常见的。演算的另一个例子是液体流量 ( q ) 和随着时间累积在容器中的液体体积 ( v ) 之间的关系:

安装在储水箱上的“液位变送器”装置提供与水箱中的水位成正比的信号,如果水箱在其整个高度上具有恒定的横截面积,则该信号直接等于储存的水量。如果我们要获取这个体积信号并根据时间 ( dv/dt ) 对其进行微分,我们将获得一个与通过将水输送到水箱的管道的水_流量_成正比的信号。以接收该体积信号的方式连接的微分器电路将产生与流量成比例的输出信号,可能替代安装在管道中的流量测量装置(“流量变送器”)。
回到汽车实验,假设我们假设的汽车在其中一个车轮上配备了测速发电机,产生与速度成正比的电压信号。我们可以用一个电路区分信号以获得加速度,如下所示:

就其本质而言,测速发电机会根据时间区分汽车的位置,产生与车轮角位置随时间变化的速度成正比的电压。这为我们提供了已经代表速度的原始信号,只需要一个微分步骤即可获得加速度信号。当然,测量速度的测速发电机比测量其物理位置的巨型电位计更实用得多,但我们在实用性中获得的东西在位置测量中却失去了。无论我们区分多少次,我们都无法从速度信号中推断出汽车的位置。如果微分过程将我们从位置带到速度再到加速度,然后不知何故,我们需要执行微分的“反向”过程,从速度到位置。这样的数学过程确实存在,它被称为_整合_。“积分器”电路可用于执行这种关于时间的积分功能:

回想一下上一章,积分器电路输出的电压随时间的变化率与输入电压的大小成正比。因此,给定一个恒定的输入电压,输出电压将以恒定的_速率__变化_。如果汽车以恒定速度行驶(从测速发电机向积分器电路输入恒定电压),则其行驶距离将随着时间的推移而稳步增加,积分器将输出与该距离成比例的稳定变化的电压。如果汽车的速度不是恒定的,那么积分器电路的输出随时间的变化率也不是恒定的,但输出电压_将_忠实地表示汽车在任何给定时间点行驶的距离。
积分符号看起来像一个非常窄的草书字母“S”(∫)。利用这个符号 (∫ v dt = x ) 的方程告诉我们,我们正在对速度 ( v ) 对时间 ( dt ) 进行积分,并由此获得位置 ( x )。
因此,我们可以用速度 ( v )来表示汽车运动的三个度量(位置、速度和加速度),就像我们用位置 ( x ) 一样容易:

如果我们在汽车上安装一个加速度计,产生一个与加速度或减速度成比例的信号,我们可以(假设)获得一个积分的速度信号,以及一个积分的第二步的位置信号:

因此,汽车运动的所有三个度量(位置、速度和加速度)都可以用加速度来表示:

正如您可能已经猜到的那样,集成过程也可以在其他物理系统中进行说明并应用于其他物理系统。以前面显示的储水箱和流量示例为例。如果流量是罐容积对时间的_导数(_ q = dv/dt),那么我们也可以说体积是流量对时间的_积分:_

如果我们使用“流量变送器”设备来测量水流量,那么通过时间积分,我们可以计算出水箱中累积的水量。尽管理论上可以使用电容运算放大器积分器电路从流量信号中导出体积信号,但机械和数字电子“积分器”设备更适合长时间积分,并且经常在水中使用处理和分配行业。
正如有区分的符号技术一样,也有整合的符号技术,尽管它们往往更复杂和多样。但是,将符号积分应用于汽车加速等现实问题仍然取决于是否有一个精确描述测量信号的方程——从测量数据中得出这通常是一件困难或不可能的事情。然而,电子积分器电路连续、实时地针对_任何_输入信号轮廓执行此数学函数,从而为科学家和工程师提供了强大的工具。
话虽如此,使用微积分技术从另一种测量中推导出一种类型的测量有一些警告。微分具有放大测量变量中发现的“噪声”的不良趋势,因为噪声通常表现为比测量变量高得多的频率,并且高频率本身具有随时间的高变化率。
为了说明这个问题,假设我们从带有磨损的电刷或换向器棒的测速发电机获得的速度信号得出汽车加速度的测量值。电刷和换向器之间接触不良的点会在测速发电机的输出电压中产生瞬时“下降”,连接到它的微分器电路会将这些下降解释为速度的非常快速的变化。对于以恒定速度行驶的汽车(既不加速也不减速),加速度信号应为 0 伏,但由故障测速发电机引起的速度信号中的“噪声”会导致微分(加速度)信号包含“尖峰”,错误地指示短暂的高加速和减速:

要区分的信号中存在的噪声电压不必具有显著的幅度来引起问题:所需要的只是噪声分布具有快速的上升或下降时间。换句话说,任何具有高_dv/dt_分量的电噪声在微分时都会出现问题,即使它的幅度很小。
应该注意的是,这个问题不是模拟电路的伪影(测量/计算仪器的特殊错误);相反,它是分化过程所固有的。无论我们如何进行微分,速度信号中的“噪声”总是会破坏输出信号。当然,如果我们对信号进行两次微分,就像我们从位置信号中获得速度和加速度一样,第一个微分器电路输出的放大噪声信号将被下一个微分器再次放大,从而使问题复杂化:

积分不会遇到这个问题,因为积分器充当低通滤波器,衰减高频输入信号。实际上,信号上的噪声导致的所有高峰值和低峰值随着时间的推移变得平均在一起,从而减少了净结果。那么,有人可能会假设,我们可以通过直接测量加速度并将该信号积分以获得速度来避免所有麻烦。实际上,从前面显示的方式“反向”计算:

不幸的是,遵循这种方法可能会导致我们遇到其他困难,其中一个是模拟积分器电路的常见伪影,称为_漂移_。所有运算放大器都有一定量的输入偏置电流,除了由于输入电压信号而积累的任何电荷外,该电流往往会导致电荷在电容器上积累。换句话说,所有模拟积分器电路都存在输出电压“漂移”或“蠕变”的趋势,即使在绝对没有电压输入的情况下,也会随着时间的推移累积误差。此外,由于内部电阻,不完美的电容器会随着时间的推移失去其存储的电荷,导致“漂移”到零输出电压。这些问题_是_模拟电路的伪影,并且可以通过使用数字计算来消除。
尽管存在电路伪影,但由于积分的工作方式,可能的误差可能来自于积分一个测量值(例如加速度)以获得另一个测量值(例如速度)。如果原始信号传感器的“零”校准点不完美,即使在不应该输出的情况下,也会输出轻微的正信号或负信号。考虑一辆带有未完全校准的加速度计的汽车,或者受重力影响以检测与汽车运动无关的轻微加速度的汽车。即使使用完美的积分计算机,这种传感器误差也会导致积分器累积误差,从而在汽车既不加速也不减速时产生指示速度变化的输出信号。

与微分一样,如果积分信号被传递到另一个积分器电路,该误差也会自行加剧,因为第一个积分器的“漂移”输出很快就会为下一个积分器提供显著的正或负信号进行积分。因此,在积分传感器信号时应注意:如果传感器的“零”调整不_完美_,即使积分器电路本身是完美的,积分结果也会漂移。
到目前为止,讨论的唯一集成错误本质上是人为的:源于电路和传感器的缺陷。积分过程本身也存在一个固有的错误来源,那就是_未知常数_问题。初学微积分的学生了解到,每当对一个函数进行积分时,都会有一个未知常数(通常表示为变量_C_)添加到结果中。这种不确定性最容易通过比较几个函数的导数来理解,这些函数的不同之处仅在于添加了一个常数值:

请注意每条抛物线曲线 ( y = 3x 2 + C ) 如何共享完全相同的形状,但在垂直偏移方面彼此不同。但是,它们都共享完全相同的导数函数:y' = (d/dx)( 3x 2 + C) = 6x ,因为它们在沿_x_的对应点处都具有相同_的变化率(斜率)轴。虽然从微分的角度来看这似乎很自然和预期(不同的方程共享一个共同的导数),但从积分的角度来看,它通常会让初学者感到奇怪,因为函数的积分有多个正确答案。从一个方程到它的导数,只有一个答案,但是从那个导数回到原始方程会导致我们得到一系列正确的解。为了纪念这种不确定性,积分的符号函数称为_不定积分。
当积分器针对时间执行实时信号积分时,输出是积分输入信号随时间的总和_和_任意幅度的初始值,表示积分器在积分开始时的预先存在的输出。例如,如果我将汽车在远离城市的直线上行驶的速度积分,计算出在 2 小时内以 50 英里/小时的恒定速度将产生 100 英里的距离 (∫ v dt ),这并不一定意味着汽车将在 2 小时后离开城市 100 英里。_它告诉我们的_只是这辆车将行驶 100 英里开车2小时后远离市区。行驶 2 小时后与城市的实际距离取决于整合开始时汽车与城市的距离。如果我们不知道这个距离的初始值,我们就无法确定汽车在行驶 2 小时后到城市的确切距离。
当我们将加速度与时间积分以获得速度时,也会出现同样的问题:

在这个积分器系统中,只有当汽车静止( v = 0)时积分器电路被_初始化_为零输出值时,汽车的计算速度才有效。否则,当汽车静止时,积分器很可能会输出非零速度信号 ( v 0 ),因为加速度计无法区分静止状态(每小时 0 英里)和恒定速度状态(比如说,每小时 60 英里,不变)。积分器输出的这种不确定性是积分过程所固有的,而不是电路或传感器的伪影。
总之,如果任何物理测量都需要最大精度,最好直接测量该变量,而不是从其他测量中计算它。这并不是说计算一文不值。恰恰相反,它通常是获得所需测量值的唯一实用方法。然而,为了获得精确的测量结果,必须理解和尊重计算的局限性。
相关练习:
总目录: