搜索
bottom↓
回复: 53

卡尔曼滤波器最大的优点是什么啊,多输入输出的控制算法一般用什么啊

[复制链接]

出0入0汤圆

发表于 2008-6-7 15:54:35 | 显示全部楼层 |阅读模式
我想知道卡尔曼滤波器最大的优点是什么啊,多输入输出的控制算法一般用什么啊
控制很弱  想知道一下,PID是很好,有些系统还是不适合

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2008-6-7 16:05:17 | 显示全部楼层
太多东西看不懂,数学功底不好啊,想让有经验的人介绍一下经验,我再慢慢学习。
另外感觉有些高校个别人出书故弄玄虚,让人郁闷。

出0入0汤圆

发表于 2008-6-7 16:18:18 | 显示全部楼层
哎 本科没学好 现代控制理论全混过去了 帮顶。。。。

MIMO系统书本上的方法就是解耦 再分别控制
有用单神经元PID算法做锅炉磨煤机控制的 效果可以


卡尔曼滤波器。。。。 光知道名字了

出0入0汤圆

发表于 2008-6-7 16:56:41 | 显示全部楼层
貌似卡尔曼对被控对象的数学模型及噪声的分布有较高的要求,模型没弄好,滤波结果会偏离很远,而且,很容易发散。

出0入0汤圆

发表于 2008-6-9 12:13:11 | 显示全部楼层
卡尔曼滤波器主要解决具有惯性特征的滤波问题。比如基于序列图像的目标跟踪,运动目标的前后两帧图像具有运动特性,应用卡尔曼滤波器效果较好。

出0入0汤圆

发表于 2009-11-16 14:29:26 | 显示全部楼层
1.    什么是卡尔曼滤波器
在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。卡尔曼是一个人的名字。
卡尔曼全名Rudolf Emil Kalman,1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。
如果对这编论文有兴趣,可以点击此处下载 ourdev_503775.pdf(文件大小:167K) (原文件名:Kalman1960.pdf)
简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
2.卡尔曼滤波器的介绍
为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。
在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。
假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。
好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。
假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。
由于我们用于估算k时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的covariance来判断。因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。
现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。
就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值,是不是很神奇!
下面就要言归正传,讨论真正工程系统上的卡尔曼。
3.    卡尔曼滤波器算法
在这一部分,我们就来描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。
首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
X(k)=A X(k-1)+B U(k)+W(k)
再加上系统的测量值:
Z(k)=H X(k)+V(k)
上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。
对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1)
式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。
到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covariance:
P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)
式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示A的转置矩阵,Q是系统过程的covariance。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。
现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):
X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3)
其中Kg为卡尔曼增益(Kalman Gain):
Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4)
到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:
P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)
其中I 为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。
卡尔曼滤波器的原理基本描述了,式子1,2,3,4和5就是他的5 个基本公式。根据这5个公式,可以很容易的实现计算机的程序。

出0入0汤圆

发表于 2009-11-16 14:58:39 | 显示全部楼层
楼上写的好,学习了!

出0入0汤圆

发表于 2009-11-20 20:30:00 | 显示全部楼层
好文章,不得不顶.

出0入0汤圆

发表于 2009-11-21 17:52:36 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2009-11-21 18:38:43 | 显示全部楼层
卡尔曼滤波器不要求所分析的过程是平稳的

出0入0汤圆

发表于 2009-11-23 09:26:37 | 显示全部楼层
一般:
进【惯性信号+白噪声】出【惯性数据】

惯导:
进【陀螺仪角速率 + 加速度角度】 出相对真实【姿态角度】

或者
进【陀螺仪角速率 + 地磁方向角度】 出相对真实【航向角】

或者惯性传感器件与GPS数据融合等

出0入0汤圆

发表于 2009-11-23 10:19:00 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-11-24 20:25:54 | 显示全部楼层
应该给5楼裤头,感觉 卡尔曼滤波器就是一个变系数的微分滤波器
Pn=(P-x)/P*P(n-1)+x/P*Pin   
就是这个X是变化的.卡尔曼滤波器的关键就在于去这个X的值

