卡尔曼滤波是一种最优估计技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

卡尔曼滤波是一种最优估计技术。

工程中,为了了解工程对象(滤波中称为系统)的各个物理量(滤波中称为状态)的确切数值,或为了达到对工程对象进行控制的目的,必须利用测量手段对系统的各个状态进行测量。

但是,测量值可能仅是系统的部分状态或是部分状态的线性组合,且量测值中有随机误差(常称为量测噪声)。

最优估计就是针对上述问题的一种解决方法。

最优估计能将仅与部分状态有关的测量进行处理,得出从某种统计意义上讲误差最小的更多状态的估值。

误差最小的标准常称为估计准则,根据不同的的估计准则和估计计算方法,有各种不同的最优估计,卡尔曼滤波是一种递推线性最小方差估计。

下图为卡尔曼滤波器的模型,描述了各个变量之间的联系和在不同的时间步中所作的转化。

图2-2 卡尔曼滤波器的模型
在图2-2中,圆圈代表向量,方块代表矩阵,星号代表高斯噪声,其协方差矩阵在右下方标出[1]。

为了方便读者理解,引用一个例子解释卡尔曼滤波:
假设我们要研究的对象是一个房间的温度。

根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。

假设你对你的经验不是100%的相信,可能会有上下偏差几度。

我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。

另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。

我们也把这些偏差看成是高斯白噪声。

好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。

下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。

假如我们要估算k时刻的是实际温度值。

首先你要根据k-1时刻的温度值,来预测k时刻的温度。

因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高
斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。

然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。

由于我们用于估算k时刻的实际温度有两个温度值,分别是23度和25度。

究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的covariance 来判断。

因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度。

可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。

到现在为止,好像还没看到什么自回归的东西出现。

在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差。

算法如下:((1-Kg)*5^2)^0.5=2.35。

这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。

就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。

他运行的很快,而且它只保留了上一时刻的covariance。

上面的Kg,就是卡尔曼增益(Kalman Gain)[2]。

2.1.2.2 滤波器特性和优点
卡尔曼滤波由于其在求解时不需要贮存大量的观测数据,并且当得到新的观测数据时,可随时算得新的参数滤波值,便于实时地处理观测成果,因此,卡尔曼滤波被越来越多地应用于动态数据处理中,尤其是 GPS 动态数据处理、惯性导航等领域。

卡尔曼滤波器是以最小均方误差为原则的最佳线性滤波器,根据前一个估计值和最近一个观察数据来估计信号的当前值,需要已知系统的状态方程和量测方程,它的解是以估计值的形式给出的。

卡尔曼滤波采用实用的递推算法, 成功地将状态变量法引入到滤波理论中来, 不要求保存过去的测量数据, 新数据测量后, 根据新的数据和前一时刻的估值, 借助系统本身的状态转移方程, 按着一套递推公式, 即可算出新的估值。

在卡尔曼滤波出现以前,已经建立了采用最小二乘法处理观测数据和采用维纳滤波方法处理平稳随机过程的滤波理论。

但这些滤波方法或因功能不够,或因条件要求苛刻,而不便于实用。

卡尔曼滤波是在克服以往滤波方法的局限性的基础上提出来的,是滤波方法的重大演进。

20世纪40年代,维纳假定线性滤波器的输入为有用信号和噪声之和,两者均为广义平稳过程且知它们的二阶统计特性,他根据最小均方误差准则(滤波器的输出信号与需要信号之差的均方值最小),求得了最佳线性滤波器的参数,这种滤波器被称为维纳滤波器。

它和
卡尔曼滤波器都属于自适应滤波器。

卡尔曼滤波比维纳滤波有以下优点:①在卡尔曼滤波中采用物理意义较为直观的时间域语言,而在维纳滤波中则采用物理意义较为间接的频率域语言。

②卡尔曼滤波仅需要有限时间内的观测数据,而维纳滤波则需要用过去的半无限时间内的全部观测数据。

③卡尔曼滤波可使用比较简单的递推算法,而维纳滤波则需要求解一个积分方程。

④卡尔曼滤波可以推广到非平稳随机过程的情况,而维纳滤波只适用于平稳随机过程。

⑤卡尔曼滤波所需数据存储量较小,便于用计算机进行实时处理,而维纳滤波的计算复杂,步骤冗长,不便于实时处理。

在相同条件下,卡尔曼滤波能得出与维纳滤波相同的结果。

在实用上,卡尔曼滤波比维纳滤波功能强,用途广。

卡尔曼滤波已在航天技术、通信工程、工业控制等领域中得到比较广泛的应用。

卡尔曼滤波的局限性表现在只能用于线性的信号过程,即状态方程和观测方程都是线性的随机系统,而且噪声必须服从高斯分布。

虽然不少实际问题都可满足这些限制条件,但当实际系统的非线性特性稍强或者噪声特性偏离高斯分布较大时,卡尔曼滤波就不能给出符合实际的结果[3]。

根据这些优点,作者选择了卡尔曼滤波作为自适应滤波在Matlab平台中研究和实现。

相关文档
最新文档