基于 MATLAB 的卡尔曼滤波与最小二乘滤波仿真实验设计
一、实验原理:卡尔曼滤波器是一个最优化自回归数据处理算法,对于解决很大部分的问题,
他是最优、效率最高甚至是最有用的,其核心内容就是他的 5 条公式,具体见实验内容中详
细介绍。最小二乘法的核心思想是对于一系列观察值,找出一条最优化曲线使其与每个观察
值之间差值的平方和最小。
二、实验目的:运用 MATLAB 进行仿真实验可以更清楚直观系统的理解滤波理论设计思想及
其方法,并提高学生的科研能力和水平。通过 MATLAB 编程输入算法,利用其强大的矩阵运
算能力和优秀的图形界面功能输出结果,对增强教学效果可以起到很有效的作用,有利于学
生对算法进行更深入的理解,同时在设计仿真实验的过程中还可以提高学生使用 MATLAB 的
技能。
三、实验要求:
设计原始信号,随机产生噪声信号,设计代码,分别使用卡尔曼滤波和最小二乘滤波编程,
更换相应参数生成不同的滤波效果,进行科学地分析。
四 、实验内容及程序:
实验内容:
假设研究对象是一个房间的温度。根据经验判断,这个房间的温度是恒定的,但经验判
断有一定的上下偏差几度,把偏差看成是高斯白噪声,也就是这些偏差跟前后时间是没有关
系的而且符合高斯分配。另外,房间中用温度计测量,但温度计有一定的精确度,与实际值
有偏差。目前该房间有两个温度值:根据经验的预测值(系统预测值)和温度计值(测量值)。
假设该房间是 23 摄氏度,同时该值的高斯噪声的偏差是 5 度(如果上一时刻估算最有
温度值的偏差是 3,预测值是 4,则按照一类不确定度计算,平方和再开方为 5)如果温度
计该时刻测量值是 25 度,同时该值的偏差是 4 度。
卡尔曼滤波:
引入一个离散控制过程的系统。该系统可用一个线性随机微分方程来描述:
X(k)=A X(k-1)+B U(k)+W(k),再加上系统的测量值:Z(k)=H X(k)+V(k) ,X(k)是 k 时刻的系统状
态,U(k)是 k 时刻对系统的控制量,如果没有控制量,它可以为 0。A 和 B 是系统参数,对
于多模型系统,他们为矩阵。Z(k)是 k 时刻的测量值,H 是测量系统的参数,对于多测量系
统,H 为矩阵。W(k)和 V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声
(White Gaussian Noise),他们的 covariance 分别是 Q,R(这里我们假设他们不随系统状态变
化而变化)。其核心的五个公式为:
x(k | k 1) A x(k 1| k 1)
p(k | k 1) A p(k 1| k 1)A' Q
x(k | k) x(k | k 1) K (k)[z(k) H x(k | k 1)]
^ ^ ^
^ ^
^ ^
K (k)
p(k | k 1)
H
^
^
1
H p(k | k 1)H ' R
^ ^
p(k | k) (1 K (k)H ) p(k | k)
程序代码:
评论0
最新资源