没有合适的资源?快使用搜索试试~ 我知道了~
(word完整版)matlab一维线性Kalman滤波.doc
需积分: 5 0 下载量 37 浏览量
2022-10-24
02:07:10
上传
评论
收藏 182KB DOC 举报
温馨提示
试读
4页
(word完整版)matlab一维线性Kalman滤波.doc
资源详情
资源评论
资源推荐
(word 完整版)matlab 一维线性 Kalman 滤波
噪声矩阵的处理
1、假设温度计的测量误差为 0。5 度,从出厂说明书可得知此温度计的方差为 0。25。所以,温度计的每次测
量值都是有误差的,即 R=0。25。
2、假定第 k—1 时刻的温度值测得为 23。9 度,房间真实温度为 24.0 度,测量值的偏差为 0.1 度,即协方
差 P(k—1)=0。1^2。
3、假设测量温度时,外界的天气是多云,阳光照射时有时无,同时房间不是密封的,可能有微小的空气流动,
即引入过程噪声 W(k),其方差为 Q,大小假定为 Q=0。01(假如不考虑过程噪声的影响,即温度是恒定,则
Q=0,但这不可能)。
4、F、G、H 为系统状态转移矩阵,与系统维数有关.此为一维温度数据估计,故都为 1。
%功能说明:Kalman 滤波用于一维温度数据测量系统中
N=120;%采样点个数
CON=25;%室内温度理论值,在这个理论值的基础上受过程噪声会有波动
%对状态和测量初始化
Xexpect=CON*ones(1,N);%期望的温度是恒定的 25 度,但真实温度不可能会不变动
X=zeros(1,N);%房间各个采样时刻点的真实温度值
Xkf=zeros(1,N);%Kalman 滤波处理的状态,即估计值
Z=zeros(1,N);%温度计实际测量值
P=zeros(1,N);
%赋初值
X(1)=25。1;%假如房间的初始温度为 25.1 度
P(1)=0.01;%初始值的协方差
Z(1)=24.9;
Xkf(1)=Z(1);%将初始测量值 24。9 度作为滤波器的初始估计值
%噪声,下面默认环境噪声为高斯白噪声,参数设置为 Q,R,也可以根据实际情况设置大小
Q=0。01;
R=0.25;
W=sqrt(Q)*randn(1,N);%方差决定噪声大小
V=sqrt(R)*randn(1,N);%方差决定噪声大小
%系统矩阵
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 的影响,尽可能地逼近 X(k)
Z(k)=H*X(k)+V(k);
end
%第三步:Kalman 滤波
for k=2:N
X_pre=F*Xkf(k—1);%状态预测
智慧安全方案
- 粉丝: 3650
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0