Bu, hız tahminlerini sürece dahil etmenin geçerli bir yolu mu?
Durumunuzu uygun şekilde seçerseniz, hız tahminleri "bedava" olarak gelir. Aşağıdaki sinyal modelinin türetmesine bakın (baktığımız basit 1-D durum için).
Sinyal modeli, 2 almak
Bu yüzden, bunu ilerletmeden önce bir sinyal modelinde hemfikir olmamız gerekiyor. Düzenlemenizde, konumunuzu modeline benziyor, , şudur:xk
xk+1x˙k+1==xk+x˙kΔt+12a(Δt)2x˙k+aΔt
:
sonra durum güncelleme denklemi şöyle olur:
burada normalde dağıtılmış hızlanmadır. Xk+1=( 1 Δ t 0 1 )xk+( ( Δ t ) 2
xk=(xkx˙k)
akxk+1=(1 Δt0 1)xk+⎛⎝(Δt)22Δt⎞⎠ak
ak
Bu önceki sürümden farklı matrisi verir , ancak ve matrisleri aynı olmalıdır.F HGFH
Bunu uygularsam scilab
(üzgünüm, matlab'a erişim yok), şöyle görünüyor:
// Signal Model
DeltaT = 0.1;
F = [1 DeltaT; 0 1];
G = [DeltaT^2/2; DeltaT];
H = [1 0];
x0 = [0;0];
sigma_a = 0.1;
Q = sigma_a^2;
R = 0.1;
N = 1000;
a = rand(1,N,"normal")*sigma_a;
x_truth(:,1) = x0;
for t=1:N,
x_truth(:,t+1) = F*x_truth(:,t) + G*a(t);
y(t) = H*x_truth(:,t) + rand(1,1,"normal")*sqrt(R);
end
Ardından, Kalman filtre denklemlerini bu uygulayabilirim (gürültülü ölçümler).y
// Kalman Filter
p0 = 100*eye(2,2);
xx(:,1) = x0;
pp = p0;
pp_norm(1) = norm(pp);
for t=1:N,
[x1,p1,x,p] = kalm(y(t),xx(:,t),pp,F,G,H,Q,R);
xx(:,t+1) = x1;
pp = p1;
pp_norm(t+1) = norm(pp);
end
Bu nedenle, gürültülü ölçümlerimizi alıyoruz ve Kalman filtresini kendilerine uyguladık ve Kalman filtresini (bazen oldukça büyük bir varsayım!) Uyguladığımız gibi üretmek için aynı sinyal modelini kullandık .yyy
Sonra aşağıdaki grafikler sonucu göstermektedir.
Plot 1 : ve karşı.x kyxk
Plot 2 : İlk birkaç örneğin büyütülmüş görüntüsü:
Arsa 3 : Asla gerçek hayatta elde edemeyeceğiniz bir şey, gerçek pozisyon, pozisyonun durum tahmini ile karşılaştırılır.
Grafik 4 : Gerçek hayatta asla elde edemeyeceğiniz bir şey, gerçek hız, hızın durum tahmini ile karşılaştırılır.
Grafik 5 : Durum kovaryansı matrisinin normu (gerçek hayatta her zaman izlemeniz gereken bir şey!). Çok hızlı bir şekilde ilk çok büyük değerinden çok küçük bir şeye gittiğini unutmayın, bu yüzden sadece ilk birkaç örneği gösterdim.
Grafik 6 : Gerçek konum ve hız arasındaki farkın çizimleri ve tahminleri.
Konum ölçümlerinin kesin olduğu durumu incelerseniz, Kalman udpate denklemlerinin HIZ pozisyonu ve hızı için kesin sonuçlar verdiğini görürsünüz. Matematiksel olarak nedenini görmek basittir. Wikipedia makalesiyle aynı gösterimi kullanarak , kesin ölçümler . Başlangıç konumu ve hızın , olarak bilindiğini varsayarsanız, ve Kalman kazanç matrisi tarafından verilirzk+1=xk+1Pk=0P−k+1=QKk+1
Kk+1=(12/dt)
Bu, Kalman güncelleme prosedürünün ürettiği anlamına gelir
x^k+1=Fk+1xk+Kk+1(zk+1−Hk+1Fk+1xk)=(xk+x˙kdtx˙k)+(12/dt)(xk+1−(xk+x˙kdt))=(xk+12(xk+1−xk)/dt−x˙k)
Gördüğünüz gibi, hızın değeri tam olarak hız tahmini için kullanmayı düşündüğünüz formüle göre verilmiştir. Yani hız için herhangi bir hesaplama , aslında sonuçta orada gizli.(xk−xk−1)/dt