过滤器不适用于矩阵A 5 * 5

2视图(30天)
Nooran阿里
Nooran阿里 2015年12月18日
评论道: 沃尔特·罗伯森 2015年12月18日
我有这个鳕鱼或九龙及过滤订单两个,我试图改变矩阵成为5 * 5
但是有一个错误
你能帮我
% %模型特点
% X (t) = A * X (t - 1) + V (t) - - - >:状态转换矩阵,V = N (Mv, Q):过程噪声
% y (t) = C * X (t) + N (t) - - - > C:输出矩阵,N = N(先生,R):观察噪声
StateDim = 2;%的状态数(大小(A, 1))
ObsDim = 1;%的观察(大小(C, 1))
= (1.9223 - -0.9604%二阶欠阻尼LTI系统
1.0000 0];
C = 0 (ObsDim StateDim);%矩阵C(输出俺们国家之间),C =(我0 0…)
C (: 1) = 1;
N = 100;%的数量越来越多
X = 0 (StateDim N);%状态数据缓冲区
y = 0 (ObsDim N);%的观察数据缓冲区
% %生成过程噪声(状态方程的噪声)
Var_PNoise = 1;%过程噪声方差
Mu_PNoise = 0;%过程噪声的意思
Std_PNoise =√Var_PNoise ';%过程噪声的标准差
PNoise = Std_PNoise * randn (StateDim N) + Mu_PNoise *的(StateDim N);%高斯过程噪声
Q = x (PNoise ');%过程噪声协方差矩阵
% %生成输出的观测噪声(噪音equation0
Var_ONoise = 2;%观测噪声方差
Mu_ONoise = 0;%观测噪声的意思
Std_ONoise =√Var_ONoise ';%观测噪声的标准差
ONoise = Std_ONoise * randn (ObsDim N) + Mu_ONoise *的(ObsDim N);%高斯观测噪声
R = x (ONoise ');%观测噪声协方差矩阵
% %模型的初始值
X (: 1) = (1 0) ';%初始状态
y (1) = C * X (: 1) + ONoise (: 1);%的初步观察
% %模拟状态和观测
% B和D矩阵在模型中被忽视了。
我= 2:N
X (:, i) = A * X(张:,)+ PNoise(:,我);%的国家
y (:, i) = C * X(:,我)+ ONoise(:,我);%的观察
结束
% %卡尔曼滤波……
xh (: 1) = 0.01 * randn (StateDim, 1);%初始状态
Px =眼睛(StateDim);%初始状态协方差矩阵
i = 1:尺寸(y, 2)
% - - - - - - - - - - - - - - - - - - - - - -时间更新
%的先验估计的当前状态(x (t | t - 1) = A * x (t - 1 | t - 1))
xh_ (:, i) = A * xh(:,我);
%的先验估计的协方差矩阵(P (t | t - 1) = A * P (t - 1 | t - 1) * ' + Q)
Px_ = * Px *“+ Q;
% - - - - - - - - - - - - - - - - - - - - - -测量更新
%卡尔曼滤波器系数(K (t) = P (t | t - 1) * C ' *发票(C * P + R (t | t - 1) * C”))
K = Px_ * C ' *发票(C * Px_ * C + R);
%估计观察(y (t | t - 1) = C * x (t | t - 1) + R)
yh_ (:, i) = C * xh_(:,我)+ R;
%测量残余误差或创新错误(y (t) - y (t | t - 1))
inov (:, i) = y(:,我)——yh_(:,我);
%后验(更新)估计的当前状态(x (t | t) = x (t | t - 1) + K (t) * (y (t) - y (t | t - 1)))
xh (:, i + 1) = xh_ (:, i) + K * inov(:,我);
%后验(更新)状态协方差矩阵(P (t | t) = (I - K (t) * C) * P (t | t - 1))
Px = Px_ C - K * * Px_;
结束
% %情节估计结果
人物,情节(y,“b”)
持有情节(yh_“r”)
网格
传奇(“真实的观察”,“估计观察”)

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2015年12月18日
你也需要改变
% %模型的初始值
X (: 1) = (1 0) ';%初始状态
被5 x 5, x需要5 x 1。
4评论
沃尔特·罗伯森
沃尔特·罗伯森 2015年12月18日
你收到一个错误消息,或者是结果不是你期望什么?
我不懂C矩阵代码的意思,我不懂状态初始化。基本上,我不理解这段代码是如何工作的。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!