UKF无损卡尔曼滤波

news2024/12/23 5:07:23

摘要——卡尔曼滤波器为估计工程系统的状态提供了一项重要技术。由于非线性卡尔曼滤波器有多种变体,因此缺乏针对特定研究和工程应用的滤波器选择指南。 这就需要深入讨论不同非线性卡尔曼滤波器的复杂性。 实际状态估计应用特别感兴趣的是扩展卡尔曼滤波器 (EKF) 和无迹卡尔曼滤波器 (UKF)。 本教程分为三篇独立的文章。 第一部分给出了 EKF 和 UKF 的一般比较,并提供了滤波器选择指南。 第二部分介绍了有关 EKF 和 UKF 实现的详细信息,包括方程式、技巧和示例代码。 第三部分研究了用于确定系统的假定噪声特性的不同技术以及这些非线性卡尔曼滤波器的调谐程序。

一、引言
无迹卡尔曼滤波器 (UKF) 是一种通用的工程工具,一旦了解它就可以为许多实际问题提供良好的非线性估计结果(Julier 和 Uhlmann,1997)。 UKF 已在各种应用中得到有效实施,例如姿态估计(Rhudy 等人,2011 年;Gross 等人,2012 年;Rhudy 等人,2013a)、风估计(Rhudy 等人,2013c)和空速估计(Gururajan 等人,2013a;Gururajan 等人,2013b)。 由于缺少雅可比矩阵计算,UKF也比扩展卡尔曼滤波器更容易构造和修改
(EKF)(Kalman 和 Bucy,1961)在滤波器设计的原型阶段(Rhudy 和 Gu,2013)。尽管现有的工作详细介绍了 UKF 的实现,例如 (Julier 和 Uhlmann,1997 年;van der Merwe 等人,2004 年),这些技术作品是用高级语言编写的,对于那些不太熟悉无味转换 (UT) 的人来说,理解起来可能有点困难。本指南旨在 澄清技术文献,使 UKF 成为各种用户更容易使用的工具。

本文的其余部分安排如下。 首先,讨论了线性和非线性随机状态估计问题,包括线性和扩展卡尔曼滤波器的定义。 然后针对加性和非加性噪声假设提供并讨论了 UKF 的理论方程。 最后,给出了一个示例问题来帮助说明 UKF 在实际情况中的应用。 此外,附录中提供了加法和非加法 UKF 的详细概述,以及所考虑示例问题的完整 MATLAB 代码。

线性随机状态估计

一个一般的离散时间线性状态空间系统可以写成

UKF

Unscented Transformation

Unscented Transformation (UT)是UKF的核心技术,用于处理非线性变换y=f(x)中的非线性,其中x和y是L×1向量,f是L×1向量值函数 . 这里,x 是一个随机变量,通常假设其服从均值 x 和协方差 Px 的正态分布(高斯分布)。 UT 为 EKF 中使用的雅可比矩阵的分析线性化提供了统计替代方法。 有关这些线性化技术的详细分析比较,请参阅(Rhudy 等人,2013b)。 UT 使用一小组确定性选择的点,称为 sigma 点,这些点是根据先验条件选择的,即这些点是从假设的先验分布中选择的。 这些点的分布或先验分布的置信度是根据为 UT 选择的尺度参数确定的。 尺度参数有不同的表示和符号,但最终这些表示是等效的,并且影响sigma的分布以及用于重建后验(变换后)统计的权重向量。

UT 的缩放可以完全由三个缩放参数表示。 主要尺度参数 α \alpha α 决定了 sigma 点的分布。 该参数可以在 1 0 − 4 10^{-4} 104 和 1 之间变化。较小的 α \alpha α 会导致更严格(更接近)的 sigma 点选择,而较大的 α \alpha α 会提供更广泛的 sigma 点分布。 次要缩放参数 β \beta β 用于包括有关先验分布的信息(对于高斯分布,β= 2 是最优的)。 第三尺度参数 κ 通常设置为 0,有关更多信息,请参见 (Julier and Uhlmann, 1997)。 使用这三个缩放参数,定义了一个附加缩放参数 λ 和权重向量 W m W^m Wm(均值)和 W c W^c Wc(协方差)

