作者Ecampus ()
看板MATLAB
标题[请问] 请问我这个回圈的CODE,写得对吗 @@??
时间Wed May 23 17:17:08 2018
https://imgur.com/a/xAtl4kf
这是一个回圈矩阵,从 0分钟 迭代到 160分钟
I=eye(360,360);
[Xt]是360*1的矩阵、
[A]是360*360的矩阵、
u=0
[Pt+1]跟[Pt]都是360*360的矩阵、
[Kg]是360*1的矩阵、
[H]是1*360的矩阵、
yt+1是纯量,是实测值的data、
下面是CODE:
K=zeros(360,1);
for f=2:N % f,代表从第2次迭代~到第N次迭代
x(:,1,f) = A*x(:,1,f-1);
P(:,:,f) = A*P(:,:,f-1)*A';
K(:,1,f) = P(:,:,f)*H' / (H*P(:,:,f)*H');
x(:,1,f)=x(:,1,f)+K(:,1,f)*(y(f)-H*x(:,1,f-1));
x0(1,f)=x(230,1,f);
% x0的物理意义是把卡尔曼滤波算法得到的每一k时刻的位移值放在x0中,
於是x0就是每一时刻的浓度值
P(:,:,f)=(I-K(:,1,f)*H)*P(:,:,f);;
end
y
x0
t=1:N;
plot(t,y,t,x0);
我把参数输入自己的CODE之後,结果跟想像的有落差,
所以好奇想发问一下,是否这个回圈矩阵写错了??
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.224.101.239
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1527067032.A.883.html
※ Ecampus:转录至看板 Programming 05/23 17:23
※ 编辑: Ecampus (125.224.101.239), 05/23/2018 17:26:57