智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7187|回复: 44
打印 上一主题 下一主题

卡尔曼 角度 波型 求指导 谢谢

  [复制链接]

2

主题

48

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2603
威望
1282
贡献
807
兑换币
851
注册时间
2012-11-2
在线时间
257 小时
毕业学校
华电
跳转到指定楼层
1#
发表于 2013-10-4 17:49:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

蓝色的是加速度计算出的角度
红色是卡尔曼滤出来的
但是红色的那个尖角一直都消不掉
也不知道什么样的波形算可以使用
希望知道的学长给说说  谢谢啦

本帖子中包含更多资源

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

x

4

主题

60

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1234
QQ
威望
607
贡献
365
兑换币
394
注册时间
2016-10-5
在线时间
131 小时
毕业学校
厦门大学嘉庚学院
45#
发表于 2016-11-26 22:32:35 | 只看该作者
很有帮助
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

高级会员

Rank: 4

积分
511
威望
268
贡献
145
兑换币
158
注册时间
2015-1-13
在线时间
49 小时
毕业学校
华电
44#
发表于 2015-12-14 02:16:40 | 只看该作者
你好,现在做直立车,卡在一个问题上了,你的加速度计算角度是只用了一路信号还是两路信号求反正切?
回复 支持 反对

使用道具 举报

2

主题

48

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2603
威望
1282
贡献
807
兑换币
851
注册时间
2012-11-2
在线时间
257 小时
毕业学校
华电
43#
 楼主| 发表于 2014-3-29 20:31:17 | 只看该作者
忍者1727 发表于 2014-3-29 18:22
陀螺仪极性怎么调的?

和硬件的摆放有关系啦
极性就是式子里陀螺仪数值之前给个正负号  
自己根据需求决定
回复 支持 反对

使用道具 举报

7

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
467
威望
250
贡献
137
兑换币
156
注册时间
2013-10-17
在线时间
40 小时
毕业学校
河南理工大学
42#
发表于 2014-3-29 18:22:41 | 只看该作者
Eternalve 发表于 2013-10-4 22:24
额 晚上找出问题了
陀螺仪极性反了
现在调了一下  有一个大范围的平衡

陀螺仪极性怎么调的?
回复 支持 反对

使用道具 举报

2

主题

48

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2603
威望
1282
贡献
807
兑换币
851
注册时间
2012-11-2
在线时间
257 小时
毕业学校
华电
41#
 楼主| 发表于 2014-2-25 23:31:03 | 只看该作者
鸟人 发表于 2014-2-24 20:02
我的三个零点值也是平衡时的输出值 我滤出来波如下
黄色是加速度算出来的
红色是角速度  紫色是卡尔曼算出 ...

1.这里不太懂  但是看见一些帖子里面出过
if(Gyro > 4090) Gyro += 1000;
   else
   if(Gyro > 4084) Gyro += 500;
   
   if(Gyro < 55)   Gyro -= 1000;
   else
   if(Gyro < 60)   Gyro -= 500;

2.这里
  NowData = RealData + gyroscope_rate*0.04;
  (1)0.04   就是40ms算一次    40ms有点长了
  (2)我在“+”  符号上出过错  有段时间弄反了  
          现象是  滤波后的过冲比不滤的还大   看你的好像没有

3.原始数据可以适当滤波    高通低通什么的   要根据器件实际情况来

4.Q  R值
   估计还不够(我觉得是这个)   滤出的波形有滞后也能用  满足要求就好

5.可以上pid调着看看  pid本身很好用     出不来效果就是前面的数据没处理好   观察现象调Q R 和原始数据滤波
回复 支持 反对

使用道具 举报

5

主题

68

帖子

0

精华

高级会员

Rank: 4

