I. Giới thiệu.

– Nếu bạn đã từng nghe qua, hoặc học qua về bộ lọc Kalman bạn sẽ biết được nó được ứng dụng trong rất nhiều lĩnh vực khác nhau từ tự động hóa, điều khiển tự động, xử lý tín hiệu, xử lý ảnh  và thậm chí còn trong lĩnh vực kinh tế nữa, vậy thì Kalman Filter là gì mà có nhiều ứng dụng quá vậy, cùng tìm hiểu nhé.
– Nếu nghe qua cái tên  “Kalman Filter” và được các sách dịch là “bộ lọc”, rất dễ làm cho người đọc đánh giá thấp khả năng của nó. Vậy thì Kalman Filter nó là cái quái gì?

Kalman Filter là một bộ lọc đệ quy, dùng để ước lượng trạng thái của một hệ thống tuyến tính dựa trên tập các dữ liệu đo được nhưng không đầy đủ, hoặc bị nhiễu.

– Đọc đến đây chắc nhiều bạn sẽ nghĩ ngay, lại lý thuyết rồi và có thể tắt luôn web vì những định nghĩa trên sẽ chẳng tạo cho bạn cảm giác gì, mình hiểu vì mình cũng đã từng như vậy nhưng khi làm nhiều với nó, thấy được nhiều người dùng nó, hiểu được nó thì mình mới hiểu được về Kalman Filter. Hãy cùng mình đặt những câu hỏi và trả lời các câu hỏi dưới đây nhé.

II. Chi tiết về Kalman Filter.

Hệ thống tuyến tính  là cái quái gì?

– Đây là một định nghĩa của lý thuyết tự động, nó ngược với các hệ thống phi tuyến, dừng lại WTF, bố còn chưa hiểu hệ thống tuyến tính là gì mày đưa cái định nghĩa hệ phi tuyến vào thì ai hiểu được!!!

Đúng rồi các bạn ạ, không nên định nghĩa một vấn đề bằng cách phủ định nó. Để hiểu rỏ hơn về hệ thống tuyến tính và hệ thống phi tuyến, mình sẽ làm một post khác nói chi tiết hơn còn ở đây mình chỉ nêu đại khái các bạn cứ hình dung nó như một hàm số vậy các bạn ạ, hàm tuyến tính và hàm phi tuyến. Các hệ tuyến tính thường gặp như: mô hình động cơ DC, mấy bài như điều khiển vị trí, điều khiển vận tốc động cơ là điều khiển các hệ thống tuyến tính nha các bạn. Còn các hệ phi tuyến thường gặp như: lò nhiệt, bồn nước, con lắc ngược ….

Dữ liệu đo được nhưng không đủ là sao?  – Ví dụ các hệ thống khi bạn mô hình hóa nó lên thì cần các tín hiệu nào đó mới có thể áp dụng bộ điều khiển vô được, nhưng trên thực tế thì bạn lại không thể đo được, do không có chỗ lắp cảm biến hoặc không có cảm biến nào có thể đo được, hoặc có trường hợp có cảm biến đầy đủ nhưng không đo được trong một thời gian nào đó, ví dụ bạn dùng 1 camera gắn trên cao và điều khiển một chiếc xe di chuyển, nhưng  khi chiếc xe dichuyển qua một cái hộp thì bạn không biết được xe đang ở đâu, lúc này bạn cần dựa trên các vị trí trước đó của xe để ước lượng xe đang ở đâu.

Dữ liệu nhiễu là sao, nó có giống nhiễu mình hay nghe trong nhà máy này nọ không? Không phải nhiễu này là nhiễu môi trường nha bạn, nhiễu ở đây là nhiễu trên tín hiệu đo được, có thể do bị tác động của môi trường, cũng có thể do bản chất tín hiệu nó là vậy sensor chỉ có nhiệm vụ đo về thôi, còn chúng ta phải lấy được thông tin đáng tin trong tín hiệu đó. Các mô hình như xe 2 bánh tự cân bằng, drone .. thường hay sử dụng các cảm biến gia tốc, góc nghiêng, từ trường.. và di di chuyển thì các mô hình này bị rung, mắt chúng ta sẽ bỏ qua các rung động này, nhưng cảm biến thì không, nó sẽ thu lại hết và kết quả là ta sẽ có tín hiệu thu về vị thay đổi liên tục.

– Bạn có thể hình dung đường màu đỏ là tín hiệu mà sensor đo về được, nhưng thực tế ý nghĩa của các tín hiệu đó lại là cái đường màu xanh kia, vậy thì phải làm các nào đó để lấy được cái tín hiệu xanh kia.

Vậy thì sao không dùng luôn cái tín hiệu đỏ kia luôn đi mà phải chuyển làm gì?  – Tất nhiên là bạn có thể dùng, nhưng lúc đó hệ thống của bạn có chất lượng không bằng của người khác. Đây là 1 phần lý do tại sao có bạn làm robot 2 bánh tự cân bằng chạy rất ngon, đứng yên 1 chỗ, có bạn làm lại chạy tới chạy lui, rung rắc tùm lum. Một trường hợp khác là Drone, tại sao các drone của DJI như Phantom, Mavic cân bằng rất tốt, đứng yên một chỗ, còn chúng ta làm thì bị trôi vị trí, rung lắc… Chưa nói đến bộ điều khiển nhé, chỉ mới ở mức xử lý tín hiệu đầu vào này thôi đã tạo nên chất lượng cho sản phẩm rồi phải không nào???

Vẫn còn cái định nghĩa “Ước lượng trạng thái”, vậy nó là cái gì, tại sao phải ước lượng khi tôi đã đo được tín hiệu đầu vào rồi cơ mà?  

– Ước lượng ở đây hiểu một cách tối nghĩa nó là dự đoán trước trạng thái, giống như trong kinh doanh vậy các bạn ạ, các bạn phải nhìn vào thì trường trong quá khứ, từ đó dự đoán được nhu cầu trong hiện tại và tương lai, từ đó chuẩn bị trước để đến khi nó xảy ra thì mình là  người nhanh nhất. Chứ chờ kết quả hiện tại, rồi mới suy nghĩ cách ứng phó thì trễ rồi.

–  Khi nào thì cần ước lượng: với các hệ thống như xe 2 bánh cân bằng, drone, hay con lắc ngược, nếu chờ đọc được trạng thái hiện tại, rồi xử lý đưa tín hiệu điều khiển thì có thể đã trễ rồi , hoặc làm cho chất lượng điều khiển không tốt: xe, con lắc, drone sẽ lắc quá lắc lại , không đứng yên ổn định được.

 

Đến đây chắc các bạn đã nắm được định tính Kalman Filter nó là gì, mục đích sử dụng và khi nào cần sử dụng rồi đúng không, trong bài viết tiếp theo mình sẽ nói chi tiết hơn về mô hình toán học của nó, áp dụng cho một trường hợp cụ thể nhé.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đây là cửa hàng demo nhằm mục đích thử nghiệm — các đơn hàng sẽ không có hiệu lực. Bỏ qua