智能车制作

标题: 卡尔曼滤波图形 [打印本页]

作者: 在路上520    时间: 2012-6-2 13:24
标题: 卡尔曼滤波图形
[attach]25333[/attach]
我快崩溃了,怎么也消不了尖峰,求助

作者: liucheng_34    时间: 2012-6-2 19:25

作者: 滑民航    时间: 2012-6-2 20:08
你先试试清华的试试看看,我试过了 ,虽然会有温飘 但还是可以站起来的。

作者: 基佬    时间: 2012-6-2 20:13
其实互补滤波挺好的
作者: renqinglei    时间: 2012-6-2 20:35
你这波形怎么样?能不能用?
作者: 在路上520    时间: 2012-6-2 20:40
renqinglei 发表于 2012-6-2 20:35
你这波形怎么样?能不能用?

不能用,还不行
作者: 在路上520    时间: 2012-6-2 20:42
基佬 发表于 2012-6-2 20:13
其实互补滤波挺好的

我们一组两个人做硬件,他用的互补,所以,没必要整一样的,知道是什么原因导致的尖峰吗?怎样能消掉啊
作者: renqinglei    时间: 2012-6-2 20:42
在路上520 发表于 2012-6-2 20:40
不能用,还不行

哎,我的也不行,崩溃了都

作者: 在路上520    时间: 2012-6-2 20:44
滑民航 发表于 2012-6-2 20:08
你先试试清华的试试看看,我试过了 ,虽然会有温飘 但还是可以站起来的。

之前用过清华的,没整好,现在不想再整清华的了,老是换也不好,到时候那个也整不好
作者: 在路上520    时间: 2012-6-2 20:45
renqinglei 发表于 2012-6-2 20:42
哎,我的也不行,崩溃了都

你用的什么滤波?有波形吗?看看

作者: 在路上520    时间: 2012-6-2 20:49
liucheng_34 发表于 2012-6-2 19:25

给点意见吧
作者: renqinglei    时间: 2012-6-2 20:53
在路上520 发表于 2012-6-2 20:45
你用的什么滤波?有波形吗?看看

之前一直尝试官方的,没成,今天试了试卡尔曼,你的车加上角度控制什么现象?[attach]25343[/attach]
紫色角速度不知怎么这么大

作者: 在路上520    时间: 2012-6-2 21:03
renqinglei 发表于 2012-6-2 20:53
之前一直尝试官方的,没成,今天试了试卡尔曼,你的车加上角度控制什么现象?
紫色角速度不知怎么这么大 ...

你的波形不错哈,是卡尔曼滤出的波形吗?挺好的,我的有尖峰,没法往下调试[attach]25344[/attach]
黄色是融合后的,红色加速度计的,紫色陀螺仪的,尖峰消不掉啊,你有遇到这个问题吗?

作者: renqinglei    时间: 2012-6-2 21:14
在路上520 发表于 2012-6-2 21:03
你的波形不错哈,是卡尔曼滤出的波形吗?挺好的,我的有尖峰,没法往下调试
黄色是融合后的,红色加速度 ...

我没有这么大的尖峰,是不是dt太小了?你这个波形绿的怎么这么平滑?

作者: 滑民航    时间: 2012-6-2 21:15
在路上520 发表于 2012-6-2 20:45
你用的什么滤波?有波形吗?看看

波形还行   还算比较平滑  之前用过卡尔曼 波纹很大  

作者: 在路上520    时间: 2012-6-2 21:17
renqinglei 发表于 2012-6-2 21:14
我没有这么大的尖峰,是不是dt太小了?你这个波形绿的怎么这么平滑?

不停地调参数吧,为什么我的有尖峰,会是什么原因?
作者: 在路上520    时间: 2012-6-2 21:19
滑民航 发表于 2012-6-2 21:15
波形还行   还算比较平滑  之前用过卡尔曼 波纹很大

[attach]25345[/attach]有尖峰,黄色的,怎么消去呢?
作者: 在路上520    时间: 2012-6-2 21:20
renqinglei 发表于 2012-6-2 21:14
我没有这么大的尖峰,是不是dt太小了?你这个波形绿的怎么这么平滑?

