第讲UKF滤波算法

合集下载

扩展Kalman滤波(EKF)和无迹卡尔曼滤波(ukf)

扩展Kalman滤波(EKF)和无迹卡尔曼滤波(ukf)
UKF算法的核心是UT变换,UT是一种计算非线性 变换中的随机变量的统计特征的新方法,是UKF的基 础。
三、无迹卡尔曼滤波算法(UKF)
假设n维随机向量x : N(x, Px) ,x通过非线性函数y=f(x) 变换后得到n维的随机变量y。通过UT变换可以以较 高的精度和较低的计算复杂度求得y的均值 y 和方 差 Px 。UT的具体过程可描述如下:
三、无迹卡尔曼滤波算法(UKF)
UKF是用确定的采样来近似状态的后验PDF,可以 有效解决由系统非线性的加剧而引起的滤波发散问 题,但UKF仍是用高斯分布来逼近系统状态的后验概 率密度,所以在系统状态的后验概率密度是非高斯 的情况下,滤波结果将有极大的误差。
三、无迹卡尔曼滤波算法(UKF)
: Matlab程序

dax = 1.5; day = 1.5; % 系统噪声

X = zeros(len,4); X(1,:) = [0, 50, 500, 0]; % 状态模拟的初值

for k=2:len
x = X(k-1,1); vx = X(k-1,2); y = X(k-1,3); vy = X(k-1,4);

F(3,4) = 1;

F(4,4) = 2*ky*vy;

2) = 1;
二、扩展Kalman滤波(EKF)算法
function H = JacobianH(X) % 量测雅可比函数

x = X(1); y = X(3);

H = zeros(2,4);

r = sqrt(x^2+y^2);
二、扩展Kalman滤波(EKF)算法
EKF算法是一种近似方法,它将非线性模型在状态 估计值附近作泰勒级数展开,并在一阶截断,用得 到的一阶近似项作为原状态方程和测量方程近似表 达形式,从而实现线性化同时假定线性化后的状态 依然服从高斯分布,然后对线性化后的系统采用标 准卡尔曼滤波获得状态估计。采用局部线性化技术, 能得到问题局部最优解,但它能否收敛于全局最优 解,取决于函数的非线性强度以及展开点的选择。

EKFUKFPF算法的比较程序

EKFUKFPF算法的比较程序

EKFUKFPF算法的比较程序在估计理论中,EKF(Extended Kalman Filter),UKF(Unscented Kalman Filter)和PF(Particle Filter)是三种常用的非线性滤波算法。

它们在不同的环境和应用中具有不同的优点和缺点。

下面将对这三种算法进行比较。

首先,EKF是最常用的非线性滤波算法之一、它通过线性化状态转移方程和测量方程来近似非线性问题。

EKF在处理高斯噪声的情况下表现良好,但在处理非高斯噪声时会有较大的误差。

由于线性化过程的存在,EKF对于高度非线性和非高斯问题可能表现不佳。

此外,EKF对系统模型的准确性要求较高,较大的模型误差可能导致滤波结果的不准确性。

其次,UKF通过构造一组代表系统状态的Sigma点,通过非线性映射来近似非线性函数。

相较于EKF,UKF无需线性化系统模型,因此适用于更广泛的非线性系统。

UKF的优点是相对较好地处理了非线性系统和非高斯噪声,但在处理维数较高的问题时,计算开销较大。

最后,PF是一种基于粒子的滤波方法,通过使用一组代表系统状态的粒子来近似概率密度函数。

PF的优点是它可以处理非线性系统和非高斯噪声,并且在系统模型不准确或缺乏确定性时,具有较好的鲁棒性。

由于粒子的数量可以灵活调整,PF可以提供较高的估计精度。

然而,PF的计算开销较大,尤其在高维度的情况下。

综上所述,EKF、UKF和PF是三种常用的非线性滤波算法。

EKF适用于高斯噪声条件下的非线性问题,但对系统模型准确性要求高。

UKF适用于一般的非线性问题,但计算开销较大。

