[STM32F1] 卡尔曼滤波

[复制链接]
3895|29
 楼主| 飞思捷芯 发表于 2016-7-11 17:26 | 显示全部楼层 |阅读模式
小弟最近在做一个小项目,其中有个功能是有关于称重测量的,选择的是24位的ad转换芯片,只是这个称重测量对数据的准确度要求很高,用一般的滤波方法满足不了客户的需要,想求助于卡尔曼滤波或者自适应卡尔曼滤波方法,今天也从理论的高度看了下这个算法,发现现在的问题是不会建立状态方程,对于状态方程(状态转移矩阵和驱动矩阵,还有测量矩阵)不明白是怎么建立起来的,原谅我现代控制理论学的不好,我感觉这也是从理论到实践的一个契机,希望能有好心的大哥,帮帮,提点我一下,万分感谢,如果真能应用成功的话,小弟请客去鼓浪屿喝茶
airwill 发表于 2016-7-11 18:44 | 显示全部楼层
谁有那么多时间给你讲课呢.
我觉得在这里等人给你讲课, 不如自己啃书去, 等看得差不多了, 对于具体的问题再拿来大家一起讨论比较合适.

如果一本书看不懂, 可以对照着几本书一起看,
还有书读百遍, 其义自现!
加油!
 楼主| 飞思捷芯 发表于 2016-7-11 19:20 | 显示全部楼层
airwill 发表于 2016-7-11 18:44
谁有那么多时间给你讲课呢.
我觉得在这里等人给你讲课, 不如自己啃书去, 等看得差不多了, 对于具体的问题 ...

嗯嗯,我是想看看能不能遇见做过这块的前辈,那样他一两句话都可能让我茅塞顿开,和看书是不一样的,这是算中投机吧,我也在看书啦,谢谢你哈
Soraka 发表于 2016-7-11 19:57 | 显示全部楼层
论坛里有卡尔曼滤波的代码
 楼主| 飞思捷芯 发表于 2016-7-12 12:46 | 显示全部楼层
Soraka 发表于 2016-7-11 19:57
论坛里有卡尔曼滤波的代码

嗯嗯,我去找找,谢谢哈
天灵灵地灵灵 发表于 2016-7-12 16:50 | 显示全部楼层
应该去问衡量专家啊。这个好像要用衡量器专用的ADC。
gejigeji521 发表于 2016-7-12 20:17 | 显示全部楼层
给楼主出个主意,可以在按下测量按钮后,通过FIFO的方式存储100个测量的值,求平均。效果更好,先测到的先丢弃。
Thethree 发表于 2016-7-12 21:20 | 显示全部楼层
楼主不如多读一些文献再结合网上的例子看一下
Rollo 发表于 2016-7-12 21:36 | 显示全部楼层
卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。
 楼主| 飞思捷芯 发表于 2016-7-13 10:21 | 显示全部楼层
Rollo 发表于 2016-7-12 21:36
卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于 ...

 楼主| 飞思捷芯 发表于 2016-7-13 10:22 | 显示全部楼层
Thethree 发表于 2016-7-12 21:20
楼主不如多读一些文献再结合网上的例子看一下

嗯,我搞定了,自适应的kalman更加优秀,谢谢
 楼主| 飞思捷芯 发表于 2016-7-13 10:23 | 显示全部楼层
gejigeji521 发表于 2016-7-12 20:17
给楼主出个主意,可以在按下测量按钮后,通过FIFO的方式存储100个测量的值,求平均。效果更好,先测到的先 ...

采样频率不能太高,存储100个太花时间了,我搞定了,自适应的kalman更加优秀,谢谢
 楼主| 飞思捷芯 发表于 2016-7-13 10:24 | 显示全部楼层
天灵灵地灵灵 发表于 2016-7-12 16:50
应该去问衡量专家啊。这个好像要用衡量器专用的ADC。

衡量专家,什么鬼,表示第一次听说,哈哈
 楼主| 飞思捷芯 发表于 2016-7-13 10:25 | 显示全部楼层
Thethree 发表于 2016-7-12 21:20
楼主不如多读一些文献再结合网上的例子看一下

嗯,我搞定了,自适应的kalman更加优秀,谢谢
天灵灵地灵灵 发表于 2016-7-14 23:13 | 显示全部楼层
飞思捷芯 发表于 2016-7-13 10:25
嗯,我搞定了,自适应的kalman更加优秀,谢谢

什么是卡尔曼滤波啊,你做的是C代码的吗,发来大家学习学习
 楼主| 飞思捷芯 发表于 2016-7-15 12:18 | 显示全部楼层
天灵灵地灵灵 发表于 2016-7-14 23:13
什么是卡尔曼滤波啊,你做的是C代码的吗,发来大家学习学习

你去论坛上搜卡尔曼滤波器,有几篇,其实是一篇,讲的很好,很简单,至于什么是卡尔曼滤波器,这个要涉及到很多东西了,卡尔曼是个大牛,现代控制理论开端的标志性人物,我老师以问过他一个问题为荣,哈哈,也不知道他怎么想的
gejigeji521 发表于 2016-7-15 15:50 | 显示全部楼层
飞思捷芯 发表于 2016-7-13 10:23
采样频率不能太高,存储100个太花时间了,我搞定了,自适应的kalman更加优秀,谢谢 ...

发来学习学习啊。
309030 发表于 2016-7-15 16:56 | 显示全部楼层
卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
Snow7 发表于 2016-7-15 20:23 | 显示全部楼层
数据滤波是去除噪声还原真实数据的一种数据处理技术, Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态. 由于, 它便于计算机编程实现
 楼主| 飞思捷芯 发表于 2016-7-15 21:39 | 显示全部楼层
Snow7 发表于 2016-7-15 20:23
数据滤波是去除噪声还原真实数据的一种数据处理技术, Kalman滤波在测量方差已知的情况下能够从一系列存在测 ...

谢谢,测量方差怎么才能得到呢?我现在一直把过程噪声和测量噪声都当做高斯白,貌似在称重测量时是不合理的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:置芯于一境

10

主题

107

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部