出0入0汤圆

发表于 2009-11-30 21:49:32 | 显示全部楼层
Re:feng_matrix
>惯导:
>进【陀螺仪角速率 + 加速度角度】 出相对真实【姿态角度】

這個是有問題的,因為加速度作角度估計的「協方差」項並不是隨機的,而是噪訊+外力項。噪訊協方差可以用實驗去猜。而外力項是多少則無從得知。這也是站上朋友用Kalman時,用固定方差會造成效果不佳的原因。四軸可能還好,UAV這個效應很明顯,以目前國外的文獻和實驗來看,先用DCM作修正後再進Kalman會比較好。

出0入0汤圆

发表于 2009-11-30 22:22:40 | 显示全部楼层
MARK 卡尔曼滤波器

出0入0汤圆

发表于 2009-11-30 22:42:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-30 23:52:29 | 显示全部楼层
膜拜5楼

出0入0汤圆

发表于 2009-12-1 08:10:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-1 09:09:48 | 显示全部楼层
mark

卡尔曼滤波器的作用是不是这样理解:多个不同方法并且不太可靠的测量值经过卡尔曼滤波器算法后 = 比较可靠的测量值?

出0入0汤圆

发表于 2009-12-1 10:30:32 | 显示全部楼层
【13楼】 g921002

无累积误差的绝对姿态测量需要有测量绝对参考轴,惯性导航选择的就是重力参考轴
但仅有一根参考重力参考轴只能算出ROLL与PITCH两轴,并且由于加速度传感器器不区别重力加速度与外力加速度
当有长时间外力作用时,计算所得的重力方向与实际是有差别的,比如UAV在做长时间大角度盘旋时
增加DCM其实就是再引入另一个绝对参照物:地磁轴,有了地磁就可以再算YAW与PITCH两轴,冗余一轴
一般AHRS都有9传感器:三轴陀螺仪+三轴加速度+三轴地磁,如同ADIS16405就是这样组合的,再加GPS形成组合导航

四轴只是航模级简单应用,姿态反馈仅在水平悬停时必须,大角度机动飞行其实都是肉眼遥控+陀螺仪角速度负反馈即可
根本不需要全部三轴绝对姿态角的演算,所以一般玩玩的四轴不装备三轴地磁传感器
如果是航模直升机,其主旋翼上本身就装有稳定小翼ROLL/PITCH已有增稳,甚至仅装备一个YAW轴的陀螺仪即可遥控飞行了

g921002 有兴趣可参考我在此贴25楼的示意图:http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3386961

出0入0汤圆

发表于 2010-2-3 00:41:47 | 显示全部楼层
remark

出0入0汤圆

发表于 2011-3-7 14:55:00 | 显示全部楼层
有点懂了

出0入0汤圆

发表于 2011-3-7 14:55:22 | 显示全部楼层
卡尔曼滤波还真是有点难懂

出0入0汤圆

发表于 2011-3-15 15:49:34 | 显示全部楼层
回复【5楼】1984pqp
-----------------------------------------------------------------------

好贴.顶

出0入0汤圆

发表于 2011-4-18 11:29:43 | 显示全部楼层
上面介绍的卡尔曼,是最直白的,可以看作入门时简单的对卡尔曼有个印象,真正的卡尔曼我认为主要是建立模型,对数学知识要求很高

出0入0汤圆

发表于 2011-4-18 17:37:46 | 显示全部楼层
为什么我下载不了吗?谁能发我一份卡尔曼滤波计算和上面的源程序87867861@qq.com在这里先谢谢大家了

出0入0汤圆

发表于 2011-4-18 21:05:22 | 显示全部楼层
feng_matrix 悟
讲的在理啊!!!顶~

出0入0汤圆

发表于 2011-11-25 21:26:04 | 显示全部楼层
学习了啊

出0入0汤圆

发表于 2011-12-9 01:35:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-10 12:46:03 | 显示全部楼层
强大啊

出0入0汤圆

