智能车制作

标题: 关于互补滤波 [打印本页]

作者: 狄新凯    时间: 2013-8-27 11:02
标题: 关于互补滤波
最近在研究陀螺仪和加速度传感器的融合,卡尔曼滤波实在搞不定,打算用互补滤波,从网上搜到的资料研究了一下
互补滤波的核心公式:

                          angle = A*(angle + gyro*dt) + (1-A)*(x_acc);

其中gyro和x_acc分别为陀螺仪和加速度传感器AD采集出来的值归一化(如何进行归一化也正在研究,跪求大神指导)后的结果。

dt应该为函数执行的周期。
但如何也不明白A参数是如何确定的
查资料A和dt有如下关系:
                                A= tau / (tau +dt);
tau 为时间常数

于是我不明白tau是如何确定的呢?他和dt 有什么关系呢?

还有就是那个dt,到底是AD采样周期还是执行周期呢。

求大神指导,在线等,小弟感激不尽。


作者: rubick    时间: 2013-8-27 11:14
我是试出来的,具体看效果。
作者: 理工小别    时间: 2013-8-27 18:05
很好理解的 你可以取极限值 当A=0时 A=1时分别分析

最终就是你更信任陀螺仪还是角加速度传感器
作者: 狄新凯    时间: 2013-8-27 21:12
rubick 发表于 2013-8-27 11:14
我是试出来的,具体看效果。

怎样获得准确的dt值呢,没什么思路,可不可以在控制循环while(1)打开定时器, 在执行 angle = A*(angle + gyro*dt) + (1-A)*(x_acc)之前,读取定时器的计数值,然后清零,如此往复得到准确的dt值。
只是初步的想法,没有具体实施,不知道可行不可行,哪位大师来指导一下。


作者: 狄新凯    时间: 2013-8-27 21:14
理工小别 发表于 2013-8-27 18:05
很好理解的 你可以取极限值 当A=0时 A=1时分别分析

最终就是你更信任陀螺仪还是角加速度传感器

怎样获得准确的dt值呢,没什么思路,可不可以在控制循环while(1)打开定时器, 在执行 angle = A*(angle + gyro*dt) + (1-A)*(x_acc)之前,读取定时器的计数值,然后清零,如此往复得到准确的dt值。
只是初步的想法,没有具体实施,不知道可行不可行,哪位大师来指导一下。


作者: 理工小别    时间: 2013-8-28 10:32
。。。。。。。既然你想走弯路那么不阻扰你
你尝试着把你认为的准确dt 得出来吧 加油哦

作者: 狄新凯    时间: 2013-8-28 13:43
理工小别 发表于 2013-8-28 10:32
。。。。。。。既然你想走弯路那么不阻扰你
你尝试着把你认为的准确dt 得出来吧 加油哦

现在已经时间紧的不允许在走任何弯路了,关于dt大神有什么高见,给个指示呗,
作者: 理工小别    时间: 2013-8-28 15:42
狄新凯 发表于 2013-8-28 13:43
现在已经时间紧的不允许在走任何弯路了,关于dt大神有什么高见,给个指示呗,

这个很难说的 你去试波形 看看波形有无过大的迟滞或者过冲

输出波形与角加速度传感器波形类似 且波形稳定 就可以用了

注意最好是归一化后在进行互补滤波



作者: 狄新凯    时间: 2013-8-28 17:03
理工小别 发表于 2013-8-28 15:42
这个很难说的 你去试波形 看看波形有无过大的迟滞或者过冲

输出波形与角加速度传感器波形类似 且波形 ...

哥们,我们这次电赛要做四轴飞行器......

作者: 廉洁    时间: 2014-9-7 17:05
互补滤波完全不懂呀

作者: 【征程】    时间: 2014-10-28 21:34





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