搜索
bottom↓
回复: 90

卡尔曼滤波器——怕忘记所以凌晨发帖

  [复制链接]

出0入0汤圆

发表于 2012-9-27 01:12:55 | 显示全部楼层 |阅读模式
     之前对平衡车很感兴趣,但是卡尔曼滤波不了解,所以一直用的是互补滤波。但是看到坛子上很多兄弟都对卡尔曼滤波器很感兴趣,所以特定研究了一方,如今共享出来和大家一起分享,希望能抛砖引玉和大家一起进步。

传感器的测量值 加速度Acc_Mess    陀螺仪 Gyro_Mess
卡尔曼滤波器增益 Kg
卡尔曼滤波后的真实角度值 Acc_Real
系统时钟 Time_Loop

测量不确定度 Q=10

最优角度值的偏差 L

高斯白噪声 T
中间变量 Acc_Media

Acc_Media=Acc_Real+Gyro_Mess*Time_Loop ;//计算瞬时角度值
T=sqrt(Q*Q+L*L);                                  //计算高斯白噪声
Kg=T*sqrt(1/(T*T+Q*Q)) ;                          //计算卡尔曼滤波器的增益
Acc_Real=Acc_Media+Kg*(Acc_Mess-Acc_Media); //计算真实角度值
L=sqrt(1-Kg)*T;                                           //计算真实角度值的偏差

return Acc_Real ;     


阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2012-9-27 08:10:34 | 显示全部楼层
替楼主记住了

出0入0汤圆

发表于 2012-9-27 08:25:10 | 显示全部楼层
确实是替楼主了....

出0入0汤圆

发表于 2012-9-27 08:40:21 | 显示全部楼层
呵呵      没看懂。。。    有点深奥

出0入0汤圆

发表于 2012-9-27 09:06:10 | 显示全部楼层
还有下文吗?真的没明白

出0入0汤圆

发表于 2012-9-27 09:06:14 | 显示全部楼层
太好了,这样的流程看起来,清晰多了。谢谢分享了。

出0入0汤圆

发表于 2012-9-27 09:30:44 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2012-9-27 12:14:07 | 显示全部楼层
leijiayou 发表于 2012-9-27 08:40
呵呵      没看懂。。。    有点深奥

有可能是我自己也没有明白,但是看了坛子上的帖子有一个关于温度卡尔曼滤波运用对照公式是这个样子的

出0入0汤圆

 楼主| 发表于 2012-9-27 12:15:29 | 显示全部楼层
sn516952 发表于 2012-9-27 09:06
还有下文吗?真的没明白

我想用串口示波器检测一下到底能不能用,但是现在没有串口示波器。所以没有验证。

出0入0汤圆

 楼主| 发表于 2012-9-27 12:20:27 | 显示全部楼层
dxf5200 发表于 2012-9-27 09:06
太好了,这样的流程看起来,清晰多了。谢谢分享了。

大家一起探讨一下进步会更快

出0入0汤圆

发表于 2012-9-27 12:29:04 | 显示全部楼层
我是来看2楼的头像的

出0入0汤圆

 楼主| 发表于 2012-9-27 12:42:34 | 显示全部楼层
好像有点问题

系统噪声设置为Q=0.1
测量白噪声R=0.01

Acc_Media=Acc_Real+Gyro_Mess*Time_Loop ;//计算瞬时角度值
T=sqrt(Q*Q+L*L);                                  //计算高斯白噪声
Kg=T*sqrt(1/(T*T+R*R)) ;                          //计算卡尔曼滤波器的增益
Acc_Real=Acc_Media+Kg*(Acc_Mess-Acc_Media); //计算真实角度值
L=sqrt(1-Kg)*T;                                           //计算真实角度值的偏差

return Acc_Real ;     

出0入0汤圆

