该文章内容出于《卡尔曼滤波原理及应用-Matlab仿真》
在网上看了不少与卡尔曼滤波相关的博客、论文,要么是只谈理论、缺乏感性,或者有感性认识,缺乏理论推导。能兼顾二者的少之又少,直到我看到了国外的一篇博文,真的惊艳到我了,不得不佩服作者这种细致入微的精神,翻译过来跟大家分享一下,原文链接:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/
CSDN已经被翻译过的链接:
https://blog.csdn.net/u010720661/article/details/63253509?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162919733216780366511849%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162919733216780366511849&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-63253509.pc_search_similar&utm_term=%E5%8D%A1%E5%B0%94%E6%9B%BC%E6%BB%A4%E6%B3%A2&spm=1018.2226.3001.4187

% 程序说明:Kalman滤波用于温度测量的实例
function main
N=120;%采样点的个数,时间单位是分钟,可理解为实验进行了60分钟的测量
CON=25;%房间温度在25摄氏度左右室内温度的理论值,受过噪声会波动
%对状态和测量初始化
Xexpect=CONones(1,N);%期望的温度是25摄氏度,但真实温度不可能这样
X=zeros(1,N); %房间各时刻真实温度值
Xkf=zeros(1,N);%卡尔曼滤波处理的状态,也叫估计值
Z=zeros(1,N);%温度计测量值
P=zeros(1,N);
%赋初值
X(1)=25.1;%假如初始值房间温度为25.1℃
P(1)=0.01;%初始值的协方差
Z(1)=24.9;%温度计测量的值为24.9℃
Xkf(1)=Z(1);%初始测量值为24.9℃,可以作为滤波器的初始估计状态
%噪声
Q=0.01;%W(k)的方差,预计过程中的误差
R=0.25;%V(k)的方差,观测过程中的误差
W=sqrt(Q)
randn(1,N);%方差决定噪声的大小
V=sqrt®randn(1,N);%方差决定噪声的大小
%系统矩阵
F=1;%X(k-1)到X(k)的状态矩阵
G=1;%控制矩阵
H=1;%观测量矩阵
I=eye(1); %本系统状态为1维
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%模拟房间温度和测量过程,并过滤
for k=2:N
%第一步:随着时间的推移,房间真实温度波动变化
%预测房间温度
X(k)=F
X(k-1)+GW(k-1); % K状态的均值,FX(k-1)为X(k-1)到X(k)的转变,G*W(k-1)为外部控制量