χ i = x ˉ χ 0 = x ˉ + ( ( L + λ ) P x ) i i = 1 , . . . , L χ i = x ˉ − ( ( L + λ ) P x ) i − L i = L + 1 , . . . , 2 L W 0 ( m ) = λ L + λ W 0 ( c ) = λ L + λ + ( 1 − α 2 + β ) W i ( m ) = W i ( c ) = 1 2 ( L + λ ) i = 1 , . . . , 2 L {\color{Red} \begin{aligned} \chi _i \quad &= \bar x \\ \chi _0 \quad &= \bar x + (\sqrt{(L+\lambda)P_x } )_i \quad i=1,...,L\\ \chi _i \quad& = \bar x - (\sqrt{(L+\lambda)P_x } )_{i-L} \quad i=L+1,...,2L \\ W_0^{(m)}& = \frac{\lambda }{L+\lambda} \\ W_0^{(c)}& = \frac{\lambda }{L+\lambda} +(1-\alpha ^2+\beta ) \\ W_i^{(m)}& = W_i^{(c)}=\frac{1}{2(L+\lambda)} \quad i=1,...,2L \\ \end{aligned}} χiχ0χiW0(m)W0(c)Wi(m)=xˉ=xˉ+((L+λ)Px )ii=1,...,L=xˉ((L+λ)Px )iLi=L+1,...,2L=L+λλ=L+λλ+(1α2+β)=Wi(c)=2(L+λ)1i=1,...,2L

其中 L L L是状态向量的长度。 然后使用随机变量 x 的参数 λ \lambda λ、先验均值 x ˉ \bar x xˉ 和协方差 P x P_x Px 生成 2 L + 1 2L+1 2L+1 sigma点,如
χ = [ x ˉ x ˉ + L + λ P x L − λ P x ] \chi = [\mathbf{\bar x} \quad \mathbf{\bar x} + \sqrt{L+ \lambda} \sqrt{\mathbf P_x} \quad \sqrt{L- \lambda} \sqrt{\mathbf P_x}] χ=[xˉxˉ+L+λ Px Lλ Px ]

其中 χ \chi χ 是 sigma 点的 L× (2L+1) 矩阵,其中该矩阵的每一列代表一个 sigma 点。 请注意,在 上式中,向量和矩阵的和定义为将向量添加到矩阵的每一列。 或者,L×1 列向量 x ˉ \bar x xˉ 可以乘以 1×L 行向量,得到一个 L×L 矩阵,可以使用标准矩阵加法。 还要注意 (9) 包含矩阵的平方根。 虽然有多种计算矩阵平方根的方法,但在性能和计算效率方面推荐的方法是 Cholesky 方法(Rhudy 等人,2011)。 该方法使用 Cholesky 分解来计算下三角矩阵,然后可以将其用作矩阵平方根的表示,即

P x = ( P x ) ( P x ) T \mathbf P_x = (\sqrt{\mathbf P_x}) (\sqrt{\mathbf P_x})^T Px=(Px )(Px )T

P x \sqrt{\mathbf P_x} Px 是下三角矩阵。 请注意,此表示不同于主矩阵平方根,后者采用不带转置的 (10) 形式,并且通常是非三角形的。 一种不同的处理矩阵平方根的方法,称为“平方根 UKF (SR-UKF)”(van der Merwe 和 Wan,2001),它提高了计算复杂性,但可以获得不同的性能结果。

一旦生成了 sigma 点,每个点都通过非线性函数,即 sigma 点矩阵的每一列 χ \chi χ 都通过非线性传播,如

在这里插入图片描述
其中上标 (i) 表示矩阵的第 i 列,ψ 是变换后的 sigma 点矩阵。 然后,使用 (8) 中定义的权重向量,使用这些转换后的 sigma 点的加权平均值来估计后验均值和协方差,如
在这里插入图片描述

其中y是y的估计均值,Py是y的估计协方差矩阵。 这些值表示后验统计,或非线性变换后估计的统计特性。

Standard (Unaugmented) UKF

随机估计问题中使用的一个常见假设是过程和测量噪声项是可加的,如
x k + 1 = f ( x k , u k ) + w k z k + 1 = h ( x k + 1 , u k + 1 ) + V k + 1 x_{k+1} = f(x_k,u_k) + w_k \\ z_{k+1} = h(x_{k+1},u_{k+1}) + V_{k+1} xk+1=f(xk,uk)+wkzk+1=h(xk+1,uk+1)+Vk+1

使用这种噪声假设,可以应用标准 UKF 方程而不需要增加状态向量,这将在下一节中讨论,另请参见(Wu 等人,2005 年)。

