Kalman滤波原理及程序(手册)解析
kalman滤波

二卡尔曼滤波基本原理
二卡尔曼滤波基本原理 2.1建立系统数学模型 2.2滤波器计算原型 2.3滤波器模型的建立 2.4卡尔曼滤波的应用
二卡尔曼滤波基本原理
2.1建立系统数学模型 我们作以下假设:①物理系统的状态转换过程可以描述为一 个离散时间的随机过程;②系统状态受控制输入的影响;③系统 状态及观测过程都不可避免受噪声影响;④对系统状态是非直 接可观测的。 状态随机差分方程:
四、一个实例
选择sigma点:
四、一个实例
时间更新:
量测更新:
四、一个实例
滤波更新:
四、一个实例
4.4平方根无迹卡尔曼滤波 用户状态方程和观测方程的通用表示:
初始化:
四、一个实例
计算sigma点:
四、一个实例
时间更新
四、一个实例
量测更新:
四器模型的建立
二卡尔曼滤波基本原理
滤波递推:
二卡尔曼滤波基本原理
2.4卡尔曼滤波的应用
卡尔曼滤波器(Kalman Fiher)是一个最优化自回归数据处理 算法,它的广泛应用已经超过30年,包括航空器轨道修正、机器 人系统控制、雷达系统与导弹追踪等。近年来更被应用于组合导航 与动态定位,传感器数据融合、微观经济学等应用研究领域。特别 是在图像处理领域如头脸识别、图像分割、图像边缘检测等当前热 门研究领域占有重要地位。
二卡尔曼滤波基本原理
卡尔曼滤波作为一种数值估计优化方法,与应用领域的背 景结合性很强。因此在应用卡尔曼滤波解决实际问题时,重要 的不仅仅是算法的实现与优化问题,更重要的是利用获取的领 域知识对被认识系统进行形式化描述,建立起精确的数学模型 ,再从这个模型出发,进行滤波器的设计与实现工作。 滤波器实际实现时,测量噪声协方差R一般可以观测得到 ,是滤波器的已知条件。它可以通过离线获取一些系统观测值 计算出来。通常,难确定的是过程激励噪声协方差的值,因为 我们无法直接观测到过程信号。一种方法是通过设定一个合适 的口,给过程信号“注入”足够的不确定性来建立一个简单的 可以产生可接受结果的过程模型。为了提高滤波器的性能,通 常要按一定标准进行系数的选择与调整。
卡尔曼滤波算法原理

卡尔曼滤波算法原理卡尔曼滤波(Kalman Filter)是一种用来估计系统状态的算法。
它基于对系统的数学模型和测量数据进行分析,通过使用贝叶斯统计推断来计算系统当前的最优状态估计。
卡尔曼滤波算法在控制系统、导航系统、机器人学、图像处理等领域有广泛的应用。
卡尔曼滤波算法的原理可以概括为以下几步:1. 系统建模:首先,需要建立系统的数学模型,包括系统的动态方程和观测方程。
动态方程描述了系统状态的演化规律,而观测方程则描述了系统状态与测量值之间的关系。
这些方程通常以线性高斯模型表示,即系统的状态和测量误差符合高斯分布。
2. 初始化:在开始使用卡尔曼滤波算法之前,需要对系统状态进行初始化。
这包括初始化系统状态的均值和协方差矩阵。
通常情况下,均值可以通过先验知识来估计,而协方差矩阵可以设置为一个较大的值,表示对系统状态的初始不确定性较大。
3. 预测:在每一次测量之前,需要对系统的状态进行预测。
预测过程基于系统的动态方程,将上一时刻的状态估计作为输入,得到当前时刻的状态的先验估计。
预测的结果是一个高斯分布,其均值和协方差矩阵表示了对当前状态估计的不确定性。
4. 测量更新:当获取了新的测量值时,需要将其与预测结果进行比较,以修正对系统状态的估计。
测量更新过程基于系统的观测方程,将预测的状态估计与实际的测量值进行比较,得到对系统状态的最优估计。
测量更新的结果也是一个高斯分布,其均值和协方差矩阵表示了对当前状态估计的不确定性。
5. 迭代:在每一次测量更新之后,会得到对系统状态的最优估计。
然后,可以根据当前估计的状态再次进行预测,并等待下一次的测量更新。
这样,通过不断地迭代,卡尔曼滤波算法可以逐步提高对系统状态的估计精度。
卡尔曼滤波算法的核心思想是将动态方程和观测方程结合起来,使用贝叶斯推断的方法进行状态估计。
通过动态方程对系统进行预测,再通过观测方程修正预测结果,从而得到对系统状态的最优估计。
卡尔曼滤波算法在估计过程中考虑了对系统状态的不确定性,通过动态预测和测量更新不断修正对系统状态的估计结果,达到更准确的状态估计。
第三章卡尔曼(Kalman)滤波