你用的是网上的卡尔曼滤波程序吗?还是自己又写的?
作者: renqinglei    时间: 2012-6-2 21:24
在路上520 发表于 2012-6-2 21:20
你用的是网上的卡尔曼滤波程序吗?还是自己又写的?

网上的,我哪会写啊,能看懂就不错了。尖峰是不是器件本省的原因?

作者: 在路上520    时间: 2012-6-2 21:29
renqinglei 发表于 2012-6-2 21:24
网上的,我哪会写啊,能看懂就不错了。尖峰是不是器件本省的原因?

不知道,反正参数能调的我都调了,可还是不行?
作者: renqinglei    时间: 2012-6-2 21:42
在路上520 发表于 2012-6-2 21:29
不知道,反正参数能调的我都调了,可还是不行?

我Q415650679,咱们多交流一下

作者: autozhubeilife    时间: 2012-6-2 22:34
亲,别乱换,我觉得调一种就行
作者: leechenrong    时间: 2012-6-2 22:50
但是尖峰可以用限幅稍微滤下的
作者: 在路上520    时间: 2012-6-2 22:52
autozhubeilife 发表于 2012-6-2 22:34
亲,别乱换,我觉得调一种就行

嗯,之前用官方的,可是陀螺仪漂移太严重,后来就用卡尔曼滤波了,现在不想换了。可现在卡尔曼滤波进行不下去了,尖峰实在消不掉,求助
作者: skywolf    时间: 2012-6-3 01:48
你是不是用的买来的模块??
作者: 滑民航    时间: 2012-6-3 08:13
在路上520 发表于 2012-6-2 21:20
你用的是网上的卡尔曼滤波程序吗?还是自己又写的?

网上的 但感觉有些错

作者: 在路上520    时间: 2012-6-3 09:35
skywolf 发表于 2012-6-3 01:48
你是不是用的买来的模块??

是买的,买的不好吗?是因为买的造成的吗?
作者: 在路上520    时间: 2012-6-3 09:40
滑民航 发表于 2012-6-3 08:13
网上的 但感觉有些错

嗯,是前面求P那块错了吗?我自己觉得那块是错的,但是改过之后,几乎没有陀螺仪的输出的,融合后的基本都跟随加速度计的。

看下我改过的


static float P[2][2] = {{ 0.005, 0}, { 0, 0.005 }};//误差相关矩阵,如果我们不确切的知道最初的位置与速度,那么协
                                                                                                        //方差矩阵可以初始化为一个对角线元素是b 的矩阵
  
         static float q_bias=0;                                                //陀螺仪偏差
         
        
         static const float dt = 0.005;             //dt的取值为kalman滤波器采样时间
         static float A[2][2]={{1, -0.005 }, {0,1}} ,a[2][2]={{1,0}, {-0.005,1}} ;//a为A的转置
         static float angle_err;
         static float X[2][2]={{0,0}, {0,0}} ,Y[2][2]={{0,0}, {0,0}};
         static float PHt_0=0,PHt_1=0;
         static float En=0,t_0=0,t_1=0;
          float h_0 = 1.0;
          int i,j,k;
              
        g_fCarAngle=g_fCarAngle-g_fangle_dot  * dt;     //X(K|K-1)=A*X(K-1|K-1)
     
     
      
          for(i=0;i<2;i++)                                           //P(K|K-1)=A*P(K-1|K-1)*A'+Q
              {
                  for(j=0;j<2;j++)
                      {
                             for(k=0;k<2;k++)
                                 X[j]+=A[k]*P[k][j] ;
                       }
                }
   
           
          for(i=0;i<2;i++)
             {
                 for(j=0;j<2;j++)
                     {
                            for(k=0;k<2;k++)
                            Y[j]+=X[k]*a[k][j] ;
                       }
               }
         
          P[0][0] =Y[0][0]+ Q_angle;
          P[0][1]= Y[0][1] ;
          P[1][0]=Y[1][0];
          P[1][1] =Y[1][1]+Q_gyro ;
      
     //Y矩阵清零   ,X矩阵清零   
          for(i=0;i<2;i++)
               {
                     for(j=0;j<2;j++)
                         {
                              Y[j]=0;
                               X[j]=0;
                          }
                 }
        
        
        
         
        angle_err = g_fGravityAngle - g_fCarAngle;
         
         PHt_0 = h_0*P[0][0];
         PHt_1 = h_0*P[1][0];
         
         En = R_angle + h_0 * PHt_0;
         
         K_0 = PHt_0 / En;
         K_1 = PHt_1 / En;
         
         t_0 = PHt_0;
         t_1 = h_0 * P[0][1];

         P[0][0] -= K_0 * t_0;
         P[0][1] -= K_0 * t_1;
         P[1][0] -= K_1 * t_0;
         P[1][1] -= K_1 * t_1;
                 
         g_fCarAngle   += K_0 * angle_err;
         q_bias += K_1 * angle_err;
          g_fangle_dot = g_fGyroSpeed-q_bias;      
}
         

