Trích:
Nguyên văn bởi bunyuki
hê hê Sorry,em nhầm chỗ:E{v.v'}=R.
Trả lời Béo luôn:
Khi tính toán bộ lọc Kalman là phải đưa ra giá trị ước lượng dựa các biến trạng thái trên các thông số tổng hợp của quá trình,đo,mô hình...một cách chân thực nhất để lam đầu vào cho bộ điều khiển.Khi tính toán người ta coi chia thành hai giai đoạn:Predict và Correct.Hai giai đoạn này bổ sung ,tác động lẫn nhau theo 1 vòng tròn khép kín(tao ko vẽ minh hoạ đc) đại loại là đoán trứơc rồi sửa cái đoán ấy cho phù hợp.Cho nên người ta còn gọi KALMAN FILTER là cái ESTIMATOR là vì thế.Trong đó,mỗi một giai đoạn người ta tính toán 1 thông số.Giai đoạn Predict người ta ước lượng trạng thái của hệ thống dựa trên trạng thái trươc đó đã có,cái giá trị ước lượng trong giai đoạn này gọi là 'a priori' tức là trạng thái trước,trạng thái sơ cấp ,trạng thái chưa đc bù kí hiệu là Xk-(a priori thời điểm k):
Xk-=A*x(k-1)^+B*u
Trong giai đoạn này ta tính covariance của sai lệch nhiễu luôn(cũng là trạng thái priori) Pk-=A*Pk-1*A'+Q
Tuy nhiên giá trị priori này chưa mang tính chân thực về hệ thống,và ta cần phải Correct lại cho đúng dựa trên các giá trị đo đc từ các sensor.Đó chính là nhiẹm vụ của giai đoạn Correct(hay update này).Giá trị đc corect lúc này gọi là 'a posteriori' kí hiệu là Xk^:
Xk^=Xk- + K(zk-H*Xk-)
zk:giá trị nhận từ sensor
K là hệ số Kalman phản hồi sai lệch trạng thái.Việc giải K khá phức tạp.Một trong cách đó là giải phương trình Riccacti.Cái này tao có nhưng chắc chẳng cần đọc,hoa mắt chóng mặt lắm.Đại loại là tính K theo covariance của sai lẹch trạng thái như sau:
K=Pk-*H'*inv(H*Pk-*H'+R)
Rồi tính thêm Pk=(I-K*H)*Pk- để cho vòng lặp sau
thế đó,lằng nhằng vậy thôi
khá lằng nhằng nhưng viết ra thấy mình hỉu đôi chút hêhê
Bác FALLEAF đâu nhẩy,lâu lắm ko thấy
|
zk là giá trị đo từ cảm biến hả bạn, theo công thức thì zk= xk + v (H=1). Mình băn khoăn chỗ này vì theo định nghĩa v là nhiễu Gauss, vậy xk lấy giá trị nào để tính x^k- à ?? Để mình tính lại thử xem, cảm ơn bạn nhé
////////tính toán xong thấy đúng như bạn nói, cám ơn you again