sigma点的维度和状态向量相同的,从假设的初始条件 x0 和 P0 开始,递归执行 UKF。 UKF 使用第 IIA 节中描述的无味转换 (UT)。 请注意,缩放参数通常假定在整个 UKF 中保持不变,即,过滤器中的每个时间步长都使用相同的 UT 缩放比例。 这些缩放参数以及权重向量可以在执行过滤器之前定义一次。在每个离散时间步骤 k,首先根据先验状态估计 x k − 1 x_{k-1} xk1 和协方差 P k − 1 P_{k-1} Pk1 生成一组sigma 点,如:
χ 0 = x ˉ χ 0 = x ˉ + ( ( L + λ ) P x ) i i = 1 , . . . , L χ 0 = x ˉ − ( ( L + λ ) P x ) i − L i = L + 1 , . . . , 2 L W 0 ( m ) = λ L + λ W 0 ( c ) = λ L + λ + ( 1 − α 2 + β ) W i ( m ) = W i ( c ) = 1 2 ( L + λ ) i = 1 , . . . , 2 L {\color{Red} \begin{aligned} \chi _0 \quad &= \bar x \\ \chi _0 \quad &= \bar x + (\sqrt{(L+\lambda)P_x } )_i \quad i=1,...,L\\ \chi _0 \quad& = \bar x - (\sqrt{(L+\lambda)P_x } )_{i-L} \quad i=L+1,...,2L \\ W_0^{(m)}& = \frac{\lambda }{L+\lambda} \\ W_0^{(c)}& = \frac{\lambda }{L+\lambda} +(1-\alpha ^2+\beta ) \\ W_i^{(m)}& = W_i^{(c)}=\frac{1}{2(L+\lambda)} \quad i=1,...,2L \\ \end{aligned}} χ0χ0χ0W0(m)W0(c)Wi(m)=xˉ=xˉ+((L+λ)Px )ii=1,...,L=xˉ((L+λ)Px )iLi=L+1,...,2L=L+λλ=L+λλ+(1α2+β)=Wi(c)=2(L+λ)1i=1,...,2L

在这里插入图片描述

λ = α 2 ( L + κ ) − L \lambda = \alpha^2(L + \kappa) - L λ=α2(L+κ)L
接下来,每个 sigma 点都通过非线性状态预测函数 f。 由于假定过程噪声是可加的且为零均值,因此可以从预测函数中省略它,如:
χ k + 1 ∣ k , i = f ( χ k , i , u k ) , 0 , 1 , . . . , 2 L \chi _{k+1|k,i} = f(\chi _{k,i},u_{k}), \qquad 0,1,...,2L χk+1∣k,i=f(χk,i,uk),0,1,...,2L
使用转换后sigma点计算新的分布的均值和方差:

先验状态和协方差估计:
x ^ k + 1 ∣ k = ∑ i = 0 2 L w i m χ k + 1 ∣ k , i P ^ k + 1 ∣ k = Q k + ∑ i = 0 2 L w i c ( χ k + 1 ∣ k , i − x ^ k + 1 ∣ k ) ( χ k + 1 ∣ k , i − x ^ k + 1 ∣ k ) T \hat x_{k+1|k} = \sum_{i=0}^{2L} w_i^m \chi_{k+1|k,i} \\ \hat P_{k+1|k} = Q_{k} + \sum_{i=0}^{2L}w_i^c(\chi_{k+1|k,i}- \hat x_{k+1|k})(\chi_{k+1|k,i}- \hat x_{k+1|k})^T x^k+1∣k=i=02Lwimχk+1∣k,iP^k+1∣k=Qk+i=02Lwic(χk+1∣k,ix^k+1∣k)(χk+1∣k,ix^k+1∣k)T

将先验映射到测量空间然后算出均值和方差

不用再产生sigma points了,我们可以直接使用预测出来的sigma点集,并且可以忽略掉处理噪声部分。那么对先验的非线性映射就可以表示为如下的sigma point预测(即预测非线性变换以后的均值和协方差):

测量模型:
z k + 1 ∣ k = h ( χ k + 1 ∣ k , i , u k + 1 ) , 0 , 1 , . . . , 2 L z_{k+1|k} = h(\chi_{k+1|k,i},u_{k+1}), \qquad 0,1,...,2L zk+1∣k=h(χk+1∣k,i,uk+1),0,1,...,2L
其中 z 是输出 sigma 点的矩阵。 然后使用这些输出sigma点来计算预测输出、输出协方差矩阵以及状态和输出之间的交叉协方差