发表于 2012-9-27 13:39:36 | 显示全部楼层
本帖最后由 dxf5200 于 2012-9-27 13:42 编辑
linhonggui2007 发表于 2012-9-27 12:20
大家一起探讨一下进步会更快


刚才我仿真了一下,感觉没有对呢?  效果比我的互补还差。不晓得是不是噪声参数没有设置好。感觉就是把加速度的值,延迟了一段时间。

出0入0汤圆

 楼主| 发表于 2012-9-27 13:46:53 | 显示全部楼层
dxf5200 发表于 2012-9-27 13:39
刚才我仿真了一下,感觉没有对呢?  效果比我的互补还差。不晓得是不是噪声参数没有设置好。感觉就是把加 ...

Q 和R参数设置不正确吧,那个Q和R是我随便赋的一个值

出0入0汤圆

 楼主| 发表于 2012-9-27 14:05:21 | 显示全部楼层
dxf5200 发表于 2012-9-27 13:39
刚才我仿真了一下,感觉没有对呢?  效果比我的互补还差。不晓得是不是噪声参数没有设置好。感觉就是把加 ...

请问下你的参数设置为多少了的

出0入0汤圆

发表于 2012-9-27 14:53:32 | 显示全部楼层
linhonggui2007 发表于 2012-9-27 14:05
请问下你的参数设置为多少了的

我是随意设置的,kalman还没有搞明白,你的仿真结果怎么样?推荐个参数,我试一下。

出0入0汤圆

 楼主| 发表于 2012-9-27 15:31:05 | 显示全部楼层
dxf5200 发表于 2012-9-27 14:53
我是随意设置的,kalman还没有搞明白,你的仿真结果怎么样?推荐个参数,我试一下。 ...

试试这个参数
Q = 0.022;
R = 0.617;
不好意思,小弟不才,不会MATLAB
我是想今晚回家后用串口示波器观察一下。

出0入0汤圆

发表于 2012-9-27 21:34:28 | 显示全部楼层
这个不错

出0入0汤圆

 楼主| 发表于 2012-9-27 21:37:06 | 显示全部楼层
robotkid 发表于 2012-9-27 21:34
这个不错

前辈,请问下上面的代码是卡尔曼滤波算法吗,综合和好多高手写出来的,但是不知道真的正不正确

出0入0汤圆

发表于 2012-9-28 19:19:26 | 显示全部楼层
卡尔曼滤波是个方阵的估算,感觉和PID的用法差不多,也是按数据模型和IC的实际情况调节角速度和重力加速度之间的关系参数,就是实际数对原始数据的依赖程度。这个对加强后续改进要用上很多参数变化车子才能稳定应对各种情况,商业的SEGWAY有好几套传感器。
实际上我也没深入研究到,自己研究数学很闷

出0入0汤圆

 楼主| 发表于 2012-9-29 12:16:58 来自手机 | 显示全部楼层
robotkid 发表于 2012-9-28 19:19
卡尔曼滤波是个方阵的估算,感觉和PID的用法差不多,也是按数据模型和IC的实际情况调节角速度和重力加速度 ...

怎么会是pid呢,不是是数据融合吗

出0入0汤圆

发表于 2012-9-29 16:15:53 | 显示全部楼层
数据融合要调好依赖积数的,不是随意出来的。预估值是相信角速度和重力加速度之间各多少有个比例

出0入0汤圆

 楼主| 发表于 2012-9-30 09:30:49 来自手机 | 显示全部楼层
robotkid 发表于 2012-9-29 16:15
数据融合要调好依赖积数的,不是随意出来的。预估值是相信角速度和重力加速度之间各多少有个比例 ...

你这样说不是和互补滤波很像了,就是看他们相信谁多一点,但是互补滤波很明确。卡尔漫在融合的时候不知到怎么算的好,那请问上述公式能不

出0入0汤圆

 楼主| 发表于 2012-9-30 12:52:27 | 显示全部楼层
linhonggui2007 发表于 2012-9-27 12:42
好像有点问题