积分
554
威望
267
贡献
137
兑换币
171
注册时间
2013-9-22
在线时间
75 小时
40#
发表于 2014-2-24 20:02:31 | 只看该作者
我的三个零点值也是平衡时的输出值 我滤出来波如下
黄色是加速度算出来的
红色是角速度  紫色是卡尔曼算出来得角度值
感觉滤出来的波形 粗糙而且还有尖峰
你帮我看看是哪里出问题

程序是这个
    Gyro  = g_ADvalue[0];   
    Acc_x = g_ADvalue[2];
    Acc_z = g_ADvalue[1];
    OutData[1]=Acc_z;
   
   if(Gyro > 4090) Gyro += 1000;
   else
   if(Gyro > 4084) Gyro += 500;
   
   if(Gyro < 55)   Gyro -= 1000;
   else
   if(Gyro < 60)   Gyro -= 500;
      
    Acc_x = Acc_x - 1389.6;
    Acc_z = Acc_z - 2450.0;
    Gyro  = Gyro  - 2860.4;
    Gyro_Data = Gyro;
   
    OutData[0] = Gyro_Data;
    accelerometer_angle =atan2f(Acc_z,Acc_x);
    OutData[2] = accelerometer_angle*1000;

    gyroscope_rate = Gyro*0.0023;         //参考电压3.3v 12位ADC 放大9.1倍 enc-03 0.67mv/deg./sec.
   
                                          //(3300/4096)/(0.67*9.1)*(3.14/180) =  0.0023
   
    NowData = RealData + gyroscope_rate*0.04;                 //1.预估计 X(k|k-1) = A(k,k-1)*X(k-1|k-1) + B(k)*u(k)
    NowData_P = sqrt(Q*Q+RealData_P*RealData_P);              //2.计算预估计协方差矩阵   P(k|k-1) = A(k,k-1)*P(k-1|k-1)*A(k,k-1)'+Q(k)
    Kg = sqrt(NowData_P*NowData_P/(NowData_P*NowData_P+R*R)); //3.计算卡尔曼增益矩阵 K(k) = P(k|k-1)*H(k)' / (H(k)*P(k|k-1)*H(k)' + R(k))
    RealData = NowData + Kg*(accelerometer_angle - NowData);  //4.更新估计 X(k|k) = X(k|k-1)+K(k)*(Z(k)-H(k)*X(k|k-1))
    RealData_P = sqrt((1-Kg)*NowData_P*NowData_P);            //5.计算更新后估计协防差矩阵 P(k|k) =(I-K(k)*H(k))*P(k|k-1)
   
    QingJiao =  RealData;  
   
   
    OutData[3] = QingJiao*1000;//*180/3.141592653;
   // OutPut_Data();

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

2

主题

48

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2603
威望
1282
贡献
807
兑换币
851
注册时间
2012-11-2
在线时间
257 小时
毕业学校
华电
39#
 楼主| 发表于 2014-2-24 12:59:52 | 只看该作者
鸟人 发表于 2014-2-24 09:54
那你的X轴的加速度零点值是陀螺仪水平时还是小车直立时的输出值? 角速度和Z轴零点值是直立时输出值??

我的“零点”就是小车处于平衡位置不动时加速度计的计算值
不动的时候  陀螺仪处于零点   有绕陀螺仪旋转的运动是    采集到的陀螺仪ad电压值有变化
不知道说到点上了没有
回复 支持 反对

使用道具 举报

65

主题

696

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3631

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

威望
1886
贡献
1057
兑换币
1118
注册时间
2013-4-23
在线时间
344 小时
38#
发表于 2014-2-24 09:57:59 | 只看该作者
vccv
回复 支持 反对

使用道具 举报

5

主题

68

帖子

0

精华

高级会员

Rank: 4

积分
554
威望
267
贡献
137
兑换币
171
注册时间
2013-9-22
在线时间
75 小时
37#
发表于 2014-2-24 09:54:14 | 只看该作者
那你的X轴的加速度零点值是陀螺仪水平时还是小车直立时的输出值? 角速度和Z轴零点值是直立时输出值??
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 20:27 , Processed in 0.065770 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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