Ðề tài: Bộ lọc Kalman
View Single Post
Old 24-06-2006, 05:28 PM   #8
benq
Đệ tử 1 túi
 
benq's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 12
:
Trích:
Nguyên văn bởi falleaf
...
làm việc với mạch lọc Kalman, tức là tìm ra mô hình của hệ thống.
...
Chúc vui.
Falleaf đã lạc đề sang xác suất. Tôi xin trở lại vấn đề Falleaf nêu ra.

Falleaf "nói oan" cho bộ lọc Kalman rồi; lọc Kalman chỉ tìm ra trạng thái ước lượng của hệ thôi. Nói như bạn, hóa ra dùng bộ lọc Kalman, ta có thể tìm được mô hình của đối tượng à??? Nếu (A, B, C, D) là biểu diễn trạng thái của hệ, thì ta cần phải biết ma trận A, C mới thiết kế bộ lọc Kalman được chứ.

Trong điều khiển tối ưu, bộ lọc Kalman chính là bộ ước lượng trạng thái tối ưu (hay bộ quan sát trạng thái tối ưu). Mục tiêu của bộ quan sát là tìm vectơ trạng thái ước lượng sao x^ sao cho x^ bám theo x (x là vector trạng thái "thật").

Tại sao phải dùng bộ quan sát trạng thái?
Trong thiết kế bộ điều khiển phản hồi trạng thái u = -Kx, ban đầu người ta có giả thiết là tất cả các trạng thái đều đo được; sau đó dùng các phương pháp thiết kế (pole placement, LQR,...) để tìm ra K. Nhưng thực tế thường không dễ dàng đo được tất cả các trạng thái vì ko có đủ cảm biến, hơn nữa có thể có những trạng thái ko có ý nghĩa vật lý. Vì thế, người ta dùng bộ quan sát trạng thái, để từ đầu vào (u) đầu ra (y) của đối tượng, ta có thể ước lượng được những trạng thái không đo được. Tóm lại, đầu vào của bộ quan sát là u, y; đầu ra là x^ (ước lượng của x).

Ta thấy bài toán thiết kế bộ quan sát tương tự như bài toán thiết kế bộ điều khiển hồi tiếp trạng thái.
- Thiết kế bộ điều khiển: tìm ma trận K sao cho y bám theo y_đặt.
- Thiết kế bộ quan sát: tìm ma trận L sao cho x^ bám theo x.
Đây là 2 bài toán có tính đối ngẫu (duality).

Trong MATLAB nếu dùng 'place' để thiết kế bộ điều khiển thì ta cũng có thể dùng 'place' để thiết kế bộ quan sát bằng cách thay đổi tham số vào: A thay bằng A' (A chuyển vị), B thay bằng C'.Bằng cách chỉ định cực của bộ quan sát, ta có thể thay đổi cách x^ bám theo x như ý muốn. Trong trường hợp này ta có bộ quan sát Luenberger.

Trong trường hợp thiết kế bộ điều khiển tối ưu LQR, ta tìm K tối ưu cực tiểu hóa phiếm hàm J bằng cách giải 1 phương trình Riccati. Thông số thiết kế trong bài toán LQR là ma trận trọng số Q, R (xem tài liệu về LQR để biết cụ thể). Tương tự như vậy, nếu ta tìm được L tối ưu bằng cách giải 1 phương trình Riccati tương tự phương trình Riccati trên, thì ta sẽ được bộ quan sát trạng thái tối ưu. Đây chính là bộ lọc Kalman . "Thông số thiết kế" (tạm gọi như vậy) trong trường hợp này là W, V (covariance của nhiễu ngẫu nhiên).

Trong MATLAB, nếu dùng hàm 'lqr' để thiết kế bộ điều khiển tối ưu LQR, thì ta cũng có thể dùng 'lqr' để thiết kế bộ lọc Kalman bằng cách thay A bằng A', B bằng C', Q bằng W, R bằng V.

Nói thêm, LQR + bộ lọc Kalman = LQG (Linear Quadratic Gaussian).

Cụ thể thế nào thì các bạn tìm tài liệu đọc thêm.

Ghi chú: bộ quan sát trạng thái = bộ ước lượng trạng thái = bộ quan sát (nói tắt) = bộ ước lượng (nói tắt).

Keywords: Optimal control, LQR (Linear Quadratic Regulator), LQG (Linear Quadratic Gaussian), state feedback control, state observer, state estimator, Kalman filter, Luenberger filter.

thay đổi nội dung bởi: benq, 24-06-2006 lúc 07:48 PM.
benq vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn