搜索
bottom↓
回复: 14

求助:陀螺仪加速度计那个卡尔曼滤波例子中的几个疑惑之处?

[复制链接]

出0入0汤圆

发表于 2012-1-8 13:34:01 | 显示全部楼层 |阅读模式
//float gyro_m:陀螺仪测得的量(角速度)

//float incAngle:加计测得的角度值



#define dt                  0.0015//卡尔曼滤波采样频率

#define R_angle          0.69 //测量噪声的协方差(即是测量偏差)

#define Q_angle          0.0001//过程噪声的协方差

#define Q_gyro           0.0003 //过程噪声的协方差  过程噪声协方差为一个一行两列矩阵



float kalmanUpdate(const float gyro_m,const float incAngle)  

{         

        float K_0;//含有卡尔曼增益的另外一个函数,用于计算最优估计值

        float K_1;//含有卡尔曼增益的函数,用于计算最优估计值的偏差

        float Y_0;

        float Y_1;

        

        float Rate;//去除偏差后的角速度

        float Pdot[4];//过程协方差矩阵的微分矩阵

        float angle_err;//角度偏量

        float E;//计算的过程量

               

        static float angle = 0;            //下时刻最优估计值角度

        static float q_bias = 0;        //陀螺仪的偏差                 

        static float P[2][2] = {{ 1, 0 }, { 0, 1 }};//过程协方差矩阵

                  

        Rate = gyro_m - q_bias;

  

        //计算过程协方差矩阵的微分矩阵     

        Pdot[0] = Q_angle - P[0][1] - P[1][0];//??????         

        Pdot[1] = - P[1][1];                        

        Pdot[2] = - P[1][1];                                 

        Pdot[3] = Q_gyro;//??????                        



        angle += Rate * dt; //角速度积分得出角度



        P[0][0] += Pdot[0] * dt; //计算协方差矩阵

        P[0][1] += Pdot[1] * dt;

        P[1][0] += Pdot[2] * dt;

        P[1][1] += Pdot[3] * dt;

  

        angle_err = incAngle - angle; //计算角度偏差



        E = R_angle + P[0][0];

        K_0 = P[0][0] / E; //计算卡尔曼增益

        K_1 = P[1][0] / E;



        Y_0 = P[0][0];   

        Y_1 = P[0][1];

  

        P[0][0] -= K_0 * Y_0; //跟新协方差矩阵

        P[0][1] -= K_0 * Y_1;

        P[1][0] -= K_1 * Y_0;

        P[1][1] -= K_1 * Y_1;





        angle += K_0 * angle_err; //给出最优估计值

        q_bias += K_1 * angle_err;//跟新最优估计值偏差



        return angle;
}

================================================================

问题1:
        Pdot[0] = Q_angle - P[0][1] - P[1][0];//??????         
        Pdot[1] = - P[1][1];                        
        Pdot[2] = - P[1][1];                                 
        Pdot[3] = Q_gyro;];//??????

这几个式子是怎么来的?

Pdot = A*P + P*A' + Q----中的Q是什么矩阵?是{ {Q_angle, 0},{0,Q_gyro}}吗?转化后应该是:
Pdot[0] = Q_angle; /* 0,0 */  
Pdot[1] = - 1;         /* 0,1 */  
Pdot[2] = - 1;           /* 1,0 */  
Pdot[3] = Q_gyro; /* 1,1 */  

???

问题2:
P[0][0]的更新好理解,P[0][1]、P[1][0]、P[1][1]的更新莫名其妙的?

问题3:
陀螺仪的偏差为什么可以用:q_bias += K_1 * angle_err;表示?一般介绍卡尔曼滤波的资料上没有提到偏差更新

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-1-9 11:44:10 | 显示全部楼层
没有高手指导下吗?啊啊啊

出0入0汤圆

发表于 2012-2-1 16:25:43 | 显示全部楼层
同学 看样子你也为这个苦恼呢 网上基本上都是和你这个资料差不多 但貌似懂的人很少 我用这个程序调角度的时候漂移很严重 调了好久都不行 所以我也转过来看理论 希望自己编一个 但真的没那么容易。。。。。

出0入0汤圆

发表于 2012-2-23 10:45:32 | 显示全部楼层
还是先弄懂理论的吧。我决定先把相关的知识仔细研究下再看程序。。。

出0入0汤圆

发表于 2012-4-21 10:51:48 | 显示全部楼层
请问楼主,这种滤波效果怎样?谢谢

出0入0汤圆

发表于 2012-4-24 14:28:35 | 显示全部楼层
没人回答?我来抛个砖。。。。
问题1:A = [ 0 -1 ]
              [ 0  0 ]
Pdot = A*P + P*A' + Q ,带进去就出来哒。。
Q是什么矩阵?是{ {Q_angle, 0},{0,Q_gyro}}——是的。。
问题2:看上面。
问题3:
q_bias 是什么,也是个状态量。。所以更新。。。
可看看http://www.ourdev.cn/forum.php?m ... 0%E8%9E%BA%E4%BB%AA

出0入0汤圆

发表于 2012-9-30 12:09:23 | 显示全部楼层
mark ,学习

出0入0汤圆

发表于 2012-9-30 15:52:21 | 显示全部楼层
連問題都描述不清楚,從何幫起?

出0入0汤圆

发表于 2012-11-29 16:52:32 | 显示全部楼层
mark,正在研究中

出0入0汤圆

发表于 2013-3-11 23:41:09 | 显示全部楼层
保留 研究下

出0入0汤圆

发表于 2013-11-23 12:05:26 | 显示全部楼层
自己按照第二个公式推倒一下吧,基本形式就是这个样子的,但是应为运算需要做了合理的化简,主要是舍去的dt的高阶小量,所以和原来的公式误差不大

出0入0汤圆

发表于 2013-11-24 15:51:59 | 显示全部楼层
顶一下,同时也学习一下。

出0入0汤圆

发表于 2013-12-2 16:46:48 | 显示全部楼层
看不懂,顶一下你

出0入0汤圆

发表于 2013-12-4 16:28:02 | 显示全部楼层
貌似看不懂啊。。。。

出0入0汤圆

发表于 2014-6-17 11:25:45 | 显示全部楼层
mqhrzy09 发表于 2012-4-24 14:28
没人回答?我来抛个砖。。。。
问题1:A = [ 0 -1 ]
              [ 0  0 ]

你好,我最近在看卡尔曼滤波,在具体实现时看到了论坛里一个代码,http://www.amobbs.com/thread-5339449-1-1.html,有很多疑惑,不知可否与你详细交流一下?谢谢~ 我现在权限还不能加你为好友,可否QQ? QQ:543257522
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 11:08

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

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