Rudolf E. Kálmán · 1930–2016

卡尔曼

他把「从一串带噪声的读数里猜出真相」改写成每来一个数只改一次的递推,不到一年就被搬进了登月航线的导航计算;同一时期他还给「能控」「能观」下了定义,并指出估计与控制是同一个问题的正反两面

P(t+1)=Φ[PPM(MPM)1MP]Φ+QP^*(t+1) = \Phi\,\bigl[P^* - P^* M'\,(M P^* M')^{-1} M P^*\bigr]\,\Phi' + Q
1960 年《线性滤波与预测问题的新方法》第 41 页 (32) 式,今天叫离散时间的里卡蒂方程:估计误差的协方差每一步怎么更新,一个读数也不用存。原刊末尾那个因子印作 P*(t)M(t),应作 M(t)P*(t)——M 是 p×n 的矩阵,照印出来的次序在 p ≠ n 时根本乘不起来,而由同一页的 (28)–(30) 式也直接推得出后者。这里按订正后的写

鲁道夫·埃米尔·卡尔曼 1930 年 5 月 19 日生于布达佩斯。1943 年,战争中途,全家离开匈牙利,1949 年落脚俄亥俄州的扬斯敦;他在扬斯敦学院读了三年,转进麻省理工学电气工程,1953 年学士、1954 年硕士,1957 年在哥伦比亚大学随拉加齐尼拿到科学博士,论文做的是随机采样数据下的线性系统。短暂待过 IBM 的研究所之后,1958 年他进了巴尔的摩的高等研究院——马丁飞机公司办的一个研究所,数学部由莱夫谢茨主持,他的头衔是研究数学家。此后六年是他一生最密的一段:1959 年初想出那个递推滤波器,同年 9 月在墨西哥城讲出能控性的定义,1960 年 6 月在莫斯科的第一届国际自动控制大会上把能控、能观与两者的对偶一并摆出来,1962、1963 年又写出典范分解与最小实现。

他是工程师出身,而这座馆要先问他留下的东西是不是数学。答案在他自己的话里:1968 年他在意大利的暑期讲习班上说,「能控性本质上是一个代数概念」,晚年的课讲的是不变量理论与代数几何在系统上的用处;1964 年起他先后任斯坦福大学教授、佛罗里达大学数学系统论中心主任,1973 年起兼任苏黎世联邦理工学院数学系统论讲席,直到 1997 年退休。美国数学会把斯蒂尔奖颁给了他 1960、1961、1963 年那三篇,说它们是现代系统与控制理论和实践的基石。2016 年 7 月 2 日,他在盖恩斯维尔家中去世,八十六岁。

卡尔曼肖像
《美国机械工程师学会汇刊·基础工程杂志》第 82 卷 D 辑第 1 期(1960 年 3 月)第 35 页 · 公有领域(1960 年美国期刊,版权未续展)· Internet Archive。卡尔曼的照片没有一张许可合用(Commons 上三张都是 CC BY-SA),所以这里放他自己留下来的那一页:《线性滤波与预测问题的新方法》的首页,篇名底下印着 R. E. KALMAN 与巴尔的摩的高等研究院;摘要第 (3) 条就是那句「滤波问题是无噪声调节器问题的对偶」

生平

  1. 1930年5月19日
    生于布达佩斯

    1943 年全家离开匈牙利,1949 年到俄亥俄州扬斯敦。

  2. 1953–1954
    麻省理工,电气工程

    先在扬斯敦学院读了三年。硕士导师是吉耶曼。

  3. 1957
    哥伦比亚大学科学博士

    导师拉加齐尼。论文讲随机采样数据下线性系统的分析与综合。

  4. 1958
    巴尔的摩的高等研究院

    马丁飞机公司办的研究所,数学部由莱夫谢茨主持。他在那里待到 1964 年。

  5. 1959年2月24日
    滤波那篇的手稿寄到学会

    据悼文,想法是当年 1 月成形的。3 月 29 日至 4 月 2 日在美国机械工程师学会的仪表与调节器会议上宣读,1960 年 3 月刊出。

  6. 1959年9月
    墨西哥城:能控性

    他自己说,这是能控性的数学定义第一次正式讲出来。文章 1960 年刊于墨西哥数学会的会刊。

  7. 1960年6月
    莫斯科,第一届国际自动控制大会

    《论控制系统的一般理论》:能控、能观,以及两者的对偶。

  8. 1960年秋
    访艾姆斯研究中心

    给斯坦利·施密特打电话约的。一年之内那里就有了能在 IBM 704 上跑的月球航线导航模拟。

  9. 1961年3月
    与布西合写连续时间的版本

    《线性滤波与预测理论的新结果》,同一份杂志。手稿 1960 年 5 月 31 日寄到。

  10. 1962
    典范分解

    《美国科学院院刊》第 48 卷。每个线性系统都拆得成四块,输入输出只看得见其中一块。

  11. 1964–1997
    斯坦福、佛罗里达、苏黎世

    1971 年起主持佛罗里达大学的数学系统论中心,1973 年起兼任苏黎世联邦理工学院的讲席。

  12. 1985
    京都奖

    此前 1974 年得 IEEE 荣誉奖章,此后得斯蒂尔奖与德雷珀奖。

  13. 2009年10月7日
    美国国家科学奖章

    2008 年度的,在白宫东厅颁发。

  14. 2016年7月2日
    卒于盖恩斯维尔

    八十六岁。

