智能车制作

标题: 大神们用的互补滤波的两个权值是动态调整的么? [打印本页]

作者: zl6977    时间: 2011-12-18 12:15
标题: 大神们用的互补滤波的两个权值是动态调整的么?
今天上网看了个贴:http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=4878273      里面有大神说angle = (0.98)*(angle + gyro * dt) + (0.02)*(x_acc);的权值固定的算法只能算是补偿滤波(好像还有叫它滞后滤波的),互补滤波应该是权值不断调整的,这样才能解决倾角值滞后(相差滞后)与动态时抖动的问题。请问用互补滤波能立起来车的同学,你们的互补滤波权值是变的么?

1.我现在的倾角值静态时挺好的,一开电机就坏了,抖动太大,水平加速度干扰太严重。
2.于是就想降低加速度角度的权值,可是降低后就会造成角度的延迟,半天才调回来。

还望大家帮帮忙啊,卡尔曼滤波实在太麻烦,况且调互补调了这么久,不太想换,这种感觉大家都有过吧。。。。
作者: zl6977    时间: 2011-12-18 12:17
http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=4878273   的27L大神说的,摘抄如下:

正好手里有材料,就做了个平衡小车实际测试下了
传感器是MMA7361和ENC-03
嘛,说说我实际的体验吧

数据的融合,在这儿貌似用的多的卡尔曼和互补了
卡尔曼看了很多资料还是不懂。。。。就去copy了一个,结果嘛。。。比较惨。。。最大的问题就是数值收敛太慢了。。。
后来就改成互补滤波了
就是照着MIT的那篇论文写的程序。
嘛,说白了也就那么一行程序而已。。。。

angle = (0.88)*(angle + gyro * dt) + (0.12)*(x_acc);  

结果比起单独的传感器要好,但实际上还是抖动的厉害
尤其是ENC的抖动对结果的影响太大
改动了很多次权值后,结果也不理想

后来吧,就想着把这个改成了自适应的。
说是自适应,其实也没什么。
就是先计算合加速度是多少,再和重力加速度做差
再来引入两个新的变量——m,n
它们都根据应用环境的噪声情况综合确定:n要在运动加速度不大时保证互补滤波静态精度;m的选择可以根据互补滤波可以容忍的上限值 n/m确定。
我是选择了n=3,m=15
也就是说,在合加速度与重力加速度的差值(ki)小于n/m=0.2G的时候,做互补
滤波系数就是  t=-m*ki+n
而这个t再根据MIT的那论文算出陀螺仪和三轴加速度的权值
这样下来,基本上没有什么问题了。可是数据还是有些抖动
于是又在后面加上了均值。
互补的更新率是1000HZ,10次做一次均值。
总的更新率是100HZ。出来效果还不错

比起卡尔曼来说,互补不仅计算量小,而且也好理解,个人很推荐~~

想把这个用到四轴上不知是否可行?一直很担心电机振动对传感器的影响。。。。

不知道大家的互补是如何做的??
作者: zl6977    时间: 2011-12-18 23:24
还没有人来回答啊....
作者: dufanbao    时间: 2011-12-19 09:26
我和楼主的情况一模一样。。。。咱们一块讨论下吧,,
作者: zl6977    时间: 2011-12-19 09:54
回复 4# dufanbao


    哥们,咱们已经互加好友了,那天咱俩还聊呢。怎么样了,有啥进展没?
作者: fshunj    时间: 2011-12-19 21:36
不懂
作者: zl6977    时间: 2011-12-19 23:16
最近都忙考试呢吧,感觉人好少啊
作者: 篪骋    时间: 2011-12-20 00:40

作者: 墨斤先生    时间: 2011-12-20 16:52

作者: 099064412    时间: 2011-12-31 14:42
哎!!反正难啊!!
作者: xinhuaH    时间: 2012-2-22 18:22
zl6977 发表于 2011-12-18 12:17
http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=4878273   的27L大神说的,摘抄如下:

