优化卡尔曼滤波算法中的目标函数选择
- 格式:pdf
- 大小:366.82 KB
- 文档页数:5
卡尔曼滤波算法步骤一、引言卡尔曼滤波算法是一种用于估计系统状态的优化算法,它可以通过利用系统的动态模型和传感器测量数据,实时地进行状态估计,并且具有较高的精度和鲁棒性。
本文将介绍卡尔曼滤波算法的基本步骤,以帮助读者了解和应用该算法。
二、系统模型在开始使用卡尔曼滤波算法之前,我们需要建立系统的动态模型。
系统模型描述了系统状态的变化规律,通常使用状态转移方程来表示。
状态转移方程可以是线性的或非线性的,具体取决于系统的性质。
在建立系统模型时,我们需要考虑系统的物理特性和运动规律,以准确地描述系统的运动过程。
三、观测模型观测模型描述了传感器测量数据与系统状态之间的关系。
通常情况下,传感器的测量数据是不完全的、噪声干扰的,因此我们需要建立观测模型来描述这种关系。
观测模型可以是线性的或非线性的,具体取决于传感器的性质和测量方式。
在建立观测模型时,我们需要考虑传感器的测量误差和噪声特性,以准确地描述传感器的观测过程。
四、预测步骤卡尔曼滤波算法的预测步骤用于预测系统的状态。
预测步骤基于系统的动态模型和当前的状态估计,通过状态转移方程对系统的状态进行预测。
预测步骤的输出是对系统状态的最优预测值和预测误差的协方差矩阵。
预测步骤的目标是尽可能准确地预测系统的状态,以便对系统进行控制或决策。
五、测量更新步骤卡尔曼滤波算法的测量更新步骤用于根据传感器的测量数据来更新对系统状态的估计。
测量更新步骤基于观测模型和预测步骤的输出,通过观测模型将测量数据转换为状态空间中的残差。
然后,通过计算残差的协方差矩阵和系统的预测误差的协方差矩阵的加权平均,得到对系统状态的最优估计值和估计误差的协方差矩阵。
测量更新步骤的目标是通过融合传感器的测量数据和系统的状态估计,得到对系统状态的最优估计。
六、迭代更新卡尔曼滤波算法的预测步骤和测量更新步骤可以交替进行,以实现对系统状态的连续估计。
在每次迭代中,首先进行预测步骤,然后进行测量更新步骤。
通过迭代更新,卡尔曼滤波算法可以逐步优化对系统状态的估计,提高估计的精度和鲁棒性。
OpenMV卡尔曼滤波算法简介卡尔曼滤波算法是一种用于估计系统状态的优化算法,它通过结合测量值和系统模型,提供最优估计值。
OpenMV是一个基于MicroPython的开源计算机视觉平台,它提供了一系列图像处理和机器视觉功能。
在OpenMV中使用卡尔曼滤波算法可以提高图像处理和目标跟踪的准确性。
本文将介绍卡尔曼滤波算法的原理和应用,以及在OpenMV中如何实现卡尔曼滤波算法。
卡尔曼滤波算法原理卡尔曼滤波算法基于状态空间模型,它将系统的状态表示为一个向量,通过测量值和系统模型进行状态估计。
卡尔曼滤波算法的核心思想是通过融合先验信息(系统模型)和后验信息(测量值)来提供最优估计。
卡尔曼滤波算法包括两个主要步骤:预测和更新。
预测步骤在预测步骤中,根据系统模型和先验状态估计值,通过状态转移方程预测下一时刻的状态。
状态转移方程可以表示为:x(k) = F * x(k-1) + w(k-1)其中,x(k)是当前时刻的状态向量,F是状态转移矩阵,w(k-1)是过程噪声。
预测步骤还需要计算协方差矩阵P(k),它表示状态估计的不确定性。
协方差矩阵的预测可以通过以下公式计算:P(k) = F * P(k-1) * F^T + Q其中,P(k-1)是上一时刻的协方差矩阵,Q是过程噪声的协方差矩阵。
更新步骤在更新步骤中,根据测量值和预测的状态估计值,通过测量方程融合测量值和先验信息,得到更新后的状态估计值。
测量方程可以表示为:z(k) = H * x(k) + v(k)其中,z(k)是当前时刻的测量值,H是测量矩阵,v(k)是测量噪声。
更新步骤还需要计算卡尔曼增益K(k),它表示预测值和测量值之间的权重。
卡尔曼增益的计算可以通过以下公式得到:K(k) = P(k) * H^T * (H * P(k) * H^T + R)^-1其中,R是测量噪声的协方差矩阵。
最后,通过以下公式更新状态估计值和协方差矩阵:x(k) = x(k) + K(k) * (z(k) - H * x(k))P(k) = (I - K(k) * H) * P(k)卡尔曼滤波算法在OpenMV中的应用OpenMV提供了一系列图像处理和机器视觉功能,包括目标检测、目标跟踪和姿态估计等。
ekf卡尔曼滤波公式EKF卡尔曼滤波公式随着物联网技术的不断发展,传感器在现代生活中起着越来越重要的作用。
然而,传感器采集的数据往往存在不确定性和噪声,这就需要一种过滤算法来对采集到的数据进行处理。
而卡尔曼滤波(Kalman Filter)则是一种经典的用于处理不确定状态的过滤算法。
基于卡尔曼滤波的一种变体——扩展卡尔曼滤波(Extended Kalman Filter,EKF)广泛应用于估计、控制和机器人领域等方面。
本文将介绍EKF卡尔曼滤波的基本原理和公式。
一、卡尔曼滤波简介在介绍EKF卡尔曼滤波公式之前,我们需要先了解一下卡尔曼滤波的基本原理。
卡尔曼滤波是一种利用先验知识和测量数据来估计未知变量状态的一种算法。
在卡尔曼滤波中,通过对系统的状态和传感器的测量数据进行建模,并估计它们的协方差矩阵,从而实现对未知状态的估计。
卡尔曼滤波最早由美国航空航天局(NASA)科学家R.E. Kalman在1960年提出,后来广泛应用于导弹、飞机等领域的轨迹估计和控制问题。
二、EKF卡尔曼滤波公式EKF卡尔曼滤波是卡尔曼滤波的一种变体,对于非线性系统的状态估计问题具有很好的处理能力。
以下是EKF卡尔曼滤波公式的基本形式:1. 方程1:预测状态(基于上一时刻的状态和控制量)$x_k = f(x_{k-1}, u_k) + {w_k}$其中,$x_{k-1}$表示上一时刻的状态,$u_k$表示控制量,$f$表示状态转移函数,$w_k$表示用来描述模型不确定性和外部干扰的噪声。
2. 方程2:预测协方差(基于上一时刻的协方差和模型误差)$P_k = F_{k-1}P_{k-1}F_{k-1}^T + Q_k$其中,$F_{k-1}$表示状态转移矩阵,$P_{k-1}$表示上一时刻的协方差矩阵,$Q_k$表示用来描述模型误差的噪声矩阵。
3. 方程3:更新状态(基于测量值和预测值的差异)$K_k = P_kH_k^T(H_kP_kH_k^T + R_k)^{-1}$$x_k = x_k + K_k(z_k - h(x_k))$其中,$H_k$表示观测矩阵,$z_k$表示测量值,$h(x_k)$表示通过状态估计测量值的函数,$R_k$表示观测噪声的协方差矩阵。
c语言卡尔曼滤波算法卡尔曼滤波算法是一种用于估计系统状态的优秀方法。
它广泛应用于各种领域,如导航、控制系统、信号处理等。
本文将为您介绍卡尔曼滤波算法的基本原理和应用。
一、什么是卡尔曼滤波算法?卡尔曼滤波算法由卡尔曼于1960年提出,是一种递归的状态估计算法。
它基于贝叶斯滤波理论,通过将先验信息和测量信息进行融合,得到对系统状态的最优估计。
二、卡尔曼滤波算法的基本原理卡尔曼滤波算法基于线性系统模型,可以分为两个步骤:预测和更新。
1. 预测步骤:利用系统的动力学模型和上一时刻的状态估计,预测当前时刻的系统状态。
2. 更新步骤:利用测量模型和当前时刻的测量值,结合预测步骤的结果,更新当前时刻的状态估计。
通过不断迭代预测和更新步骤,卡尔曼滤波算法可以逐步优化对系统状态的估计。
三、卡尔曼滤波算法的应用卡尔曼滤波算法在导航系统中有广泛应用。
例如,在无人机导航中,通过融合惯性测量单元(IMU)和全球定位系统(GPS)的信息,可以实现对无人机位置和姿态的精确估计。
在自动驾驶领域,卡尔曼滤波算法也被广泛使用。
通过融合激光雷达、摄像头和雷达等传感器的数据,可以实现对车辆位置、速度和周围环境的准确感知。
卡尔曼滤波算法还可以用于图像处理、信号处理等领域。
例如,通过对图像序列进行卡尔曼滤波,可以实现图像去噪和运动目标跟踪等任务。
四、总结卡尔曼滤波算法是一种强大而有效的状态估计方法。
它通过融合先验信息和测量信息,可以得到对系统状态的最优估计。
卡尔曼滤波算法在导航、控制系统和信号处理等领域有着广泛的应用。
它的优势在于对线性系统模型的适用性和高效的计算性能。
希望通过本文的介绍,您对卡尔曼滤波算法有了更深入的了解。
相信在实际应用中,卡尔曼滤波算法将会为您带来更好的效果。
卡尔曼滤波一、卡尔曼滤波的起源谈到信号的分析与处理,就离不开滤波两个字。
通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内,为了消除噪声,可以把FIR滤波器或者IIR滤波器设计成合适的频带滤波器,进行频域滤波。
但在许多应用场合,需要直接进行时域滤波,从带噪声的信号中提取有用信号。
虽然这样的过程其实也算是对信号的滤波,但其所依据的理论,即针对随机信号的估计理论,是自成体系的.人们对于随机信号干扰下的有用信号不能“确知”,只能“估计”.为了“估计",要事先确定某种准则以评定估计的好坏程度.最小均方误差是一种常用的比较简单的经典准则。
对于平稳时间序列的最小均方误差估计的第一个明确解是维纳在1942年2月首先给出的.当时美国的一个战争研究团体发表了一个秘密文件,其中就包括维纳关于滤波问题的研究工作,这项研究是用于防空火力控制系统的.维纳滤波器是基于最小均方误差准则的估计器。
为了寻求维纳滤波器的冲激响应,需要求解著名的维纳–霍夫方程。
这种滤波理论所求的是使均方误差最小的系统最佳冲激响应的明确表达式。
从维纳–霍夫方程来看,维纳滤波算法是十分低效的。
这种算法要求设置大量的存储器来保存过去的测量数据,一个新的数据到来后,要进行刷新,重新计算自相关和互相关序列。
再者,求解这个方程需要耗费大量时间对高阶矩阵求逆。
因此,维纳滤波算法难以运用于实时处理中,尤其是无法用于军事、航空航天等领域。
为此,许多科技工作者进行了多方探索,但在解决非平稳过程的滤波问题时,能给出的方法很少。
到20世纪50年代中期,随着空间技术的发展,要求对卫星轨道进行精确地测量,这种方法越来越不能满足实际应用的需要。
为此,人们将滤波问题以微分方程表示,提出了一系列适应空间技术应用的精炼算法。
1960年和1961年,卡尔曼(R. E. Kalman)和布西(R. S。
Bucy)提出了递推滤波算法,成功的将状态变量引入到滤波理论中来,用消息与干扰的状态空间模型代替了通常用来描述它们的协方差函数,将状态空间描述与离散数间刷新联系起来,适于计算机直接进行计算,而不是去寻求滤波器冲激响应的明确公式。
gps卡尔曼滤波算法摘要:1.GPS定位原理2.卡尔曼滤波算法概述3.卡尔曼滤波算法在GPS定位中的应用4.算法优点与局限性5.未来发展趋势正文:GPS(全球定位系统)已成为人们日常生活中不可或缺的一部分,为用户提供准确的定位信息。
然而,GPS信号在传播过程中会受到各种因素的影响,如大气层延迟、多路径效应等,导致定位误差。
为了解决这一问题,卡尔曼滤波算法应运而生。
卡尔曼滤波算法是一种数据融合技术,通过将测量值与预测值进行加权处理,实现对状态变量的更精确估计。
该算法在预测阶段,利用系统模型和上一时刻的状态估计值,预测当前时刻的状态值;在更新阶段,将预测值与观测值进行比较,得到一个残差,根据残差大小调整预测值,以得到更精确的状态估计值。
在GPS定位中,卡尔曼滤波算法通过对观测值和预测值进行融合,可以有效减小定位误差。
具体应用过程如下:1.初始化:设定初始状态变量值和协方差矩阵。
2.预测:根据系统模型和上一时刻的状态估计值,预测当前时刻的状态值。
3.更新:将预测值与观测值进行比较,得到残差,根据残差调整预测值,得到更精确的状态估计值。
4.重复预测和更新步骤,直至满足精度要求。
卡尔曼滤波算法在GPS定位中具有以下优点:1.实时性:算法能够实时处理观测数据,提供较快的定位结果。
2.准确性:通过对观测值和预测值的加权处理,提高定位精度。
3.抗干扰能力:算法对电磁干扰、大气层延迟等影响具有较强的抗干扰能力。
然而,卡尔曼滤波算法也存在一定的局限性,如对初始状态估计值的依赖性,以及当系统模型不准确时,定位精度可能受到影响。
未来发展趋势方面,随着物联网、自动驾驶等技术的快速发展,对定位精度和实时性的要求越来越高。
因此,卡尔曼滤波算法在GPS定位中的应用将不断优化和完善,以满足日益严苛的需求。
同时,研究人员还在探索将卡尔曼滤波与其他先进算法相结合,如粒子滤波、贝叶斯滤波等,以进一步提高定位精度和抗干扰能力。
总之,卡尔曼滤波算法在GPS定位中发挥着重要作用,为人们提供准确、实时的定位服务。
卡尔曼滤波pid算法卡尔曼滤波PID算法PID控制算法是控制系统中最常用的一种控制算法,其基本思想是利用比例、积分和微分三个控制量对被控对象进行调节,实现控制系统的稳定控制。
但是,当被控对象存在噪声干扰时,传统的PID控制算法容易出现超调和振荡现象,影响控制效果。
为此,卡尔曼滤波技术被引入PID控制算法,形成了卡尔曼滤波PID算法,使得控制系统的效果更加优秀和稳定。
一、卡尔曼滤波技术卡尔曼滤波技术是一种常用的估计技术,其主要作用是对于无法直接测量的状态量进行估计。
该技术最初应用于飞行器航迹的跟踪中,之后逐渐被应用于惯性导航、远距离无线电通信和机器人系统等领域中。
卡尔曼滤波技术的基本思路是通过将上一个时刻的系统状态向当前时刻的状态进行转移,配合实时的系统观测值,最终获得对当前系统状态的估计。
卡尔曼滤波技术在传感器测量不准确或无法直接测量时,可以提高系统的精度和稳定性。
二、卡尔曼滤波PID算法的实现卡尔曼滤波PID算法和传统PID算法在控制过程中的计算过程基本相同,只是在控制量的计算中,引入了卡尔曼滤波技术来对被控对象的状态进行估计,消除噪声的干扰。
卡尔曼滤波PID算法的主要流程如下:1、获取传感器数据并转化为被控对象状态变量。
2、基于上一时刻的状态变量估计,估计出当前时刻的状态变量。
3、基于估计的状态变量,计算PID控制算法中的比例、积分和微分控制量。
4、最后,将PID控制算法所得的控制量输出到被控对象,调节被控对象的运动状态。
三、卡尔曼滤波PID算法的优势和应用卡尔曼滤波PID算法避免了传统PID算法常见的超调和振荡现象,使得控制系统更加平稳和精准。
该算法在许多应用领域中具有广泛的应用,如自动驾驶汽车、航空导航、机器人系统和智能家居等。
总之,卡尔曼滤波PID算法是一种集成了卡尔曼滤波技术的PID 控制算法,其可以在传感器测量存在噪声干扰时,消除这些干扰,提高控制系统的精度和稳定性。
无迹卡尔曼滤波调参无迹卡尔曼滤波(UKF)是一种常用的非线性滤波方法,用于估计系统的状态变量。
与传统的卡尔曼滤波不同,UKF通过引入一组离散采样点,以更好地逼近系统的非线性特性。
然而,UKF的性能很大程度上依赖于其参数的调整,下面将介绍一种调参方法。
在调参之前,我们首先需要了解UKF的几个关键参数。
首先是采样点的数量,通常选择与状态变量的维度相关的值。
其次是过程噪声和观测噪声的协方差矩阵,它们描述了系统中的不确定性和噪声。
最后是一个控制参数,称为增益参数,用于平衡系统的不确定性和噪声。
为了调整这些参数,我们可以采用试错的方法。
首先,选择一组初始参数,并使用这些参数运行UKF算法。
然后,根据滤波结果的性能评估参数的适用性。
如果滤波结果不理想,需要调整参数并再次运行算法。
调整参数时,可以采用以下策略。
首先,增加采样点的数量,以更好地逼近系统的非线性特性。
然后,根据系统的动态特性和噪声水平,适当调整过程噪声和观测噪声的协方差矩阵。
最后,通过调整增益参数,平衡系统的不确定性和噪声。
在调参过程中,需要注意以下几点。
首先,要根据具体应用场景和系统的特性,选择合适的参数范围。
其次,要根据滤波结果的性能,评估参数的适用性,并进行相应的调整。
最后,要注意参数之间的相互影响,避免过多调整导致系统性能的下降。
通过试错的方法和合理的参数选择,可以有效调参并提高无迹卡尔曼滤波算法的性能。
调参过程中,需要注意参数范围的选择,滤波结果的评估以及参数之间的相互影响。
通过不断优化参数,可以提高滤波算法的准确性和鲁棒性,从而更好地估计系统的状态变量。
雷达目标跟踪的转换坐标卡尔曼滤波算法雷达目标跟踪是指在雷达系统中利用距离、角度和速度等量测信息对目标进行检测、分类、定位和跟踪,是雷达应用中的重要问题。
为了实现高精度的目标跟踪,需要应用一些有效的滤波算法。
本文将介绍一种基于转换坐标卡尔曼滤波的雷达目标跟踪算法。
1. 转换坐标卡尔曼滤波转换坐标卡尔曼滤波(CTKF)是一种Kalman滤波的变种,它采用一种新的坐标系,把系统状态转换为一组正交的分量,以实现分离不同分量之间的影响。
在CTKF中,系统状态被表示为一个n维向量x,同时我们将x表示为分别在y和z方向上的两个n/2维向量y和z的连接:x = [y^T z^T]^T坐标转换后,系统状态可以分别表示为两个独立的过程方程:y_k+1 = f_y(y_k,w_k) + v_k, z_k+1 = f_z(z_k,w_k) + u_k其中,wk表示过程噪声,vk和uk分别表示在y和z方向上的观测噪声。
由于y和z的方向独立,它们可以分别应用Kalman滤波来估计目标的状态。
因此,CTKF算法先应用正常的Kalman滤波来对y和z进行状态估计,然后通过一个关系矩阵H来合成系统状态x的估计值。
2. 雷达目标跟踪的CTKF算法在雷达目标跟踪中,通常需要采用四元素模型来描述目标的运动。
我们可以将系统状态表示为一个7维向量x,其中前部分代表位置和速度,后部分代表四元素:x = [x y z vx vy vz q1 q2 q3 q4]^T雷达测量产生的观测向量为z=[r,az,el,Vr]^T,其中r是距离,az和el是方位和仰角角度,Vr是径向速度。
通过对雷达反演模型进行改进,可将观测向量转换为状态向量的某些部分。
同时,通过将状态向量进行坐标转换,可以将4维偏移参数q转换为3维转换向量t和1维缩放因子s,从而提高算法的效率和稳定性。
在CTKF算法中,即可将系统状态表示为x=[y; z],同时拆分为两个独立的过程方程:y_k+1 = f_y(y_k,w_k) z_k+1 = f_z(z_k,w_k)其中,f_y和f_z表示y和z的状态转移方程,wk表示过程噪声,v和u分别表示在y和z方向上的观测噪声。
deepsort中的匈牙利算法和卡尔曼滤波公式解释文章标题:深入理解DeepSORT中的匈牙利算法和卡尔曼滤波公式一、引言在计算机视觉和目标追踪领域,DeepSORT(Deep learning to track multi-object in real time)是一种非常流行的多目标跟踪算法。
其中,匈牙利算法和卡尔曼滤波公式是其核心部分,对于实现高效准确的目标追踪至关重要。
在本文中,我们将深入探讨DeepSORT中的匈牙利算法和卡尔曼滤波公式,从理论到实践全方位解释其原理和应用。
二、匈牙利算法的原理和应用1. 原理解释匈牙利算法,又称匈牙利匹配算法,是一种解决指派问题的二分图最优匹配算法。
在目标追踪中,它常用于在每一帧的检测结果中,将追踪目标与检测结果进行匹配,从而建立目标的长期运动轨迹。
在匈牙利算法中,首先需要构建一个成本矩阵,用于描述每个追踪目标与每个检测结果之间的匹配成本。
通过最小化总匹配成本的方式,计算出最优的匹配结果,从而实现目标追踪过程中的关联匹配。
2. 应用场景在DeepSORT中,匈牙利算法被广泛应用于多目标追踪的匹配过程中。
通过匈牙利算法,能够高效地将不同帧之间的目标轨迹进行匹配,从而实现多目标的连续跟踪。
这种方法在实时目标追踪领域具有重要的意义,尤其是在视频监控、智能交通等领域的应用更为广泛。
三、卡尔曼滤波公式的原理和应用1. 原理解释卡尔曼滤波是一种利用线性动态系统的状态方程和观测方程,对系统状态进行估计的优化滤波算法。
在目标追踪中,卡尔曼滤波常用于对目标的位置和速度等状态进行预测和修正。
卡尔曼滤波通过不断地将实际观测值与系统状态进行比较,并结合系统的动态特性,计算出最优的状态估计值。
这种方法能够在一定程度上消除观测误差和系统噪声,从而实现对目标状态的准确估计。
2. 应用场景在DeepSORT中,卡尔曼滤波被广泛应用于多目标跟踪的状态估计过程中。
通过结合目标的运动模型和实际观测值,卡尔曼滤波能够对目标的位置、速度等状态进行持续修正,从而提高目标追踪的准确性和稳定性。
第31卷第1期系统工程与电子技术V01.31No.1
2009年1月SystemsEngineeringandElectronicsJan。2009
文章编号:1001—506X(2009)01-0200一04
优化卡尔曼滤波算法中的目标函数选择王建文1,税海涛1,马宏绪1,李迅1,刘述田2(1.国防科技大学机电工程与自动化学院,湖南长沙410073;2.91065部队教研部,辽宁葫芦岛125001)
摘要:针对优化卡尔曼滤波算法(optimizedKalmanfilter,OKF)中的目标函数选择问题,设计了两种适用
于oKF算法优化的目标函数,证明了这两种目标函数是最优的,即当目标函数取最小值时,oKF算法中的滤波估计值H。2_。一。是(或概率意义下)系统真实状态H。工t的最优估计。把上述目标函数应用于多模型卡尔曼滤波算法(multiplemodeladaptiveKalmanfilter,MM—AKF)中,设计了一种优化多模型卡尔曼滤波算法(optimized
multiplemodeladaptiveKalman
filter,OMM—AKF),OMM—AKF算法能够根据目标函数优化子滤渡器的滤波估
计值权值,从而能够得到系统真实状态的较优估计值。最后,通过仿真验证了上述理论的正确性和方法的有效性。关键词:优化卡尔曼滤波算法;目标函数;最优性中图分类号:TP274文献标志码:A
ChoiceofcostfunctionsinoptimizedKalmanfiltersWANGJian—wenl,SHUIHai—ta01,MAHong—XUl,LIXunl,LIUShu-tian2
(1.Dept.ofAutomaticControl,NationalUniv.ofDPAnseTechnology,Changsha410073,China;
2.Dept.ofTeachingandResearch,91065Unit,thePLA,Huludao125001,China)
Abstract:ThechoiceofcostfunctionsinoptimizedKalmanfilters(0KF)isthoroughlyanalyzed.Twocost
functionssuitabletOOKFsaredesigned.Itisprovedthatthesecostfunctionsareoptimal,thatia,whenthe
costfunctionisminimal,theestimatedstateH{卫二^一1is(or
in
probability)anoptimalestimatorforH{z。in
oKFs.Then,thesecostfunctionsareappliedinamultiplemodeladaptiveKatmanfilter(MMAKF),thusan
optimizedmultiplemodeladaptiveKalmanfilter(OMM-AKF)isdesigned.TheOMM—AKFcanoptimizethe
weightsofstateestimations,thusasuperiorstateestimationcanbeobtained.Finally,thefindingsinthispaper
areverifiedbysomesimulations.
Keywords:optimizedKalmanfilter;costfunction;optimization
0引
言
卡尔曼滤波算法(Kalmanfilter,KF)[1咖的缺点和局限性是要求精确已知系统的噪声统计特性[3]。实际应用中,噪声统计特性可能是部分已知、近似已知或完全未知的,基于不精确的或错误的噪声统计特性设计KF算法会导致滤波性能变坏,甚至造成滤波发散¨]。针对这一问题,很多学者进行了广泛深入的研究,总结起来,大致有三种解决方案:(1)设计自适应卡尔曼滤波算法(adaptiveKalman
ill-
ter,AKF)[4…,直接或间接修正滤波增益矩阵,最终期望调整后的滤波算法是最优的;(2)设计鲁棒卡尔曼滤波算法(robustKalmanfilter,RKF)[7…,在算法设计时考虑了噪声统计特性不确定性/未知对滤波算法性能的影响,使得在约束范围内滤波算法中的估计误差协方差矩阵有上界;(3)设计优化卡尔曼滤波算法(optimizedKalmanfilter,
OKF)[91…,利用优化算法的寻优特性寻找状态/参数的较优估计值。上述三种算法中,RKF算法的理论基础最为坚实。RKF算法是鲁棒控制理论在滤波领域中的应用和推广,它无论是在理论方面还是在实际应用方面都较为成熟。但是,RKF算法也有其局限性,其局限性在于:RKF算法是建立在一些必要的假设条件基础上设计的,随机非线性系统模型是否满足这些假设条件值得商榷;另外,RKF算法中存在一些自由参数影响着RKF算法的设计和性能,目前,还缺少用于确定这些自由参数的理论和方法;最重要的是,RKF算法仅仅针对当前约束给出了一组状态估计值的可行解,并没有考虑该解的进一步优化问题。AKF算法与OKF算法均是伴随KF算法一起出现的,它们在实际应用中均取得了较大成功,但是,到目前为止,它们的收敛性均未得到证明。实际上,可以证明AKF算法以概率1不收敛于KF算法,因此,AKF算法中的状态估计值不是最优的,该估计值必可进一步优化。相对于AKF算法来说,OKF算法在设计时就已经
收稿日期:2007一06—22;修回日期:2008一07—09。作者简介:王建文(1979一),男。博士研究生,主要研究方向为信号处理,无人直升机系统。E—mail:wangjianwen7921@sina.corn
万方数据第1期王建文等:优化卡尔曼滤波算法中的同标函数选择・201・考虑了估计值/参数的优化问题,OKF算法利用一组系统模型和反馈机制来实现估计值/参数的优化。综上所述,滤波算法优化问题广泛存在于滤波算法设计过程中,且有着广阔的应用前景,这也是本文对其进行深入研究的原因。目前,OKF算法主要有两类:(1)基于遗传算法的自适应卡尔曼滤波算法(adaptiveKalmanfilterbasedongeneticalgorithms,GA-AKF)【91“,该类算法使用遗传算法对一组系统模璎中的未知参数寻优,期望寻找到较优的模型参数,从而间接提高滤波算法估计精度;(2)多模型卡尔曼滤波算法(multiplemodeladaptiveKalmanfilter,MM-AKF)[1““,该类算法中多个模型并行工作,模型间基于概率矩阵切换,状态估计值由多个滤波器交互作用得到。无论是GA—AKF算法还是MM—AKF算法,寻优算法中的目标函数将直接影响OKF算法的估计精度,然而,现有的OKF算法均没有分析目标函数最优性与OKF算法性能问的关系,从而导致了OKF算法缺少重要的理论支撑。本文对OKF算法中的目标函数选择问题进行研究,证明了两种目标函数是最优的,即当目标函数最小时,状态估计值H。j厶,。是(或概率意义下)真实状态Hkz。的最优估计,类比于KF算法,从而可问接认为状态估计值硝。是(或概率意义下)真实状态4的较优估计。把上述目标函数应用于MM—AKF算法中,设计了一种优化多模型卡尔曼滤波算法(optimizedmultiplemodeladaptiveKalmanfilter,oMM—AKF);由于oMM—AKF算法基于最优目标函数修正概率矩阵,因此可认为修正后的概率矩阵是最优的,从而能够得到系统真实状态的较优估计值。最后,通过仿真验证了上述理论的正确性和方法的有效性。1目标函数选择、考虑离散时间线性随机系统产一缸-砧l十阽1(1)1乳=日^zI+帆式中,瓤∈彤是状态向量,氐∈P“,H。∈肜“是已知的系数矩阵,乳∈舻是观测向量,峨∈彤,帆∈肜是相互独立的零均值白噪声,其协方差矩阵分别是Q,R。设噪声统计特性未知,其估计值是Q,袁,给定滤波初值j。,Po由KF算法得荫=孰一Htf五一。(2)式中,霸。一。是基于Q,盈设计的KF算法中状态X.k的一步预测值。设或。一EE(x,一童a。)(奴一霜。)1],计算式(2)的协方差矩阵,得BE(荫)(西)7]一H。P矗.,Hj+R(3)设章二。是基于Q,R设计的KF算法中状态以的一步预测值,则由KF算法知只I-1=EE(x,一毛Jpl)(也一霸Ibl)1]一A-lP卜lI}lA:一l+Q(4)式中,只一11^一l=E[(甄一iP¨.一。)(而一l一氟一Ⅲ一1)1],或叫一。是基于Q,R设计的KF算法中状态孔一。的最优估计值。设章■小一。是基于Q,詹设计的KF算法中状态甄一。的估计值,设P二m一。=E[(毛一l一量■1I,。)(x'k—l一譬■。",)’]。由于Q,R基于设计的KF算法是最优的,因此,有PLlI}I≥P卜lIpl(5)由于焉pl—Apl雌1lplA}1+Q(6)故有心一≥BI}l(7)所以E[(谫)(掘)7]一HtP厶一-研+R≥风P・l-・日}+R(8)式(8)意味着E[(谚)(丽)7-1有下界,因此,tr(El(画)(丽)7])必有最小值。定理1t,-(EF(,f)(西)7])是最优目标函数,当tr(E
[(西)(丽)1])取最小值时,滤波估计值日。j矗。是状态珥工。的最优估计。证明设H;P_。。研的特征值是A?,i=1,…,m,对
式(8)两端取迹运算,得扩(砸(嵇)(嵇)’])一tr(风P矗,--l研)+tr(R)=
∑J:I?+护(R)(9)
l—l式(9)取最小值意味着≥:A?取最小值。Z百由P晶.。=E[(双一i厶p1)(Xt一童磊。一,)1]得
El(HkxI—HkX’k。lH)‘Hlxl—Hk叠;\Hr-1=HtP:IHHl(10)对式(10)两端取迹运算,得tr(EE(H^如一皿叠玉。。)(HkX。一风j五.1)])=
tr(H}P;t|-1Hj)一≥:.:I?(11)z了式中,£r(E[(风善。一凰章五。一1)(H^工I—H。叠五。)’])是随机
变量(风x。一风叠厶。一,)的协方差矩阵主对角线元素之和。tr(E[(风工I—Hki五I—1)(H.x.一H。i‘。一1)’])刻画了随机变三量(风工。一H。霉函。)的分散程度,显然,≥:A?越小,则::i(风x。一凰叠矗。一。)越能够以较高概率分布在0附近,进而
H。童矗。越能够以较高概率分布在H。x。附近。
由于式(9)取最小值,因此,≥:A?取最小值,所以,—T凰套二。是H+x。的最优估计,命题得证。
显然,使用tr(E[(西)(W)1])作为目标函数来评价滤波估计值H。j五。的可信性是可行的,但是,实际滤波过程中我们更关心状态以一t的估计值譬■。I。的可信性。由于H。童‘。是风工。的另一个最优估计量,而i。忙。是状态赧一。的最优估计值,类比于H。膏小一。这一性质,当tr(E[(W)(猫)7])取最小值时,有理由相信i■。p。是状态瓤一。的较优估计值。在实际滤波过程中,式(8)值无法计算,每次仅能得到EE(西)(耐)7]的一个样本值,由于该样本值以概率分布在E[(面)(面)7]附近,因此,可以选择该样本值作为目标函数,此时,目标函数为tr((班)(秽)’)=(矿)’(矿)(12)推论1tr((蕊)(荫)7)在概率意义下是最优日标函