【软件类】个人对互补滤波公式的解释,欢迎大家一起讨论

2020-02-11 09:07发布

做飞思卡尔的平衡车有三年了,我今天想分享一下自己的一点互补滤波上的一点心得解释,欢迎拍砖。

公式:Angle = (0.98)*(Angle + Gyro * dt) + (0.02)*(Acc);

1、其中Angle+Gyro*dt是积分部分。(角度+角速度*取样周期)。
2、(0.98)*(Angle + Gyro * dt),是高通部分,作用于陀螺仪上。
3、(0.02)*(Acc)是低通部分,作用于加速度计。
4、其中0.98,0.02是可以根据自己的情况修改的。公式原样应该是Angle = (a)*(Angle + Gyro * dt) + (1-a)*(x_acc);
时间常数t=(a*dt)/(1-a) , 得到a=t/(t+dt)。dt为取样周期,t为时间常数自己设定,一般小于1。
比如取样周期为100HZ,也就是0.01s,那么dt=0.01。时间常数设为0.5(对于不同的系统都不一样,自己试验),那么a=0.5/(0.5+0.01)=0.9804。
那么Angle = (0.9804)*(Angle + Gyro * dt) + (0.0196)*(Acc);
5、对于第4点,如果觉得有问题,我觉得还可以这么理解:陀螺仪采集回来的总是有滞后的,但是加速度计总是超前的,两者是需要综合的,我们相信陀螺仪多一点,相信加速度计少一点,是采集回来的角度可以更好的适应我们的系统。

PS:对于平衡车这个系统,个人认为互补滤波已经足够,没必要用那么高深的卡尔曼。说的错的地方请大神指出,也希望自己没误导友友们。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
77条回答
rockyyangyang
1楼-- · 2020-02-17 11:35
wbxjtu 发表于 2014-9-14 22:43
互补滤波从公式上看就是相信谁多一点,很多时候硬件上电机好的话能比滤波算法更好改善平衡 ...

不可能吧,电机的好坏跟我角度的滤波有很大的关联?
如果说硬件上的滤波比软件滤波来的好,这肯定的,前提是也需要有一定的水平才能做得到。
rockyyangyang
2楼-- · 2020-02-17 12:54
wljcom 发表于 2014-9-14 22:15
和倒立摆是不是有异曲同工之妙? 我该好好看看学习下

当然,只要你学会在一个系统中,在类似的系统,都是一样的。
yigang
3楼-- · 2020-02-17 16:53
 精彩回答 2  元偷偷看……
Hearthbeats
4楼-- · 2020-02-17 21:45
  一阶滞后滤波算法如下, Yn = aXn + (1-a) Yn-1  其中Xn 为本次采集值,Yn-1为上次滤波器的输出值,a为滤波系数,其值通常远小于1,Yn为本次的输出值。
由上式可以看出,滤波器的输出值主要取决与上次滤波的输出值,本次采集值对本次滤波输出的贡献是比较小的,但还是由一些修正作用。
以上是一阶滤波算法的本意。那各位讨论的是关于平衡车的,但是感觉类似,只不过将其中的采样值和前一次的输出值换成了陀螺仪和加速计,当然前面的系数决定了到底哪个占的分量重一些。
luckner
5楼-- · 2020-02-17 23:38
oner 发表于 2014-9-11 11:20
互补滤波不能有效纠正陀螺仪零漂,而卡尔曼可以有效纠正陀螺仪零漂问题,虽然高深,但确有其其它滤波器不能 ...

可以把mit的题目发一下么
luckner
6楼-- · 2020-02-18 04:32
sunfulong 发表于 2014-9-12 08:08
仅仅是平衡闭环的话是无法消除零漂的问题的,加了速度环之后,零漂的现象才能有效消除,只是一直没有很好 ...

组委会限制陀螺仪的目的是为了限制传感器的价格   防止一些学校花重金买好的传感器  这样就会相对不公平

一周热门 更多>