PF适用于非线性和非高斯噪声条件下的问题,并具有较好的鲁棒性,但在计算开销方面具有一定的挑战。

在实际应用中,我们应根据具体问题的性质和要求选择合适的算法。

比如,在低维情况下,EKF是一个可行的选择;在高维或非高斯噪声情况下,可以考虑使用UKF或PF算法。

ukf滤波算法范文

ukf滤波算法范文

ukf滤波算法范文UKF(Unscented Kalman Filter)是一种基于卡尔曼滤波的非线性滤波算法。

相比于传统的扩展卡尔曼滤波(EKF),UKF通过一种更好的方法来近似非线性系统的概率分布,从而提高了非线性滤波的精确度和鲁棒性。

UKF通过一种称为“无气味变换(unscented transform)”的方法来处理非线性函数。

该方法基于对概率分布的均值和协方差进行一系列的采样点选择,然后通过变换这些采样点来近似非线性函数的传播。

这些采样点被称为“Sigma点”,可以看作是真实系统状态在均值周围的一系列假设状态。

UKF的基本步骤如下:1.初始化:初始化系统状态和协方差矩阵。

2. 预测步骤(Prediction):- 通过生成Sigma点来近似系统状态的概率分布。

- 将Sigma点通过非线性函数进行变换,得到预测状态和预测协方差矩阵。

-计算预测状态的均值和协方差。

3. 更新步骤(Update):- 通过生成Sigma点来近似测量函数的概率分布。

- 将预测状态的Sigma点通过测量函数进行变换,得到预测测量和预测测量协方差矩阵。

-计算预测测量的均值和协方差。

-根据实际测量值和预测测量的概率分布,计算卡尔曼增益。

-更新预测状态和协方差。

UKF相比于EKF具有以下优势:1.不需要对非线性函数进行线性化。

EKF通过一阶泰勒展开来线性化非线性函数,这可能导致误差积累和不稳定性。

UKF通过采样点直接逼近非线性函数,避免了这个问题。

2.更好的估计准确度和收敛性。

UKF通过采样点的选择更好地逼近了真实概率分布,提高了滤波的准确度和收敛性。

3.适用于高维状态空间。

EKF在高维状态空间中存在计算复杂度高和数值不稳定的问题,而UKF则通过更好的采样点选择来解决了这个问题。

4.对初始条件不敏感。

UKF对初始条件的选择不太敏感,可以在一定程度上避免初始条件选择不当导致的滤波失效问题。

尽管UKF相比于EKF有许多优势,但它也存在一些缺点。

UKF法滤波性能分析

UKF法滤波性能分析

UKF 算法滤波性能分析高海南 3110038011一、仿真问题描述考虑一个在二维平面x-y 内运动的质点M ,其在某一时刻k 的位置、速度和M 在水平方向(x )作近似匀加速直线运动,垂直方向(y )上亦作近似匀加速直线运动。

两方向上运动具其中假设一坐标位置为(0,0)的雷达对M显然在笛卡尔坐标系下,该模型运动观测方程为非线性的。

我们根据雷达测量值使用UKF 算法对目标进行跟踪,并与EKF 算法结果进行比较。

二、问题分析1. UKF 滤波跟踪有协方差阵k R 。

ukf 算法步骤如下: (1) 计算σ点1|1i k k --ξ,依据1|1k k --x 和1|1k k --p 生成2n+1个σ点1|1i k k --ξ,0,1,2,2i n =。

在UT 变换时,取尺度参数01.0=α,0=κ,2=β。

(2) 计算σ点|ik k ξ,即()()|1|12|1|02|1||1||110(),0,1,2,2ˆˆˆi i k kk k k nm i k k i k k i n T c i ik k i k k k k k k k k k i i n ωωω---=----=⎧⎪==⎪⎪=⎨⎪⎪=--+⎪⎩∑∑ξf ξxξp ξx ξx Q (3) 计算σ点|1ˆk k -x|1k k -p 通过量测方程对k x 的传播,即(4) 计算输出的一步提前预测,即(5) 获得新的量测后,进行滤波更新:2. 扩展卡尔曼滤波算法分析(1)()()()(())()k k k k k k k k +=+⎧⎨=+⎩x f x w z h x v 的,定义k |1k ˆ=()k k k k-∂=∂x x xf x f xEKF 算法步骤如下:k 时刻的一步提前预测状态预测误差协方差阵为卡尔曼滤波增益为在k 时刻得到新的量测后,状态滤波的更新公式为状态滤波协方差矩阵为三、实验仿真与结果分析N=50,采样时间为t=0.5。