预测测量均值:
z ^ k + 1 ∣ k = ∑ i = 1 2 L w i m z k + 1 ∣ k , i \hat z_{k+1|k} = \sum_{i=1}^{2L}w_i^m z_{k+1|k,i} z^k+1∣k=i=12Lwimzk+1∣k,i
预测测量协方差:
S k ∣ k − 1 = R k + ∑ i = 0 2 L w i c ( z k ∣ k − 1 − z ^ k ∣ k − 1 ) ( z k ∣ k − 1 − z ^ k ∣ k − 1 ) T S_{k|k-1} = R_k + \sum_{i=0}^{2L}w_i^c(z_{k|k-1} - \hat z_{k|k-1})(z_{k|k-1} - \hat z_{k|k-1})^T \\ Skk1=Rk+i=02Lwic(zkk1z^kk1)(zkk1z^kk1)T
sigma点集在状态空间和测量空间的互相关函数 T k ∣ k − 1 T_{k |k-1} Tkk1为:

T k + 1 ∣ k = ∑ i = 0 2 L w i c ( x k + 1 ∣ k , i − x ^ k + 1 ∣ k , i ) ∑ i = 0 2 L w i c ( z k + 1 ∣ k , i − z ^ k + 1 ∣ k , i ) T_{k +1|k} = \sum_{i=0}^{2L} w_i^c(x_{k+1|k,i} - \hat x_{k+1|k,i}) \sum_{i=0}^{2L} w_i^c(z_{k+1|k,i} - \hat z_{k+1|k,i}) Tk+1∣k=i=02Lwic(xk+1∣k,ix^k+1∣k,i)i=02Lwic(zk+1∣k,iz^k+1∣k,i)
请注意,由于额外噪声假设,假设的测量噪声协方差矩阵 R 被添加到输出协方差矩阵。 这些协方差矩阵用于计算卡尔曼增益矩阵K,使用

K k + 1 ∣ k = T k + 1 ∣ k S k + 1 ∣ k − 1 \mathbf K_{k+1 | k } = T_{k+1 | k}S^{-1}_{k+1|k} Kk+1∣k=Tk+1∣kSk+1∣k1

更新状态:
x k + 1 ∣ k + 1 = x k + 1 ∣ k + K k + 1 ∣ k ( z k + 1 − z ^ k + 1 ∣ k ) x_{k+1|k+1} = x_{k+1 |k} + K_{k+1|k}(z_{k+1} - \hat z_{k+1|k}) xk+1∣k+1=xk+1∣k+Kk+1∣k(zk+1z^k+1∣k)
协方差矩阵更新:
P k + 1 ∣ k + 1 = P k + 1 ∣ k − K k + 1 ∣ k S k + 1 ∣ k K k + 1 ∣ k T P_{k+1 | k+1} = P_{k+1|k} - K_{k+1|k}S_{k+1|k}K_{k+1|k}^T Pk+1∣k+1=Pk+1∣kKk+1∣kSk+1∣kKk+1∣kT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/773120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

五、DQL-1.概述

一、DQL介绍 Data Query Language 数据查询语言 用来查询数据库中表的记录。 查询关键字:SELECT 二、语法

TortoiseGit 入门指南11:还原与重置

Git 就像个时光机器,能让我们还原到任何提交。 还原未提交的更改 假如我们在查看一个干净的代码仓库,干净意味着工作区中的文件保持着最后一次提交的状态,没有修改。在查看的过程中,我们有意或无意的修改了工作区中的文件&#…

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话

1.简介 前边几篇宏哥介绍了Charles界面内容以及作用。今天宏哥就讲解和分享如何设置Charles后,我们就可以愉快地捕获会话,进行抓包了。因为上一篇许多小伙伴看到宏哥的Charles可以分开看到request和response,而自己的却看不到,因…

WEB:FlatScience

背景知识 sql注入 SQLite数据库知识 SQLite3注入方法 题目 用dirsearch进行扫描,下面几个关键目录:robots.txt,login.php,admin.php,剩下的目录就是一些pdf格式的论文了 一个一个访问并查看源代码,在查看l…

23款奔驰S400豪华型升级4D旋转高音,提升车内氛围

奔驰加装4D旋转高音,让高音“有型有色”,高端4D环绕立体声音响系统的视觉效果同样令人印象深刻:系统启动时,安装在前车门后视镜三角板中的两个高音头会与同色车内氛围灯一块亮起,同时向外旋出10mm至最佳效果位置,以提高…

【AutoGluon_01】自动机器学习框架的安装与示例

文章目录 一、安装二、示例一 AutoGluon预测目标数据1、导入数据2、训练3、预测4、评估5、小结 三、示例二 AutoGluon多模态预测(Multimodal Prediction)1、导入数据2、训练3、预测4、评估 四、示例三 AutoGluon进行时间序列预测1、导入数据2、训练3、预…