%第二步:随着时间推移,获取实时数据
%对k时刻的温度进行测量
%不知道下X(k)时刻的真实值,只能利用本次的测量值Z(k)和上一次的估计值
%Xkf(k)来做处理降低R的噪声危害(观测量的噪声)尽可能逼近X(k),这是卡尔曼滤波目的所在Z(k)=H*X(k)+V(k);%测量值的均值
X_pre=F*Xkf(k-1);%状态预测  状态矩阵*上一次的估计值 ,初始时刻将测量值24.9赋值给估计值
P_pre=F*P(k-1)*F'+Q; %协方差预测 P(k-1)=(真实值-测量值)*(真实值-测量值)
Kg=P_pre*inv(H*P_pre*H'+R); %计算卡尔曼增益
e=Z(k)-H*X_pre;%误差为测量值减去估计值
Xkf(k)=X_pre+Kg*e; %K时刻的估计值为k-1时刻的测量值加上
P(k)=(I-Kg*H)*P_pre;%K时刻的偏差

end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%计算误差
Err_Messure=zeros(1,N);%测量值与真实值之间的偏差
Err_Kalman=zeros(1,N);%卡尔曼估计与真实值之间的偏差
for k=1:N
Err_Messure(k)=abs(Z(k)-X(k));
Err_Kalman(k)=abs(Xkf(k)-X(k));
end
t=1:N;
figure(‘Name’,‘Kalman Filter Simulation’,‘NumberTitle’,‘off’);
%依次输出理论值,叠加过程噪声(受波动影响)的真实值
%温度计测量值,卡尔曼估计值
plot(t,Xexpect,’-b’,t,X,’-r.’,t,Z,’-ko’,t,Xkf,’-g*’);
legend(‘expected’,‘real’,‘measure’,‘kalman extimate’);
xlabel(‘sample time/s’);
ylabel(‘temperature/℃’);
%误差分析图
title(‘Kalman Filter Simulation’);
figure(‘Name’,‘Error Analysis’,‘NumberTitle’,‘off’);
plot(t,Err_Messure,’-b.’,t,Err_Kalman,’-k*’);
legend(‘messure error’,‘kalman error’);
xlabel(‘sample time’);
%%%%%%%%%%%%%%%%%%%%%%%%%

卡尔曼滤波室内温度估计相关推荐

  1. 翻译: 使用非线性卡尔曼滤波来估计信号

    似乎没有特定的近似 [非线性] 过滤器始终比任何其他过滤器更好,尽管 .. . 任何非线性滤波器都比严格线性滤波器好.1 所述卡尔曼滤波器 是一种工具,估计范围广泛的过程的变量.用数学术语来说,我们会 ...

  2. Eviews 9.0新功能——估计方法(ARDL、面板自回归、门限回归)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 9.2 估计功能 eviews9.0下载链接: ...

  3. 【卡尔曼滤波】我所理解的卡尔曼滤波

    卡尔曼滤波在我当学生的时候就用过,但是当年我似乎就是套公式,没有理解其精髓,加之时间久了有点模糊,突然需要指导学生使用,有了强烈的陌生感觉,不得不逼自己再一次捡起.自己学会和教会别人是学习的两个层次, ...

  4. python卡尔曼滤波室内定位_基于Unscented卡尔曼滤波的室内定位

    Computer Engineering and Applications 计算机工程与应用 2014 , 50 ( 14 ) 1 引言 无线传感器网络是 21 世纪 21 个最具影响力的技术 之一, ...

  5. 无人机姿态解算_扩展卡尔曼滤波(2)

    一.扩展卡尔曼滤波 KF和EKF的公式对比(基本没差别) 二.扩展卡尔曼五个公式 利用扩展卡尔曼滤波估计四元数. 下图是论文中的截图.可以和前面的卡尔曼滤波估计高度文章的那五个公式对应一下. 观测矩阵 ...

  6. 深度解析卡尔曼滤波在IMU中的使用

    众所周知卡尔曼滤波在处理IMU传感器数据融合中作用巨大,但在实际实现起来并非那么容易:本文从MPU6050入手,分析卡尔曼滤波的使用. 本篇文章需要你在夜深人静的时候.先去冲一杯咖啡.准备一张纸.一支 ...

  7. 随机数字信号处理期末大报告——基于卡尔曼滤波的自由落体运动目标跟踪MATLAB实现

    完整的实验报告下载随机数字信号处理期末大报告-基于卡尔曼滤波的自由落体运动目标跟踪.docx-机器学习文档类资源-CSDN下载 ​​​​​​ 程序包及所需数据下载 target tracking us ...

  8. 卡尔曼滤波原理及实现

    卡尔曼滤波原理及实现 前一段时间,做项目研究了一下卡尔曼滤波,并且在项目当中实现了一个物体跟踪的功能,所以,借着新鲜劲儿,本次博客对卡尔曼滤波进行一次整理. 卡尔曼滤波是什么 卡尔曼滤波能做什么 卡尔 ...

  9. 卡尔曼滤波的原理与思想

    卡尔曼滤波是什么 卡尔曼滤波适用于估计一个动态系统的最优状态.即便是观测到的系统状态参数含有噪声,观测值不准确,卡尔曼滤波也能够完成对状态真实值的最优估计.网上大多数的教程讲到卡尔曼的数学公式推导,会 ...

最新文章

  1. 北大陈平原教授:写出优秀的学术论文,“小题大做”是关键
  2. python【蓝桥杯vip练习题库】ADV-96复数求和
  3. 数据中台(四)数栈,企业级一站式数据中台PaaS
  4. 【Markdown/typora】程序员写博客2分钟简单入门
  5. C语言typedef小结1(转载自百度百科)
  6. 深圳腾讯java小星星_腾讯自研沙盒手游《手工星球》邀你共赴星派对,来CJ现场一起嗨!...
  7. cetk使用方法--nand flash测试
  8. 海贼王为什么画风突变_什么是突变测试?
  9. unityios开发--加载视频以及加载完成之后自动跳转 .
  10. java实体类属性非空判断工具类
  11. 复杂sql 查询编写方法_学习SQL:如何编写复杂的SELECT查询
  12. 向前看:联想未来可期
  13. Python手册(Machine Learning)--statsmodels(TimeSeries)
  14. TCP协议-TCP粘包问题
  15. 内网信息收集(手动收集本机信息)
  16. 主元分析matlab,主元分析不同方法计算结果不一样
  17. Google Play上架App设置隐私政策声明问题
  18. ixgbe 如何开启vf
  19. 关于“primordials is not defined”报错的解决办法 - 解决报错篇
  20. 中心极限与大数定理律的关系_CLT 中心极限定理

热门文章

  1. Python 采集87个手绘风格PPT模板
  2. 技能提升之word中如何优雅的输入根号3
  3. c语言报告西电,c语言课程设计报告西安电子科技大学.docx
  4. 国产国脑与腾讯会议配合挺默契
  5. 有一群海盗(不多于20人),在船上比拼酒量。
  6. 如何快速实现抖音分享与第三方登录?
  7. AD 删除原理图图纸外的器件
  8. 分享湖南软大自动健康打卡思路
  9. 毕业设计 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别
  10. vivo7.0系统手机最完美激活Xposed框架的教程