分享我的MPU6050+卡尔曼+一阶互补+二阶互补滤波

2019-07-21 06:32发布

本帖最后由 wszdxmh 于 2016-8-23 15:12 编辑

不说,上图
X-Kalman.png
X-Kalman滤波
Y-Kalman.png
Y-Kalman滤波
Z-Kalman.png
Z-Kalman滤波,这个滤得不是很好。
X-Thr.png
X轴三种滤波对比图
Big.png
放大图
一阶互补跟随快,但是抗干扰也会差一点,其他两个要等几个周期才会跟随比较好,应该是要更新参数。
上代码。
STM32F103VModel.zip (409.82 KB, 下载次数: 5987) 2016-7-22 09:53 上传 点击文件名下载附件
滤波代码

匿名上位机
ANO_TC匿名科创地面站v4.06.rar (13.66 MB, 下载次数: 17406) 2016-7-22 10:17 上传 点击文件名下载附件
匿名地面站V4.0

UCOSIII移植版
STM32F103C8T6Model-UCOSIII.zip (1.65 MB, 下载次数: 7163) 2016-8-23 15:11 上传 点击文件名下载附件
UCOSIII版


现在研究PID算法,有空再更。








友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
48条回答
橘子先生
2019-07-23 03:31
wszdxmh 发表于 2016-7-25 14:10
上面写得很清楚啊。
这个跟后面的算正负号有关系。

嗯,当加速度是1g的时候输出值是16384对吧?但是有点不明白你程序中加速度处理中
if (Accel_x<32764) x = Accel_x / 16384;
        else              x = 1 - (Accel_x - 49152) / 16384;
里面的32764和49152是什么意思,如果是2g的话,比较值不应该是32768吗?那个49152是什么还是看不懂

一周热门 更多>