Skip to content

Commit 8342edd

Browse files
committed
added measurement noise history log
1 parent da87a1a commit 8342edd

File tree

3 files changed

+398
-284
lines changed

3 files changed

+398
-284
lines changed

ExtendedKF.m

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
classdef ExtendedKF < handle
22
properties
33

4-
Xhistory
4+
predhistory
5+
truehistory
56
Plast
6-
Xtrue
77
statetransitionfcn
88
measurementfcn
99
statej
@@ -18,6 +18,7 @@
1818
state_dim
1919
measurement_dim
2020
hasadditivenoise
21+
measurementhistory
2122
end
2223

2324
methods
@@ -37,8 +38,9 @@
3738

3839
self.state_dim = size(self.statecovariance(:, 1));
3940
self.measurement_dim = size(self.measurementcovariance(:, 1));
40-
self.Xtrue(:, 1) = initial_x;
41-
self.Xhistory = zeros(self.state_dim);
41+
self.truehistory(:, 1) = initial_x;
42+
self.predhistory = zeros(self.state_dim);
43+
self.measurementhistory = zeros(self.measurement_dim);
4244
self.k = 1;
4345
self.hasadditivenoise = true;
4446
self.Plast = eye(self.state_dim(1));
@@ -51,20 +53,20 @@
5153
%create plant noise
5254
self.vk = sqrt(self.statecovariance)*randn(self.state_dim(1), 1);
5355
%create noisy plant state: REFERENCE VALUE
54-
xtrue_last = self.Xtrue(:, end);
56+
xtrue_last = self.predhistory(:, end);
5557
xtrue = self.statetransitionfcn(xtrue_last, self.T);
5658
self.xk = xtrue + self.vk;
5759

58-
xhat_last = self.Xhistory(:, end);
60+
xhat_last = self.predhistory(:, end);
5961
F = self.statej(xhat_last, self.T);
6062
Xpred = self.statetransitionfcn(xhat_last, self.T);
6163
Ppred = F*(self.Plast)*F' + self.statecovariance;
6264

6365
%save the new values:
6466
self.k = self.k+1;
6567
self.Plast = Ppred;
66-
self.Xhistory(:, self.k) = Xpred;
67-
self.Xtrue(:, self.k) = xtrue;
68+
self.predhistory(:, self.k) = Xpred;
69+
self.truehistory(:, self.k) = xtrue;
6870

6971

7072
end
@@ -76,7 +78,7 @@
7678
yk = self.measurementfcn(self.xk, self.T) + self.wk;
7779

7880
%correcting measurement
79-
Xpred = self.Xhistory(:, self.k);
81+
Xpred = self.predhistory(:, self.k);
8082
H = self.measurementj(Xpred, self.T);
8183
Ypred = self.measurementfcn(Xpred);
8284
Sk = H*self.Plast*H' + self.measurementcovariance;
@@ -90,8 +92,9 @@
9092

9193

9294
%overwrite to existing values:
95+
% self.measurementhistory(:, self.k) = yk;
9396
self.Plast = Pcorr;
94-
self.Xhistory(:, self.k) = Xcorr;
97+
self.predhistory(:, self.k) = Xcorr;
9598

9699
end
97100

0 commit comments

Comments
 (0)