• 大小: 0M
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: 其他  

资源简介

3.2.2kalman_tempreture.m

资源截图

代码片段和文件信息

% Kalman滤波用在一维温度数据测量系统中
function main
N=120;%采样点的个数,时间单位是分钟,可理解为实验进行了60分钟的测量
CON=25;%室内温度的理论值,在这个理论值的基础上受过程噪声会有波动
%对状态和测量的初始化
Xexpect=CON*ones(1N);%期望的温度是恒定的25度,但正是温度不可能这样
X=zeros(1N);%房间各时刻真是温度值
Xkf=zeros(1N);%卡尔曼滤波处理的状态,也叫估计值
Z=zeros(1N);%温度计测量值
P=zeros(1N);
%赋初值
X(1)=25.1;%假如初始房间温度为25.1度
P(1)=0.01;%初始值的协方差
Z(1)=24.9;
Xkf(1)=Z(1);%初始测量值为24.9度,可以作为滤波器的初始估计状态
%噪声
Q=0.01;
R=0.25;
W=sqrt(Q)*randn(1N); %方差决定噪声的大小
V=sqrt(R)*randn(1N); %方差决定噪声的大小
%系统矩阵
F=1;
G=1;
H=1;
I=eye(1);%本系统状态为一维
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%模拟房间温度和测量过程,并滤波
for k=2:N
    %第一步:随时间推移,房间真实温度波动变化
    %k时刻房间的真实温度,对于温度计来说,这个真实值是不知道的
    %但是它的存在又是客观真实,读者要深刻领悟这个计算机模拟过程
    X(k)=F*X(k-1)+G*W(k-1);
    
    %第二步:随时间推移,获取实时数据
    %温度计对k时刻房间温度的测量,Kalman滤波是站在温度计角度进行的
    %他不知道此刻真实状态X(k)只能利用本次测量值Z(k)和上一次估计值Xkf(k)
    %来做处理其目标是最大限速地降低测量噪声R的影响,尽可能
  

评论

共有 条评论