再强调一遍,我并不打算写一篇完整地介绍卡尔曼滤波的文章,因为重复性的材料太多,没有必要。我只选择一般的教材中不会讲到,却又对理解整个理论非常重要的一些概念性问题进行解释。
随手翻开一本介绍卡尔曼滤波的材料,你都能看到卡尔曼对动态系统状态空间建模的公式是这样的:
图1 动态系统状态空间然后经过一番变换推导,得到卡尔曼滤波理论中最重要的公式之一(predict):
图2 卡尔曼预测公式So, 这个公式和推导的过程我都可以理解。但为什么一定要用这种形式来描述一个动态系统呢?更具体地说,用数学模型描述一个系统的方法很多,为什么一定要选择微分方程的形式来描述呢?
微分方程是艾萨克·牛顿发明的。大家当然都知道,牛顿也是力学理论的鼻祖。研究力学系统中一个物体运动的规律是牛顿作出的最杰出贡献之一,考察表征运动物体的物理状态随时间变化的规律是重要的研究内容之一,而这些规律都可以用物体状态对时间的导数(微分)的形式来描述(比如速度是位置变化对时间的导数),这种物理和数学之间天然的概念上的联系,直接导致牛顿用微分方程的形式给出了牛顿第二运动定律、开普勒定律以及万有引力定律。
卡尔曼滤波器需要处理的问题是对随时间变化动态系统的下一个状态进行预测,也就是要用 n时刻的状态来预测n+1时刻的状态。当时间间隔足够小时,这个问题非常接近于研究系统状态对时间求导数(微分)的行为。这样选择用(一组)微分方程来对系统建模也就显得非常自然了。
理解了这一点,我们在设计卡尔曼滤波器对动态系统建模时就有了指导原则。我们应该选择我们感兴趣的那些系统状态量,并找出它们和系统随时间变化的那些物理量之间的关系,来建立微分方程组,最后推导出卡尔曼预测公式的各项系数。
然而需要指出的是,微分方程并不是一个容易求解的工具,能够完美求解的情况很少。所以在实际工程应用中,需要通过数值方法近似逼近求解。这也是在设计卡尔曼滤波器时需要注意的一点。
网友评论