展品厅

绝大多数展品都可以亲手把玩——这是本馆的立馆之本;少数以叙述为主的,做成故事展签。

镇馆之宝 · 亲手玩

每来一个读数,只改一次

高斯的最小二乘要把所有读数一次拿来解;他把它拆成了一步一步——手里只带着一个估计和一张协方差表,旧读数用完就扔。

1960 年那篇的标题是《线性滤波与预测问题的新方法》,要新的是维纳 1949 年那套:维纳把滤波写成一个积分方程,解出来的是滤波器的脉冲响应,只对平稳的信号好用,而且卡尔曼在引言里直说「很不适合在机器上算」。他换了一个起点——把信号写成一个由白噪声推着走的线性系统的「状态」,于是最优估计可以一步一步地递推:来一个读数,用它与预测之差改一次估计,同时照第 41 页 (28)–(30) 三式把误差的协方差往前推一步。第 43–44 页他给了两个例子,第二个正是本件演示的:一群粒子从原点出发、各自匀速,量其中一颗的位置,读数里叠着彼此相关的噪声,问它此刻在哪、速度多少。他把协方差的闭式写了出来,并在旁边说这「类似于往越来越多的点上拟合一条直线」——那正是高斯的最小二乘(馆里高斯那一页)。本馆拿它逐位核过:φ33 取 0、0.5、0.9,递推出来的协方差与他印的闭式在前五十步里相对差都在 10 的 −15 次方上下,两页上的式子一处印错也没有;倒是第 41 页那条总结性的 (32) 式末尾一个因子的次序印反了(见本页顶上那条公式的说明)。递推与最小二乘给出的是同一个数,要紧的是不必存下全部读数:同年秋天,正是这一点让它进了登月航线的导航研究(见本页第六件)。

拖动「用前几个读数」,看递推与一次性最小二乘给出同一个速度估计;再换一档噪声的相关系数

这是 1960 年那篇原文第 43–44 页的例 2:一颗粒子从原点出发匀速走,速度不知道;每一步量一次位置,读数上叠着一股彼此相关的噪声。滤波器每来一个读数就把估计改一次,改完就把读数扔掉,手里只带着一个估计和一个 3×3 的协方差矩阵。右栏把它与高斯的最小二乘并排:同一批读数一次拿来、先把噪声漂白、再解正规方程,两条路给出同一个速度估计,差 1.3e-15;而递推出来的误差方差与他印在第 44 页的闭式 b²t²/C1(t) 相对差 1.6e-16。他自己在同一页写着:这「类似于往越来越多的点上拟合一条直线」。下半幅的虚线是他给的 t ≫ 1 近似式,用到第 30 个读数时比精确值高 4.9%,t 越大越贴。

为什么观测与控制是对偶的量

把系统转置、把「从哪儿看」换成「从哪儿推」,估计误差往后走的那串矩阵,就是控制代价往前倒的那一串。

