分享我的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条回答
橘子先生
1楼-- · 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是什么还是看不懂
橘子先生
2楼-- · 2019-07-23 06:16
本帖最后由 橘子先生 于 2016-7-25 14:57 编辑
wszdxmh 发表于 2016-7-25 14:54
谢谢指正!应该是我打错了,我当时没注意。不过也能跑。。。

那那个49152是什么?而且我看好多人写的程序都是32764不是32768
Crystal子午123
3楼-- · 2019-07-23 12:04
顶顶顶
wszdxmh
4楼-- · 2019-07-23 17:29
 精彩回答 2  元偷偷看……
橘子先生
5楼-- · 2019-07-23 18:21
wszdxmh 发表于 2016-7-25 16:40
应该是32768,因为是65535/2,他们写成那样我也不知道是为什么。

哦,好吧。。
wszdxmh
6楼-- · 2019-07-23 23:31
橘子先生 发表于 2016-7-25 18:02
哦,好吧。。

我很怀疑是第一个共享代码的人写错了,后面的人都错了。

一周热门 更多>