引入
在讨论维纳滤波时,提出一个基本概念: 任何具有有理功率谱密度的随机信号都可看作 是白色噪声通过一个线性网络所形成。 由此得到维纳滤波器的信号模型
w(n)
s(n)
A(z)
v(n)
w(n)
s(n)
x(n)
A(z)
w(n)
B(z)
x(n)
为了得到卡尔曼过滤的信号模型,必须 首先讨论状态方程和量测方程。
当已知初始状态x(0)、激励e j以及A与B矩阵,
即可求得x(k )。。
如果用k0表示起始点的k值从x(k )开始递推,从而有
k 1
x(k) k,k0x(k0 ) k, j1Be( j) j k0
k0 0:表示从初始状态x(0)开始递推。
k ,k 0:代表从k0状态到k 状态的转移矩阵。
在卡尔曼滤波中: 希望得到xk的估计值xˆk与xk间 最小均方误差。有了xˆk也就得到了sˆk。
提问:sk 和xk的关系?
来估计信号的当前值 以均方误差最小条件下求解 系统的传递函数H(z)或单位冲激响应h(
只根据前一个估计值 xˆk -1 和最近一个观察数据 yk 来估计信号的当前值 它是用状态空间法描述系统, 即由状态方程和量测方程组成。
解是以估计值(是状态变量的估计值)的形式给出的
第三章 卡尔曼(Kalman)滤波
第一节 引言
卡尔曼生平
卡尔曼全名Rudolf Emil Kalman,匈 牙利数学家,1930年出生于匈牙利 首都布达佩斯。1953,1954年于麻 省理工学院分别获得电机工程学士 及硕士学位。1957年于哥伦比亚大 学获得博士学位。我们在现代控制 理论中要学习的卡尔曼滤波器,正 是源于他的博士论文和1960年发表 的论文《A New Approach to Linear Filtering and Prediction Problems》 (线性滤波与预测问题的新方法)。
控制系统中的Kalman滤波器原理与应用

控制系统中的Kalman滤波器原理与应用控制系统是现代工业发展过程中不可或缺的一部分。
为了使控制系统能够更加准确、可靠地运行,通常需要对传感器采集到的数据进行滤波处理。
而Kalman滤波器就是一种被广泛应用于控制系统中的滤波技术,它的出现大大提高了系统的精度和可靠性。
一、Kalman滤波器的原理Kalman滤波器最初是由R.E. Kalman于1960年提出的,它具有一种比较特殊的滤波思想,主要是通过特定的方式来优化传感器采集的数据,使其更加符合实际情况。
Kalman滤波器主要是用线性数学模型描述采样过程中各种误差的随机漂移规律,根据数据的特点构建出目标模型,使滤波后得到的数据更加接近真实值。
Kalman滤波器的核心思想是基于以下两种数据:1. 系统状态(State):表示被测量的真实值,通常情况下是无法直接测量。
2. 测量值(Measurement):表示传感器给出的测量值,它受到噪声等因素的影响,会存在一定的偏差。
Kalman滤波器认为,通过将测量值与系统状态进行加权平均,可以得到更加准确的结果。
具体来说,它通过建立数学模型,将系统状态与测量值联系起来,然后根据这个联系,在不断的采样、滤波过程中,来逐步优化估计值。
二、Kalman滤波器的应用Kalman滤波器在工业控制系统、航空航天、自动驾驶汽车、智能家居等领域均得到了广泛的应用。
在工业控制系统中,Kalman滤波器主要用于对工业生产线上的重要参数进行处理,以保证生产线的正常运行。
例如,在汽车生产线上,由于传感器采集到的测量值通常存在噪声等干扰,因此需要使用Kalman滤波器来对测量值进行优化,以保证汽车的生产质量。
在航空航天领域中,Kalman滤波器被广泛应用于飞行器的导航和控制系统中。
航空器的飞行需要依赖于精确的定位和航向数据,而通过使用Kalman滤波器来处理采集到的数据,可以提高数据的准确性和可靠性,从而使飞行安全得到保障。
在智能家居领域中,Kalman滤波器可以用于处理家庭生活中的传感器数据,并对物联网设备进行智能化管理。
Kalman滤波原理及程序(指导手册)

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。
卡尔曼滤波原理及应用

卡尔曼滤波原理及应用
一、卡尔曼滤波原理
卡尔曼滤波(Kalman filter)是一种后验最优估计方法。
它以四个步骤:预测、更新、测量、改善,不断地调整估计量来达到观测的最优估计的目的。
卡尔曼滤波的基本思想,是每次观测到某一位置来更新位置的参数,并用更新结果来预测下一次的位置参数,再由预测时产生的误差来改善当前位置参数。
从而可以达到滤波的效果,提高估计精度。
二、卡尔曼滤波应用
1、导航系统。
卡尔曼滤波可以提供准确的位置信息,把最近获得的各种定位信息和测量信息,如GPS、ISL利用卡尔曼滤波进行定位信息融合,可以提供较准确的空中、地面导航服务。
2、智能机器人跟踪。
在编队技术的应用中,智能机器人往往面临着各种复杂环境,很难提供精确的定位信息,而卡尔曼滤波正是能解决这一问题,将持续不断的测量信息放在卡尔曼滤波器中,使机器人能够在范围内定位,跟踪更新准确可靠。
3、移动机器人自主避障。
对于移动机器人来说,很多时候在前传感器检测不到
人或障碍物的时候,一般将使用卡尔曼滤波来进行自主避障。
卡尔曼滤波的定位精度很高,相对于静止定位而言,移动定位有更多的参数要考虑,所以能提供更准确的定位数据来辅助自主避障,准确的定位信息就可以让我们很好的实现自主避障。
4、安防监控。
与其他传统的安防场景比,安防场景如果需要运动物体位置估计或物体检测,就必须使用卡尔曼滤波技术来实现,这是一种行为检测和行为识别的先进技术。
(注:安防监控可用于感知移动物体的位置,并在设定的范围内监测到超出范围的物体,以达到安全防护的目的。
)。
第三章卡尔曼(Kalman)滤波

如 果 k 0 k 1 , 就 得 到 一 步 递 推 公 式 : x ( k ) k , k 1 x ( k 1 ) ( 0 ) B e ( k 1 ) 由 于 ( 0 ) A 0 I , 代 入 上 式 , 得 :
总结
状态方程的核心是:设置状态变量, 状态变量是网络内部(最少的)节点变量, 一般设在延迟支路的输出端,状态方程刻 画了状态变量下一时刻的取值与当前时刻的 状态变量和输入之间的关系。
x ( k 1 ) A x ( k ) B e ( k ) 一步递推状态方程: x(k)A(k)x(k1)w(k-1)
上 式 中 Ak、 Ck已 知 , yk是 观 测 到 的 数 据 , 也 已 知 , 假 设 信 号 的 上 一 个 估 计 值 x ˆk1已 知 , 求 当 前 时 刻 的 估 计 值 x ˆk。
解:(1)假设上式中忽略wk-1、k,可立即求得xk。
用xˆk' 和yˆk' 分别表示: xˆk' Ak xˆk1, yˆk'=Ck xˆk' =Ck Ak xˆk1 显然:观测值yk和估计值yˆk' 之间有误差, 它们之间的误差是由于
x ( k ) k ,k 1 x ( k 1 ) B e ( k 1 )
假 设 激 励 源 为 白 噪 声 , 即 B e(k 1 )= w (k-1 ) 称 为 系 统 动 态 噪 声 , 而 系 统 是 时 变 的 , 即 k,k1= A(k) 其 中 A(k)为 状 态 变 量 之 间 的 增 益 矩 阵 , 可 以 随 时 间 发 生 变 化 ;
sk ckxk
信 号 s k 表 示 为 状 态 变 量 x k 的 线 性 组 合 。
MATLAB中的Kalman滤波器设计

MATLAB中的Kalman滤波器设计引言Kalman滤波器是一种常用于估计随时间演变的系统状态的算法。
它通过观测值和系统模型之间的协方差来融合测量和预测,从而提供对系统状态的最优估计。
在MATLAB中,实现Kalman滤波器设计相对简单,本文将介绍MATLAB中Kalman滤波器的基本原理和常见的应用案例。
一、 Kalman滤波器基本原理Kalman滤波器的基本原理可以概括为两个步骤:预测和更新。
预测步骤根据系统的动力学模型和先前的状态估计,使用预测方程计算下一个时间步的状态预测和协方差预测。
更新步骤则是在测量信息的基础上,使用更新方程将预测的状态和协方差修正为更准确的估计。
预测步骤:1. 根据系统的动力学模型,使用预测方程计算状态预测值x_prior和协方差预测值P_prior:x_prior = F * x_est + B * uP_prior = F * P_est * F' + Q其中,F是状态转移矩阵,x_est和P_est是先前时间步的状态估计和协方差估计,B是控制输入矩阵,u是控制输入向量,Q是系统过程噪声的协方差矩阵。
更新步骤:1. 根据观测模型,使用更新方程计算观测预测值z_prior和观测协方差S:z_prior = H * x_priorS = H * P_prior * H' + R其中,H是观测矩阵,R是观测噪声的协方差矩阵。
2. 计算卡尔曼增益K:K = P_prior * H' * inv(S)3. 根据观测值z和观测预测值z_prior,计算状态更新值x_update和协方差更新值P_update:x_update = x_prior + K * (z - z_prior)P_update = (eye(size(x_est, 1)) - K * H) * P_prior二、案例研究:目标跟踪Kalman滤波器在目标跟踪领域有广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,T H ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=00100001,Tyy x x X ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡= ,⎥⎦⎤⎢⎣⎡=y x Z ,u ,v 为零均值的过程噪声和观测噪声。
T 为采样周期。
为了便于理解,将状态方程和观测方程具体化:)(05.00005.0)1()1()1()1(10001000010001)()()()(1222k w T TTT k y k y k x k x T Tk y k 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。
过程噪声越小,目标越接近匀速直线运动,反之,则为曲线运动。
仿真得到以下结果:图3-1 跟踪轨迹图 图3-2 跟踪误差图仿真程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Kalman 滤波在目标跟踪中的应用实例%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function Kalman clc;clear;T=1;%雷达扫描周期, N=80/T; %总的采样次数X=zeros(4,N); % 目标真实位置、速度X(:,1)=[-100,2,200,20];% 目标初始位置、速度 Z=zeros(2,N); % 传感器对位置的观测 Z(:,1)=[X(1,1),X(3,1)]; % 观测初始化delta_w=1e-2; %如果增大这个参数,目标真实轨迹就是曲线了 Q=delta_w*diag([0.5,1,0.5,1]) ; % 过程噪声均值 R=100*eye(2); %观测噪声均值F=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1]; % 状态转移矩阵 H=[1,0,0,0;0,0,1,0]; % 观测矩阵…………二、视频图像目标跟踪Kalman 滤波算法实例如下图所示,对于自由下落的皮球,要在视频中检测目标,这里主要检测目标中心,即红心皮球的重心,在模型建立时可以将该重心抽象成为一个质点,坐标为),(y x 。
图2-6-1 下落的球 图2-6-2 检测下落的球 图2-6-3 跟踪下落的球 那么对该质点跟踪,它的状态为[]yxy xk X =)(,状态方程如下 )(000)(10000100010001)1(k w g k X dt dt k X ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=+ 观测方程为)()(00100001)(k v k X k Z +⎥⎦⎤⎢⎣⎡= 在这个过程中,前提是目标检测,一定要找到重心),(y x ,与雷达目标跟踪中观测目标位置是一回事。
图像目标检测跟踪程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 目标检测函数,这个函数主要完成将目标从背景中提取出来%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function detectclear,clc; %清除所有内存变量、图形窗口 % 计算背景图片数目 Imzero = zeros(240,320,3); for i = 1:5% 将图像文件 i.jpg 的图像像素数据读入矩阵Im Im{i} = double(imread(['DATA/',int2str(i),'.jpg'])); Imzero = Im{i}+Imzero; endImback = Imzero/5;[MR,MC,Dim] = size(Imback); % 遍历所有图片 for i = 1 : 60% 读取所有帧…… ……运行程序得到的x,y 方向的位置跟踪偏差分析Y 方向的位置偏差50100150X 方向的位置偏差三、通用非线性系统的EKF 实现例子:所谓的非线性方程,就是因变量与自变量的关系不是线性的,这类方程很多,例如平方关系,对数关系,指数关系,三角函数关系等等。
这些方程可分为两类,一类是多项式方程,一种是非多项式方程。
为了便于说明非线性卡尔曼滤波——扩展Kalman 滤波的原理,我们选用以下系统,系统状态为)(k X ,它仅包含一维变量,即[])()(k x k X =,系统状态方程为)()2.1cos(8)1(1)1(5.2)1(5.0)(2k w k k X k X k X k X ++-+-+-= (3-2-1)观测方程为)(20)()(2k v k X k Y += (3-2-2)其中,式(3-1-1)是包含分式,平方,三角函数在内的严重非线性的方程,)(k w 为过程噪声,其均值为0,方差为Q ,观测方程中,观测信号)(k Y 与状态)(k X 的关系也是非线性的,)(k v 也是均值为0,方差为R 的高斯白噪声。
因此关于(3-1-1)和(3-2-2)是一个状态和观测都为非线性的一维系统。
以此为通用的非线性方程的代表,接下来讲述如何用扩展Kalman 滤波来处理噪声问题。
第一步:初始化初始状态)0(X ,)0(Y ,协防差矩阵0P 。
第二步:状态预测)2.1cos(8)1(1)1(5.2)1(5.0)1|(2k k X k X k X k k X +-+-+-=- (3-2-3)第三步:观测预测20)1|()1|(2-=-k k X k k Y (3-2-4)…… ……第九步:协方差更新)1|())()(()(--=k k P k H k K I k P n (3-2-10)以上九步为扩展卡尔曼滤波的一个计算周期,如此循环下去就是各个时刻EKF 对非线性系统的处理过程。
其他参数设置请查看源程序,仿真以上系统得到状态滤波结果,如图3-2-1所示,滤波后的状态与真值之间的偏差如图图3-2-2所示。
图3-2-1 EKF 滤波处理后的状态与真值对比 图3-2-2 偏差分析 EKF 一维非线性系统仿真程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 函数功能:一维非线性系统扩展Kalman 滤波问题% 状态函数:X(k+1)=0.5X(k)+2.5X(k)/(1+X(k)^2)+8cos(1.2k) +w(k) % 观测方程:Z (k )=X(k)^2/20 +v(k)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function EKF_for_One_Div_UnLine_System % 初始化T=50; % 总时间 Q=10; R=1;% 产生过程噪声 w=sqrt(Q)*randn(1,T); % 产生观测噪声 v=sqrt(R)*randn(1,T);…… ……四、EKF 在纯方位寻的导弹制导中的应用例子:考虑一个在三维平面x-y-z 内运动的质点M ,其在某一时刻k 的位置、速度和加速度可用矢量可以表示为:[]Tz y x z y x z y x k a k a k a k v k v k v k r k r k r k x )()()()()()()()()()(= 质点M 可以在三维空间内做任何运动,同时假设三个x-y-z 方向上运动具有加性系统噪声()k w ,则在笛卡尔坐标系下该质点的运动状态方程为:))(),(()1(k w k x f k x k =+通常情况下,上述方程为线性的,即能表示为以下方式,)()()()1(k w k u k x k x +Γ+=+φ其中⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--∆+∆=∆-∆-∆-333333323300)1(10)1(1I e I e I I t e tI I t ttλλλλλλφ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡∆-∆-=Γ33320)2/(tI I t t ∆为测量周期,也叫扫描周期,采样时间间隔等。
动态噪声)(k w 为[]Tz y x k k k k w )()()(000000)(ωωω=而且[]1910)(⨯==q k w E ,[]⎥⎦⎤⎢⎣⎡==⨯⨯32633661000)()(I Q k w k w E T σ )(k w 是高斯型白色随机向量序列。
现在考虑一个带有观测器的飞行中的导弹,可以假设为质点M ,对移动的目标进行观测,如下图所示,导弹与目标的相对位置依然可用x-y-z 表示,那么,导弹对目标纯方位角观测,主要是俯仰角和水平方向偏向角,实际测量中雷达具有加性测量噪声()k v ,则在笛卡尔坐标系下,观测方程为[])()()(k v k x h k z +=式中,[]Tz x z x y k r k r k r k r k r k x h ⎥⎥⎦⎤⎢⎢⎣⎡-+=)()(arctan)()()(arctan)(22 )(k v 为测量噪声,他也是高斯型白色随机向量序列,而且[]1210)(⨯==r k v E ,[]1)()(R k v k v E T =对于1R ,其定义为)()()(11k xD k D k R T --=其中,21.0I x =⎥⎥⎦⎤⎢⎢⎣⎡++++=)()()(00)()()()(222222k r k r k r k r k r k r k D z y x zy x显然在笛卡尔坐标系下,该模型运动观测方程为非线性的。