【redis】redis管道简述

redis管道可以一次性发送多条命令。 命令示例如下: [xxxlocalhost ~]$ echo -e "set k4 99\nincr k4\nget k4" | nc localhost 6379 \OK :100 $3 100下面先简述一下这条命令的组成,再简述一下管道的常用场景和注意事项。 首先,|是…

跨越山海,爱在滇西|拓数派为滇西孩子点亮科学梦想

近日,拓数派在共青团浙江大学委员会、景东县教育体育局和景东团县委等单位指导下开展“爱在滇西”2023年公益助学活动,并携手浙大国际科创中心、浙大微纳电子学院、启真科技控股公司和北京德恒律所共同向景东浙大求是中学捐赠爱心助学金,用于…

微信小程序的目录解析--【浅入深出系列002】

浅入深出系列总目录在000集 如何0元学微信小程序–【浅入深出系列000】 文章目录 本系列校训学习资源的选择先说总目录经常碰到的文件(目录)最最常见的目录pages次最常用的就是images 目录 操作起来真正的操作 配套资源 本系列校训 用免费公开视频,卷…

OpenCVForUnity(八)文本与随机数

文章目录 前言putText (绘制文本)randn (正态分布随机数)randu(均匀分布随机数)randShuffle (数组随机重排)结语 前言 本教程将介绍如何使用随机数生成器类RNG以及从均匀分布中获取随…

LIMA:小规模监督数据指令微调

论文标题:LIMA: Less Is More for Alignment 论文链接:https://arxiv.org/abs/2305.11206 论文来源:Meta AI 一、概述 语言模型在大规模语料上以预测下一个token的方式预训练,使它们能够学习可迁移到几乎任何语言理解或生成任务的…

让小程序动起来-轮播图的两种方式--【浅入深出系列003】

浅入深出系列总目录在000集 如何0元学微信小程序–【浅入深出系列000】 文章目录 本系列校训学习资源的选择啥是轮播图轮播图的关键代码最常见的轮播图代码便于理解的轮播代码两种轮播代码的比较 实际操练第一步,就是找到文件。第二步,先改动一下最显眼…

全源最短路Johnson算法

最短路Johnson算法( O ( n m l o g m ) O(nmlogm) O(nmlogm)) 可以求任意两点最短路, 新图的边权改造为: w ( x , y ) h ( x ) − h ( y ) w(x,y)h(x)-h(y) w(x,y)h(x)−h(y) 构造的新图 d 1 ( x , y ) d ( x , y ) h ( x ) − h ( y ) d1(x,y)d(x,y…

java学习02

一、基本数据类型 Java有两大数据类型,内置数据类型和引用数据类型。 内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 byte&#xff1…

leetcode:704. 二分查找(python3解法)

难度:简单 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9…

人工智能发展前夜,基于控制论的杂谈

谢邀。 目录 《What the Frogs Eye Tells the Frogs Brain?》简介我是怎么理解这篇文章的?被后世频繁引用的「青蛙」从「青蛙」再重新转向控制论 《What the Frog’s Eye Tells the Frog’s Brain?》简介 帕斯克在实践和理论中,将人类的适应性行为引入…

集成算法的参数空间与网格优化

目录 1. 探索参数空间 1.1 学习曲线 1.2. 决策树对象Tree 2. 使用网格搜索在随机森林上进行调参 1. 探索参数空间 随机森林集成算法的超参数种类繁多、取值丰富,且参数之间会相互影响、共同作用于算法的最终结果,因此集成算法的调参是一个难度很高的过…

JavaSwing+MySQL的聊天系统设计

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88055544 JDK1.8、MySQL5.7 功能:类似于QQ软件的聊天系统,可以进行登录注册聊天发信息等功能

为什么说Raft原生系统是流式数据的未来?

目录 一、前言 二、Redpanda是如何实施Raft的? Redpanda的需求是: 实施Raft为这三个需求提供了坚实的基础: 1. 简单性 2. 性能 3. 可靠性 三、但是Kraft又如何呢? 四、结合Raft与性能工程 一、前言 共识是一致性分布式…

分布式声波传感(DAS)声音还原

声音还原 DAS 基于相位敏感光时域反射计(Φ-OTDR)的分布式光纤声波传感技术(DAS)是一种利用光纤后向瑞利散射干涉效应实现声波信号连续分布式探测的传感技术。 实验装置如下图所示,采用窄线宽光纤激光器作为光源,出射光通过90:10的光纤耦合器分成参考光和…