系统噪声设置为Q=0.1


系统噪声设置为Qacc=0.001;Qgyro=0.003

测量白噪声R=0.5


Acc_Media=Acc_Real+(Gyro_Mess-Gyro_Bias)*Time_Loop ;//计算瞬时角度值
Tgyro=sqrt(Qgyro*Qgyro+Lgyro*Lgyro);                                  //计算高斯白噪声
Kggyro=Tgyro*sqrt(1/(T*T+R*R)) ;                          //计算卡尔曼滤波器的增益

Tacc=sqrt(Qacc*Qacc+Lacc*Lacc)
Kgacc=Tacc*sqrt(1/(T*T+R*R))

Angle_Erro=Acc_Mess-Acc_Media;

Acc_Real=Acc_Media+Kg*(Acc_Mess-Acc_Media); //计算真实角度值
Gyro_Bias=Angle_Erro+Kggyro*Angle_Erro;
Gyro=Gyro_Mess-Gyro_Bias

Lgyro=sqrt(1-Kgacc)*Tgyro;                                           //计算真实角度值的偏差
Lacc=sqrt(1-Kgacc)*Tacc;
return Acc_Real ;     

出0入0汤圆

发表于 2012-10-13 17:27:52 | 显示全部楼层
先留着,谢谢!

出0入0汤圆

发表于 2012-10-15 20:32:09 | 显示全部楼层
来学习的

出0入0汤圆

发表于 2012-10-15 23:52:42 | 显示全部楼层
mark一下……

出0入0汤圆

发表于 2012-11-3 10:29:37 | 显示全部楼层
研究了一段时间,现在还是一头雾水

出0入0汤圆

发表于 2012-11-9 02:00:33 | 显示全部楼层
不错,
很精简

出0入0汤圆

 楼主| 发表于 2012-11-10 00:59:40 | 显示全部楼层
dmjkun 发表于 2012-11-9 02:00
不错,
很精简

请问能看懂不

出0入0汤圆

 楼主| 发表于 2012-11-10 01:00:05 | 显示全部楼层
fenxiang1103 发表于 2012-11-3 10:29
研究了一段时间,现在还是一头雾水

是挺复杂的,我现在还是没有搞懂

出0入0汤圆

发表于 2012-11-26 18:31:21 | 显示全部楼层
楼主很给劲儿,正用到这个,我给你顶一个

出0入0汤圆

发表于 2012-11-28 11:08:31 | 显示全部楼层
楼主能否讲讲“系统噪声设置为Qacc=0.001;Qgyro=0.003测量白噪声R=0.5”这些参数是怎么来的,
程序中哪些是已知,哪些是未知,哪些是测量出来的

出0入0汤圆

发表于 2012-11-28 15:13:24 | 显示全部楼层
学习一下,今天才知道有这个名词,鄙视一下自己;

出0入0汤圆

发表于 2012-12-14 11:31:41 | 显示全部楼层
原理是数学家的事,我们是站在巨人肩膀上的。

出0入0汤圆

发表于 2012-12-14 12:14:55 | 显示全部楼层
本帖最后由 kmani 于 2012-12-14 12:17 编辑

别拿卡尔曼当个宝,效果还不如互补好!
除非,你自己做试验测出来Q,R的值。
不然就陀螺仪和加速度计融合算角度来说,卡尔曼和互补的本质是一样的,但卡尔曼比互补多了一个收敛过程,这个过程就是个浪费。

出0入0汤圆

 楼主| 发表于 2012-12-14 13:42:20 | 显示全部楼层
kmani 发表于 2012-12-14 12:14
别拿卡尔曼当个宝,效果还不如互补好!
除非,你自己做试验测出来Q,R的值。
不然就陀螺仪和加速度计融合算 ...

