[求助]卡尔曼滤波如何确定Q、R
对这样一个系统,应该如何建立卡尔曼滤波方程'=*'+'-------状态方程y(k)='+v(k)----------观测方程其中,w、v代表系统噪声和观测噪声,假设已经可以得到w、v的方差为:t1,t2.采样间隔为:Ta,b,c,d,e,f均为常数。建立了状态方程,然后,我将如何确定系统的Q,R,P和初值,主要是表达式我不知道该如何确定,知道了表达式,我就可以直接编程了。那位高手能帮帮我 马上要写论文了,实在是着急,没有时间去从头整理这方面的资料!在这里拜托各位了!谢谢!!!
[ 本帖最后由 cdwxg 于 2006-8-5 20:03 编辑 ] 我们本着学知识的态度<BR>希望大家对该问题进行下分析。 Q,R矩阵的选取是现在还未很好解决的一个难题。P矩正可通过求解Riccati方程求解,要是谁能很好解决Q R的选取那就很了不起了。不过现在有一些常用的经验法来选取Q R但是效果有时不是很好 卡尔曼滤波要应用在具体的识别方法当中,怎样选择Q/R矩阵,已经超出了卡尔曼滤波。<br>建议深入研究识别方法。<br> 状态性能泛函增益矩阵中的Q,R不好定,一般根据能量原则,选取Q=,R为一个单位阵。Kalman滤波器的增益矩阵中的Q,R一般是根据输入噪声,量测噪声假定的。
参数已不属卡尔曼滤波范畴,其应与被研系统相关!希望以下资料有所帮助!
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是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个公式,可以很容易的实现计算机的程序。 确切如下:
Q=W*w';
R=V*V'. 有没有其他的什么kalman方法来解决? 好像H(infinity)滤波可以解决这个问题! fjh009003:我碰到了和你一样的问题,不知道你解决了没有?能否联系我?谢谢1 Kalman滤波的缺点是十分明显的,正因为这样转用H∞滤波热了起来!
碰到同样的问题
希望大家能和我联系,共同探讨qq 38093155 有没有搞错,6楼的兄弟答非所问,还给他分数?Q,R的选取的确是和你量测和系统噪声的相关统计特性有关,目前的理论做法是通过对实验数据(量测数据和系统动力学方程建模)来进行估计,这些论文和书很多,但是估计出来的值是不好用的,因为量测噪声的统计特性的建模的准确性,系统在不同的环境下表现不同等,都有影响。工程上,是用实验试参的方法定的Q,R
论文里可以建模分析
回复 13楼 的帖子
对于求助或者讨论的帖子,只要能够提出自己的见解,表现积极,一般都会给予奖励,以资鼓励。6楼给出了自己的观点,虽然没有进一步分析。当然,对于卡尔曼滤波的描述属于资料的提供,对于相互学习和探讨也是有帮助的!总之,我们希望论坛的各位朋友,在知识交流和学术探讨方面,积极参与,为论坛增添一份活力! 我也在做kalman方面的仿真,但是各个参数的选取和变量是输入不会,应该怎么弄啊?
页:
[1]
2