Làm thế nào để hiểu Kalman đạt được bằng trực giác?


30

Các thuật toán Kalman filter hoạt động như sau

Khởi tạo và .x^0|0P0|0

Ở mỗi lần lặpk=1,,n

Dự đoán

Dự đoán trạng thái (tiên nghiệm) dự đoán Dự đoán (a prori) ước tính hiệp phương sai Cập nhật

x^k|k1=Fkx^k1|k1+Bkuk
Pk|k1=FkPk1|k1FkT+Qk

Đổi mới hoặc đo lường dư Đổi mới (hoặc dư) hiệp phương sai tối ưu Kalman tăng Cập nhật (một posteriori) ước tính tình trạng Đã cập nhật (a posteriori) ước tính hiệp phương sai

y~k=zkHkx^k|k1
Sk=HkPk|k1HkT+Rk
Kk=Pk|k1HkTSk1
x^k|k=x^k|k1+Kky~k
Pk|k=(IKkHk)Pk|k1

Độ lợi Kalman biểu thị tầm quan trọng tương đối của lỗi đối với ước tính trước .Kky~kx^k|k1

Tôi tự hỏi làm thế nào để hiểu công thức cho Kalman đạt được trực giác ? Hãy xem xét trường hợp khi các trạng thái và đầu ra là vô hướng, tại sao mức tăng lớn hơn, khiKk

  • Pk|k1 lớn hơn

  • Hk lớn hơn

  • Sk nhỏ hơn?

Cảm ơn và trân trọng!


Đây là một câu hỏi khó trả lời đúng. Tôi đã cố gắng, nhưng không thuyết phục với câu trả lời của riêng tôi. Về cơ bản mức tăng kiểm soát mức độ bạn tin tưởng vào các phép đo so với ước tính, nhưng tôi không thể giải thích mức tăng này được tuân thủ như thế nào.
Jav_Rock

Câu trả lời:


18

Tôi tìm thấy một cách tốt để suy nghĩ bằng trực giác của Kalman Gain . Nếu bạn viết theo cách nàyKK

 Kk=PkHkT(HkPkHkT+Rk)1=PkHkTHkPkHkT+Rk

bạn sẽ nhận ra rằng cường độ tương đối của ma trận ( ) và ( ) kiểm soát mối quan hệ giữa việc sử dụng ước tính trạng thái dự đoán ( ) và phép đo ( ) của bộ lọc .RkPkxkk

 limRk0PkHkT HkPkHkT+Rk =Hk1

 limPk0PkHkT HkPkHkT+Rk =0

Thay thế giới hạn đầu tiên vào phương trình cập nhật đo lường

 x^k=xk+Kk(y~kHkxk)

gợi ý rằng khi độ lớn của nhỏ, có nghĩa là các phép đo là chính xác, ước tính trạng thái phụ thuộc chủ yếu vào các phép đo.R

Khi trạng thái được biết chính xác, thì nhỏ so với và bộ lọc chủ yếu bỏ qua các phép đo thay vào dự đoán xuất phát từ trạng thái trước đó ( ).HPHTRxk


2
Cảm ơn! Nếu tôi đúng, không đơn điệu đối với . KkHk
Tim

12

Độ lợi Kalman cho bạn biết tôi muốn thay đổi ước tính của mình bao nhiêu bằng cách đo.

Sk là ma trận hiệp phương sai ước tính của các phép đo . Điều này cho chúng tôi biết "sự thay đổi" trong các phép đo của chúng tôi. Nếu nó lớn, điều đó có nghĩa là các phép đo "thay đổi" rất nhiều. Vì vậy, sự tự tin của bạn trong các phép đo này là thấp. Mặt khác, nếu nhỏ , độ biến thiên thấp, độ tin cậy của chúng tôi trong phép đo tăng lên. Khi chúng tôi tự tin về các phép đo của mình, đã tự tin rằng thông tin chúng tôi có được là đủ tốt để chúng tôi cập nhật / thay đổi các ước tính trạng thái của mình. Vì vậy, mức tăng Kalman cao hơn.zkSk

Pk là ma trận hiệp phương sai trạng thái ước tính. Điều này cho chúng ta biết "tính biến đổi" của trạng thái, . Nếu lớn , điều đó có nghĩa là trạng thái được ước tính sẽ thay đổi rất nhiều. Vì vậy, bạn cần có thể thay đổi ước tính của mình với các phép đo mới. Kết quả là, mức tăng Kalman cao hơn.xkPk

Ngược lại, nếu nhỏ, thì bạn biết rằng trạng thái của bạn không thay đổi nhiều, vì vậy bạn không muốn thay đổi ước tính của mình quá nhiều mỗi lần. Câu trả lời của @ Jav_Rock nói rằng nếu , thì . Nói cách khác, anh ta ngụ ý rằng nếu bạn nghĩ rằng trạng thái của bạn không còn thay đổi nữa, bạn không cố gắng thay đổi ước tính của mình nữa.PkPk0K0


2

Jav_Rock có điểm. Trên thực tế nếu bạn viết như thế nàyKk

 Kk=PkHkT(HkPkHkT+Rk)1=HkHkPkHkTHkPkHkT+Rk

tử số của phân số là viết tắt của độ không đảm bảo được truyền từ mô hình trong khi là viết tắt của độ không đảm bảo từ phép đo. Vì vậy, giá trị của phân số là số lượng chúng ta nên tin tưởng vào phép đo, như được giải thích bởi Jav_Rock.Rk

Đối với , nó chỉ chuyển đổi quan sát trở lại trạng thái, bởi vì đó là trạng thái mà chúng tôi muốn cập nhật, không phải là quan sát.Hk

Để kết thúc, hệ số tính toán mức độ hiệu chỉnh mà chúng ta nên thực hiện từ quan sát và chuyển đổi hiệu chỉnh quan sát trở lại hiệu chỉnh trạng thái, dẫn đến cập nhật ước tính trạng thái:Kk

 x^k=xk+Kk(y~kHkxk)


-1

Tôi đang làm việc trên thuật toán Kalman Filter (KF). Tôi quan sát thấy rằng kalman đạt được thỏa thuận với sự hội tụ của thuật toán với thời gian, nghĩa là thuật toán sửa chữa nhanh như thế nào và giảm thiểu phần dư.

Đến với phương trình, chọn một giá trị tăng kalman ban đầu và thay đổi nó từ thấp đến cao, có thể cung cấp cho bạn một giá trị gần đúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.