迹如图1所示。

UKF滤波

UKF滤波

7.3 UKF 滤波UKF 滤波,仍然采用高斯分布代替状态量的分布,不同的是,通过特别挑选的样本点来表示状态量。

这些样本点完全可以表示出GRV (高斯随机变量)的均值和方差。

即使经过非线性变换(任何非线性变换)后,也能逼近变换后的均值和方差,逼近精度可以达到二阶泰勒展开后的精度。

下面开始介绍UT 变换。

UT 变换:UT 变换是计算随机变量经过非线性变换后的统计特征的一种方法。

考虑非线性函数:(x)y f =,记x 的均值和方差为,x x P 。

现在需要计算y 的统计特性,即ˆ,y yP 。

可以采用下面的方法,构造一个矩阵,矩阵中包含21L +个simga 向量:0 1,,, 1,,2,i i i i L xx i L x i L L -ℵ=ℵ=+=ℵ=-=+ (1)其中:2()L L λακ=+-——为尺度参数;α——确定sigma 点在x 周围的分布范围,4101α-≤≤; κ——尺度参数,其值通常为3L -β——x 分布合作参数,x 分布若为高斯分布,则2β=为最优值。

i 列向量。

(矩阵均方根值可以通过进行柯西因式分解得到)构造x 的样本后,则对应于x 的每个样本点,可以计算对应的y 样本:i ()i y f =ℵ(2)通过y 样本,可以计算,y y P2(m)02(c)0()()Li ii LTy i i i i y W y P W y y y y ==≈≈--∑∑ (3)其中,权重系数i W 可以由下式确定:(m)0()20(m)()11,1,,22()c c i i W L W L W W i LL λλλαβλλ=+=+-++===+ (4)UT 变换不同于蒙特卡洛法,蒙特卡洛法需要产生大量的样本点,而UT 变换不需要。

UT 变换计算非线性函数的统计特性,对于输入为高斯输入的非线性系统,计算精度至少为3阶,对于输入不是高斯输入的非线性系统,计算精度至少可以达到2阶,如果适当选择,αβ 的值,计算精度可以达到3阶或以上。

基于UKF的高斯和滤波算法

基于UKF的高斯和滤波算法
n mb r sg tb h o i a in n Il u e si o y t e c mb n t oT ,wh c su e ra p o i t gt e d n i fn n —g u sa o s , o l i h i s d f p r xmai o t e st o o o n h y a s i n n ie
A u sa um it r Ba e n UKF Ga s i n S F le s d o
N N io—j’LA G Jn—l IGXa u ,I N u i
(.X’nIstt o P s n eeo u ia o s o p trSineD p r e t inS ax 70 6 ,C ia 1 i tue f ot a dT lcmm nct n ,C m ue cec e at n,X’ h ni 10 1 hn ; a n i s i m a
2 .中国 科学 院声学研究所 , 北京 10 8 ) 00 0
摘要 : 了扩展卡尔曼滤波算法 和无迹 变换 (ncne asr ao U ) 介绍 us t t n o t n,T 算法 , e dr fm i 并对 扩展卡尔曼滤波算法 ( K ) E F 和无
迹卡尔曼滤波算法 ( K ) U F 进行 比较 , 阐明了 U F K 优于 E F 在此基 础上 , K。 提出了一种基于 U s n d变换( T 的高斯 和滤 nc t ee u)
波算 法 , 该算法首先通过合并准则得到适当个数 的混合高斯模型 , 逼近系统中非高斯噪声的概率 密度 ; 然后 , 再通过 u 算法 T 进行滤波 。 最后分别对基于 E F U F的滤波方法进行实验 , K和 K 并对 实验结果进行 比较与分析 , 验证 了算法 的有效性和优 良

