JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

传递函数与布罗姆维奇积分

两个想法把整个线性系统压进了一个对象里:时间里的冲激响应,与 s 域里的传递函数。随后我们掀开逆变换本身的盖子,发现底下静候着一个复平面里的围道积分。

一个对象就能概括的系统

整整一级里,你一遍又一遍地用着同一个节奏:把一个微分方程变换,在 s 里解代数,再求逆。看看这台机器对一个静止的线性常系数系统究竟产出了什么。把诸如 y'' + 2 y' + 5 y = x(t) 这样的方程变换、令一切初始条件为零,导数便化成 s 的幂,没有残留的边界项;方程坍缩成 (s^2 + 2 s + 5) Y(s) = X(s)。解出输出便得 Y(s) = X(s) / (s^2 + 2 s + 5)。看清刚刚发生的事:系统把变换后的输入乘上一个固定的因子,再交回变换后的输出。

那个固定的因子值得拥有一个名字。传递函数 H(s) 是变换后输出与变换后输入之比,Y(s) = H(s) X(s),在系统起始于静止的前提下一劳永逸地算出。对我们的例子,H(s) = 1/(s^2 + 2 s + 5),而你能直接从微分方程的系数把它读出来——无需求解。它是把这个盒子的整套输入-输出个性,挤压进单单一个 s 的多项式之比。喂进任何输入,乘上同一个 H(s),求逆,响应便出来了。传递函数就是这个盒子所做一切的 s 域概括。

冲激响应:敲它一下,听一听

传递函数有一个活在时间里的孪生兄弟,而它有一层美妙的物理含义。敲一下钟,要快、要利,听一听:那荡开又消逝的声响就是钟的签名。这一记利落敲击的数学版本,是单位冲激,即狄拉克 delta delta(t)——一个时长为零、总强度为一的输入。把 delta(t) 喂进一个起始于静止的系统,得到的输出便称为冲激响应,记作 h(t)。它是系统的指纹:你戳它一下、退后一步,它如何鸣响、衰减或共振。

美妙的关联在此。狄拉克 delta 在 s 域里是最干净不过的输入,因为它的拉普拉斯变换恰是 1——一条平坦、毫无特征的谱。于是当输入为 delta(t),变换后的输入 X(s) 等于 1,而 Y(s) = H(s) X(s) 便简化为 Y(s) = H(s)。变换后的冲激响应,就是传递函数本身。换言之,h(t) 与 H(s) 是一对拉普拉斯变换对冲激响应是 H(s) 的拉普拉斯逆变换,而 H(s) 是 h(t) 的变换。同一个系统戴着两副面孔——时间里的 h(t),s 里的 H(s)——而单单一个积分把它们联系起来。

为什么一次敲击能预言每个输入

「冲激响应是一份*完整*指纹」这一断言,听上去未免太强。敲一下,你就知道对万物的响应?然而对线性时不变系统,它恰恰为真,缘由正是你早些时候在本级遇到的卷积定理。在 s 域里,输出是简单的乘积 Y(s) = H(s) X(s)。卷积定理说,把两个变换相乘,回到时间里对应的并不是把函数相乘,而是把它们*卷积*。于是时间域的输出是 y(t) = 从 0 到 t 对 h(tau) x(t - tau) d tau 积分。

把那个积分当作一个故事来读,它便不再神秘。把输入 x(t) 想成一列密集的冲激:在过去时间的每一个微小切片 tau 里,输入递出了一记大小为 x(t - tau) 的小敲击。系统对一记敲击的回应是 h,经过缩放与延迟。卷积积分不过是把系统对那每一记小敲击的回声加起来,每个回声都按它当时的大小加权、按它落下已有多久而衰减。这便是为何单单一个响应 h(t) 就够了——因为线性让你能用缩放、平移的冲激搭出任何输入,而时不变性说系统对每一记的回应方式都相同,只是更晚。整个预言归结为把回声相加。

s 平面里的极点,以及它们告诉你什么

在我们打开逆变换之前,先看看传递函数在何处发散。对一个有理的 H(s)(多项式之比),使分母为零的那些 s 值称为极点——H(s) 在那里冲向无穷的点。对 H(s) = 1/(s^2 + 2 s + 5),分母分解后的根是 s = -1 + 2 i 与 s = -1 - 2 i,于是复 s 平面里坐着两个极点。它们不是代数上的奇趣;它们的位置编码了系统的整套定性行为,而你一眼就能把答案读出来。

