| 分享: |
|
| zhijun | Re: 卡尔曼教授 2026-04-10 11:08:04 | 引用 |
| Re: 卡尔曼教授 关于卡尔曼——卡尔曼滤波和他的现代控制理论
鲁道夫·埃米尔·卡尔曼 (Rudolf Emil Kalman) 是一位拥有匈牙利血统的美国数学家。 这位出生于布达佩斯的科学家于 1943 年与家人逃离二战战火并移民到美国。他一生致力于研究数学,直到 2016 年去世,在信号处理、控制系统和导航方面留下了丰富的应用数学遗产。 卡尔曼在麻省理工学院 (MIT) 获得电气工程学士学+位,随后在哥伦比亚大学攻读研究生,并在1958年获得博士学+位并撰写了论文“线性系统对随机采样数据的分析与综合”。 ![]() 鲁道夫·E·卡尔曼。 图片由 ETH 提供 在 IBM 位于纽约波基普西的研究实验室进行了短暂的工作之后,卡尔曼在马里兰州巴尔的摩高级研究所找到了一个职位,在那里他完成了一些最重要的工作。 1964年,他离开巴尔的摩,在斯坦福大学担任工程力学、电气工程和数学系统论教授。 他在佛罗里达大学盖恩斯维尔分校度过了晚年,在那里他担任数学、电气工程以及工业和系统工程系的研究生研究教授。 同时,他被任命为数学系统理论中心主任,并在苏黎世 Eidgenössische Technische Hochschule获得了另一个教授职位。 统计模型的怀疑者 卡尔曼是一位一丝不苟的数学理论家,他的研究成果被引用了无数次。 众所周知,他不懈地质疑模型的准确性,认为研究人员应该仔细检查他们是否成功处理了真实的噪声数据,或者只是将他们的偏见放到了模型上。 ![]() 使用卡尔曼滤波器估计车辆位置。 图片由 Hindawi 提供 他对空间状态概念的贡献,包括可控性、可观察性、控制与估计之间的对偶性、最小性、线性二次控制、矩阵 Ricatti 方程和输入/输出可实现性的概念,现在已普遍用于控制工程中。 卡尔曼经常批判不科学的统计模型,他在两本名为“随机性和概率”和“什么是统计模型”的出版物中提出了他的想法。 卡尔曼认为,统计模型只是对现实的模糊描述,因为它们是假设性的猜测,缺乏现实的反馈。 他质疑 IID(独立同分布)过程,因为正如他所说,“……自然似乎并非如此。” 卡尔曼滤波器的起源 卡尔曼滤波器基于状态空间建模和递归最小二乘算法检测噪声中的信号。 这些滤波器是对 Wiener 滤波模型的开创性改进,该模型已被证明是不切实际且难以应用的。 卡尔曼滤波器算法使用随着时间的推移观察到的数据以及被噪声和其他不准确因素污染的数据来更准确地估计未知变量。该算法解决了由输入计算机控制系统的原始数据引起的导航问题,该系统收集来自陀螺仪、加速度计、激光扫描仪、立体相机和雷达的多个传感器测量值。 卡尔曼滤波可在存在噪声的情况下精确计算位置、方向和速度。 在过去的 60 年里,卡尔曼滤波器进行了许多改进,使其适应机器人技术并校正滤波器的一致性、收敛性和准确性,将应用扩展到自主导航、经济学和生物医学。 ![]() 航天器及时更新其卡尔曼滤波器估计并进行调整以保持在正确的路径上。 图片由 Jack Trainer 提供 卡尔曼滤波算法提供了对移动物体的位置和速度的最佳估计。 这对于在几英寸(约 10 厘米)的空间内识别人或物体的位置尤为重要,例如 GPS 跟踪器和物联网中的智能对象。 机器人学已经充分利用了卡尔曼滤波器,特别是在参数识别、机器人控制和移动机器人的自主导航方面。 ![]() 奖项与认可 卡尔曼获得了许多电气工程学术工作可获得的最高奖项和奖项,包括 1974 年的 IEEE 荣誉勋章、1984 年的 IEEE 百年纪念奖章、1985 年 Inamori 基金会的京都先进技术奖、1997年Richard E. Bellman控制遗产奖,2008年美国国家工程院Charles Stark Draper 奖。2009 年,他获得了奥巴马总统颁发的国家科学奖章。 ![]() 奥巴马总统授予卡尔曼国家科学奖章。 图片由 NSF 提供 在国际上,他还是匈牙利、法国和前苏联科学院的成员。 美国数学学会授予卡尔曼Steele奖,以表彰他对控制系统现代理论和实践的三篇论文的贡献: “线性过滤和预测问题的新方法”(1960 年) “线性过滤和预测理论的新成果”(1961 年) “线性动力系统的数学描述”(1963 年) 他与理查德·S·布西 (Richard S. Bucy) 合著了最后一篇。 因此,卡尔曼递归算法滤波器曾被称为 Kalman-Bucy滤波器。 这篇论文最初遭到了质疑。 然而,美国宇航局(NASA)艾姆斯研究中心后来使用卡尔曼滤波器为阿波罗飞船估计导航并使登月任务成功。 NASA 后来扩展了卡尔曼非线性系统理论的工作,并开发了基于泰勒级数逼近的 EKF(扩展卡尔曼滤波器)。 该算法被重新制定以处理任意时间间隔的测量并提供更准确和可靠的结果。 2026-04-10 11:11:07 | 引用 |
zhijun |
| zhijun | Re: 卡尔曼教授 演算概念 卡尔曼滤波器使用系统的动态模型(例如,运动的物理定律),该系统的已知控制输入以及多个顺序的测量值(例如来自传感器的测量值)来形成对系统变化量(其状态)更好的估计,其精度比仅使用一种测量获得的估算值高。它是一种常见的感测器融合和数据融合算法。 感测器数据的杂讯,描述系统演化的方程式的近似值以及未考虑所有因素的外部因素都限制了确定系统状态的能力。卡尔曼滤波器有效地处理了由于感测器数据杂讯引起的不确定性,并在一定程度上处理了随机外部因素。卡尔曼滤波器使用加权平均值生成系统状态的估计值,作为系统预测状态和新测量值的平均值。权重的目的是估计值具有更好(即较小)的不确定性的值会被更多“信任”。权重是根据共变异数来计算的,共变异数是对系统状态预测的估计不确定性的度量。加权平均值的结果是介于预测状态和测量状态之间的新状态估计,并且比任何一个状态都有更好的估计不确定性。在每个时间步重复此过程,新的估计值及其共变异数将通知后续迭代中使用的预测。这意味著卡尔曼滤波器可以递回地工作,并且只需要系统状态的最后“最佳猜测”,而不是整个历史,就可以计算新状态。 测量和当前状态估计的相对确定性是重要的考虑因素,通常根据卡尔曼滤波器的增益来讨论滤波器的反应。卡尔曼增益是赋予测量值和当前状态估计值的相对权重,可以进行“调整”以获得特定的性能。增益高时,滤波器将更多的精力放在最新的测量上,因此反应速度更快。增益较低时,滤波器会更紧密地遵循模型预测。在极端情况下,接近1的高增益将导致估计的轨迹更加跳跃,而接近零的低增益将消除杂讯,但会降低反应速度。 在执行滤波器的实际计算时(如下所述),状态估计值和共变异数被编码到矩阵中,以处理单个计算集中涉及的多个维度。这允许在任何过渡模型或共变异数中表示不同状态变量(例如位置,速度和加速度)之间的线性关系。 2026-04-10 11:11:46 | 引用 |
| Re: 卡尔曼教授 卡尔曼滤波器使用系统的动态模型(例如,运动的物理定律),该系统的已知控制输入以及多个顺序的测量值(例如来自传感器的测量值)来形成对系统变化量(其状态)更好的估计,其精度比仅使用一种测量获得的估算值高。它是一种常见的感测器融合和数据融合算法。 感测器数据的杂讯,描述系统演化的方程式的近似值以及未考虑所有因素的外部因素都限制了确定系统状态的能力。卡尔曼滤波器有效地处理了由于感测器数据杂讯引起的不确定性,并在一定程度上处理了随机外部因素。卡尔曼滤波器使用加权平均值生成系统状态的估计值,作为系统预测状态和新测量值的平均值。权重的目的是估计值具有更好(即较小)的不确定性的值会被更多“信任”。权重是根据共变异数来计算的,共变异数是对系统状态预测的估计不确定性的度量。加权平均值的结果是介于预测状态和测量状态之间的新状态估计,并且比任何一个状态都有更好的估计不确定性。在每个时间步重复此过程,新的估计值及其共变异数将通知后续迭代中使用的预测。这意味著卡尔曼滤波器可以递回地工作,并且只需要系统状态的最后“最佳猜测”,而不是整个历史,就可以计算新状态。 测量和当前状态估计的相对确定性是重要的考虑因素,通常根据卡尔曼滤波器的增益来讨论滤波器的反应。卡尔曼增益是赋予测量值和当前状态估计值的相对权重,可以进行“调整”以获得特定的性能。增益高时,滤波器将更多的精力放在最新的测量上,因此反应速度更快。增益较低时,滤波器会更紧密地遵循模型预测。在极端情况下,接近1的高增益将导致估计的轨迹更加跳跃,而接近零的低增益将消除杂讯,但会降低反应速度。 在执行滤波器的实际计算时(如下所述),状态估计值和共变异数被编码到矩阵中,以处理单个计算集中涉及的多个维度。这允许在任何过渡模型或共变异数中表示不同状态变量(例如位置,速度和加速度)之间的线性关系。 基本动态系统模型 卡尔曼滤波建立在线性代数和隐马尔可夫模型(hidden Markov model)上。其基本动态系统可以用一个马尔可夫链表示,该马尔可夫链建立在一个被高斯噪声(即正态分布的噪声)干扰的线性算子上的。系统的状态可以用一个元素为实数的向量表示。随着离散时间的每一个增加,这个线性算子就会作用在当前状态上,产生一个新的状态,并也会带入一些噪声,同时系统的一些已知的控制器的控制信息也会被加入。同时,另一个受噪声干扰的线性算子产生出这些隐含状态的可见输出。 为了从一系列有噪声的观察数据中用卡尔曼滤波器估计出被观察过程的内部状态,必须把这个过程在卡尔曼滤波的框架下建立模型。也就是说对于每一步k,定义矩阵Fk, Hk, Qk, Rk,有时也需要定义Bk,如下。 卡尔曼滤波模型假设k时刻的真实状态是从(k − 1)时刻的状态演化而来,符合下式: xk=Fkxk−1+Bkuk+wk其中 wk∼N(0,Qk)时刻k,对真实状态xk的一个测量zk满足下式: zk=Hkxk+vk实际上,很多真实世界的动态系统都并不确切的符合这个模型;但是由于卡尔曼滤波器被设计在有噪声的情况下工作,一个近似的符合已经可以使这个滤波器非常有用了。更多其它更复杂的卡尔曼滤波器的变种,在下边讨论中有描述。 卡尔曼滤波器 卡尔曼滤波是一种递归的估计,即只要获知上一时刻状态的估计值以及当前状态的观测值就可以计算出当前状态的估计值,因此不需要记录观测或者估计的历史信息。卡尔曼滤波器与大多数滤波器不同之处,在于它是一种纯粹的时域滤波器,它不需要像低通滤波器等频域滤波器那样,需要在频域设计再转换到时域实现。 卡尔曼滤波器的状态由以下两个变量表示:
卡尔曼滤波器的操作包括两个阶段:预测与更新。在预测阶段,滤波器使用上一状态的估计,做出对当前状态的估计。在更新阶段,滤波器利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的新估计值。 预测 更新 首先要算出以下三个量: y~k=zk−Hkx^k|k−1然后用它们来更新滤波器变量x与P: x^k|k=x^k|k−1+Kky~k使用上述公式计算Pk|k 不变量(Invariant) 且协方差矩阵准确的反映了估计的协方差: 实例 考虑在无摩擦的、无限长的直轨道上的一辆车。该车最初停在位置0处,但时不时受到随机的冲击。每隔Δt秒即测量车的位置,但是这个测量是非精确的;想建立一个关于其位置以及速度的模型。来看如何推导出这个模型以及如何从这个模型得到卡尔曼滤波器。 因为车上无动力,所以可以忽略掉Bk和uk。由于F、H、R和Q是常数,所以时间下标可以去掉。 车的位置以及速度(或者更加一般的,一个粒子的运动状态)可以被线性状态空间描述如下: xk=[xx˙]其中 F=[1Δt01]且 G=[Δt22Δt]可以发现 Q=cov(Ga)=E[(Ga)(Ga)T]=GE[a2]GT=G[σa2]GT=σa2GGT在每一时刻,对其位置进行测量,测量受到噪声干扰。假设噪声服从正态分布,均值为0,标准差为σz。 zk=Hxk+vk其中 H=[10]且 R=E[vkvkT]=[σz2]如果知道足够精确的车最初的位置,那么可以初始化 x^0|0=[00]并且,若让滤波器知道确切的初始位置,可给出一个协方差矩阵: P0|0=[0000]如果不确切的知道最初的位置与速度,那么协方差矩阵可以初始化为一个对角线元素是B的矩阵,B取一个合适的比较大的数。 P0|0=[B00B]此时,与使用模型中已有信息相比,滤波器更倾向于使用初次测量值的信息。 推导 推导后验协方差矩阵 整理误差向量,得 Pk|k=cov((I−KkHk)(xk−x^k|k−1)−Kkvk)因为测量误差vk与其他项是非相关的,因此有 Pk|k=cov((I−KkHk)(xk−x^k∣k−1))+cov(Kkvk)利用协方差矩阵的性质,此式可以写作 Pk|k=(I−KkHk)cov(xk−x^k|k−1)(I−KkHk)T+Kkcov(vk)KkT使用不变量Pk|k-1以及Rk的定义这一项可以写作 : 这一公式对于任何卡尔曼增益Kk都成立。如果Kk是最优卡尔曼增益,则可以进一步简化,请见下文。 最优卡尔曼增益的推导 卡尔曼滤波器是最小均方误差估计器,后验状态误差估计(英文:a posteriori state estimate)是 xk−x^k|k此处须用到一个常用的式子,如下: dtr(BAC)dA=BTCT从这个方程解出卡尔曼增益Kk: KkSk=(HkPk|k−1)T=Pk|k−1HkT这个增益称为最优卡尔曼增益,在使用时得到最小均方误差。 后验误差协方差公式的化简 在卡尔曼增益等于上面导出的最优值时,计算后验协方差的公式可以进行简化。在卡尔曼增益公式两侧的右边都乘以SkKkT得到 KkSkKkT=Pk|k−1HkTKkT根据上面后验误差协方差展开公式, Pk|k=Pk|k−1−KkHkPk|k−1−Pk|k−1HkTKkT+KkSkKkT最后两项可以抵消,得到 Pk|k=Pk|k−1−KkHkPk|k−1=(I−KkHk)Pk|k−1这个公式的计算比较简单,所以实际中总是使用这个公式,但是需注意这公式仅在使用最优卡尔曼增益的时候它才成立。如果算术精度总是很低而导致数值稳定性出现问题,或者特意使用非最优卡尔曼增益,那么就不能使用这个简化;必须使用上面导出的后验误差协方差公式。 与递归贝叶斯估计之间的关系 假设真正的状态是无法观察的马尔可夫过程,测量结果是从隐性马尔可夫模型观察到的状态。 ![]() 根据马尔可夫假设,真正的状态仅受最近一个状态影响而与其它以前状态无关。 p(xk|x0,…,xk−1)=p(xk|xk−1)与此类似,在时刻k测量只与当前状态有关而与其它状态无关。 p(zk|x0,…,xk)=p(zk|xk)根据这些假设,隐性马尔可夫模型所有状态的概率分布可以简化为: p(x0,…,xk,z1,…,zk)=p(x0)∏i=1kp(zi|xi)p(xi|xi−1)然而,当卡尔曼滤波器用来估计状态x时,感兴趣的机率分布,是基于目前为止所有个测量值来得到的当前状态之机率分布 p(xk|Zk−1)=∫p(xk|xk−1)p(xk−1|Zk−1)dxk−1信息滤波器 同样,预测的共变异数和状态具有等效的信息形式,定义为: Yk∣k−1=Pk∣k−1−1y^k∣k−1=Pk∣k−1−1x^k∣k−1以及测量共变异数和测量向量,它们定义为: Ik=HkTRk−1Hkik=HkTRk−1zk信息更新现在变得微不足道了。 Yk∣k=Yk∣k−1+Iky^k∣k=y^k∣k−1+ik信息过滤器的主要优点是,只需将其测量信息矩阵和向量相加即可在每个时间步长过滤N个测量值。 Yk∣k=Yk∣k−1+∑j=1NIk,jy^k∣k=y^k∣k−1+∑j=1Nik,j为了预测信息过滤器,可以将信息矩阵和向量转换回它们的状态空间等效项,或者可以使用信息空间预测。 Mk=[Fk−1]TYk−1∣k−1Fk−1Ck=Mk[Mk+Qk−1]−1Lk=I−CkYk∣k−1=LkMkLkT+CkQk−1CkTy^k∣k−1=Lk[Fk−1]Ty^k−1∣k−1如果F和Q是非时变的,则可以将这些值缓存起来,并且F和Q必须是可逆的。 频率加权卡尔曼滤波器 在1930年代,Fletcher和Munson进行了有关不同频率的声音感知的开创性研究。他们的工作导致了在工业杂讯和听力损失调查中加权测得的声音水平的标准方法。此后,已在滤波器和控制器设计中使用了频率 加权,以管理目标频段内的性能。 2026-04-10 11:13:48 | 引用 |
zhijun |
| zhijun | Re: 卡尔曼教授 Kalman Filter 卡尔曼滤波【2015年版-全集】
徐亦达教授主页:Richardxu.com课件地址:https://github.com/roboticcam/machine-learning-notes/blob/master/README.md 2026-04-10 11:26:03 | 引用 |
| 无题 看不懂, 飘过咯
2026-04-10 16:27:27 | 引用 |
幸运儿 |
加西网为北美中文网传媒集团旗下网站
鲁道夫 • 卡尔曼在1930年5月19日出生于匈牙利首都布达佩斯的一个犹太人家庭,他的匈牙利名字是KálmánRudolf Emil。卡尔曼对基础科学和工程技术甚至今天大数据分析的贡献是毋庸赘言的。2016年9月5日,麻省理工学院(MIT)航空航天及工程制造历史学教授大卫 • 敏德尔(David Mindell)和MIT媒体艺术与科学教授及媒体实验室前主任弗兰克 • 莫斯(FrankMoss)在《麻省理工学院技术评论》( MIT Technology Review )中写了一篇题为“Howan Inventor You've Probably Never Heard of Shaped the Modern World”的纪念卡尔曼的文章,其中提到:
“卡尔曼最重要的发明是卡尔曼滤波算法,该算法成就了过去50年间的许多基本技术,如把阿波罗号宇航员送上月球的航天计算机系统、把人类送去探索深海和星球的机器人载体,以及几乎所有需要从噪声数据去估算实际状态的项目。有人甚至把包括环绕地球的卫星系统、卫星地面站及各类计算机系统在内的整个GPS系统合称为一个巨大无比的卡尔曼滤波器。”
1943 年,卡尔曼的电气工程师父亲领着全家移民到了美国。卡尔曼于 1953 和1954 年在 MIT先后获得电子工程学士和硕士学+位,但没能通过MIT 的博士资格考试,之后转往哥伦比亚大学,于 1957 年获得博士学+位,导师是 John RalphRagazzini(1912-1988),论文题目是“AnalysisandSynthesis of Linear Systems Operating onRandomly Sampled Data”。
随后,1957-1958年间,卡尔曼在位于纽约州Poughkeepsie 镇的IBM Research Laboratory当技术员。1958-1964年他到了马里兰州巴尔德摩市由著名数学家Solomon Lefschetz 创办的 ResearchInstitute for AdvancedStudies(RIAS)做数学研究。由于在这段时间里关于“卡尔曼滤波”的重要贡献,1964年他被斯坦福大学聘为教授,先后在电子、机械和运筹三个学系工作过,直至1971年。在1969-1972年间,他曾在法国国立巴黎高等矿业学院(ÉcoleNationale Sup é rieure des Mines deParis)的自动控制研究中心(Centre derechercheen automatique)担任过科学顾问。1971年,卡尔曼到了佛罗里达州位于Gainesville市的佛罗里达大学出任Graduate Research Professor 并任该校数学系统理论研究中心主任,至1992年62岁时退休。从1973年开始,卡尔曼还在瑞士苏黎世理工学院(Eidgenö ssische Technische Hochschule,简称ETH,in Z ü rich)挂职教授并兼数学系统理论研究中心主任。卡尔曼一生指导的博士研究生并不多,有记录留在学术界的共14个,在1966-2000年间毕业。
卡尔曼30岁时一举成名,正所谓“三十而立”,但到退休前后才被选为美国国家工程院院士(1991)、美国艺术与科学院院士(1993)、美国国家科学院院士(1994)。他还是匈牙利、法国和俄罗斯科学院外籍院士,并被授予多个荣誉博士学+位和荣誉教授称号。
2016年7月2日凌晨,卡尔曼在佛罗里达的家中安然辞世,享年86岁。7月8日早上,卡尔曼的亲人(妻子Constantina nee Stavrou、儿子 Andrew和女儿 Elisabeth以及8个孙子女)和朋友在告别仪式之后把他安葬在Gainesville 市郊的 ForestMeadows 墓地。
卡尔曼一生获得的奖项不算太多,但都很有份量,一览如下:
• Maryland Academy of Sciences: OutstandingYoungScientist of the Year(1962)• IEEE Fellow(1964)
• IEEE Medal of Honor(1974)[被认为是IEEE最高荣誉,获奖者包括众所周知的HarryNyquist(1960)、ClaudeE. Shannon(1966)、Karl Johan Åström(1993)、LotfiA. Zadeh(1995)、Thomas Kailath(2007)、IrwinM.Jacobs(2013)]
• IEEE Centennial Medal(1984)
• 日本Kyoto Prize in Advanced Technology(1985)[被誉为是“日本的诺贝尔奖”,获奖者包括名扬四海的Claude E. Shannon (1985)、Izrail M. Gelfand (1989)、EdwardN. Lorenz(1991)、Donald E. Knuth(1996)、KiyoshiItô(1998)]
• 美国数学学会Leroy P. Steele Prize(1986)[获奖者包括著名数学家SolomonLefschetz(1970)、EberhardHopf(1981)、JohnW. Milnor(1982, 2004, 2011)、Lars Ahlfors(1982)、Shiing-ShenChern(陈省身,1983)、Paul R. Halmos(1983)、DonaldE. Knuth(1986)、Peter D. Lax(1992)、WalterRudin(1993)、IngridDaubechies(1994)、SergeLang(1999)、John F. Nash(1999)、JohnH. Conway(2000)、Nicolai V. Krylov(2004)、IsraelM. Gelfand(2005)、JohnGuckenheimer(2013)、PhilipHolmes(2013)]
• 美国自动控制委员会Richard E. BellmanControlHeritage Award(1997)[获奖者包括熟知的 Hendrik W. Bode(1979)、CharlesS. Draper(1981)、Richard E. Bellman(1984)、RogerW.Brockett(1989)、Arthur E. Bryson, Jr.(1990)、LotfiA. Zadeh(1998)、Larry Yu-Chi Ho(何毓琦,1999)、PetarV. Kokotovic(2002)、TamerBaşar(2006)、DragoslavD. Šiljak(2010)、Arthur J. Krener(2012)]
• 美国国家工程院Charles Stark Draper Prize(2008)[为纪念“惯性导航之父”Charles StarkDraper而设,被誉为是“工程学界的诺贝尔奖”。获奖者包括“WorldWide Web之父”Timothy J.Berners-Lee(2007)]
• 由奥巴马总统授予的美国国家科学奖章(2009)
• 美国数学学会首批 AMS Fellow(2012)
前面提到,1958-1964年间卡尔曼在由著名数学家Solomon Lefschetz 创办的 RIAS做数学研究。Lefschetz是从法国ÉcoleCentrale de Paris 毕业后来到美国的,后来在1970年获得美国数学学会SteelePrize大奖。1958年,卡尔曼把理查德•布希(RichardS. Bucy)从霍普金斯应用物理实验室介绍到了 RIAS,然后两人紧密合作。1958-1959年间,他们在前人(主要是Wiener,Kolmogorov,Shannon等)工作的基础上,把频域上的滤波理论和技术搬到了时域,在系统状态空间里对滤波问题进行处理。首先是布希指出,在有限维状态空间条件下,用于推导维纳滤波的Wiener-Hopf方程等价于一个Riccati方程。然后卡尔曼和布希进一步发现,他们想要极小化的系统状态向量线性估计的那个方差矩阵正好满足这个Riccati方程!这关键的一步导致了后来熟知的Kalman-Bucy Filter(卡尔曼-布希滤波器)。卡尔曼1954年在MIT完成的硕士论文是关于离散时间线性动力系统的研究,因此他很自然地把卡尔曼-布希滤波器进行离散化,并得到了一套完整的递推公式,即今天熟知的KalmanFilter(卡尔曼滤波器)。卡尔曼滤波的主要优点是把维纳滤波的最优估计理论发展成可以实时递推计算的程式,因而让最优估计数学理论真正派上了用场。说起来,“KalmanFilter”还是何毓琦先生首先建议命名的呢,那时他正好在RIAS访问卡尔曼。何毓琦回忆说,卡尔曼后来在2008Draper Prize获奖致辞中还特别感谢了他。当然,这个“卡尔曼滤波器”称谓的合理性也来自如下的史实:卡尔曼本人首先在1960年发表了离散时间滤波算法,然后才和布希联名于1961年发表连续时间滤波算法,特别是前者在后来半个多世纪的数字技术年代里发挥得异常成功并已变得无可替代。
不过,超时代的卡尔曼滤波出师不利。何毓琦先生回忆道:“当时几乎所有控制方面的著名工作都在Fourier与Laplace变换后的所谓频域里进行。Kalman的方法则在动态系统上使用了时域微分方程模型。这在当时是非常离经叛道的,主流观点对此质疑很多。”另外,一些数学家认为卡尔曼的推导并不严格。几番周折之后,卡尔曼关于离散和连续时间滤波算法的这两篇奠基性论文不得不发表在机械工程(Transactionsof theASME,Series D, Journal of Basic Engineering)而不是电机工程或系统工程(当然更不是应用数学)杂志上。此外,卡尔曼1960年关于最优控制理论的奠基性论文也只好发表在墨西哥数学学会通报(Boletinde la Sociedad MatematicaMexicana)。当年卡尔曼备受非议,其实还有一个更重要的原因。在卡尔曼文章发表的前一年,即1959年,精通雷达轨道跟踪理论的物理学家PeterSwerling 已经在天文科学杂志(Journal ofthe Astronautical Sciences)上发表了一个基于和Riccati方程等价的另一个方程的递推最小均方误差的估计算法,使用地面观测数据来估计卫星轨道。这个算法和卡尔曼滤波原理是一样的。当然,通过比较可以看出,卡尔曼滤波需要的条件较弱并且同时适合于平稳及非平稳随机过程,此外在Riccati方程计算处理中有更好的数值稳定性。
总之,那些年,卡尔曼成绩斐然却很不得意。就在那关键的时刻,出现了一个关键的人物。1960年,时任美国宇航局加利福尼亚州AmesResearchCenter(ARC)动力分析处主任的斯坦尼•施密特(StanleyF. Schmidt)正在一个史无前例的载人登月计划中主持导航项目。当年,宇宙飞船从陀螺仪、加速度计和雷达等传感器上获取的测量数据中充满了不确定性误差和随机噪声,严重地威胁着高速飞向月球并降落其岩石表面的宇宙飞船及宇航员的安全。因此他们必须从测量数据中把噪声滤掉,以便对飞船所处位置和运动速度作出非常精确的估算。施密特听闻卡尔曼有个很厉害的新算法,便邀请卡尔曼访问ARC并听取了他关于新型滤波器的报告,然后又到RIAS回访了他。经过多方认证和周密思考之后,施密特认定了卡尔曼滤波算法能为他在宇航局主持的载人登月计划提供所需要的精确轨道估计和严格控制方法,决定在阿波罗-11号登月计划中的导航系统里采用卡尔曼滤波算法。1961年初,施密特让ARC和MIT同时进行实际数据的大型计算机仿真。当时最先进的数字计算机是IBM704,但那台老式机器进行的是15-bit定点运算,操作不了把非线性系统线性化后的扩展卡尔曼滤波(ExtendedKalman Filter,初期称为Kalman-Schmidt Filter),因为精确计算要求进行36-bit浮点运算。怎么办呢?当时有一个在阿波罗项目管辖下的仪器实验室中实习的MIT数学系研究生詹姆斯•珀特(JamesE. Potter),他在一个周五下午讨论班里听到了这个棘手的计算问题,便把难题带了回家过周末。周一上班,他就为课题组带来了令所有人惊喜无比的答案:只需对算法中一些关键的对称矩阵作Cholesky平方根分解,就能让那台老式计算机胜任扩展卡尔曼滤波所需要进行的全部高精度计算!于是它被写进了阿波罗导航系统的计算机程序里,帮助宇航船在地球和月亮之间飞了个来回,并且在文献里留下了一个后来被广泛使用的平方根卡尔曼滤波算法。
阿波罗号飞船登月的成功使得卡尔曼和他的滤波器声名鹊起,也使卡尔曼的其他开创性工作如状态空间及其分解、能控性、能观性、系统最小实现、LQG等理论和方法得到广泛认可,它们在随后半个多世纪里一直引领控制理论和系统科学的主流。为此,从1981年开始,发表卡尔曼第一篇滤波算法的美国机械工程学会(ASME)旗下的动力系统与控制技术委员会每年都颁发卡尔曼最佳论文奖(RudolfKalman Best PaperAward)。
卡尔曼滤波诞生后不久就传到了中国。1937年12月在MIT获博士学+位后旋即回国的张钟俊院士(1915-1995)是最早关注卡尔曼滤波技术的中国学者之一。1964年,张钟俊先生就开创性地把卡尔曼滤波技术应用到了远航仪进行接收信号处理。1980年,张钟俊到佛罗里达访问了卡尔曼,翌年把卡尔曼请到了北京和上海访问。
在北京,卡尔曼访问了中科院系统科学研究所和北京大学数学系。据黄琳院士回忆,他当时很欣喜地协助时任数学系主任后任校长的丁石孙先生接待卡尔曼并参与安排他的学术座谈会。有趣的是,卡尔曼在发言时一开口就说:“现在人们都知道有牛顿力学,我相信将来大家都会知道有卡尔曼滤波。”更有趣的是,卡尔曼在北京的另一场报告讲完后,一位听众提问:“有人说卡尔曼滤波与维纳滤波本质上是一样的。你对这种讲法怎么看?”卡尔曼沉思了片刻,反问道:“你知道为什么苏联首先发射了载人宇宙飞船,但却是美国人首先登上月球呢?”他环顾四周见没人回答,就说:“是因为当时苏联人不懂卡尔曼滤波。
在上海,韩正之教授(张钟俊院士的博士后)记得卡尔曼在上海交通大学和上海科学会堂分别讲了控制理论的发展和系统建模问题。同样颇有意思的是,并没有数学学+位的卡尔曼要求在所有会议广告和通知上注明他是一个数学家。
尽管早已誉满天下,卡尔曼后半生依然孜孜不倦地致力于学术研究和学术活动。他从1960年第一届InternationalFederation of Automatic Control(IFAC)学术大会开始就经常参加这个系列会议并多次做技术性的报告。2005年卡尔曼在布拉格召开的第16届IFAC大会上的演说结束时,他显示的ppt最后一页留下了后来为大家津津乐道的名言:
1. Get the physics right.
2. 2. After that, it is all mathematics.
卡尔曼到了晚年依然治学不辍。他离世前最感兴趣的研究题目是对无源电路网络(含电阻、电感及电容)的综合,认为网络综合和抽象代数的结合可以完善一般系统理论从而推动诸如原子系统(含电子、质子及中子)等三元组件问题的研究。他参与了组织题为“网络综合的数学方面”(Workshopon Mathematical Aspectsof Network Synthesis)系列会议并出席了前三届(2010,德国Wü rzburg;2011,英国Cambridge;2014,德国Wü rzburg)。
最近几年,卡尔曼与剑桥大学Malcolm Smith教授及其弟子香港大学陈志强(MichaelZ. Q.Chen)博士一直有密切的联络交流,对无源网络综合的理论与计算问题提出过不少指导性意见。我参与了一篇相关研究合作论文,末尾我们还特别感谢了卡尔曼的无私帮助。不过那是后话。
自古名人多轶事。据说,可能是出道时饱尝挫折苦楚的缘故,卡尔曼成名后变得有点自负。
美国数学学会把1986年的SteelePrize(forSeminal Contribution to Research)授予卡尔曼。历史上获得这个大奖的多是泰斗级的数学家,例如1983年的得奖者是陈省身(forLifetimeAchievement)。1986年的颁奖典礼是在得克萨斯(Texas)州的SanAntonio市举行的美国数学学会第93届年会中进行。我当年在 Texas A&M 大学和导师一起刚向出版社送交了前面提到的《卡尔曼滤波及其实时应用》一书,而且学校离会议地点不到半天车程,于是我们师生俩便兴致冲冲地来到了会场。可是颁奖典礼上卡尔曼并没有出现,其致辞由他人代读,令我十分诧异和失望。当时听到周边的人议论说,是卡尔曼不高兴数学家们以前对他的批评,特别是认为这个奖项姗姗来迟,于是就托词不来了。
1991年,美国国家工程院(NAE)遴选了卡尔曼当新院士。据何毓琦先生回忆,卡尔曼或许出于同样的偏激情绪也没有前去参加颁授仪式。
显然,和香农(Claude E. Shannon)一样,卡尔曼的不幸在于其研究领域决定了他不可能获得诺贝尔物理奖和图灵奖。据闻卡尔曼经常对别人抱怨说,即使是这样,他也应该获得诺贝尔经济学奖。
至此,讲完了我所知道关于卡尔曼的故事。
蓦然回首,我相当欣喜自己很早就认知了卡尔曼滤波算法及其意义。1966年“文革”开始时我是个高中学生。1967年一天,我在同学家遇到了从吉林大学到广州访友的数学教师陈铭俊先生(1934-2008)。当时他正津津有味地推导卡尔曼滤波公式,见我好奇,便说现在已经没人读书了,你还对数学如此有兴趣?接下来,我们成了忘年好友。他花了好几天时间给我私下义务授课,首先复习了最小二乘法,然后解释了线性代数中向量和矩阵的概念以及概率论中数学期望和方差等概念,最后就直接把我带进了卡尔曼滤波的主题。虽然具体的数学推导我全然不懂,但却明白了他归纳起来的一句话:卡尔曼滤波是线性无偏极小误差方差的递推算法。之后,他还断断续续地义务给我上了多次辅导课,让我终于理解了卡尔曼滤波原理还学到了其他一些数学知识。于是有了我后来研究生期间和博士导师一起写的生平第一本书:《卡尔曼滤波及其实时应用》。1992年,我把一篇关于卡尔曼滤波逼近算法收敛性的论文奉献给恩师陈铭俊教授,感谢他在25年前把时为中学生的我带进了卡尔曼滤波研究领域。