Tổng quan

"Nếu bạn không thể giải thích vấn đề một cách đơn giản thì bạn chưa thực sự hiểu nó."

Albert Einstein

VỀ BÀI HƯỚNG DẪN

Kalman Filter là một chủ đề đơn giản. Nhưng rất nhiều bài hướng dẫn về nó lại không dễ hiểu chút nào. Hầu hết đều yêu cầu phải có một cơ sở toán sâu rộng, điều này khiến chúng trở nên khó hiểu hơn. Ngoài ra, hầu hết đều thiếu các ví dụ thực tế.

Tôi đã quyết định viết một hướng dẫn dựa trên các ví dụ thực tế và cung cấp các giải thích dễ dàng và trực quan hơn.

Một số ví dụ được lấy từ thế giới radar mà Kalman Filtering được áp dụng rất nhiều (chú yếu cho việc theo dõi mục tiêu). Nhưng các nguyên tắc được trình bày ở đây có thể được áp dụng cho bất kỳ lĩnh vực nào yêu cầu ước tính và dự đoán.

Bài hướng dẫn này sẽ bao gồm 3 phần:

  • Phần 1 – giới thiệu về bộ lọc Kalman. Phần này sẽ dựa trên 8 ví dụ số học, và sẽ không có yêu cầu hiểu biết thêm gì về toán. Tất cả các kiến thức toán học cần thiết sẽ được cung cấp trong bài hướng dẫn này, và nó sẽ bao gồm các thuật ngữ như giá trị trung bình (mean), phương sai (variance) và độ lệch chuẩn (standard deviation). Bạn có thể gọi nó là "Kalman Filter cho kẻ ngốc" nếu bạn muốn. Sau khi đọc phần đầu tiên, bạn sẽ có thể hiểu khái niệm về bộ lọc Kalman và phát triển “Trực giác cho bộ lọc Kalman”. Bạn cũng sẽ có thể thiết kế bộ lọc Kalman một chiều (1-D).
  • Phần 2 – bộ lọc Kalman đa chiều (Kalman Filter dưới dạng ma trận). Phần này có nâng cao hơn một chút so với phần 1. Hầu hết các bộ lọc Kalman được sử dụng trong đời sống thực đều là đa chiều và yêu cầu kiến thức cơ bản về đại số tuyến tính (chỉ cần phần cách thức hoạt động của ma trận). Các kiến thức toán học cần thiết cũng sẽ được cung cấp trong bài hướng dẫn này. Nguồn gốc toán học của bộ lọc Kalman và mô hình hệ thống động cũng được nhắc tới. Sau khi đọc phần thứ hai, bạn sẽ có thể hiểu được phép toán đằng sau bộ lọc Kalman. Bạn cũng sẽ có thể thiết kế một bộ lọc Kalman đa chiều.
  • Phần 3 – Chủ đề nâng cao. Phần này dành cho những người đọc chuyên sâu và nó yêu cầu một số kiến thức cơ sở về toán học, chủ yếu trong lĩnh vực thống kê. Hiện tại, phần này đang trong quá trình lập kế hoạch. Nó sẽ bao gồm Kalman Kalman mở rộng, Unscented Kalman Filter, Kalman Filter trong các ứng dụng thực tế khác nhau và nhiều hơn nữa.

"Con đường học bằng tiên đề rất dài, bằng ví dụ rất ngắn và hiệu quả."

Lucius Seneca

VỀ TÁC GIẢ

Tôi là Alex Becker. Tôi đến từ Israel. Tôi là một kỹ sư với hơn 15 năm kinh nghiệm trong lĩnh vực Wireless Technologies. Là một phần công việc của mình, tôi phải làm việc với Kalman Filter, chủ yếu dành cho các ứng dụng theo dõi.

Những lời phê bình mang tính xây dựng luôn được hoan nghênh. Tôi sẽ đánh giá rất cao ý kiến và đề xuất của bạn. Vui lòng gửi cho tôi email.

Các ví dụ trong hướng dẫn này không minh họa cho bất kỳ chế độ, phương pháp luận, kỹ thuật hoặc thông số nào được sử dụng bởi bất kỳ hệ thống hoạt động nào mà tác giả biết.
Alex Becker

VỀ PHIÊN BẢN TIẾNG VIỆT

Tôi là Đặng Mỹ Linh. Tôi đến từ Việt Nam. Tôi là một chuyên viên phân tích dữ liệu và xây dựng mô hình đo lường tốt nghiệp từ đại học California, Santa Barbara (UCSB). Hiện tôi đang nghiên cứu thêm về bộ lọc Kalman để áp dụng vào việc tối ưu hóa mô hình.

Nếu có phần dịch nào chưa rõ nghĩa hoặc cần góp ý thêm, xin vui lòng liên hệ qua contact.

VỀ BỘ LỌC KALMAN

Hầu hết các hệ thống hiện đại được trang bị nhiều cảm biến cung cấp ước tính các biến ẩn (chưa biết) dựa trên một loạt các phép đo. Ví dụ: máy thu GPS cung cấp ước tính vị trí và vận tốc, trong đó vị trí và vận tốc là các biến ẩn và chênh lệch thời gian của tín hiệu đến của các vệ tinh là phép đo.

