2 回答

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊
我沒有運(yùn)行你的代碼,但你的變量Err_est_x和Err_est_y只會變得更?。磕仨氃诿看握{(diào)用后增加這些變量,updateCall如下所示:
# in method paint()
#
kg_x, Est_x, Err_est_x = updateKal(x, kg_x, Est_x, Err_est_x, 0.5)
kg_y, Est_y, Err_est_y = updateKal(y, kg_y, Est_y, Err_est_y, 0.5)
Err_est_x = 1.1 * Err_est_x + 0.1 # new code
Err_est_y = 1.1 * Err_est_y + 0.1 # new code
解釋:如果您的估計誤差較低,則新的噪聲測量的信息也較低 [1]。這在您的可視化中也可見:最初,紅色卡爾曼估計“非常快”,因為您的估計誤差很高。但是,當(dāng)您的估計誤差越來越小時,您的紅色卡爾曼估計就會“減慢完成”。
請注意,我沒有運(yùn)行您的代碼,因此所選值(1.1 和 0.1)可能過高或過小。增加/減少這兩個數(shù)字以增加/減少紅色卡爾曼估計的“速度”。
[1] 例如,如果您的估計誤差為 0,則新測量的信息增益也為 0。

TA貢獻(xiàn)1966條經(jīng)驗 獲得超4個贊
我認(rèn)為您缺少的是流程模型。如果您正在測量靜態(tài)參數(shù),這樣的策略是有效的,但如果您正在跟蹤的狀態(tài)本身正在發(fā)生變化,就像這里一樣,您需要一個過程模型來考慮這些變化。您將在每個更新步驟之前執(zhí)行流程模型估計步驟。
本例中的過程模型將涉及一些基本的牛頓物理學(xué)。我建議擴(kuò)展您正在跟蹤的狀態(tài)(x 和 y)以包括速度(vx,vy)和加速度(ax,ay)。因此,您的狀態(tài)向量將是X = [xy vx vy ax ay] T ,而不是 [xy] T。(您可以根據(jù)每個時間步長的運(yùn)動量得出速度,并且可以嘗試從多個時間步長的運(yùn)動中得出實際加速度,或者假設(shè)一個合理的加速度可能就足夠了,因為真實加速度這種情況可能會不穩(wěn)定并且不容易建模。)您還需要一個過程矩陣F來將X轉(zhuǎn)換為測量向量Z(即, [xy] T,您正在進(jìn)行的模糊測量)。在這種情況下,F將是一個 2x6 矩陣。
添加回答
舉報