智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 依恋lry
打印 上一主题 下一主题

[软件类] 互补滤波 可直接用

  [复制链接]

0

主题

15

帖子

0

精华

注册会员

Rank: 2

积分
167
威望
135
贡献
26
兑换币
0
注册时间
2012-2-28
在线时间
3 小时
毕业学校
重庆大学
11#
发表于 2012-2-28 20:35:15 | 只看该作者
谢谢楼主!!
回复 支持 反对

使用道具 举报

1

主题

35

帖子

0

精华

高级会员

Rank: 4

积分
737
威望
517
贡献
152
兑换币
60
注册时间
2011-10-20
在线时间
34 小时
12#
发表于 2012-2-28 23:22:10 | 只看该作者
留个记号。。。
回复 支持 反对

使用道具 举报

12

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
828
威望
535
贡献
125
兑换币
27
注册时间
2012-1-7
在线时间
84 小时
13#
发表于 2012-2-29 22:03:53 | 只看该作者
依恋lry 发表于 2012-2-25 00:13
跑起来了啊 稳定后上视频

你是用楼主的程序跑起来的?
回复 支持 反对

使用道具 举报

11

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1289
QQ
威望
804
贡献
303
兑换币
39
注册时间
2011-9-30
在线时间
91 小时
14#
发表于 2012-3-1 09:19:56 | 只看该作者
谢谢啊!!
羡慕嫉妒恨啊!!
回复 支持 反对

使用道具 举报

106

主题

968

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4494

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

威望
2681
贡献
921
兑换币
241
注册时间
2012-2-4
在线时间
446 小时
15#
发表于 2012-3-6 22:44:01 | 只看该作者
看不下去啊
回复 支持 反对

使用道具 举报

15

主题

315

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5440

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

威望
1409
贡献
3421
兑换币
109
注册时间
2011-10-9
在线时间
305 小时
16#
发表于 2012-3-7 16:04:46 | 只看该作者
请教几个问题。
void complement_filter(float angle_m_cf,float gyro_m_cf)
{
         bias_cf*=0.0001;                        //陀螺仪零飘低通滤波;500次均值;0.998
        bias_cf+=gyro_m_cf*0.009;                   //0.002
         angle_dot=gyro_m_cf-bias_cf;                  
        angle=(angle+angle_dot*dt)*0.95+angle_m_cf*0.04;        
        //加速度低通滤波;20次均值;按100次每秒计算,低通5Hz;0.90 0.05
}  
这个函数中,互补滤波式子的系数,0.95+0.04=0.99,并不等于1,这个好像不合理吧?!
至于那个0.0001和0.009的和是不是一定要等于1,这个也想请教下楼主?
回复 支持 反对

使用道具 举报

15

主题

315

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5440

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

威望
1409
贡献
3421
兑换币
109
注册时间
2011-10-9
在线时间
305 小时
17#
发表于 2012-3-7 16:08:07 | 只看该作者
void AD_calculate(void)
{


gyro=0.011557*ADC(1)-3.035+105*3.14/180;        //后面105*3.14/180是对角速度零点的修正

acceler=0.003052*ADC(0)-1.4375;                //计算角度时,只用了加速度传感器的Z轴就够了
                                                                        
acceler=acceler*1.5+14*3.14/180;  //没有使用arcsin(),因为sin在0度附近变化时可以用sin值代替角度值,这样可以减轻单片机的计算负担。
                                                                         //*1.5是对角度的适当放大,14*3.14/180是对角度零点的修正
                                          
    complement_filter(acceler,gyro);

}
这个函数里面,楼主用的单位应该是弧度吧?!
那些转换系数,是通过计算得到的还是调试出来的?
如果是计算出来的,是否提供一下计算过程?
如果是调试出来的,那又有什么好的方法啊?
回复 支持 反对

使用道具 举报

15

主题

315

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5440

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

威望
1409
贡献
3421
兑换币
109
注册时间
2011-10-9
在线时间
305 小时
18#
发表于 2012-3-7 16:10:25 | 只看该作者
还有,用这个算法在车子震得比较厉害的时候,滤波出的数值好像一直都是0了
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

高级会员

Rank: 4

积分
548
威望
345
贡献
95
兑换币
0
注册时间
2012-1-21
在线时间
54 小时
19#
发表于 2012-3-7 20:25:37 | 只看该作者
请问LZ,#include<SH88F2051.h>与
#include <MC9S12XS128.h>对互补滤波设置能通用的不?
回复 支持 反对

使用道具 举报

4

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1231
QQ
威望
716
贡献
293
兑换币
0
注册时间
2011-9-27
在线时间
112 小时
20#
发表于 2012-3-9 19:42:46 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-24 03:29 , Processed in 0.049469 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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