Một trong những thách thức lớn nhất của hệ thống theo dõi và kiểm soát là cung cấp đúng và chính xác các dự đoán của biến ẩn khi không chắc chắn dữ liệu. Trong máy thu GPS, độ không đảm bảo của máy phụ thuộc vào nhiều yếu tố bên ngoài như nhiễu nhiệt, hiệu ứng khí quyển, sự thay đổi nhỏ của vị trí vệ tinh, độ chính xác của đồng hồ máy thu và nhiều yếu tố khác.

Kalman Filter là một trong những thuật toán ước lượng quan trọng và phổ biến nhất. Bộ lọc Kalman tạo ra các ước tính về các biến ẩn dựa trên các phép đo không chính xác và không chắc chắn. Ngoài ra, Kalman Filter còn cung cấp dự đoán về tương lai của trạng thái của hệ thống dựa trên các dự báo trong quá khứ.

Bộ lọc này được đặt tên theo Rudolf E. Kálmán (19 tháng 5, 1930 – 2 tháng 7, 2016). Năm 1960, Kálmán xuất bản bài báo nổi tiếng của mình mô tả một giải pháp đệ quy (recursive) cho vấn đề lọc dữ liệu tuyến tính rời rạc.

Ngày nay, Kalman Filter được sử dụng trong theo dõi mục tiêu (Radar), hệ thống định vị, hệ thống điều khiển, đồ họa máy tính và nhiều hơn nữa.

Rudolf E. Kálmán

ĐIỀU KIỆN CHO DỰ BÁO

Trước khi đi sâu vào phần giải thích Kalman Filter, hãy để chúng ta hiểu sự cần thiết của một thuật toán dự đoán.

Ví dụ, chúng ta hãy xem xét một thuật toán theo dõi radar.

Tracking Radar

Radar theo dõi sẽ gửi một chùm tia bút chì tới hướng của mục tiêu. Giả sử chu kỳ theo dõi là 5 giây. Nói cách khác, cứ mỗi 5 giây, radar lại dò tìm mục tiêu bằng cách gửi một chùm tia theo dõi chuyên dụng tới hướng của mục tiêu.

Sau khi gửi chùm tia, radar ước tính vị trí và vận tốc hiện tại của mục tiêu. Đồng thời, radar ước tính (hoặc dự đoán) vị trí của mục tiêu tại địa điểm theo dõi tiếp theo.

Vị trí tương lai của mục tiêu có thể dễ dàng được tính bằng cách sử dụng các phương trình chuyển động của Newton:

\[ x= x_{0} + v_{0} \Delta t+ \frac{1}{2}a \Delta t^{2} \]
Với:
\( x \) là vị trí hiện tại của mục tiêu
\( x_{0} \) là vị trí ban đầu của mục tiêu
\( v_{0} \) là vận tốc ban đầu của mục tiêu
\( a \) là giá trị gia tốc của mục tiêu
\( \Delta t \) là khoảng thời gian (trong ví dụ của chúng ta là 5 giây)

Trong không gian ba chiều, phương trình chuyển động của Newton có thể được viết dưới dạng hệ phương trình:

\[ \left\{\begin{matrix} x= x_{0} + v_{x0} \Delta t+ \frac{1}{2}a_{x} \Delta t^{2}\\ y= y_{0} + v_{y0} \Delta t+ \frac{1}{2}a_{y} \Delta t^{2}\\ z= z_{0} + v_{z0} \Delta t+ \frac{1}{2}a_{z} \Delta t^{2} \end{matrix}\right. \]

Các tham số của mục tiêu \( \left[ x, y, z, v_{x},v_{y},v_{z},a_{x},a_{y},a_{z} \right] \) được gọi là một Hệ thống trạng thái. Trạng thái hiện tại là đầu vào cho thuật toán dự đoán và trạng thái tiếp theo (các tham số của mục tiêu ở khoảng thời gian tiếp theo) là đầu ra của thuật toán.

Tập hợp các phương trình trên được gọi là một Mô hình động (hoặc một Mô hình không gian trạng thái ). Mô hình động miêu tả mối quan hệ giữa đầu vào và đầu ra.

Hãy quay lại ví dụ của chúng ta. Như chúng ta có thể thấy, nếu chúng ta biết trạng thái hiện tại và mô hình động, chúng ta có thể dễ dàng dự đoán được trạng thái tiếp theo của mục tiêu.

Thực ra không phải vậy. Trước tiên, phép đo radar không phải là tuyệt đối. Nó bao gồm một lỗi ngẫu nhiên (hoặc không chắc chắn). Độ lớn của lỗi phụ thuộc vào nhiều tham số, chẳng hạn như hiệu chỉnh của radar, độ rộng chùm tia, độ lớn của tia phản hồi, v.v. Lỗi được đưa vào phép đo được gọi là Tiếng ồn quan sát.

Hơn nữa, chuyển động của mục tiêu bám chặt chẽ với phương trình chuyển động do có các yếu tố bên ngoài như gió, nhiễu loạn không khí, thao tác của phi công, v.v. Lỗi của mô hình động (hoặc độ không đảm bảo) được gọi là Tiếng ồn của quá trình.

Do tiếng ồn quan sát và tiếng ồn quá trình, vị trí ước tính của mục tiêu có thể cách xa vị trí thực. Trong trường hợp này, radar có thể gửi chùm tia theo dõi sai hướng và bỏ lỡ mục tiêu.

Để cải thiện hiệu suất theo dõi radar, chúng ta cần một thuật toán dự đoán có tính đến quá trình và độ đo lường không đảm bảo.

Thuật toán dự đoán được sử dụng rộng rãi nhất là bộ lọc Kalman.

Tiếp