本发明涉及智能控制领域,尤其涉及一种基于最大协同熵卡尔曼滤波方法。
背景技术:
传统的卡尔曼滤波器是基于最小均方误差,其在高斯噪声下有很好的表现。但是,很多实际的工程场景并不能满足高斯噪声的假设,这导致了传统卡尔曼滤波器在非高斯噪声干扰特别是脉冲式非高斯噪声干扰的应用中性能恶化,其导致的主要原因为传统卡尔曼滤波算法只能噪声是高斯分布的情况下给出可靠的估计,当把传统卡尔曼滤波器应用于非高斯情况时,它们的性能可能会变差,特别是当系统受到脉冲噪声的干扰时。脉冲噪声具有重尾分布(例如一些混合高斯分布),这在许多真实的自动控制和目标跟踪场景中很常见。这个问题的主要原因是传统卡尔曼滤波器是基于最小均方误差标准,该标准对大异常值非常敏感,导致传统卡尔曼滤波器在非高斯噪声环境中的鲁棒性恶化。
技术实现要素:
本发明实施例所要解决的技术问题在于,提供一种基于最大协同熵卡尔曼滤波方法。可对脉冲式非高斯噪声具有很强的鲁棒性,并保持了传统卡尔曼滤波算法的状态均值传播过程,而且保留了预测误差协方差的矩阵的传播过程。
为了解决上述技术问题,本发明实施例提供了一种基于最大协同熵卡尔曼滤波方法,包括以下步骤:
s1:设定核带宽σ和一个小的正数η,设定初始状态估计
s2:使用以下公式获得
p(t|t-1)=a(t-1)p(t-1|t-1)at(t-1)+q
其中,a(k-1)是系统的控制参数,
s3:使j=1,
s4:使用以下公式计算后验估计
其中:
其中,
s5:当以下公式成立,则使
s6:使用以下公式更新后验估计协方差矩阵,令t+1→t,重复s2,
实施本发明实施例,具有如下有益效果:本发明对脉冲式非高斯噪声具有很强的鲁棒性,并保持了传统卡尔曼滤波算法的状态均值传播过程,而且保留了预测误差协方差的矩阵的传播过程。因此,这种新的滤波器也具有递归结构,适用于在线更新。
附图说明
图1是基于最大协同熵的卡尔曼滤波预测和更新方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
对于标准卡尔曼滤波算法,将带有噪声的状态模型和测量模型记为:
其中,a(k-1)是系统的控制参数,在此为矩阵。h为测量矩阵。卡尔曼滤波模型假设t时刻的真实状态从(t-1)时刻演化而来。正如在许多实际情况下,动态系统只能得到带有噪声的输入数据。
假设在时刻t的测量集记为z={z(t)},卡尔曼滤波算法为如下两个步骤:
(1)先验估计表示为
p(t|t-1)=a(t-1)p(t-1|t-1)at(t-1)+q#(3)
(2)后验估计为
k(t)=p(t|t-1)ht(t)(h(t)p(t|t-1)ht(t)+r)-1#(4)
pt=(1-k(t)h(t))p(t|t-1)#(6)
k(t)表示卡尔曼增益,
由于交通流数据存在非高斯噪声,导致传统的卡尔曼滤波模型性能恶化。为此本发明实施例提出一种改进的卡尔曼滤波应用到交通流预测上,具体如下实施方案。
对于前面描述的状态模型和线性模型,有:
在这里,
基于最大协同熵的代价函数如下:
这里l表示d(t)的维度,di(t)表示d(t)的第i个元素,wi(t)表示w(t)的第i行。ei(t)为e(t)的第i个元素。符号gσ表示高斯核,σ为高斯核带宽。在最大协同熵准则下,最优化估计如下:
具体而言,本实施例主要通过以下步骤进行。
(1)选择一个合适的核带宽σ和一个小的正数η,设定初始状态估计
(2)用公式2和公式3获得
(3)使j=1,
(4)用公式10,公式11计算后验估计
其中
其中,
(5)如果公式12成立,使
(6)
(7)用公式13更新后验估计协方差矩阵,令t+1→t,回到(2)。
作为先验-后验估计算法,基于最大协同熵的卡尔曼滤波算法的可以总结为预测-更新方程,用如图1所示。
本发明实施例具有如下有益效果:
1、本发明设计一种基于最大协同熵的卡尔曼滤波算法,这种算法使用最大协同熵准则代替传统的最小二乘误差准则作为最优目标进行推导,因此可以很好地处理脉冲式非高斯噪声的干扰。
2、由于最大协同熵的最优目标准则并不是凸函数,本发明设计了一种新的定点算法更新后验估计。
3、本发明的不仅保持了传统卡尔曼滤波算法的状态均值传播过程,而且保留了预测误差协方差的矩阵的传播过程。因此,这种新的滤波器也具有递归结构,适用于在线更新。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。