发表于 2011-12-10 14:30:03 | 显示全部楼层
回复【10楼】feng_matrix  悟
一般:
进【惯性信号+白噪声】出【惯性数据】
惯导:
进【陀螺仪角速率 + 加速度角度】 出相对真实【姿态角度】
或者
进【陀螺仪角速率 + 地磁方向角度】 出相对真实【航向角】
或者惯性传感器件与gps数据融合等

-----------------------------------------------------------------------

惯导:
进【陀螺仪角速率 + 加速度】 出【姿态,速度,位置】
VG:
进【陀螺仪角速率 + 加速度角度】 出相对真实【Pitch Roll 姿态角度】
AHRS:
进【陀螺仪角速率 + 加速度角度+ 地磁方向角度】出相对真实【姿态角度】

出0入0汤圆

发表于 2011-12-24 19:22:35 | 显示全部楼层
卡尔曼滤波器是最优化自回归数据处理算法。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。广泛应用于机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导_弹追踪等等

出0入0汤圆

发表于 2011-12-27 21:23:54 | 显示全部楼层
关注

出0入0汤圆

发表于 2011-12-29 15:45:05 | 显示全部楼层
其实也就是调几个参数就行了

出0入0汤圆

发表于 2011-12-29 17:44:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-29 21:12:41 | 显示全部楼层
回复【5楼】1984pqp  
-----------------------------------------------------------------------

我觉得实在是讲的深入浅出了,但好像还是没懂

出0入0汤圆

发表于 2012-1-7 20:06:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-11 10:16:49 | 显示全部楼层
mark,5楼写的很详细啊~

出0入0汤圆

发表于 2012-2-17 22:03:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-17 23:09:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-23 10:36:56 | 显示全部楼层
回复【31楼】AirPig  空中飞猪
-----------------------------------------------------------------------
总结得不错。学习了。

出0入0汤圆

发表于 2014-6-6 17:03:37 | 显示全部楼层
xsq2043 发表于 2008-6-7 16:05
太多东西看不懂,数学功底不好啊,想让有经验的人介绍一下经验,我再慢慢学习。
另外感觉有些高校个别人出 ...

其实你应该看国外的好的原版书籍,中译本的都不要看。
你会发现“理论和数学是第一位”。而不是没有用。

出0入0汤圆

发表于 2014-6-6 19:39:31 | 显示全部楼层
1984pqp 发表于 2009-11-16 14:29
1.    什么是卡尔曼滤波器
在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。卡尔曼是一个人的名字。 ...

很详细,学习中。。。

出0入0汤圆

发表于 2014-6-6 20:08:05 来自手机 | 显示全部楼层
学习了,字数补丁

出0入0汤圆

发表于 2014-6-6 20:46:34 来自手机 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2014-6-7 00:50:00 | 显示全部楼层
学习了

出0入0汤圆

发表于 2014-6-9 16:35:47 | 显示全部楼层
g921002 发表于 2009-11-30 21:49
Re:feng_matrix
>惯导:
>进【陀螺仪角速率 + 加速度角度】 出相对真实【姿态角度】

DCM怎么修正呢,可以指点下吗?

出0入16汤圆

发表于 2014-6-10 09:31:50 | 显示全部楼层
解释的很入门,谢谢,开始关注这个

出0入0汤圆

发表于 2014-8-21 15:50:44 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2014-8-22 16:06:49 | 显示全部楼层
学习了,感觉好难的样子,不知道咋用

出0入0汤圆

发表于 2014-12-20 08:45:30 | 显示全部楼层
我个人觉得 他的优点嘛,很明显,可以快速递归滤波,可以提高系统响应速度,缺点嘛就是要用高档的CPU  没浮点的基本跑不动。  如果不用浮点数,怎么做KALMAN? 还请高手赐教。

出0入0汤圆

发表于 2014-12-20 13:19:25 | 显示全部楼层
先MARK!!!!!

出0入0汤圆

发表于 2014-12-20 18:39:11 | 显示全部楼层
经典卡尔曼用在四轴上不太好
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 02:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表