2010_第四章_非线性系统的Kalman滤波
- 格式:doc
- 大小:459.50 KB
- 文档页数:25
卡尔曼滤波_卡尔曼算法1.引言1.1 概述卡尔曼滤波是一种用于估计系统状态的技术,通过融合传感器测量值和系统模型的预测值,提供对系统状态的最优估计。
它的应用十分广泛,特别在导航、图像处理、机器人技术等领域中发挥着重要作用。
在现实世界中,我们往往面临着各种噪声和不确定性,这些因素会影响我们对系统状态的准确估计。
卡尔曼滤波通过动态调整系统状态的估计值,可以有效地抑制这些干扰,提供更加精确的系统状态估计。
卡尔曼滤波的核心思想是利用系统模型的预测和传感器测量值之间的线性组合,来计算系统状态的最优估计。
通过动态地更新状态估计值,卡尔曼滤波可以在对系统状态的准确估计和对传感器测量值的实时响应之间进行平衡。
卡尔曼滤波算法包括两个主要步骤:预测和更新。
在预测步骤中,通过系统模型和上一时刻的状态估计值,预测当前时刻的系统状态。
在更新步骤中,将传感器测量值与预测值进行比较,然后根据测量误差和系统不确定性的权重,计算系统状态的最优估计。
卡尔曼滤波具有很多优点,例如它对传感器噪声和系统模型误差具有鲁棒性,可以提供较为稳定的估计结果。
此外,卡尔曼滤波还可以有效地处理缺失数据和不完全的测量信息,具有较高的自适应性和实时性。
尽管卡尔曼滤波在理论上具有较好的性能,但实际应用中还需考虑诸如系统模型的准确性、测量噪声的特性等因素。
因此,在具体应用中需要根据实际情况进行算法参数的调整和优化,以提高估计的准确性和可靠性。
通过深入理解卡尔曼滤波的原理和应用,我们可以更好地应对复杂环境下的估计问题,从而在实际工程中取得更好的效果。
本文将介绍卡尔曼滤波的基本原理和算法步骤,以及其在不同领域的应用案例。
希望通过本文的阅读,读者们可以对卡尔曼滤波有一个全面的了解,并能够在实际工程中灵活运用。
1.2文章结构文章结构部分的内容可以按照以下方式编写:1.2 文章结构本文将围绕卡尔曼滤波和卡尔曼算法展开论述。
首先,我们会在引言部分对卡尔曼滤波和卡尔曼算法进行简要概述,介绍其基本原理和应用领域。
Kalman 滤波原理及程序(手册)KF/EKF/UKF 原理+应用实例+MATLAB 程序本手册的研究内容主要有Kalman 滤波,扩展Kalman 滤波,无迹Kalman 滤波等,包括理论介绍和MATLAB 源程序两部分。
本手册所介绍的线性滤波器,主要是Kalman 滤波和α-β滤波,交互多模型Kalman 滤波,这些算法的应用领域主要有温度测量、自由落体,GPS 导航、石油地震勘探、视频图像中的目标检测和跟踪。
EKF 和UKF 主要在非线性领域有着重要的应用,目标跟踪是最主要的非线性领域应用之一,除了讲解目标跟踪外,还介绍了通用非线性系统的EKF 和UKF 滤波处理问题,相信读者可以通过学习本文通用的非线性系统,能快速掌握EKF 和UKF 滤波算法。
本文所涉及到的每一个应用实例,都包含原理介绍和程序代码(含详细的中文注释)。
一、四维目标跟踪Kalman 线性滤波例子在不考虑机动目标自身的动力因素,将匀速直线运动的船舶系统推广到四维,即状态[]T k yk y k xk x k X )()()()()( =包含水平方向的位置和速度和纵向的位置和速度。
则目标跟踪的系统方程可以用式(3.1)和(3.2)表示,)()()1(k u k X k X Γ+Φ=+(2-4-9))()()(k v k HX k Z +=(2-4-10)其中,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=Φ10001000010001T T ,⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=ΓT T TT 05.00005.022,TH ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=00100001,Tyy x x X ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡= ,⎥⎦⎤⎢⎣⎡=y x Z ,u ,v 为零均值的过程噪声和观测噪声。
T 为采样周期。
为了便于理解,将状态方程和观测方程具体化:)(05.00005.0)1()1()1()1(10001000010001)()()()(1222k w T TT T k y k y k x k x T Tk yk y k x k x ⨯⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡ )()()()()(01000001)()(12k v k y k y k x k x k y k x Z ⨯+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡= 假定船舶在二维水平面上运动,初始位置为(-100m,200m ),水平运动速度为2m/s ,垂直方向的运动速度为20 m/s ,GPS 接收机的扫描周期为T=1s ,观测噪声的均值为0,方差为100。
卡尔曼滤波总结假设条件:系统的状态由图1所给出的模型决定。
假定),1(k k+Φ,),1(k k+Γ,)0(P 和)(k Q 是已知的,并且是确定性的。
而观测模型由图2给出,其中)1(+kH 和)(k R 也是已知的,并且是确定性的。
它们可以写为,1,0),(),1()(),1()1(=+Γ++Φ=+k k w k k k x k k k x 状态方程)1()1()1()1(++++=+k v k x k H k z 量测方程)1(+k w激励)1(+k图1 一个离散-时间线性系统的状态方程和输出方程的矢量结构图观测转移矩阵 )1(+k xv (k+1)矢量求和激励)1(+k观测矢量 观测误差新状态矢量图2 观测模型的矢量结构图卡尔曼滤波算法:滤波估计由Kalman 所给出的最优线性滤波估计)1|1(ˆ++k k x是由下面的递归矩阵公式决定的,即,0)0|0(ˆ)]|(ˆ),1()1()1()[1()|(ˆ),1()1|1(≥=+Φ+-++++Φ=++k xk k xk k k H k z k K k k xk k k k x 初始条件这里)1(+kK 称为卡尔曼增益卡尔曼增益卡尔曼增益的表达式为,1,0,)]1()1()|1()1([)1()|1()1(1=+++++⨯++=+-k k R k H k k P k H k H k k P k K TT其中)|1(k kP +表示单步预测误差协方差矩阵。
单步预测误差协方差矩阵(单步性能)1,0)0()0|0(),1()(),1(),1()|(),1()|1(==+Γ+Γ++Φ+Φ=+k P P k k k Q k k k k k k P k k k k P TT,初始条件滤波误差的误差协方差矩阵(协方差递归形式)1,0),|1()]1()1([)1|1(=+++-=+k k k P k H k K I k k P +性能评价(系统状态的卡尔曼滤波估计的协方差矩阵)1,0],))1|1(ˆ)1(ˆ))(1|1(ˆ)1([()1|1(=++-+++-+=+k k k x k x k k xk x E k k P T+11|11|----Γ+Φ=k k k k k k kW XXkkk k V XH Z +=式中:k X —— 是一个1⨯n 维矢量,称为k t 时刻的状态矢量。
Kalman 滤波器的基本原理及仿真摘要:Kalman 滤波是对线性最小均方误差滤波的另一种处理方法,实际是维纳滤波的一种递推算法。
它采用的递推算法利用了前一时刻的估计值和新的观测值,大大提高了处理的实时性,同时也能自动跟踪随机信号统计特性的非平稳变化,对于解决很大部分的问题,他是最优,效率最高甚至是最有用的,因此得到了广泛的应用。
Kalman 滤波的应用包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。
近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
关键字:Kalman 滤波 线性最小均方误差滤波 估计值 观测值一、Kalman 滤波器的提出Kalman 滤波器是源于匈牙利数学家Rudolf Emil Kalman 的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems 》(线性滤波与预测问题的新方法)。
在信号处理,通信和现代控制系统中,需要对一个随机动态系统的状态进行估计,由一个测量装置对系统状态进行测量,通过记录的测量值对状态进行最优估计例如:对一个一阶AR 模型()(1)()x n ax n w n =-+ 的输出状态进行估计。
观测方程是 ()()()y n x n v n =+()v n 是测量引入的白噪声,通过各()y n 的值估计()x n 。
这类最优估计问题称为卡尔曼滤波。
二、Kalman 滤波器的基本思想利用观测数据对状态变量的预测估计进行修正,以得到状态变量的最优估计,即 最优估计=预测估计+修正三、Kalman 滤波器的特点(1)算法是递推的,时域内设计滤波器,适用于多维随机过程的估计;(2)用递推法计算,不需要知道全部过去的值。
用状态方程描述状态变量的动态变化规律,因此,信号可以是平稳的,也可以是非平稳的;(3)误差准则仍为均方误差最小准则。
9、Kalman 滤波直观推导Kalman 滤波实质是线性最小方差估计]X ~X ~[E min T k k随机线性离散系统方程为1k 1k ,k 1k 1k ,k k W X X ----Γ+Φ=k k k k V X H Z +=过程噪声和观测噪声的统计特性,假设满足如下条件⎪⎪⎩⎪⎪⎨⎧=δ==δ==0]V W [E R ]V V [E ,0]V [E Q ]W W [E ,0]W [E T j k kj k Tj k k kj k T j k k 设k 时刻得到k 次观测值k 1Z Z ,且找到了1k X -的一个最优线性估计1k Xˆ-,即1k Xˆ-是1k 1Z Z - 的线性函数。
(1)k 时刻系统状态的预测估计值1k 1k ,k 1k ,k X ˆXˆ---Φ= (2)k 时刻系统观测值的预测估计值1k ,k k 1k ,k X ˆH Zˆ--= (3)获得k 时刻观测值k Z ,观测值与预测估计1k ,k Zˆ-之间误差 k1k ,k k 1k ,k k k k k 1k ,k k k 1K ,k k k V X ~H X ˆH V X H X ˆH Z ZˆZ Z ~+=-+=-=-=----造成误差的原因为预测估计1K ,k Zˆ-和观测值k Z 可能都存在误差。
(4)修正k 时刻状态的预测估计值,k K 为滤波增益矩阵)X ˆH Z (K X ˆXˆ1k ,k k k k 1k ,k k ---+= (5)获取k 时刻观测值k Z 前后对k X 的估计误差分别为1k ,k k 1k ,k XˆX X ~---= k k k XˆX X ~-= (6)根据最优滤波方差阵k P 求最优滤波增益矩阵k K 。
]X ~X ~[E P T k k k =k k 1k ,k k k k k 1k ,k k k 1k ,k 1k ,k k k k k k 1k ,k 1k ,k k k k 1k ,k k k V K X~]H K I [V K X ~H K X ~]X ˆH V X H [K X ~]X ˆH Z [K XˆX X~--=--=-+-=---=-------注:0]X ~V [E ,0]V X ~[E T 1k ,k k Tk 1K ,k ==--T kk k T k k 1k ,k k k T kTk k k T k k T 1k ,k 1k ,k k k T k T k k k T k k T 1k ,k k k T kTk 1k ,k k k T k k T 1k ,k 1k ,k k k T k k k TkT k k k T k k T 1k ,k k k T k T k 1k ,k k k T k k T 1k ,k 1k ,k k k T k k 1k ,k k k k k 1k ,k k k T k k K R K ]H K I [P ]H K I [K ]V V [E K ]H K I ][X ~X ~[E ]H K I [K ]V V [E K ]H K I ][X ~V [E K K ]V X ~[E ]H K I []H K I ][X ~X ~[E ]H K I []X ~X ~[E P K V V K ]H K I [X ~V K K V X ~]H K I []H K I [X ~X ~]H K I [}V K X ~]H K I }{[V K X ~]H K I {[X ~X ~+--=+--=+------==+------=----=-------------求最优增益k K 。
kalman滤波原理Kalman滤波是一种用于估计系统状态的算法,广泛应用于信号处理、导航和控制领域。
它的原理基于贝叶斯定理和线性系统的动态模型。
本文将为您详细介绍Kalman滤波的原理和它的应用。
一、贝叶斯定理贝叶斯定理是一种基于先验概率和观测数据来更新我们对事件发生概率的方法。
在Kalman滤波中,我们使用贝叶斯定理来更新对系统状态的估计。
贝叶斯定理公式如下:P(A B) = (P(B A) * P(A)) / P(B)其中,P(A B)表示已知事件B发生的条件下事件A发生的概率,P(B A)表示已知事件A发生的条件下事件B发生的概率,P(A)和P(B)分别表示事件A和事件B的概率。
二、线性系统模型Kalman滤波的原理基于线性系统模型,即系统的状态转移和观测模型都是线性的。
线性系统模型可以用下面的方程表示:状态转移模型:x(k) = F(k-1) * x(k-1) + B(k-1) * u(k-1) + w(k-1)观测模型:z(k) = H(k) * x(k) + v(k)其中,x(k)表示系统在时刻k的状态向量,u(k)表示控制输入向量,z(k)表示时刻k的观测向量,F(k-1)和H(k)分别表示状态转移矩阵和观测矩阵,B(k-1)表示控制输入矩阵,w(k-1)和v(k)分别表示状态转移和观测噪声。
三、Kalman滤波的步骤Kalman滤波的基本步骤包括两个阶段:预测和更新。
在预测阶段,根据系统的状态转移模型和控制输入,我们通过预测当前状态的概率分布。
在更新阶段,我们根据观测数据对状态进行修正。
1. 初始化阶段:首先,我们对系统的状态变量进行初始化,即设置初始状态向量x(0)和初始状态协方差矩阵P(0)。
2. 预测阶段:a. 状态预测:根据状态转移模型,我们通过计算状态的预测值x'(k) = F(k-1) * x(k-1) + B(k-1) * u(k-1)来估计状态。
b. 协方差预测:根据状态转移模型和状态协方差矩阵,我们计算协方差矩阵的预测值P'(k) = F(k-1) * P(k-1) * F(k-1)^T + Q(k-1)。
第4章 卡尔曼(Kalman )滤波卡尔曼滤波的思想是把动态系统表示成状态空间形式,是一种连续修正系统的线性投影算法。
功能 1) 连续修正系统的线性投影算法。
2)用于计算高斯ARMA 过程的精确有限样本预测和精确的似然函数。
3) 分解矩阵自协方差生成函数或谱密度。
4)估计系数随时间变化的向量自回归。
第一节 动态系统的状态空间表示一.假设条件令t y 表示时期t 观察到变量的一个()1n ×向量。
则t y 的动态可以用不可观测的()1r ×向量t ξ来表示,t ξ为状态向量。
t y 的动态系统可以表示为如下的状态空间模型:11t t t F v ξξ++=+ (1)t t t t y A x H w ξ′′=++ (2)其中′′F,A ,H 分别为()r r ×,()n k ×和()n r ×矩阵,t x 是外生变量或前定变量的()1k ×向量。
方程(1)称为状态方程,方程(2)称为观察方程。
其中()1r ×向量t v 和()1n ×向量t w 为向量白噪声:()()00t t Qt E v v t R t E w w t ττττττ=⎧′=⎨≠⎩=⎧′=⎨≠⎩ (3)其中,Q R 为()(),r r n n ××矩阵。
假定扰动项t v 和t w 在所有阶滞后都不相关:()0t t E v w ′= 对所有的t 和τ (4)t x 为前定或外生变量,意味着对0,1,2,....,s =除包含在121,,...,t t y y y −−之内的信息外,t x 不再能提供关于t s ξ+以及t s w +的任何信息。
即t x 可能包含y 的滞后值或所有与τ、τξ和w τ不相关变量。
状态空间系统描述有限观察值序列{}1,...,T y y ,需要知道状态向量的初始值1ξ,根据状态方程(1),t ξ可写作()123,,,...,t v v v ξ的线性函数: 2211221....t t t t t t v Fv F v F v F ξξ−−−−=+++++ 2,3,...,t T = (5)这里假定1ξ与t v 和t w 的任何实现都不相关:()()1101,2,...,01,2,...,t t E v TE w Tξτξτ′==′== (6)根据(3)和(6),得t v 和ξ的滞后值不相关:()0t E v τξ′= 1,2,...,1t t τ=−− (7) ()0t E w τξ′= 1,2,...,T τ= (8) ()()()0t t E w y E w A x H w ττττξ′′′=++= 1,2,...,1t t τ=−− (9) ()0t E v y τ′= 1,2,...,1t t τ=−− (10)二.状态空间系统的例子例1 ()AR p 过程,()()()112111...t t t p t p t y y y y µφµφµφµε+−−++−=−+−++−+ (11)()2t t E t τστεετ⎧==⎨≠⎩ (12) 可以写作状态空间形式。
无迹卡尔曼滤波简单理解
无迹卡尔曼滤波(Unscented Kalman Filter,简称UKF)是一种高效可靠的滤波算法,它基于卡尔曼滤波(Kalman Filter,简称KF)的基础上,通过采用一种新的状态估计方法,能够更好地处理非线性系统。
下面分步骤进行简单介绍:
1. 卡尔曼滤波介绍
卡尔曼滤波是一种线性系统状态估计方法,它能够通过对系统的测量和模型的状态估计,推断出系统真实的状态。
卡尔曼滤波有一个重要的前提条件,即系统必须满足高斯分布和线性性质。
2. 无迹变换介绍
无迹变换是UKF算法的核心,它通过一种非线性变换的方式,将原始高斯分布的均值和协方差矩阵映射到一组新的高斯分布的均值和协方差矩阵。
这样就可以将非线性系统中的状态估计问题转化为线性系统中的状态估计问题。
3. 无迹卡尔曼滤波原理
无迹卡尔曼滤波的原理是将卡尔曼滤波的预测和更新过程中的均值和协方差矩阵进行无迹变换,并根据新的变换后的均值和协方差矩阵对系统状态进行估计。
无迹卡尔曼滤波中关键的一步是通过一组特殊的采样点来近似非线性系统的状态分布。
4. 无迹卡尔曼滤波优点
相比于普通的卡尔曼滤波,无迹卡尔曼滤波具有以下优点:
(1)适用于非线性系统,效果更好;
(2)算法的稳定性更好;
(3)计算复杂度较低。
总的来说,无迹卡尔曼滤波算法是一种高效可靠的滤波算法,能够很好地解决非线性系统状态估计问题,因此在实际的工程应用中有着广泛的应用前景。
卡尔曼滤波器分类及基本公式根据其应用领域和实现方式,卡尔曼滤波器可以分为线性卡尔曼滤波器、扩展卡尔曼滤波器和无迹卡尔曼滤波器等。
1. 线性卡尔曼滤波器(Linear Kalman Filter):线性卡尔曼滤波器适用于状态变量和观测变量均为线性的情况。
它基于线性动态系统和高斯噪声的假设。
线性卡尔曼滤波器的基本公式为:预测步骤:$\hat{x}_{k,k-1} = F\hat{x}_{k-1,k-1} + Bu_{k-1}$$P_{k,k-1}=FP_{k-1,k-1}F^T+Q$更新步骤:$y_k = z_k - H\hat{x}_{k,k-1}$$S_k=HP_{k,k-1}H^T+R$$K_k=P_{k,k-1}H^TS_k^{-1}$$\hat{x}_{k,k} = \hat{x}_{k,k-1} + K_ky_k$$P_{k,k}=(I-K_kH)P_{k,k-1}$其中,$\hat{x}$ 表示状态变量的估计值,$P$ 表示状态变量估计值的方差,$F$ 表示状态转移矩阵,$B$ 表示输入矩阵,$u$ 表示系统输入,$Q$ 表示系统模型噪声协方差矩阵,$H$ 表示观测矩阵,$z$ 表示观测值,$y$ 表示观测残差,$R$ 表示观测噪声协方差矩阵,$K$ 表示卡尔曼增益,$I$ 表示单位矩阵。
2. 扩展卡尔曼滤波器(Extended Kalman Filter):扩展卡尔曼滤波器适用于状态变量和观测变量为非线性的情况。
它通过对非线性系统进行线性化,然后应用线性卡尔曼滤波器的思想来进行滤波。
扩展卡尔曼滤波器的基本公式与线性卡尔曼滤波器类似,只是在预测步骤和更新步骤中,将线性化的系统模型和观测模型代替原始非线性模型。
3. 无迹卡尔曼滤波器(Unscented Kalman Filter):无迹卡尔曼滤波器通过使用无迹变换,避免了非线性系统线性化的过程,从而提高了滤波精度,并且对于非线性系统更加稳健。
非线性系统的自适应推广的kalman滤波的报告,800字
自适应Kalman滤波是一种广泛用于非线性系统的状态估计的
技术,由此可以更有效地对实际系统进行实时状态估计。
本文将介绍自适应Kalman滤波在此类系统中的原理和性能,并给
出具体的研究方法及其实验结果,来验证自适应Kalman滤波
器在非线性系统中的实用性。
自适应Kalman滤波器是根据Kalman滤波器构建的一种变形
滤波算法,它可以用来求解非线性系统的状态估计问题,其原理是采用迭代算法,根据系统不断变化的状态参数,以及观测到的新观测站数据,不断优化滤波器参数,更新系统的估计状态,从而达到获取最优估计结果的目的。
为了评估自适应Kalman滤波器在非线性系统中的实用性,我
们编写一个仿真程序,用于模拟非线性系统的状态估计任务,采用双积分表示的粒子丢失模式,仿真时设定系统的状态参数,并观测到相应的新观测站数据,然后通过迭代,优化自适应Kalman滤波器的参数,从而更新系统的估计状态。
有了这个
程序,我们就可以比较自适应Kalman滤波与传统Kalman滤
波在非线性系统状态估计中的性能。
实验结果显示,自适应Kalman滤波有效提高了传统Kalman
滤波在复杂系统中的滤波性能,其平均精度为0.99,有效抑制了噪声,并可以适应不断变化的系统状态,从而确保最终估计状态的准确性和收敛速度。
综上所述,自适应Kalman滤波是一种有效的状态估计技术,
它可以有效地解决非线性系统中的状态估计问题,提高滤波性能,并能够适应复杂系统的变化,从而确保准确的状态估计。
4.1 扩展的卡尔曼滤波方程前面讲的Kalman滤波要求系统状态方程和观测方程都是线性的。
然而,许多工程系统往往不能用简单的线性系统来描述。
例如,导弹控制问题,测轨问题和惯性导航问题的系统状态方程往往不是线性的。
因此,有必要研究非线性滤波问题。
对于非线性模型的滤波问题,理论上还没有严格的滤波公式。
一般情况下,都是将非线性方程线性化,而后,利用线性系统Kalman滤波基本方程。
这一节我们就给出非线性系统的Kalman滤波问题的处理方法。
为了方便描述,下面仅限于讨论下列情况的非线性模型kkxkk=k+(3.2.8.1)Φ+Γx+x),1(])w[()(k()1),(kkv=+kk+z(3.2.8.2)hx),1]1()1([+(+)1+式中,1)(⨯∈n R k x 是状态向量,1)(⨯∈m R k z 是观测向量,)(k w 和)(k v 是噪声;1⨯∈Φn R 是k k x ),(的非线性函数,具有一阶连续导数;1⨯∈m R h 是1),1(++k k x 的非线性函数,具有一阶连续导数。
)(k w 和)(k v 都是均值为零的白噪声序列,其统计特性如下{}{}0)(,0)(==k v E k w E ,{}kj T k Q j w k w E δ)()()(=,{}kj T k R j v k v E δ)()()(=另外,已知初始条件,即)0(x 的统计特性。
下面仅介绍推广的Kalman 滤波方法,即围绕滤波值)|(ˆk k x的线性化滤波方法,这种方法是先将非线性模型线性化,而后应用线性系统的Kalman 滤波基本公式。
由系统状态方程(3.2.8.1)可得)(]),|(ˆ[)]|(ˆ)([)),|(ˆ()1()|(ˆ)(k w k k k x k k xk x xk k k xk x k k xk x Γ+-∂Φ∂+Φ≈+= (2.3.8.3)),1()|(ˆ)(k k xk k xk x +Φ=∂Φ∂= (2.3.8.4))()|(ˆ]),|(ˆ[)|(ˆ)(k f k k xxk k k xk k xk x =∂Φ∂-Φ= (2.3.8.5) 则状态方程为)()(]),|(ˆ[)(),1()1(k f k w k k k xk x k k k x +Γ++Φ=+ (3.2.8.6) 初始值为{}000ˆm x E x==。
4.1 扩展的卡尔曼滤波方程前面讲的Kalman滤波要求系统状态方程和观测方程都是线性的。
然而,许多工程系统往往不能用简单的线性系统来描述。
例如,导弹控制问题,测轨问题和惯性导航问题的系统状态方程往往不是线性的。
因此,有必要研究非线性滤波问题。
对于非线性模型的滤波问题,理论上还没有严格的滤波公式。
一般情况下,都是将非线性方程线性化,而后,利用线性系统Kalman滤波基本方程。
这一节我们就给出非线性系统的Kalman滤波问题的处理方法。
为了方便描述,下面仅限于讨论下列情况的非线性模型kkxkk=k+(3.2.8.1)Φ+Γx+x),1(])w[()(k()1),(kkv=+kk+z(3.2.8.2)hx),1]1()1([+(+)1+式中,1)(⨯∈n R k x 是状态向量,1)(⨯∈m R k z 是观测向量,)(k w 和)(k v 是噪声;1⨯∈Φn R 是k k x ),(的非线性函数,具有一阶连续导数;1⨯∈m R h 是1),1(++k k x 的非线性函数,具有一阶连续导数。
)(k w 和)(k v 都是均值为零的白噪声序列,其统计特性如下{}{}0)(,0)(==k v E k w E ,{}kj T k Q j w k w E δ)()()(=,{}kj T k R j v k v E δ)()()(=另外,已知初始条件,即)0(x 的统计特性。
下面仅介绍推广的Kalman 滤波方法,即围绕滤波值)|(ˆk k x的线性化滤波方法,这种方法是先将非线性模型线性化,而后应用线性系统的Kalman 滤波基本公式。
由系统状态方程(3.2.8.1)可得)(]),|(ˆ[)]|(ˆ)([)),|(ˆ()1()|(ˆ)(k w k k k x k k xk x xk k k xk x k k xk x Γ+-∂Φ∂+Φ≈+= (2.3.8.3)),1()|(ˆ)(k k xk k xk x +Φ=∂Φ∂= (2.3.8.4))()|(ˆ]),|(ˆ[)|(ˆ)(k f k k xxk k k xk k xk x =∂Φ∂-Φ= (2.3.8.5) 则状态方程为)()(]),|(ˆ[)(),1()1(k f k w k k k xk x k k k x +Γ++Φ=+ (3.2.8.6) 初始值为{}000ˆm x E x==。
同基本Kalman 滤波模型相比,在已知求得前一步滤波值)|(ˆk k x 的条件下,状态方程(3.2.8.6)中增加了非随机的外作用项)(k f 。
把观测方程的][∙h 围绕)|1(ˆk k x+进行泰勒展开,略去二次以上项,可得 )1()]|1(ˆ)1([]1),|1(ˆ[)1()|1(ˆ)1(+++-+∂∂+++=++=+k v k k xk x xhk k k xh k z k k xk x (3.2.8.7) 令)1()|1(ˆ)1(+=∂∂+=+k C xhk k xk x)1(]1),|1(ˆ[)|1(ˆ)|1(ˆ)1(+=++++∂∂-+=+k y k k k x h k k xxh k k xk x 则观测方程为)1()1()1()1()1(++++++=+k v k y k x k C k z (3.2.8.8)应用Kalman 滤波基本方程可得)]|1(ˆ)1()1()1()[1()|1(ˆ)1|1(ˆk k x k C k y k z k K k k x k k x++-+-++++=++ (3.2.8.9) 即]}1),|1(ˆ[)1(){[1()|1(ˆ)1|1(ˆ++-++++=++k k k x h k z k K k k x k k x(3.2.8.10) 式中)()|(ˆ),1()|1(ˆk f k k x k k A k k x++=+ (3.2.8.11) 即]),|(ˆ[)|1(ˆk k k x k k xΦ=+1)]1()1()|1()1()[1()|1()1(-+++++++=+k R k C k k P k C k C k k P k K T T (3.2.8.12)方程(3.2.8.13)称为估计误差方差阵的递推方程),1()(),1(),1()|(),1()|1(k k k Q k k k k A k k P k k A k k P T T +Γ+Γ+++=+ (3.2.8.13))|1()]1()1([)1|1(k k P k C k K I k k P +++-=++ (3.2.8.14)式中滤波值和滤波误差方差阵的初始值为{}00)0(ˆm x E x==, {}T m x m x E P ])0(][)0([000--= (3.2.8.15) 推广的Kalman 滤波的优点是不必预先计算标称轨道。
注意推广的Kalman 滤波只要在滤波误差)|(ˆ)()|(~k k x k x k k x -=及一步预测误差)|1(ˆ)1()|1(~k k xk x k k x +-+=+较小时才适用。
4.2 强跟踪滤波基本理论本小节引入自1990年以来发展起来的一个有强跟踪滤波器理论[2-3]。
考虑如下一大类非线性系统的状态估计问题)()())(),(,()1(k w k k k k k Γ+=+x u f x (3.2.9.1))1())1(,1()1(++++=+k v k k k x h z (3.2.9.2)其中,整数k ≥0为离散时间变量,1)(⨯∈n R k x 为状态向量,1)(⨯∈l R k u 为输入向量,1)(⨯∈p R k z 为输出向量。
非线性函数111:⨯⨯⨯→⨯n n l R R R f , 11:⨯⨯→p n R R h 具有关于状态的一阶连续偏导数。
q n R ⨯∈Γ为已知的矩阵。
系统噪声1)(⨯∈p R k w 和测量噪声1)(⨯∈p R k v 匀是高斯白噪声,并具有如下的统计特性0)}({,0)}({==k v E k w E (3.2.9.3) j k T k j w k w E ,)()}()({δQ = (3.2.9.4)j k T k j v k v E ,)()}()({δR = (3.2.9.5) 0)}()({=j v k E T w (3.2.9.6) 其中, Q ()k 为对称的非负定阵, R ()k 为对称正定阵。
初始状态x ()0为高斯分布的随机向量,且满足统计特性0)}0({x x =E (3.2.9.7)000}])0(][)0({[P x x x x =--T E (3.2.9.8) 并且有x ()0与)(),(k v k w 统计独立。
系统(3.2.9.1)-(3.2.9.2)的状态估计问题可以首先选择在3.2.7节引入的扩展Kalman滤波器(Extended Kalman Filter —— EKF)进行解决) 1 +k ( ) 1 +k ( + )k | 1 +k ( ˆ= ) 1 +k | 1 +k ( ˆγK x x(3.2.9.9) 其中,) 1 ( ˆ | k k + x为状态的一步预报值。
)) ( ˆ, ) ( , ( = )k | 1 +k ( ˆk | k k u k f x x(3.2.9.10) 增益阵1)]1())|1(ˆ,1()|1())|1(ˆ,1())[|1(ˆ,1()|1()1(-+++++⨯+++++=+k k k k k k k k k k k k k k k TT R xH P x H xH P K (3.2.9.11)预报误差协方差阵)()()())|(ˆ),(,()|())|(ˆ),(,()|1(k k k k k k k k k k k k k k k T T ΓΓ+=+Q x u F P xu F P (3.2.9.12) 状态估计误差协方差阵)|1())]|1(ˆ,1()1([)1|1(k k k k k k I k k ++++-=++P xH K P (3.2.9.13) 残差序列))|1(ˆ,1()1()1(ˆ)1()1(k k k k k yk y k ++-+=+-+=+γx h y (3.2.9.14) 式(3.2.9.11)中)|1(ˆ)1())1(,1())|1(ˆ,1(k k k k k k k k H +=+∂++∂=++x x xx h x(3.2.9.15)式(3.2.9.12)中)|(ˆ)())(),(,())|(ˆ),(,(k k k k k k k k k u k F x x xx u f x==∂∂ (3.2.9.16) 式(3.2.9.9)—(3.2.9.16)就是著名的扩展Kalman 滤波器的递推公式。
此时输出残差序列的协方差阵为)1())|1(ˆ,1()|1())|1(ˆ,1()]1()1([)1(0++++⨯+++≈++=+k k k k k k k k k k k E k TT R xH P xH V γγ (3.2.9.17)当系统模型(3.2.9.1)-(3.2.9.2)具有足够的精度,并且滤波器的初始值 (|),(|)x 0000P 选择得当时,上述的EKF 可以给出比较准确的状态估计值 (|)xk k ++11。
然而,通常的情况是,系统模型(3.2.9.1)-(3.2.9.2)具有模型不确定性,即此模型与其所描述的非线性系统不能完全匹配,造成模型不确定性的主要原因有:1)模型简化。
对于比较复杂的系统,若要精确描述其行为,通常需要较高维数的状态变量,甚至无穷维的变量。
这对系统状态的重构造成了极大不便。
因此,通常人们都要使用模型简化的办法,使用较少的状态变量来描述系统的主要特征,忽略掉实际系统某些较不重要的因素。
也就是存在所谓的未建模动态。
这些未建模动态在某些特殊条件下有可能被激发起来,造成模型与实际系统之间较大的不匹配[2-3]。
2) 噪声统计特性不准确。
即所建模型的噪声统计特性与实际过程噪声的统计特性有较大差异。
所建模型噪声的统计特性一般过于理想。
实际系统在运行过程中,可能会受到强电磁干扰等随机因素的影响,造成实际系统的统计特性发生较大的变动。
3) 对实际系统初始状态的统计特性建模不准。
4) 实际系统的参数发生变动。
由于实际系统部件老化、损坏等原因,使得系统的参数发生变动(缓变或突变),造成原模型与实际系统不匹配。
一个很遗憾的事实是,EKF 关于模型不确定性的鲁棒性很差,造成EKF 会出现状态估计不准,甚至发散等现象[2-3]。
此外,EKF 在系统达到平稳状态时,将丧失对突变状态的跟踪能力。
这是EKF 类滤波器(包括卡尔曼滤波器在内)的另一大缺陷。
造成这种情况的主要原因是,当系统达平稳状态时,EKF 的增益阵K k ()+1将趋于极小值。