正好手里有 ...

多谢大侠的无私分享,只是我有一些地方还没看懂,能不能再帮帮我。就是“滤波系数就是  t=-m*ki+n”其中的滤波系数是指的那个呢?还有一句“而这个t再根据MIT的那论文算出陀螺仪和三轴加速度的权值 ”,能不能帮我详细解释一下啊?小弟在此谢谢了

作者: zl6977    时间: 2012-2-22 19:06
他这个就是根据加速度计的水平干扰大小来动态调整权值啊。滤波系数就是  t=-m*ki+n”其中的滤波系数是指的那个呢?就是t,angle = (1-t)*(angle + gyro * dt) + (t)*(x_acc); 我记得是这样,t是在0与你的设定值之间滑动的,设定值的计算参考MIT的the balance filter.
作者: zl6977    时间: 2012-2-22 19:06
xinhuaH 发表于 2012-2-22 18:22
多谢大侠的无私分享,只是我有一些地方还没看懂,能不能再帮帮我。就是“滤波系数就是  t=-m*ki+n”其中的 ...

忘点回复了

作者: xinhuaH    时间: 2012-2-22 20:27
zl6977 发表于 2012-2-22 19:06
忘点回复了

好的,谢谢!

作者: Oner    时间: 2012-2-23 14:01
我现在也有这个问题。但是可以取一个中值。相对稳定。
作者: xinhuaH    时间: 2012-2-25 18:08
zl6977 发表于 2012-2-22 19:06
他这个就是根据加速度计的水平干扰大小来动态调整权值啊。滤波系数就是  t=-m*ki+n”其中的滤波系数是指的那 ...

小弟还有一点不懂,请问Ki是怎么算的?谢谢……

作者: xinhuaH    时间: 2012-2-25 18:11
Oner 发表于 2012-2-23 14:01
我现在也有这个问题。但是可以取一个中值。相对稳定。

取一个中值是指什么呢,能不能帮我解释一下,谢谢!

作者: xinhuaH    时间: 2012-2-25 21:53
zl6977 发表于 2011-12-18 12:17
http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=4878273   的27L大神说的,摘抄如下:

正好手里有 ...

大侠,我还想问一下,下面这句话:
“也就是说,在合加速度与重力加速度的差值(ki)小于n/m=0.2G的时候,做互补 滤波系数就是  t=-m*ki+n
Ki是怎么确定的呢?如果n=3,m=15的话n/m=0.2而不是0.2G啊,请问这是怎么回事呢?

作者: LJG    时间: 2012-2-25 23:08
441740013     我的QQ号,我们和你的情况差不多呀
作者: zl6977    时间: 2012-3-1 19:29
xinhuaH 发表于 2012-2-25 21:53
大侠,我还想问一下,下面这句话:
“也就是说,在合加速度与重力加速度的差值(ki)小于n/m=0.2G的时候, ...

你查查自适应互补滤波吧。Ki就是当前的 (|和加速度的模|-|重力加速度的模|)。n/m=0.2, 就是个系数,无量纲的数,意思就是0.2G。就是衡量当前和加速度超过重力加速度多少了,如果超过太多就意味着加速度计不准了,不能用了,然后就减小加速度计的权值。

作者: xinhuaH    时间: 2012-3-1 21:25
zl6977 发表于 2012-3-1 19:29
你查查自适应互补滤波吧。Ki就是当前的 (|和加速度的模|-|重力加速度的模|)。n/m=0.2, 就是个系数,无量 ...

好的,谢谢!

作者: 大左_01    时间: 2012-4-5 20:53
请问合加速度是指哪个啊
作者: 0726silence    时间: 2012-4-26 20:24
在了解中,有点不懂
作者: 蜕变了    时间: 2012-10-15 16:39
顶一个
作者: CSU虚心向前    时间: 2016-8-30 14:15
顶一个
作者: 刘德华    时间: 2017-4-22 19:41
0.98和0.02分别起什么作用啊




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