本帖最后由 飛饵 于 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:积分时间
卡尔曼滤波太复杂了,先不考虑。
=======================================================================
看了两三天还是没懂原理,能用就行了吧。。。。
这个滤波效果怎样???
电机一直开着有震动,波形左边是晃动状态下,右边是平稳的。平稳时波动挺大,有0.2-0.6度左右。
一周热门 更多>