1.3.4 Kalman滤波
经典的维纳滤波算法在当时的防空火力控制、电子工程等领域获得较为广泛的应用。它是线性最小方差滤波方法,对于平稳序列与过程的谱密度导出了线性最优预测和滤波的明显表达式,从而能对含有噪声的信息进行滤波。Wiener 滤波和柯尔莫哥洛夫滤波方法开创了一个应用统计估计方法研究随机控制问题的新领域。但是Wiener滤波采用频域设计法,维纳方程计算量过大,解析求解困难,整批数据处理要求存储空间大,造成适用范围极其有限,仅适用于一维平稳随机过程的信号滤波,在非平稳过程和多维系统的应用场合,滤波计算受到很大限制。
Wiener 滤波的缺陷促使人们寻求在时域内直接设计最优滤波器的新方法。经过20多年的不懈努力,终于在19世纪60年代由匈牙利裔美国数学家鲁道夫·卡尔曼(Rudolf Emil Kalman,1930—2016年,见图1.3)提出最具有代表性的成果,后来被称为Kalman滤波(Kalman Filtering,KF)。提起Kalman滤波,不得不提Kalman在美国宇航局NASA的项目经验。Kalman在NASA埃姆斯研究中心访问时,发现斯密特的方法对于解决阿波罗计划的轨道预测很有用,后来他将该方法用在阿波罗飞船的导航计算机上。这些历史成绩源自Kalman当初乘火车从普林斯顿大学返回 Baltimore 途中的一个突发奇想:为什么不把状态变量的概念应用到Wiener-Kolmogorov滤波问题中呢?下面就是两步重要的过程,标志着一项伟大实践的开始。
图1.3 Rudolf Emil Kalman,匈牙利裔美国电气工程师、数学家、发明家(资料来自维基百科)
(1)Wiener-Kolmogorov 模型采用频域 PSD 来表征动态过程的动态和统计特性。最优Wiener-Kolmogorov估计子是可以从PSD中导出来的,而PSD可以利用测量系统的输出估计出来。这要求假设动态系统过程模型是时不变的。
(2)控制论的学者采用线性微分方程作为动态系统的模型,导致发展混合模型的出现。其中动态系统起到由白噪声作为激励的“成型滤波器”的作用。线性微分方程的系数决定输出PSD的形状,PSD的形状定义Wiener-Kolmogorov估计子。这种方法允许动态系统模型是时变的。这些线性微分方程的模型可以通过所谓的状态空间表示为一阶微分方程组。
顺着以上两个发展历程,下一步是根据时变状态空间模型得到等效的估计方法。这正是 Kalman 所完成的工作。在此期间的另一个成就就是 Kalman 和布西(R.S.Bucy)证明,即使动态系统不稳定,Raccati方程也具有稳定的(稳态)解,只要该系统是可观测、可控的。加上有限维的假设,Kalman 推导出了 Wiener-Kolmogorov滤波器(即现在所谓的Kalman滤波)。在引入状态空间的理论以后,推导过程中所需要的数学基础就变得简单多了,其证明所用的数学知识也在许多本科生的数学知识范围内。
1960 年,Kalman 提出了离散系统 Kalman 滤波。1961 年,他又与布西(R.S.Bucy)合作,把这一滤波方法推广到连续时间系统中,从而形成 Kalman 滤波设计理论。这种滤波方法采用与Wiener滤波相同的估计准则。二者的基本原理是一致的。但是,Kalman滤波是一种时域滤波方法,采用状态空间方法描述系统,算法采用递推形式,数据存储量小,不仅可以处理平稳随机过程,也可以处理多维和非平稳随机过程。
正是由于Kalman滤波具有以上其他滤波方法所不具备的优点,因此Kalman滤波理论一经提出即被立即应用到工程实际当中。Kalman滤波是动态过程模型和相关最优估计方法发展的巅峰,已被广泛应用。例如,阿波罗登月计划和C-5A飞机导航系统,就是Kalman滤波早期应用中最成功的实例。随着电子计算机的迅速发展和广泛应用,Kalman滤波在工程实践中特别是在航天空间技术中迅速得到应用。目前Kalman滤波理论作为一种最重要的最优估计理论被广泛应用于各领域,如惯性导航、制导系统、全球定位系统、目标跟踪系统、通信与信号处理、金融等。