智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6039|回复: 15
打印 上一主题 下一主题

[软件类] 卡尔曼滤波后的图 请老师指点

[复制链接]

4

主题

33

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1494
威望
768
贡献
408
兑换币
138
注册时间
2012-3-24
在线时间
159 小时
跳转到指定楼层
1#
发表于 2012-5-12 13:11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  卡尔曼参数Q_angle=0.001, Q_gyro=0.003, R_angle=0.067, dt=0.005;   
  现在车子能直立,但是很不稳定  先是直立,然后来回抖动,越摆越大,然后倒下。。。。现在怎么调这个波形呢

本帖子中包含更多资源

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

x

5

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
威望
296
贡献
76
兑换币
2
注册时间
2011-10-27
在线时间
58 小时
推荐
发表于 2012-5-13 20:05:54 | 只看该作者
silence1221 发表于 2012-5-13 17:55
//是根据陀螺仪计算的角速度

你们的陀螺仪过冲大吗   
回复 支持 0 反对 1

使用道具 举报

4

主题

33

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1494
威望
768
贡献
408
兑换币
138
注册时间
2012-3-24
在线时间
159 小时
2#
 楼主| 发表于 2012-5-12 13:12:20 | 只看该作者
波形是在桌面上用手来回摆动车子测得的
回复 支持 反对

使用道具 举报

2

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2811

论坛骨干奖章优秀会员奖章技术大牛奖章

威望
1705
贡献
606
兑换币
245
注册时间
2011-3-28
在线时间
250 小时
3#
发表于 2012-5-12 15:33:11 | 只看该作者
(1)首先你需要清楚,滤波后的角度信号需要逼近加速度计中没有带有运动噪声的角度;从你的波形显示的滤波后的角度与加速度信号大体上呈现反相特点;逻辑上应该是同相;这一点通过调整后面的角度控制的PI参数中的极性可以修改;
(2)之所以出现震荡,另外一个问题就是控制的“极性”。角度的P,I都应该是负反馈,如果某一项极性反了,就会造成控制输出发散,车模震荡倒下。请检查一下。
(3)如果你对于卡尔曼滤波不是太清楚,可以先实现参考方案中的方法,它简单,物理概念清楚。获得调试的经验之后再研究卡尔曼滤波。以免在此耽搁太多的时间。毕竟后面还有更多的参数需要调整呢。
  从本质上讲,论坛上所给出的卡尔曼滤波的算法和参考方案方法所得到的结果是一样的。
回复 支持 反对

使用道具 举报

4

主题

33

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1494
威望
768
贡献
408
兑换币
138
注册时间
2012-3-24
在线时间
159 小时
4#
 楼主| 发表于 2012-5-12 19:11:07 | 只看该作者
吉他手 发表于 2012-5-12 15:33
(1)首先你需要清楚,滤波后的角度信号需要逼近加速度计中没有带有运动噪声的角度;从你的波形显示的滤波后 ...

谢谢老师的指点  我会继续研究下的
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
威望
296
贡献
76
兑换币
2
注册时间
2011-10-27
在线时间
58 小时
5#
发表于 2012-5-13 10:24:00 | 只看该作者
想问下  你的卡尔曼是不是用这个
void Kalman_Filter(float angle_m,float gyro_m)                        //gyro_m:gyro_measure
{
        angle+=(gyro_m-q_bias) * dt;//先验估计
        
        Pdot[0]=Q_angle - P[0][1] - P[1][0];// Pk-' 先验估计误差协方差的微分
        Pdot[1]=- P[1][1];
        Pdot[2]=- P[1][1];
        Pdot[3]=Q_gyro;
        //更新协方差矩阵  其中
*
* state_update is called every dt with a biased gyro measurement
* by the user of the module.  It updates the current angle and
* rate estimate.
*
* The pitch gyro measurement should be scaled into real units, but
* does not need any bias removal.  The filter will track the bias.
*
*          A = [ 0 -1 ]
*              [ 0  0 ]
*/
*
         * Compute the derivative of the covariance matrix
         * (equation 22-1)
         *        Pdot = A*P + P*A' + Q
         *
         */
        P[0][0] += Pdot[0] * dt;// Pk- 先验估计误差协方差微分的积分 = 先验估计误差协方差
        P[0][1] += Pdot[1] * dt;
        P[1][0] += Pdot[2] * dt;
        P[1][1] += Pdot[3] * dt;
        
        
        angle_err = angle_m - angle;//zk-先验估计
        
        
        PCt_0 = C_0 * P[0][0];
        PCt_1 = C_0 * P[1][0];
      
        //误差估计  算出卡尔曼滤波
        E = R_angle + C_0 * PCt_0; //R_angle为测量噪声(white gaussian noise)

       //更新卡尔曼滤波增益
        K_0 = PCt_0 / E;//Kk
        K_1 = PCt_1 / E;
        //t_0,t_1为测量系统参数,为下面的后验协方差提供。

        t_0 = PCt_0;
        t_1 = C_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;
        
        //现在状态的最优估算
        angle        += K_0 * angle_err;//后验估计
        q_bias        += K_1 * angle_err;//后验估计
        angle_dot = gyro_m-q_bias;//输出值(后验估计)的微分 = 角速度
}
回复 支持 反对

使用道具 举报

4

主题

33

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1494
威望
768
贡献
408
兑换币
138
注册时间
2012-3-24
在线时间
159 小时
6#
 楼主| 发表于 2012-5-13 11:29:39 | 只看该作者
滑民航 发表于 2012-5-13 10:24
想问下  你的卡尔曼是不是用这个
void Kalman_Filter(float angle_m,float gyro_m)                       ...

恩 是的  怎么了

回复 支持 反对

使用道具 举报

4

主题

33

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1494
威望
768
贡献
408
兑换币
138
注册时间
2012-3-24
在线时间
159 小时
7#
 楼主| 发表于 2012-5-13 13:29:42 | 只看该作者
本帖最后由 silence1221 于 2012-5-13 13:31 编辑
吉他手 发表于 2012-5-12 15:33
(1)首先你需要清楚,滤波后的角度信号需要逼近加速度计中没有带有运动噪声的角度;从你的波形显示的滤波后 ...


吉他手老师,昨天我又重新调了下滤波,这是现在的波形图了,你看看哪里还不对。



直接用手摆动小车测试的波形 红色是加速度计 黄色是滤波之后

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
威望
296
贡献
76
兑换币
2
注册时间
2011-10-27
在线时间
58 小时
8#
发表于 2012-5-13 16:29:19 | 只看该作者
silence1221 发表于 2012-5-13 11:29
恩 是的  怎么了

那个gyr-m是不是陀螺仪的测量值吗     还是陀螺仪积分后的角度值
回复 支持 反对

使用道具 举报

4

主题

33

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1494
威望
768
贡献
408
兑换币
138
注册时间
2012-3-24
在线时间
159 小时
9#
 楼主| 发表于 2012-5-13 17:55:15 | 只看该作者
滑民航 发表于 2012-5-13 16:29
那个gyr-m是不是陀螺仪的测量值吗     还是陀螺仪积分后的角度值

   //是根据陀螺仪计算的角速度
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 15:07 , Processed in 0.052154 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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