水下组合导航UKF/PF自适应滤波算法

水下组合导航UKF/PF自适应滤波算法
第 3 卷 第 6期 2
20 年 1 08 2月
武汉理工大 学学报鸯 鍪 ) ( 差
J u n l fW u a nv r i fTe h oo y o r a h nU ie st o c n l g o y
( rn p r t n S i c T a s o t i c n e& E gn e i ) a0 e n ie r g n
器 的设 计.
UKF状 态估 计 为P F确定 一种 重要性 函数 ;2 将 ()
P F的所 有 粒 子分 为 随机 性 粒 子 和确定 性 粒 子 两
部分 , 传统 P 与 F滤波方 法 一样 , 随机 粒子 都 从 重
1 UKF P 混合 滤 波 算 法 /F
在 实 际 应用 的情 况 下 , 噪声 并 不 满足 高 斯 分 布 , 统 也是 非 线 性 的. 此 , 为 非 高斯 非 线性 系 因 作 的 滤波 方 法 , 子 滤 波 ( F) 有 广 泛 的适 用 性 . 粒 P 具 国内外 研究 表 明 , 如何 选 取 合理 粒 子 滤波 重要 性
必 备 信息. 于在水 下无 法接 收G S 北斗 、 由 P、 罗兰C
观且 易 于 实现 , 是没 有 利用 最 新 的 观测 信息 进 但
行粒 子采样 , 波精度 因此受 到 限制. 合考 虑先 滤 综
等 外 部导 航 信 息 , 艇处 于潜 航状 态 时 只能 依靠 潜
自主式 导航 系统 . 舰位 推 算 ( DR) 和惯性 导航 系统 (NS 是最 常见 的 2种 自主式 导航 方式 . R 利用 I ) D 航 向 信息和 速度 信息 迭代 推算 载体 的各 时刻位置
UK / F混 合 滤 波 算 法 用 于 D I FP R/NS组 合 滤 波 器 设计 的 有 效 性 . 关 键 词 : 色 卡尔 曼 滤 波 ; 子 滤 波 ; 合 导 航 ; 位 推 算 无 粒 组 舰

第4讲:UKF滤波算法

第4讲:UKF滤波算法
假定状态为高斯随机矢量;过程噪声与测量噪 声的统计特性为
wk ~ N (0, Qk )
v k ~ N (0, Rk )
(1)初始化
ˆ x0 = E [x0 ]
ˆ ˆ P0 = E (x0 − x0 )(x0 − x0 )
[
Tቤተ መጻሕፍቲ ባይዱ
]
(2)状态估计
1.计算Sigma点
ˆ χ k0−1 = xk −1 ˆ χ ki −1 = xk −1 ˆ χ ki −1 = xk −1 +
0⎤ Q 0⎥ ⎥ 0 R⎥ ⎦ 0
(2)状态估计
1.计算Sigma点
ˆ 根据 x a , k −1 和 Pa , k −1 ,构造增广Sigma点
0 ˆ χ a ,k −1 = xa ,k −1
i ˆ χ a ,k −1 = xa ,k −1 + i ˆ χ a ,k −1 = xa ,k −1
− k
− k
计算量
与 EKF 的计算量在同一个数量阶,对于 n 维 系统,为 O(n3)。 UKF 和 EKF 的计算量之比大致为: UKF : EKF= 3 : 1 UKF 的主要计算量在于选取 Sigma 点时的方 根分解运算 Pk −1 。所以优化计算可以从分解方 式入手,好的分解方式可以减小计算量。
增广状态的方差为
⎡ Px ,k ⎢ 0 =⎢ ⎢ 0 ⎣ 0⎤ ⎥ Q 0⎥ 0 R⎥ ⎦ 0
Pa ,k
(1)初始化
ˆ x0 = E [x0 ]
ˆ ˆ Px ,0 = E ( x0 − x0 )( x0 − x0 )
ˆ xa , 0 = E x
[
T
]
[
T 0
0
T m×1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)所得到的非线性函数的统计量的准确性 可以达到三阶(泰勒展开)。
(3)不需要计算Jacobi矩阵,可以处理不可导 非线性函数。
UKF滤波算法
UKF实现思想
UKF=Unscented transform + Kalman Filter
即 UKF 可以看作是基于 UT 技术的卡尔曼滤 波器。在卡尔曼滤波算法中,对于一步预测 方程,使用UT变换来处理均值和协方差的非 线性传递,就成为UKF算法。
=
xˆa,k −1
+
N + κ Pa,k −1 i
( ( ) ) χ i a,k −1
=
xˆa,k −1

N + κ Pa,k −1 i
,i = 1,..., N ,i = N +1,...,2N
这里,N = n + m + l 为增广状态的维数,且
[ ] χa
=
χ
T x
χ
T w
χT T v
2.时间传播方程

xˆ k−
][γ
i k|k −1


− k
]T
i=0
K = Pxy, k Py−,1k
xˆk
=
xˆ k−
+ K(yk


− k
)
Px, k = Px−, k − KPy, k K T
计算量
与 EKF 的计算量在同一个数量阶,对于 n 维 系统,为 O(n3)。
UKF 和 EKF 的计算量之比大致为: UKF : EKF= 3 : 1
系统函数可以不连续; 随机状态可以不是高斯的; 计算量和 EKF 同阶。
扩维UKF滤波算法 (噪声隐含)
若过程噪声与测量噪声是隐含在系统中的,即 系统方程为
xk+1 = f (xk , wk )
yk = h(xk , vk ) 这时需要对状态变量进行扩展,得增广状态
[ ] xa,k = xkT , wkT , vkT T
ψ i = f (χi)
UT mean
y = f ( x ) Py = AT Px A
UT covariance transformed sigma points
A T Px A f (x )
两类非线性系统模型
(1)加性噪声
xk+1 = f (xk ) + wk yk = h(xk ) + vk
(2)噪声隐含
粒子滤波
使用参考分布,随机产生大量粒子,近似 状态的后验概率密度,得到系统的估计。
问题:1)计算量甚大,为EKF的若干数量 阶;2)若减少粒子数,估计精度下降。
UKF滤波
以UT变换为基础,采用卡尔曼滤波器框架, 采样形式为确定性采样。在减少采样粒子点数
的同时保证逼近精度。
Unscented变换 (Unscented Transformation)
状态的时间更新:
选定状态的 2n+1 个 Sigma点(n 为状态维数); 利用 UT 技术计算状态的后验均值和方差。
状态的测量更新:
利用标准的 Kalman 滤波的测量更新,但使用 的公式有所不同。
UT-EKF
Unscented Transform
Linearized (EKF)
Sigma Points
Unscented变换
(1)构造Sigma点
根据随机向量 x 的统计量 x 和 Px ,构造
Sigma点集
( ) ⎧x + ( ) χi = ⎪⎪⎨x −
(n + κ )Px i (n + κ )Px i
⎪⎪⎩x
, i = 1,..., n , i = n +1,...,2n , i=0
κ 为尺度参数,调整它可以提高逼近精度。
( ) W0(c) = κ (n + κ ) + 1 − α 2 + β
Wi(m) = Wi(c) = κ [2(n + κ )] ,i = 1,...,2n
其中: κ = α 2 (n + λ ) − n
在均值和方差加权中需要确定α 、λ 和 β 共3个参
数,它们的取值范围分别为:
确定 x 周围Sigma点的分布,通常设为一个较小
用这组采样点 χi 可以近似表示状态 x 的高斯分
布。
(2)对Sigma点进行非线性变换
对所构造的点集 {χi} 进行 f (⋅) 非线性变换,
得到变换后的Sigma点集
Yi = f (χi ) i = 0,1,...,2n
变换后的Sigma点集 {Yi}即可近似地表示
y = f (x) 的分布。
(1)初始化
xˆ 0 = E[x0 ]
[ ] P0 = E (x0 − xˆ 0 )(x0 − xˆ 0 )T
(2)状态估计
1.计算Sigma点
χ0 k −1
=
xˆk −1
( ) ( ) χ i k −1
=
xˆk −1
+
n + κ Pk−1 i
( ) ( ) χ i k −1
=
xˆk −1

