算下去。卡尔曼滤波器的原理基本描述了,式(3)(4)(5)(6)(7)是5个基本公式。根,,,,据这5个公式,可以很容易地实现计算机程序。
f仿真思路
把房间看成是一个系统,然后对这个系统建模。已知房间的温度跟前一时刻的温度相同,所以A1没有控制量,所以Uk0。因此得出:X(kk1)X(k1k1)P(kk1)P(k1k1)Q因为测量的值是温度计的,跟温度直接对应,所以H1。X(kk)X(kk1)Kg(k)(Z(k)X(kk1))KgkPkk1Pkk1RP(kk)(IKgk)Pkk1现在模拟一组测量值作为输入。假设房间的真实温度为25度,模拟200个测量值,这些测量值的平均值为25度,但是加入了标准偏差为几度的高斯白噪声。为了令卡尔曼滤波器开始工作,需要告诉卡尔曼两个零时刻的初始值X00和P00。它们的值不用太在意,随便给一个就可以了,因为随着卡尔曼的工作,X会逐渐收敛。但是对于P,一般不要取0,因为这样可能会令卡尔曼完全相信给定的X00是系统最优的,从而使算法不能收敛。本列选了X001度,P0010。该系统的真实温度为25度,图中蓝线表示。图中红线是卡尔曼滤波器输出的最优化结果。
程序代码
clearN200w10wra
d
1Nx10a1fork2Nxkaxk1wk1e
dVra
d
1Nq1stdVRvvq12q2stdxRxxq22q3stdwRwwq32c02YcxvYcxVp10s10fort2N
fp1ta2pt1Rvvbtcp1tc2p1tRvvstast1btYtacst1ptp1tcbtp1te
dt1NplottsytYgtxbclearclccearclcclearN200w10wra
d
1Nx10a1fork2Nxkaxk1wk1e
dVra
d
1Nq1stdVRvvq12q2stdxRxxq22q3stdwRwwq32c02YcxvYcxVp10s10fort2Np1ta2pt1Rvvbtcp1tc2p1tRvvstast1btYtacst1ptp1tcbtp1te
dt1NplottsytYgtxb
f图1运行结果与分析从图1中可以看出,卡尔曼滤波的估计值能较好地逼近要估计的真实温度值。该列表明,卡尔曼滤波具有很好的效果。
fr