有没有玩过MPU6050的,二阶互补滤波什么原理?

2019-07-21 07:52发布

本帖最后由 飛饵 于 2018-11-19 18:33 编辑

最近在做平衡小车,角度融合我试了下一阶互补滤波,效果一般般,参数没调好的话有很大的滞后,而且不够平滑。

然后网上找了二阶互补的代码,没看明白。一阶互补滤波计算很简洁,也很能通俗地解释,就是对陀螺仪和加速度计取值的权衡。
二阶互补滤波好像是一堆公式推导的?找了好多数字滤波器的资料也没总结出来。。。
能不能通俗解释下?

float K2 =0.2;  // 对加速度计取值的权重
float x1,x2,y1; //运算中间变量
float angle ;//滤波角度输出

void Erjielvbo(float angle_m,float gyro_m)
{
      x1 = (angle_m - angle) * (1 - K2) * (1 - K2);
      y1 = y1 + x1 * dt;
      x2 = y1 + 2 * (1 - K2) * (angle_m - angle2) + gyro_m;
      angle = angle + x2 * dt;
}

angle_m:加速度求出的角度
gyro_m:角速度
dt:积分时间




卡尔曼滤波太复杂了,先不考虑。


=======================================================================
看了两三天还是没懂原理,能用就行了吧。。。。
滤波.png
这个滤波效果怎样???
电机一直开着有震动,波形左边是晃动状态下,右边是平稳的。平稳时波动挺大,有0.2-0.6度左右。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。