智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 9118|回复: 21
打印 上一主题 下一主题

[软件类] 请教大家关于卡尔曼滤波的问题

  [复制链接]

20

主题

353

帖子

0

精华

常驻嘉宾

天将降大任于斯人也。

Rank: 8Rank: 8

积分
5930

优秀会员奖章活跃会员奖章资源大师奖章论坛元老奖章在线王奖章

威望
2086
贡献
3094
兑换币
468
注册时间
2011-3-30
在线时间
375 小时
跳转到指定楼层
1#
发表于 2012-2-23 17:43:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我的卡尔曼滤波感觉做好了,几个参数是这样的: Q_angle=0.001, Q_gyro=0.003, R_angle=0.5, dt=0.02,但我发现卡尔曼滤波得出的角度会比车子的状态延迟一两秒,不知道大家怎么解决的?

4

主题

172

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1674
威望
826
贡献
502
兑换币
529
注册时间
2015-1-22
在线时间
173 小时
毕业学校
铃兰高校
22#
发表于 2016-1-22 10:49:31 | 只看该作者
666666
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
威望
184
贡献
116
兑换币
117
注册时间
2013-9-9
在线时间
31 小时
毕业学校
杭州电子科技大学
21#
发表于 2016-1-15 20:21:37 | 只看该作者
一叶落尘 发表于 2012-2-23 18:24
R_angle=0.5这个参数有问题,调到0.001去试试。但你的程序我估计是抄的,参数基本都是错的。

你好,void Kalman_Filter(int Gyro,int Accel)//{
        Angle+=(Gyro - Q_bias) * dt;//X(k|k-1),先验估计

        Pdot[0]=Q_angle - PP[0][1] - PP[1][0];

        Pdot[1]=- PP[1][1];
        Pdot[2]=- PP[1][1];
        Pdot[3]=Q_gyro;

        PP[0][0] += Pdot[0] * dt;
        PP[0][1] += Pdot[1] * dt;
        PP[1][0] += Pdot[2] * dt;
        PP[1][1] += Pdot[3] * dt;

        Angle_err =Accel-Angle;//测量值-系统预测值

        PCt_0 = C_0 * PP[0][0];
        PCt_1 = C_0 * PP[1][0];

        E = R_angle + C_0 * PCt_0;

        K_0 = PCt_0 / E;
        K_1 = PCt_1 / E;

        t_0 = PCt_0;
        t_1 = C_0 * PP[0][1];

        PP[0][0] -= K_0 * t_0;//更新协方差矩阵
        PP[0][1] -= K_0 * t_1;
        PP[1][0] -= K_1 * t_0;
        PP[1][1] -= K_1 * t_1;

        Angle        += K_0 * Angle_err;//计算角度最优估计值
        Q_bias        += K_1 * Angle_err;//更新静态偏差最优估计偏差
        Gyro_x   = Gyro - Q_bias;


}卡尔曼三个参数的物理意义是什么啊,看了好长一段时间了,Q_angle,Q_gyro,R_angle,我的理解是Q_angle是角度预测系统噪声,是陀螺仪静态偏差预测系统噪声,R_angle是加速度记测量噪声;Q_angle是陀螺仪的测量噪声吗,Q_gyro是陀螺仪温度引起静态偏差噪声吗,迷糊了有论文上说Q_angle是加速度计测量噪声,Q_gyro是陀螺仪测量噪声??求解
回复 支持 反对

使用道具 举报

5

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
威望
118
贡献
57
兑换币
66
注册时间
2014-12-27
在线时间
22 小时
20#
发表于 2015-1-23 15:36:07 | 只看该作者
614091961@qq.com求发 楼主好人
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

高级会员

Rank: 4

积分
571
威望
317
贡献
166
兑换币
188
注册时间
2015-1-18
在线时间
44 小时
毕业学校
大连理工大学
19#
发表于 2015-1-21 13:33:08 | 只看该作者
同求程序,1148484072
回复 支持 反对

使用道具 举报

22

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1582
威望
858
贡献
372
兑换币
342
注册时间
2012-2-28
在线时间
176 小时
毕业学校
重庆大学
18#
发表于 2013-7-5 19:42:47 | 只看该作者
杀手王旭 发表于 2013-1-19 17:21
卡尔曼这几个参数有什么要求限制吗   dt=0.002;Q_angle = 0.001;Q_gyro  = 0.0015;R_angle = 0.001 ;

怎么我用两套参数,都可以滤除波形呢?
回复 支持 反对

使用道具 举报

22

主题

209

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1582
威望
858
贡献
372
兑换币
342
注册时间
2012-2-28
在线时间
176 小时
毕业学校
重庆大学
17#
发表于 2013-7-5 19:31:31 | 只看该作者
一叶落尘 发表于 2012-2-23 18:24
R_angle=0.5这个参数有问题,调到0.001去试试。但你的程序我估计是抄的,参数基本都是错的。

能和你交流下卡尔曼滤波吗?
回复 支持 反对

使用道具 举报

14

主题

295

帖子

0

精华

常驻嘉宾

打酱油出道。。。

Rank: 8Rank: 8

积分
5865

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

威望
1727
贡献
1258
兑换币
1045
注册时间
2012-11-10
在线时间
1440 小时
16#
发表于 2013-1-19 17:21:50 | 只看该作者
一叶落尘 发表于 2012-2-23 18:24
R_angle=0.5这个参数有问题,调到0.001去试试。但你的程序我估计是抄的,参数基本都是错的。

卡尔曼这几个参数有什么要求限制吗   dt=0.002;Q_angle = 0.001;Q_gyro  = 0.0015;R_angle = 0.001 ;
回复 支持 反对

使用道具 举报

2

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
972

活跃会员奖章优秀会员奖章

QQ
威望
574
贡献
200
兑换币
0
注册时间
2011-3-21
在线时间
99 小时
15#
发表于 2012-9-1 07:09:10 | 只看该作者
卡尔曼既是老鸟们的杀手锏,也是菜鸟们的杀手剪
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
威望
191
贡献
94
兑换币
30
注册时间
2012-7-7
在线时间
14 小时
毕业学校
西京大学
14#
发表于 2012-8-27 23:06:01 | 只看该作者
有的时候还需要自己努力,不过,大家可以一起探讨难点的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-29 16:34 , Processed in 0.051194 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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