同一篇第 42 页,他把两个看上去毫不相干的问题并排摆了出来。问题 I 是估计:一个系统被随机扰动推着走,我们只看得见它的一部分,要猜它的全部状态。问题 II 是调节:一个系统的每个状态都看得见,我们只推得动它的一部分,要把它开回原点而代价最小。定理 4 说这两件事是对偶的:把问题 I 里在时刻 t0 + τ 的每个矩阵换成它在时刻 T − τ 的转置,就得到问题 II,反过来也一样;表 1 逐行列出九对对应——观测对控制、第一次观测对最后一次控制、估计误差的协方差对代价的二次型、观测的加权对反馈的增益。证明只有一句「做替换即可」。紧接着的附注 (o) 是一句不常在论文里见到的话:「对偶在物理上的意义耐人寻味。为什么观测与控制是对偶的量?」附注 (p) 说:拿维纳的办法去解调节器早就有人做过,但两个问题之间的联系、尤其是对偶,此前显然从没被准确说出来过。这一对后来成了控制理论的骨架:几个月后他在莫斯科把它推到了结构上——一个状态看不见,对偶过去就是那个方向推不动。本件演示里「只量速度」那一档就是这件事:位置的方差一步涨一个 q、永远涨下去,对偶那边的代价也一样。

上一行是估计:一辆小车按 x(t+1) = Φx(t) + 扰动 走,每步准确地量一次位置,误差的协方差从第一次观测起往后算。下一行是一个看上去毫不相干的问题——把 Φ 转置、把观测矩阵转置成控制的入口,要把这个系统开回原点,代价的二次型从最后一步起往前倒着算。两行是同一串矩阵,只是一个往右走、一个往左走:1960 年那篇的定理 4 就是这句话,证明只有一行「做替换即可」。紧接着他问:为什么观测与控制是对偶的量?

两根一样长的摆,一只手扶不住

n 维的系统,只要 G、FG、……前 n 个向量满秩,n 步之内就能从任何一点开回原点——差一点满秩的时候,要的力大到模型本身都破了。

能控性今天几乎是每一门现代控制课的起点,它的来路卡尔曼在 1968 年的讲义末尾自己交代过,而且交代得很规矩。1957 年他在做离散时间的最短时间控制,看出一件事:最优控制序列就是把当前状态写成某一串向量的线性组合的系数,而这串向量里只要前 n 个线性无关,零点附近的每一点就都能在至多 n 步之内开到原点——「所以叫完全能控」。可他当时犯了一个自己后来称为「严重的概念错误」:没有把能控当成假设,而是想证明它「几乎总是成立」。为了弄清这件事,他花了两年搭一套形式的定义,1959 年上半年写进约翰斯·霍普金斯的讲义,9 月在墨西哥城、次年 4 月在伯克利、6 月在莫斯科正式讲出来。他同样写明了别人走到哪一步:甘克列利泽 1957–58 年已经把单输入时的那个行列式当作最短时间问题的「非退化」条件,「这已经非常接近能控性的明确定义」,却没有把它看成系统本身的性质;克雷洛夫 1931 年求特征多项式时就在一个个地算 b、Ab、A²b。本件演示用的是一辆小车上立两根倒摆,手里只有一个输入:两根不一样长,六步开回原点;越接近一样长,要的加速度越大;一样长时秩掉到 4,它们的角度差照着一个不含输入的方程自己涨下去,怎么推都没用。

六维的系统(小车的位置与速度、两根摆的角度与角速度),手里只有一个输入。卡尔曼的判据是:把 G、FG、F²G……前六个向量排成一个矩阵,它满秩,就能在六步之内从任何一点开回原点——六步的控制量就是解一个 6×6 的线性方程组,上半幅那六根柱子。现在最大要 1.99 m/s²;把 l₂ 往 1 m 拖,柱子会疯长,大约与两根摆长之差成反比。这个判据的来路他自己写过:1957 年他看出「前 n 个向量线性无关,就能在 n 步之内开到原点」;甘克列利泽同一时期把单输入时的那个行列式当作一个技术条件用过;而把它定义成系统本身的一个性质、叫它「能控」,是他 1959 年在墨西哥城讲出来的。

黑箱里到底有几个状态

从外面敲一下、听它怎么响,只听得见既推得动又看得见的那一块;把这串回响排成汉克尔矩阵,它的秩就是最少要几个状态。