作者: skywolf    时间: 2012-6-3 09:55
在路上520 发表于 2012-6-3 09:35
是买的,买的不好吗?是因为买的造成的吗?

我怀疑你买的模块有问题。我们最初买的龙丘的模块有问题,出现反向过冲,就是变化时先往反方向变化然后才往正确的方向变化,导致一个多月车根本站不起来。建议照着官网做,完全可用,温飘几乎没有。


作者: 在路上520    时间: 2012-6-3 10:14
skywolf 发表于 2012-6-3 09:55
我怀疑你买的模块有问题。我们最初买的龙丘的模块有问题,出现反向过冲,就是变化时先往反方向变化然后才 ...

我的现在就是这个问题,先往反方向转,再往正确的方向转,这是反向过冲吗?
作者: 在路上520    时间: 2012-6-3 10:50
skywolf 发表于 2012-6-3 09:55
我怀疑你买的模块有问题。我们最初买的龙丘的模块有问题,出现反向过冲,就是变化时先往反方向变化然后才 ...

单看陀螺仪和加速度计的值都没什么问题啊没有反向过冲的现象

作者: skywolf    时间: 2012-6-3 10:57
在路上520 发表于 2012-6-3 10:50
单看陀螺仪和加速度计的值都没什么问题啊没有反向过冲的现象

那估计你是你的程序问题。建议把卡尔曼搞懂后在用。

作者: 滑民航    时间: 2012-6-4 09:05
在路上520 发表于 2012-6-3 09:40
嗯,是前面求P那块错了吗?我自己觉得那块是错的,但是改过之后,几乎没有陀螺仪的输出的,融合后的基本都 ...

在求p哪里我觉得没错 , 后面有个积分,只是他求的方式不同而已,我是觉得那个求dot 哪里错了  Pdot = A*P A' + Q   不是应该 Pdot = A* P+P* A' + Q 吗?  其实我对卡尔曼知道的也是皮毛 ,所以还是先不要纠结卡尔曼了,换官方的,很快的!兄弟,抓紧了

作者: 天涯々湖畔    时间: 2012-6-19 20:25
弱弱的问一句,你这波形是用神么看的??
能分享一下吗?
作者: 在路上520    时间: 2012-6-19 23:00
天涯々湖畔 发表于 2012-6-19 20:25
弱弱的问一句,你这波形是用神么看的??
能分享一下吗?

上位机,从论坛里下载的,你搜一下,很多
作者: 天涯々湖畔    时间: 2012-6-20 11:22
是不是那个digital scope V2.exe ?
作者: 在路上520    时间: 2012-6-20 14:45
嗯,就是那个,挺好用的

作者: linping9656    时间: 2012-6-20 16:21
加油
作者: 在路上520    时间: 2012-6-20 17:58
linping9656 发表于 2012-6-20 16:21
加油

嗯,你们跑多快了,还顺利吗?
作者: 曾经や云迹、    时间: 2013-4-2 16:19
我们融合后也会有尖峰啊,是不是陀螺仪导致的啊,你们解决没有
作者: 阶梯    时间: 2013-4-19 10:01
互补滤波就可以吧




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2