一针见血,真的没看出卡尔曼反应好迟钝,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-12-14 21:46:27 | 显示全部楼层
linhonggui2007 发表于 2012-12-14 13:42
一针见血,真的没看出卡尔曼反应好迟钝,

我断断续续地看了卡尔曼好久,最后发现就姿态融合而言本质就是互补。

出0入0汤圆

 楼主| 发表于 2012-12-14 23:01:48 | 显示全部楼层
number007cool 发表于 2012-11-28 11:08
楼主能否讲讲“系统噪声设置为Qacc=0.001;Qgyro=0.003测量白噪声R=0.5”这些参数是怎么来的,
程序中哪些是 ...

这个我也不懂,看了z大哥的帖子上面的卡尔曼程序拆出来的。我的程序基本上和那个温度试验的例子一致,但是又模仿了z大哥程序,加入了Gyro的数值。太复杂了。数学不好,搞不懂,模模糊糊。

出0入0汤圆

发表于 2013-1-10 21:33:35 | 显示全部楼层
天书啊,先mark再慢慢看。

出0入0汤圆

发表于 2013-1-10 22:10:21 | 显示全部楼层
我就看看,看不太懂

出0入0汤圆

发表于 2013-1-16 16:03:44 | 显示全部楼层
mark........

出0入0汤圆

发表于 2013-1-29 16:35:47 | 显示全部楼层
本帖最后由 dmjkun 于 2013-1-29 16:37 编辑
linhonggui2007 发表于 2012-11-10 00:59
请问能看懂不


呵呵,还真看不懂,捧一下场

出0入8汤圆

发表于 2013-2-11 15:33:36 | 显示全部楼层
先标记一下

出0入0汤圆

发表于 2013-2-26 08:01:20 | 显示全部楼层
还是不不懂。

出0入0汤圆

发表于 2013-3-1 09:22:32 | 显示全部楼层
留名~~以后再看~~

出0入0汤圆

发表于 2013-3-1 14:28:57 | 显示全部楼层
先留着,谢谢

出20入22汤圆

发表于 2013-3-22 19:27:25 | 显示全部楼层
不懂,但又要用

出0入0汤圆

发表于 2013-4-19 20:21:03 | 显示全部楼层
mark  卡尔曼滤波

出0入0汤圆

发表于 2013-4-23 20:11:53 | 显示全部楼层
没看懂

出0入0汤圆

发表于 2013-5-13 20:00:05 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2013-5-16 09:49:21 | 显示全部楼层
怎么又来一个互补滤波

出0入0汤圆

发表于 2013-5-17 20:13:49 | 显示全部楼层
楼组传点资料吧

出0入0汤圆

发表于 2013-5-19 20:32:08 | 显示全部楼层
学习 留记号

出0入0汤圆

 楼主| 发表于 2013-5-20 20:17:47 | 显示全部楼层
王者归来 发表于 2013-5-16 09:49
怎么又来一个互补滤波


    请问阁下有何高见

出0入0汤圆

发表于 2013-5-22 20:54:42 | 显示全部楼层
MARK/.././

出0入0汤圆

发表于 2013-5-29 11:44:14 | 显示全部楼层
不懂,有木有详细的资料?

出0入0汤圆

发表于 2013-7-2 18:32:16 | 显示全部楼层
研究了很久,一直没弄懂……

出0入0汤圆

发表于 2013-7-5 00:46:58 | 显示全部楼层
mark~~~~~~~~~~

出0入0汤圆

发表于 2013-7-6 22:48:29 | 显示全部楼层
我也要记住,学一下PID,接着学这个

出0入0汤圆

发表于 2013-8-17 16:27:55 | 显示全部楼层
学习了 顶一个

出0入0汤圆

发表于 2013-8-25 01:49:12 | 显示全部楼层
正要学卡尔曼,多谢LZ

出0入0汤圆

发表于 2013-9-1 14:56:37 | 显示全部楼层
楼主  我用的四元数融合数据  不知道融合完怎么办了?是滤波吗?