传递函数与微分方程是描述同一个系统的两种办法,工程师混着用了几十年,两者到底差在哪里,直到六十年代初才被说清。1962 年卡尔曼在《美国科学院院刊》上给了答案:每个有限维的线性系统都能典范地拆成四块——推得动又看得见的、推得动却看不见的、看得见却推不动的、两头都不通的,而输入与输出之间的关系只经过第一块。其余三块在里面自己转,外面一概不知。反过来的问题是实现:只给一串输入输出的数据,最少要几个状态才造得出它,造出来的是不是唯一?1963 年他在《SIAM 控制杂志》上把答案写成一条定理,在 1968 年的讲义里把首创权分得很细:第一个证明(特征值互异的情形)是吉尔伯特同年给的,随后他给了一般的证明,而最好用的办法是 B. L. Ho 1965 年的算法,尤拉与蒂西、西尔弗曼几乎同时各自得到;他还补了一句,这门学问可以追到十九世纪,围着汉克尔矩阵转。本件演示里的黑箱有五个状态,特征值都取有理数,一切按分数精确算、不设容差:汉克尔矩阵的秩只数得到接通了两头的那几块,拿前 2n 项解出的模型往后预测,每一项都与箱子真吐出来的精确相等。

箱子里有五个状态,可从外面敲一下、看它怎么响,只看得见那一串脉冲响应。把这串数排成汉克尔矩阵,它的秩就是「最少要几个状态」,而这个数只数得到既被输入推得动、又在输出上露得出来的那几块——现在是 2 个。其余的,推不动的在里面自己衰减,看不见的在里面白转,外面一概不知道。这就是卡尔曼 1962 年那条典范分解。B. L. Ho 1965 年给的算法把这件事变成了一步计算:拿前 4 项解出递推系数,得到一个 2 维的模型,它往后预测的每一项都与箱子真吐出来的精确相等。今天从实测数据里辨识一个系统的模型,第一步做的就是这件事。

一直算下去,就落到维纳的那一个

每一步该给新读数多大的权重?他给的是一条从零起算的差分方程;令 t 趋于无穷,解一个二次方程,就是维纳的平稳滤波器。

1960 年那篇的例 1 是最朴素的情形:一个一阶自回归的信号,每一步的新息方差是 a²,读出来时叠着方差 b² 的白噪声。每来一个读数,估计该往它那边挪多少?他的回答是第 43 页的 (38) 式:C(t+1) = 1 − b²/(a² + b² + φ²b²C(t)),从 C(0) = 0 起算——因为已知 x1(0) = 0,第一次读数没用。这个 C 就是今天所说的卡尔曼增益。他接着写了三句话:这条非线性差分方程扮演的正是维纳–霍普夫方程的角色;读数很干净时 C 近于 1,几乎全信读数,读数很脏时 C 近于 0,几乎全靠上一步的预测;要得到平稳的维纳滤波器,只要在两边令 t 等于无穷、解一个关于 C(∞) 的二次方程。本馆照做了:a² = b² = 1、φ = 0.9 时,C(1) = 1/2、C(2) = 281/481、C(3) = 70861/118961,第 11 步就与二次方程的根 0.597407287 差不到十亿分之一;可读数越脏收得越慢,b²/a² = 100 时要走 60 步。维纳那套给的就是这个终点——平稳、看了无穷久;他的递推从第一个读数起就是最优的。就在同一年,艾姆斯那批做登月导航的工程师正卡在这里:据施密特 1985 年的回忆,他们「找不到一个不牺牲精度就能套用维纳滤波理论的办法」,原因之一正是读数一次一次、间隔不齐。

1960 年那篇原文的例 1:一个一阶自回归的信号,叠着白噪声读出来。每一步估计该给新读数多大的权重?他给的答案是一条非线性差分方程 (38),从 C(0) = 0 起一步步算——这个 C 就是今天所说的卡尔曼增益。他在同一页写:这条方程「扮演的正是维纳–霍普夫方程的角色」;而要得到维纳那个平稳的滤波器,只要在两边令 t = ∞、解一个二次方程。左上的蛛网图把这件事画了出来:递推一步步爬到那个根上,现在每步把差缩成 0.131 倍,第 11 步就与它差不到十亿分之一。维纳那套给的就是这个终点;他的递推从第一个读数起就是最优的——下方两条估计在头几步分得开,读数越脏(b²/a² 越大)分得越久。

1960 年秋天,他打电话给艾姆斯

那边正卡在一件事上:飞船上的计算机算不动最小二乘,维纳的滤波又套不上去。

