由于生活中的电器中存在着各式各样的传感器,所以多传感器数据融合技术[19]是当今科学研究的热点,目前这项技术应用于信息的定位和识别等,随着研究的进一步深入,会适用于越来越多的领域。而目前的多传感器数据融合技术有一阶滤波算法[20]、卡尔曼滤波算法、人工神经网络法等,在我的平衡小车的开发中用到的是卡尔曼滤波算法。
在这里需要讲一个例子来辅助理解卡尔曼滤波算法。在一家农村的自来水厂,每天都会有很多的运水车来装水,一般一罐水需要长达几十分钟才能装满,工作人员不可能一直等待,所以他们会每隔一段时间去观察一下,同时根据水罐的大小、水的流速来推测水还需要多久才能装满,避免水溢出而浪费,当然他们并不会确信一定是这么久时间,他们还需要借助相关的设备来进行精确的计算,得到一个测量值,然后工作人员通过分析和判断会得出一个较为准确的时间。而卡尔曼滤波算法的作用就是让将测量值和推算值数据进行融合,并且逐步递归,从而得到一个较准确的数据。
首先,我们先要引入一个离散控制过程的系统。该系统在k时刻的估计状态可以用一个微分方程来描述:
同时系统的测量值也可以用方程表示:
对于上面两个式子,表示k时刻的系统估计状态,是k时刻下系统的一个测量值。与分别是状态转移模型和控制输入模型,对于多模型系统,他们都是矩阵。是k时刻系统的测量值,被称为观测模型,用于将真实空间映射为测量空间,对于多测量系统,是矩阵。表示过程和测量的噪声。他们被假设成高斯白噪声[21](White Gaussian Noise),他们的covariances分别是、(这里我们假设他们不随系统状态变化而变化)。文献综述
对于满足上面的条件(线性随机微分系统[22],过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用它们结合它们的covariances来估算系统的最优化输出。
首先我们要利用系统的过程模型,来预测下一个状态的系统。假设现在的系统状态是k,根据系统的模型,我们可以基于系统的上一个状态来预测出现在的状态。
……(1)
式(1)中,是一个先验状态,表示k时刻的预测结果,基于k-1时刻的状态,是k-1时刻得出后验状态(k-1时刻的最优结果),为现在状态的控制输入量。
在递归过程中,当前时刻的系统结果已经更新,可是,对应于的协方差还没更新。我们用P表示covariance:
………(2)
式(2)中,是对应的先验covariance矩阵,是对应的估计covariance矩阵,表示的转置矩阵,是k时刻时的过程噪声的covariance矩阵。公式1,2就是卡尔曼滤波器总结得出的5个重要公式当中的前两个,也就是对系统的预测(预测状态和预测协方差)。
现在我们有了当前状态的预估结果,然后我们通过相关方法测量得出当前状态的测量值。结合当前状态的预估值和测量值,通过公式,我们就可以得到当前状态k的最优估算值:
…… (3)
其中Kg(k)表示k时刻下的卡尔曼增益(Kalman Gain):
……(4)
其中的值为;来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-
到目前为止,我们通过计算已经得到了在k状态下最优的估算值。但是为了让卡尔曼滤波器能够不断的计算运行下去,直到整个系统过程的结束,我们还需要更新在k状态下的协方差:
……(5)
其中 为的矩阵,对于单模型单测量,。当系统进入k+1状态时,就是式子(2)的。这样,算法就可以自回归的运算下去。