一个在 s = a 处的极点,意味着冲激响应里含有一项正比于 e^{a t} 的项。于是每个极点的*实部*决定了那一项的命运。实部为负、坐在 s 平面左半边的极点,给出衰减的 e^{a t}——系统安定下来。实部为正、在右半平面的极点,给出增长的项——系统不稳定、失控发散。而*虚部*决定了鸣响的频率。我们那两个在 -1 +/- 2 i 的极点实部为 -1(故响应像 e^{-t} 那样衰减)、虚部为 +/- 2(故以频率 2 振荡):冲激响应是一个阻尼正弦,e^{-t} 乘一个正弦——一口被敲响的钟,以音高 2 鸣响并渐渐隐去。整个故事,从平面里的两个点便读了出来。

表的底下:布罗姆维奇积分

整整一级里,我们都靠倒着读表来求逆——用部分分式把 F(s) 拆开,直到每一块都对上某个表项,再查出对应的时间函数。这管用,也快,但它是辨认,不是定义。一个不出现在任何表里的 F(s),它的拉普拉斯逆变换究竟*是*什么?必得有一个诚实的公式,从 F(s) 直接复原 f(t),是定义积分 F(s) = 从 0 到无穷对 e^{-s t} f(t) dt 的精确逆运算。确有其物,它叫布罗姆维奇积分

公式在此,请立刻注意它栖居于复平面:f(t) = (1/(2 pi i)) 乘以沿竖直线 Re(s) = c 对 e^{s t} F(s) ds 的积分。你沿 s 平面里一条笔直的竖线向上积分,从底端的 c - i*infinity 到顶端的 c + i*infinity,其中 c 是任意一个被放在 F(s) 一切奇点右侧的实数——也就是落在收敛域之内。这条竖直路径就是布罗姆维奇围道。因子 e^{s t} 是当初搭起正变换那个 e^{-s t} 的逆向搭档,而 1/(2 pi i) 则是复围道积分的指纹。正是在这里,拉普拉斯变换不再是实变量的记账,而成了货真价实的复分析。

       Im(s)                       Bromwich contour: vertical line Re(s)=c,
         ^                           placed RIGHT of every pole of F(s).
         |        : line Re(s)=c
   pole  x        :  --> close to the LEFT with a big arc
         |        :
  -------+--------:------------> Re(s)
         |        :
   pole  x        :
         |        :

  f(t) = (1/(2 pi i)) * integral_{c - i*inf}^{c + i*inf} e^{s t} F(s) ds

  Close left, apply the residue theorem:

  f(t) = sum over all poles s = a of  Res[ e^{s t} F(s) , s = a ]

  Simple pole at s = a  ->  residue = e^{a t} * (numerator / denominator')|_{s=a}
                         ->  contributes a term proportional to e^{a t}.
布罗姆维奇围道及其留数求值。把竖线向左闭合,便将它绕在极点周围;每个在 s = a 处的简单极点贡献一个干净的 e^{a t} 项——这正是为何有理的 F(s) 求逆后是指数之和。

把围道闭合——以及为何部分分式一直就是留数

你几乎从不直接沿那条无限长的竖线积分。取而代之,你动用复分析的看家本领:闭合围道。向*左*甩出一段巨大的半圆弧,把竖线的顶端接回底端,使路径成为一个圈住 F(s) 一切极点的闭合回路。当 t > 0,因子 e^{s t} 在那段左弧上衰减——因为那里的 s 有很大的负实部——而随着弧的增大,弧的贡献消失(这是带拉普拉斯味道的若尔当引理)。剩下的就是那个闭合回路,而一个绕着极点的闭合回路,恰恰是留数定理生来就要求值的对象。

留数定理说,闭合回路积分等于 2 pi i 乘以被积函数在所圈极点处留数之和。这个 2 pi i 抵消掉前头的 1/(2 pi i),留下干净的陈述:f(t) = e^{s t} F(s) 在一切极点处留数之和。这里便是把本篇与之前一切系在一起的回报。在一个简单极点 s = a 处,e^{s t} F(s) 的留数是一个常数乘 e^{a t}。于是用留数对有理的 F(s) 求逆,恰好产出一个指数项之和,每个极点一项——与「查表加部分分式」给出的答案分毫不差。原来,部分分式一直就在算留数,只是披着代数的外衣。