1960 年,美国航空航天局艾姆斯研究中心的动力学分析组在做一件当时还叫「绕月飞行可行性研究」的事,要回答的问题之一是:航天员用一台光学仪器量地球与月亮的方位,飞船上的计算机能不能据此算出自己在哪。组里先看了喷气推进实验室在用的迭代加权最小二乘,结论是它对当时的机载计算机太复杂,拿来做模拟也会把他们那台 IBM 704 压垮;又试了维纳的滤波理论——组里有人拿它做过导弹的制导——可月球航线是非线性的,读数又是一次一次、间隔不齐的,他们「找不到一个不牺牲精度就能套用的办法」。这时,据艾姆斯的斯坦利·施密特 1985 年与麦吉合写的回忆,「1960 年秋天,卡尔曼博士在不知道我们在做什么的情况下,打电话约好来拜访施密特博士」,当面讲了那篇论文。打动他们的是「逐次求解」这一点,正好能替那台 IBM 704 减负。理论是线性的,应用是非线性的;施密特的办法是围着当前最好的估计线性化,再把他的算法拆成「时间更新」与「测量更新」两步,好让读数随时来随时处理——这就是后来说的扩展卡尔曼滤波。1961 年初模拟跑通。同年 9 月,麻省理工仪器实验室的巴廷在他的报告里写:原本把卡尔曼的理论用到空间导航上的,是施密特和他的同事;此后在麻省理工与巴廷共事的波特做出第一个平方根形式的实现,装进了阿波罗的导航系统。

故事展签故事展签:一个打给艾姆斯的电话,和一台算不动最小二乘的 IBM 704。

传承

他的工作没有留在十八世纪——每条链的终点,都是你今天正在使用的东西。

1960:每来一个读数只改一次估计,协方差跟着递推,旧读数不必存艾姆斯把它线性化成扩展形式,麻省理工做成平方根形式,装进了阿波罗的导航计算今天每一台 GPS 接收机、每一套惯性导航与传感器融合都在跑它
1960:估计与调节是同一个里卡蒂递推正着走与倒着走线性二次型最优调节器由此成了标准做法,估计与控制可以分开设计再拼起来今天飞机自动驾驶、机器人与化工过程的自动控制,大多是这一套的后代
1959–1960:能控与能观成了系统本身的性质,判据是一个矩阵的秩状态反馈能把特征值放到任何地方,当且仅当系统能控——控制设计从此有了存在性定理航天器与无人机的姿态控制、火箭的推力矢量控制,设计的第一步都是验这两个秩
1962–1965:输入输出只看得见既能控又能观的那一块,最小实现由汉克尔矩阵的秩定出从实测数据里辨识一个状态空间模型成了一门学问,子空间辨识一类的办法都从 Ho 的算法那里长出来电路与机械的建模、机器学习里的状态空间序列模型,都从这一步起家
1960:增益的差分方程从零起算,令 t 趋于无穷就是维纳的平稳滤波器非平稳、多变量、间隔不齐的读数从此都能照同一套处理天气预报的资料同化用的集合卡尔曼滤波,每天把全球观测揉进数值模式里
1960:把看不见的量写成状态,让它按一个线性方程随时间走经济计量学把利率、通货膨胀里看不见的趋势写成状态空间模型金融里的随机波动率与风险估计,至今用它逐日更新

他在哪几条专题里

专题是按技术组织的演进线,一条从概念提出拉到今天的器物。这里一个字都没手写, 全是 tracks.ts 推出来的。

语录

对偶在物理上的意义耐人寻味。为什么观测与控制是对偶的量?

—— 1960 年《线性滤波与预测问题的新方法》,《美国机械工程师学会汇刊·基础工程杂志》第 82 卷第 42 页,附注 (o),紧接在对偶定理之后

这篇论文从「状态」的观点提出并解决了维纳问题……另一方面,维纳问题被证明与控制理论里的其他问题密切相关。要把这些联系用起来,还有很多事要做。

—— 同一篇的结论,第 44 页

能控性与能观性的理论,可以说几乎是不情愿地,为回应技术科学——尤其是控制、通信与计算机这几处——提出的问题而发展起来的。

—— 1968 年 7 月意大利数学暑期中心(C.I.M.E.)的讲义《能控性与能观性讲义》引言,第 5 页

能控性本质上是一个代数概念。

—— 同一份讲义末节「历史评注」,第 141 页,他列的四条立场里的第一条