n + κ Pk−1 i
x 10-4 2
0
-2
-4
-6
-8
-10
,i = 1,..., n ,i = n +1,...,2n
2.时间传播方程
( ) χ = i k|k −1
f
χi k −1
2n
∑ xˆk− =
χ W (m) i
i
k|k −1
i=0
2n
∑ P − x,k
=
χ W [ (c) i
i
k|k −1

xˆ k−
][χi k|k源自−1−xˆ
− k
]T
+
Qk
i=0
增广状态的均值为
[ ] xˆa,k = xˆkT , 0mT×1, 0lT×1 T
其中,m 和 l 分别为过程噪声和观测噪声的维数。
增广状态的方差为
⎡Px,k 0 0 ⎤
Pa,k
=
⎢ ⎢
0
Q
0
⎥ ⎥
⎢⎣ 0 0 R⎥⎦
(1)初始化
xˆ 0 = E[x0 ]
[ ] Px,0 = E (x0 − xˆ0 )(x0 − xˆ0 )T
引入线性化误差 ,对非线性强度高的系统,容 易导致滤波效果下降。
基于上述原因,为了提高滤波精度和效率,以 满足特殊问题的需要,就必须寻找新的逼近方 法。
注意
随机状态变量沿非线性函数的 传播问题是非线性滤波的关键!
新思路
“近似非线性函数的概率密度分布比 近似非线性函数更容易”
因此,使用采样方法近似非线性分布来解决非 线性滤波问题的途径目前得到了人们的广泛关 注。
f1 [q(t ), ω (t )]
=
1 2
φ
[q(t
)]
ω
(t
)
f2[ω(t)] = J {−1 N (t) − [ω(t) ×] Jω(t)}
偏航角估计误差
偏航角误差/deg
-3
x 10 1.5
1
0.5
0
-0.5
-1
0
5
EKF UKF
10
15
20
25
30
时间/s
滚动角估计误差
滚动角误差/deg
( ) γ χ = h i k|k −1
i k|k −1
2n
∑ yˆk− =
γ W (m) i i k|k −1
i=0
3.测量更新方程
2n
∑ Py, k =
Wi(c)

