首页 > 编程知识 正文

扩展卡尔曼滤波的特点,卡尔曼滤波多传感器融合

时间:2023-05-03 23:24:52 阅读:164331 作者:3058

首先看了DR_CAN老师的视频,做了一个简单的笔记,按照思路编写了样本代码,这里主要使用卡尔曼滤波进行数据融合。

视频地址: https://www.bilibili.com/video/bv 12 D4 y1 s7fu

数据集成Date Fusion

在此,从一例开始,用“两个名称”称呼同一物体,得到两个结果的第一个名称结果是30g,第二个名称结构是32g。

因为两者都不准确,所以有误差。 第一个被称为标准偏差是2g。第二个标准偏差是4g。 而且都符合正态分布,也叫清洁店员分布。

在数学上表述如下

第一个称呼

第二个称呼

接下来,我们来看看两个输出的概率分布; 第一个是服从正态分布,标准差为2g; 所以他在28g到32g之间的概率是68.4%。

二是服从正态分布,标准差为4g; 所以他在28g到36g之间的概率是68.4%。 相对于第一个,因为标准偏差很大,所以看起来又矮又胖。

现在,需要使用这两个结果,“估算真实值”。 怎么估算呢?

感觉上介于这两个称谓结果之间,且初始称谓偏差较小,真实结果接近初始称谓结果。

在数学上找到了最优值,采用了卡尔曼算法。 如果将估计值设为,则为

其中k是dbdzfj; 其范围为0到1,即[ 0,1 ]。

目的求出k,使得估计的基准最小,也就是说使估计的方差最小。

设想:估计值、估计值标准偏差、估计值的方差Var (。

估计值方差=

备注:红蓝两部分相互独立,可单独取出;

要求出估计值方差的最小值,需要导出k,并将其设为0。 要确定极值,请执行以下操作:

根据以上求出推测值的方差,进行导出如下。

也就是说:

整理后得到:

那么,在这里求k。 该k的值为估计值方差的最小

然后代入数据,

第一种称谓解释:称为30g,标准差为2g。

第二种称谓解释:称为32g,标准差为4g。

首先求出k值dbdzfj,

然后计算估计值,

最后更新估计的方差,

然后,估计值的标准偏差为1.79。

Python版的伪代码:

“”卡尔曼滤波器——数据融合“# dbdzfj=误差对应方差(除以数据1的误差数据2的误差)! EFKalman_gain(E1,e2 ) :returnE1/) E1E2) #估计值=数据1的估计系数* )数据2的测量值-数据1的估计值) defnow_estimated_value ) xxee k X2 ) :returnx1k(x2-x1 )更新估计误差=(1-dbdzfj )数据1的估计误差dbdzfj*数据2的估计误差defnow_estimated_error(k,e1,e2 ) 33336666

这篇文章只提供参考和学习。 谢谢你。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。