卡尔曼滤波学习笔记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
最新文章
- 利用C# Winform做Windows系统任务栏
- dragdrop 修改版
- js执行环境的深入理解
- 【POJ 2485】Highways(Prim最小生成树)
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
- 运行最快的安卓模拟器VirtualBox安装教程
- HDU 4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)
- 《More Effective C++ 》笔记
- JQuery判断子Iframe 加载完成的技术解决
- HBASE学习笔记--API
- C++输出中文字符(转)
- 中国产品众筹NO.1诞生
- Cannot resolve classpath entry: /Program Files/IBM/SQLLIB/java/db2java.zip
- 初识STM32中的USMART组件
- UGUI ContentSizeFitter之Button根据Text自适应
- css繼承
- Linux下的串口调试工具——Xgcom
- 9、链表 &; 状态机 &; 多线程
- 【抓包】【Charles】
- day25 模块04_模块和包
热门文章
- Hadoop优化之数据压缩
- MySQL replace into那些隐藏的风险
- 啊这......蚂蚁金服被暂缓上市,员工的大house没了?
- 基于混沌Logistic加密算法的图片加密与还原
- schema设计陷阱
- Linux学习进度记录(一)
- springboot补充
- Python使用property函数定义属性访问方法如果不定义fget会怎么样?
- PyQt(Python+Qt)学习随笔:QToolBox工具箱currentItem对应的index、text、name、icon、ToolTip属性
- PyQt(Python+Qt)学习随笔:QCommandLinkButton的特征及用途