i k
|k
−1


− k
][γ
i k|k
−1


− k
]T
+ Rk
i=0
2n
∑ Pxy, k =
Wi(c)
[
χ
i k|k
−1
xk+1 = f (xk , wk )
yk = h(xk , vk )
简化UKF滤波算法 (加性噪声)
对于非线性系统
xk+1 = f (xk ) + wk yk = h(xk ) + vk
假定状态为高斯随机矢量;过程噪声与测量噪 声的统计特性为 wk ~ N (0, Qk ) vk ~ N (0, Rk )
(3)计算 y 的均值和方差
对变换后的Sigma点集 {Yi}进行加权处理,
从而得到输出量 y 的均值和方差
2n
∑ y ≈ Wi(m)Yi i=0 2n
∑ Py ≈ ( Wi(c) Yi − y)(Yi − y)T i=0
W i(m)和 Wi(c)分别为计算 y 的均值和方差所用加权
W0(m) = κ (n + κ )
{ } Pxy (k ) = E [xk − xk ][yk − h(xk )]T Y k−1
描述最优状态估值质量优劣的误差协方差
阵确定如下
{ } Pˆk = E (xk − xˆ k )(xk − xˆ k )T Y k
=
Pk

K
k
Py
(k
)K
T k
EKF的不足
必须求非线性函数的Jacobi矩阵,对于模型复 杂的系统,比较复杂且容易出错;
i
i
x,k|k −1 v,k −1
2N
∑ yˆk− =
γ W (m) i i k|k −1
相关文档
最新文档