卡尔曼滤波学习笔记1-Matlab模拟温度例子--代码比较乱,还需优化

温度模拟参数选取

xk 系统状态 实际温度
A 系统矩阵 温度不变,为1
B、uk 状态的控制量 无控制量,为0
Zk 观测值 温度计读数
H 观测矩阵 直接读出,为1
wk 过程噪声 温度变化偏差,常量1e-1
vk 测量噪声 读数误差,常量1e-6

clc;
clear all;
close all;

N = 200; % 迭代次数
%w(1)=0;
%w=randn(1,N);
W = 0; %系统控制矩阵
x(1) = 0;
A = 1; %温度模拟A为1
V = rand(1,N);
q1 = std(V);
%Rvv=q1.^2;
Rvv = 0.1;
q2 = std(x);
Rxx = q2.^2;
q3 = std(W);
%Rww=q3.^2;
Rww = 0.00001; %温度模拟Q为1e-6
%c=0.6;
c=1; %温度模拟H为1
for k = 1:N
Y(k) = 25 + sqrt(0.1)*rand(1);%温度模拟平均温度为25度 方差(协方差)为0.1的温度输入 测量方程,其中V为测量系统的噪声,c为测量系统的参数
end
p(1)=10; %协方差 初始值
s(1)=1; %最优估计 初始值
for t = 2:N
s(t) = A*s(t-1) + W;
p1(t) = A.^2*p(t-1) + Rww;
%%协方差估计 求当前时刻的估计值的偏差,a为系统参数,没有控制量,所以没有参数b,Rww为噪声
b(t) = c * p1(t) /(c.^2*p1(t) +Rvv);
s(t) = A *s(t) + b(t)*(Y(t) -A*c*s(t));
p(t) = p1(t) -c*b(t)*p1(t);

end
figure
plot(Y,‘g--‘);
hold on
plot(s,‘r--‘);

来源于:http://blog.csdn.net/s597471018/article/details/8275454

时间: 2024-08-27 14:15:36

卡尔曼滤波学习笔记1-Matlab模拟温度例子--代码比较乱,还需优化的相关文章

树莓派学习笔记——获取树莓派CPU温度

0 前言 本文通过文件操作读取树莓派CPU温度,在linux系统中任何设备的操作都被抽象成为文件读写,通过读取/sys/class/thermal/thermal_zone0/temp文件中的内容便获得树莓派CPU的温度.本文通过以下几个部分说明如何读取和应用该温度参数--1.shell脚本操作:2linux文件IO操作,3.python文件操作: 4.通过python requset上传至yeelink平台. 网上也有相似的文章,大致的方法为通过python获得CPU温度数据,然后在写入某个文

树莓派学习笔记——Python SQLite查询历史温度

0 前言 本文通过Python SQLite查询树莓派CPU的温度历史数据,在前面的博文中已经介绍了树莓派CPU温度获取,SQLite操作和利用Python插入历史数据,下面再介绍如何查询数据,本文主要分为三部分,第一部分为查询所有温度记录,第二部分获得最近一小时数据,第三部分为把获得结果格式化为字典类型. [相关博文] [树莓派学习笔记--索引博文]--更多博文请关注. [树莓派学习笔记--获取树莓派CPU温度] [树莓派学习笔记--定时向yeelink上传树莓派CPU温度] [树莓派学习笔记

树莓派学习笔记——Python SQLite插入温度记录

0 前言 本文使用python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度值.本文重点解释Python操作SQlite的具体方法,由于网上资料众多,重复部分不再复述只做到具体情况具体分析. [相关博文] [树莓派学习笔记--索引博文]--更多博文请关注. [树莓派学习笔记--获取树莓派CPU温度] [树莓派学习笔记--定时向yeelink上传树莓派CPU温度] [树莓派学习笔记--SQLite操作简述] 1 创建数据库和空表

sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map)

sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map) 这几天学习和查看了jQuery和Property这两个很流行的前端库的御用选择器组件Sizzle.js的源代码,收获还是相对多的!之前一直做使用Java语言开发,其丰富的组件类库使得开发效率那叫一个快呀!突然转来做JavaScript一时间还有点儿不适应(快半年了),不过自从看见那么多漂亮的网站和对JavaScript接触的越来越多,也发现了其中的一些乐趣.正如自己一直坚信的那样,编程语言仅仅是工具,重要的是编程思想!使用Jav

Swift 2.0学习笔记——我的第一行Swift代码

Swift 2.0学习笔记--我的第一行Swift代码 当第一次看到下面代码时我石化了,这些代码是什么东东?单词拼出来的? import Foundation var str = "Hello World" print(str) 晕晕.好吧,低头继续往下看,哦明白了 第一句:import Foundation 表示引入Foundation框架. 什么是Foundation框架? Foundation是OS X和iOS应用程序开发的基础框架,它包括了一些基本的类,如数字.字符串.数组.字

Swift 2.0学习笔记——使用Web网站编写Swift代码

Swift 2.0学习笔记--使用Web网站编写Swift代码 Swift程序不能在Windows其他平台编译和运行,有人提供了一个网站swiftstub.com,左栏是代码编辑窗口,右栏是运行结果窗口.可以在任何平台下编译和运行Swift程序.

Dynamic CRM 2013学习笔记(二十七)无代码 复制/克隆方法

前面介绍过二种复制/克隆方法:<Dynamic CRM 2013学习笔记(十四)复制/克隆记录> 和<Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能>. 第一种方法,是复制单个同类型实体:第二种方法是在list界面,复制多条记录到另一个实体:这二种方法都要coding. 下面介绍一种复制方法,无需代码,就可以在创建时,把另一实体的相关信息克隆出来. 一.需求 现有二个实体,一个RC, 一个RC Change(RC的子实

CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要可以分类为: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机—内核. 多年前我们一直为IE6兼容烦恼,为它没少加

FullBNT学习笔记之一(matlab)

首先来看一个草地湿润模型,Cloudy表示天气是否多云,C=1(F)表示False,C=2(T)表示True,一下表示均相同,Sprinklet表示洒水车是否出动,Rain表示是否下雨,WetGrass表示草地是否是湿的.旁边的表格表示各种条件概率. 贝叶斯网络表示:BNT中使用矩阵方式表示贝叶斯网络,即若节点i到j有一条弧,则对应矩阵中(i,j)值为1,否则为0.上图是一个草地潮湿原因模型.我们使用matlab画出建立好的贝叶斯网络,可以求出单个节点后验概率和多个节点后验概率. matlab程