出0入0汤圆

发表于 2013-9-1 22:54:58 | 显示全部楼层
mark!!!

出0入0汤圆

发表于 2013-9-5 17:44:47 来自手机 | 显示全部楼层
记号一下      

出0入0汤圆

发表于 2013-10-7 18:17:49 | 显示全部楼层
卡尔曼好难啊,唉,水平不够

出0入0汤圆

发表于 2013-10-19 15:47:30 | 显示全部楼层
mark......

出0入0汤圆

发表于 2013-10-19 15:47:58 | 显示全部楼层
mark......

出0入0汤圆

发表于 2013-10-20 18:23:03 | 显示全部楼层
没有看明白啊!

出0入16汤圆

发表于 2013-10-20 18:56:25 | 显示全部楼层
嗯,正需要!

出0入0汤圆

发表于 2013-11-17 12:04:52 | 显示全部楼层
个人感觉卡尔曼滤波是用力消除高斯噪声的.....而互补滤波只是单纯的数据融合。不过在我的小车上卡尔曼确实比互补效果好,这是为何呢?

出0入0汤圆

发表于 2013-11-20 15:51:25 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2013-12-2 16:29:55 | 显示全部楼层
感谢楼主分享!谢谢

出0入0汤圆

发表于 2013-12-3 15:54:32 | 显示全部楼层
一头雾水·····

出0入0汤圆

发表于 2013-12-9 11:52:47 | 显示全部楼层
好东西~~~~学习了。。

出0入0汤圆

发表于 2013-12-9 11:54:53 | 显示全部楼层
哈哈 谢谢奉献

出0入0汤圆

发表于 2013-12-26 22:05:53 | 显示全部楼层
感谢楼主分享 但是看论文的时候还是不能完全理解,我们滤波的过程中怎么和论文中的参数不能很好的匹配呢,希望懂得同学们可以给大伙讲讲,现在也在学,急急急急急急!!

怎们这个论坛不支持专用的论文格式(caj格式)大家要是看不了可以下载个阅读器
只好打包一些给大家看看,希望有用,更希望大师们给来看看我们!!感谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-1-10 16:51:22 | 显示全部楼层
哈哈,好

出0入0汤圆

发表于 2014-2-26 16:55:58 | 显示全部楼层
我也来帮忙记一下,这个流程好,思路清晰

出0入0汤圆

 楼主| 发表于 2014-3-1 06:13:17 | 显示全部楼层
想飞的四轴 发表于 2013-9-1 14:56
楼主  我用的四元数融合数据  不知道融合完怎么办了?是滤波吗?

四元数只是一种计算方法,终值不变,而卡尔漫是数据融合,终值会变

出0入0汤圆

发表于 2014-3-2 10:52:01 | 显示全部楼层
过来看看

出0入0汤圆

发表于 2014-3-29 07:51:11 | 显示全部楼层
受教了~~

出0入0汤圆

发表于 2014-4-10 22:35:18 | 显示全部楼层
怕忘记所以大晚上MARK

出0入0汤圆

发表于 2014-4-15 11:50:00 | 显示全部楼层
据说卡尔曼是个很难的东西

出0入0汤圆

发表于 2014-4-15 16:24:17 | 显示全部楼层
谢谢分享 klm

出0入0汤圆

发表于 2014-4-15 16:42:09 | 显示全部楼层
mark。。。

出0入0汤圆

发表于 2014-4-15 16:56:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-9-29 16:36:03 | 显示全部楼层
可以,流程上清楚

出0入0汤圆

发表于 2014-10-3 21:48:32 来自手机 | 显示全部楼层
谢谢,找时间研究一下

出0入0汤圆

发表于 2014-10-20 09:07:58 | 显示全部楼层
先mark吧...

出0入0汤圆

发表于 2014-10-30 22:25:00 | 显示全部楼层
学习学习                              
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 19:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表