Trang 1/10 123 ... cuốicuối
kết quả từ 1 tới 10 trên 99
  1. #1
    Tham gia
    Nov 2006
    Nơi Cư Ngụ
    Paris
    Bài viết
    1.694
    Thanks
    222
    Thanked 3.307 Times in 556 Posts
    Blog Entries
    1

    Mặc định Giới thiệu về bộ lọc Kalman

    Bộ lọc Kalman


    1.Bộ lọc là gì ?

    Trước tiên, bộ lọc là một quá trình xử lý nhằm loạị bỏ những gì không có giá trị hoặc không quan tâm đến và giữ lại những gì có giá trị sử dụng. Tiếng Anh gọi là filter (giống như cái filtre để pha cafe). Bạn có thể hình dung nôm na đơn giản cái filter pha cafe cũng làm nhiệm vụ lọc, nó lọc lấy chất cafein hòa lẫn nước và loại bỏ xác cafe.Trong xử lý tín hiệu, bọ lộc được thiết kế để lọc tín hiệu « sạch » (cần tìm) từ trong tín hiệu trộn lẫn giữa tín hiệu sạch và nhiều tín hiệu bẩn (không cần thiết).

    Ví dụ đơn giản là bạn có tín hiệu S (signal) trộn lẫn với nhiễu N (noise) trong một tín hiệu tổng hợp X. Và ta cần lọc để loại bỏ N ra khỏi X.

    X(k)=S(k)+N(k)

    Nếu bạn biết rằng nhiễu N dao động xung quanh 0 và có giá trị trung bình là 0
    khi M đủ lớn.

    Ta thấy rằng để loại bỏ N, ta có thể lấy tổng của X trên một cửa sổ có kích thước M.

    Nhìn ở một khía cạnh nào đó ta đã loại bỏ được N

    Tuy nhiên, cũng cần phải chú ý rằng cái bộ lọc có lọc kiểu gì thì cũng không thể loại hết toàn bộ nhiễu. Thế nên, các bộ lọc cũng chỉ lọc ra được tín hiệu sạch, theo nghĩa không còn nhiều nhiễu, nhưng cũng chỉ là ước lượng của tín hiệu thực, chứ không phải chính xác là tín hiệu thực.

    2.Bộ lọc Kalman là gì ?

    Trước tiên tên Kalman là tên của người nghĩ ra cái bộ lọc đấy. Vào năm 1960, R.E Kalman đã công bố bài báo nổi tiếng về một giải pháp truy hồi để giải quyết bài tóan lọc thông tin rời rạc tuyến tính (discrete data linear filtering). Tên đầy đủ của bài báo là "A New Approach to Linear Filtering and Prediction Problems" . Từ đó đến nay cùng với sự phát triển của tính tóan kỹ thuật số, bộ lọc Kalman đã trở thành chủ đề nghiên cứu sôi nổi và được ứng dụng trong nhiều ngành kỹ thuật công nghệ khác nhau : trong tự động hóa, trong định vị cũng như trong viễn thông (và nhiều lĩnh vực khác nữa).

    Một cách khái quát, bộ lọc Kalman là một tập hợp các phương trình tóan học mô tả một phương pháp tính tóan truy hồi hiệu qủa cho phép ước đoán trạng thái của một quá trình (process) sao cho trung bình phương sai của độ lệch (giữa giá trị thực và giá trị ước đóan) là nhỏ nhất. Bộ lọc Kalman rất hiệu quả trong việc ước đóan các trạng thái trong quá khứ, hiện tại và tương lai thậm chí ngay cả khi tính chính xác của hệ thống mô phỏng không được khẳng định.

    (xem tiếp)

    1. Bài viết này được lấy cảm hứng+ 1 phần nguồn cộng với những điều chỉnh cần thiết từ bài viết trên http://www.picvietnam.com/forum/show...=1521#poststop (đã được phép của tác giả).

  2. The Following 6 Users Say Thank You to nvqthinh For This Useful Post:

    dinhminh_fly (20/10/2013), DuLong (01/01/2009), flashworld (12/12/2011), monday0rsunday (20/11/2012), mrgahacobi (17/10/2012), quantukiems (22/11/2008)

  3. #2
    Tham gia
    Nov 2006
    Nơi Cư Ngụ
    Paris
    Bài viết
    1.694
    Thanks
    222
    Thanked 3.307 Times in 556 Posts
    Blog Entries
    1

    Mặc định

    3. Học bộ lọc Kalman như thế nào?

    3.1. Sơ kết

    Chúng ta đã biết, bộ lọc chỉ đơn giản như trên, nhưng chúng ta chưa biết bộ lọc Kalman như thế nào (ngoại trừ một định nghĩa khái quát)?


    Thực ra nó cũng chỉ đơn giản là từ một tín hiệu cần đo, khi chúng ta đo, sẽ có những sai số từ cảm biến, ảnh hưởng đến tín hiệu cần đo, môi trường đo có nhiễu... Tất cả những thứ này, tổng hợp lại, sẽ cho ta một kết quả đo.

    Học mạch lọc Kalman như thế nào? Đây là một câu hỏi lớn không lớn, nhỏ không nhỏ, nhưng tính quan trọng của nó dành cho những người mới học là không thể chối cãi. Tuy có thể chưa thấu đáo, tường tận, song hy vọng nó có thể giúp các bạn có những ý tưởng cơ bản về mạch lọc Kalman, và bắt đầu nghiên cứu nó một cách phổ biến.

    Một trong những kiến thức nền tảng để có thể hiểu về nguyên lý của bộ lọc Kalman chính là xác suất. Học bộ lọc Kalman hoàn toàn không khó. Để tìm hiểu về xác suất (dĩ nhiên là nếu bạn không biết về nó) thì có thể tham khảo ở đây.

    3.2. Ví dụ về ước lượng 1

    Ví dụ chúng ta lấy thước để đo chiều dài của một cây bút. Lần thứ nhất, chúng ta đo được là 10cm, lần thứ hai chúng ta đo được là 10.05cm chẳng hạn. Vậy thì nếu hỏi chiều dài cây bút là bao nhiêu?

    Có phải trong đầu các bạn luôn cho một giá trị ước lượng tốt nhất là 10.025cm? Điều đó đúng, nhưng căn cứ vào đâu để các bạn ước lượng như vậy?

    Rồi, nếu bây giờ, một anh F lấy cây thước đo chiều dài, và được kết quả là 10.02 cm, và một bạn T khác cũng lấy cây thước đo, và được chiều dài 10.07cm. Nếu chỉ có hai kết quả này thôi, chúng ta sẽ lại ước lượng rằng chiều dài của cây thước là 10.045 cm!

    Vậy thì, thực chất là không thể đánh đồng được chuyện đo đạc này, mà cần có một hệ số đánh giá.

    Chiều dài cây thước là

    chiều dài = alpha * 10.02 (của F đo) + (1-alpha)*10.07 (của T đo)

    Vậy alpha sẽ là bao nhiêu? Căn cứ vào đâu để lựa chọn alpha?

    Ví dụ trên để các bạn thấy được khái niệm về ước lượng.

    3.3. Ví dụ về ước lượng 2

    Giả sử chúng ta có một chiếc xe di chuyển với vận tốc 20m/s theo một phương x. Vị trí ban đầu của xe là 0.

    Khi đó, vận tốc của xe sẽ là:



    Trong đó, là nhiễu vận tốc đo.

    Kết quả, nếu bây giờ chúng ta cần xác định vị trí của xe sau 2 phút. Và giả sử chúng ta chỉ quan tâm đến cảm biến đo vị trí hoặc cảm biến đo vận tốc của xe. Chúng ta sẽ chỉ ra được 2 phương pháp ước lượng như sau:

    a) Phương pháp 1:




    ....

    Đây là ước lượng vị trí của xe, chỉ nhờ vào cảm biến vị trí của xe, trong đó, là các giá trị vị trí xe đo được.

    b) Phương pháp 2:

    (vị trí ban đầu của xe)
    (1 giây sau nếu giả sử xe di chuyển với vận tốc 20m/s)
    (1 giây sau nữa)
    ...

    Như vậy, cả hai phương pháp trên, cũng đều là một cách để chúng ta ước lượng vị trí của xe.

    Vậy áp dụng lại 3.2, chúng ta sẽ thấy rằng, nếu dùng hai phương pháp ước lượng khác nhau, chúng ta cũng sẽ có các giá trị ước lượng khác nhau. Chúng ta sẽ tin cách ước lượng nào hơn?

    c) Phương pháp 3:

    Vậy thì, chúng ta thử xem phương pháp ước lượng thứ ba như sau:



    Vậy các bạn có nhận xét gì về cách ước lượng này?

    Một cách chung chung (không phải là tổng quát, chỉ là khái niệm sơ khởi), nhiệm vụ của bộ lọc Kalman, chính là tìm ra hệ số alpha tối ưu để tìm gần đúng với x(t) nhất.

    Vậy nhiệm vụ của mạch lọc Kalman được phát biểu rõ hơn một chút, đó là tìm ước lượng gần đúng với x(t) nhất (giá trị ước lượng gần đúng với giá trị thực tế nhất) thông qua hiểu biết của chúng ta về mô hình của hệ thống.

    3.4. Bản chất của bộ lọc Kalman


    Hình trên mô hình hóa hoạt động của mạch lọc Kalman. Chúng ta có tín hiệu đo được, chúng ta có mô hình của tín hiệu đo được (đòi hỏi tuyến tính) và sau đó là áp dụng vào trong hệ thống phương trình của mạch lọc để ước lượng trạng thái quan tâm. Thực ra tín hiệu đo là không khó, phương trình đã có sắn, cái chung ta cần chính là mô hình hoá hệ thống. Để có thể ứng dụng một cách hiểu quả mạch lọc Kalman thì chúng ta phải mô hình hóa được một cách tuyến tính sự thay đổi của trạng thái cần ước lượng (estimate) hoặc ước đoán (predict).

    (các phấn tiếp theo sẽ đi sâu vào giới thiệu các phương trình toán học của mạch lọc và ví dụ cụ thể)

  4. The Following 7 Users Say Thank You to nvqthinh For This Useful Post:

    dinhminh_fly (20/10/2013), DuLong (01/01/2009), flashworld (12/12/2011), ghetatca4898 (30/07/2014), quantukiems (22/11/2008), taina92 (20/07/2014), vanthang_gt (05/05/2011)

  5. #3
    Tham gia
    Nov 2006
    Nơi Cư Ngụ
    Paris
    Bài viết
    1.694
    Thanks
    222
    Thanked 3.307 Times in 556 Posts
    Blog Entries
    1

    Mặc định

    4. Bộ lọc Kalman rời rạc

    Bộ lọc Kalman đề cập đến bài toán tổng quát đi ước lượng trạng thái của một quá trình được mô hình hóa một cách rời rạc theo thời gian bằng một phương trình ngẫu nhiên tuyến tính như sau

    (1)

    và kết quả đo đạc

    (2)

    Trong đó w và v là 2 vector biến ngẫu nhiên đại diện cho nhiễu hệ thông và nhiễu đo đạc. 2 biến ngãy nhiên này độc lập và được giả sử là tuân theo phân bố Gauss với trung bình =0 và ma trận hiệp biến (covariance) lần lượt là Q và R

    w ~N(0,Q)
    v ~N(0,R)

    Nếu vector trạng thái x có kích thước là n, thì ma trận A sẽ có kích thứoc là n x n. B (n x l) là ma trận phụ thuộc vào điều khiển tối ưu u với u là vector có kích thước là l. Vector đo đạc z có kích thước là m nên ma trận H sẽ là m x n. Chú ý rằng các ma trận Q,R, A, H có thể thay đổi theo thời gian (từng bước k), nhưng ở đây chùng được giả sử không đổi.

    Đến đây ta thấy bài toán lọc Kalman chính là đi tìm giá trị ược lượng và ước đoán của trạng thái x khi ta biết được sự biến thiên của nó và ta đo được một đai lượng z mà phụ thuộc tuyến tính vào x.
    Ví dụ trong bài toán chuyển động, ta biết được qui luật thay đổi của vận tốc, nhưng ta lại có thể đo được sự thay đổi của vị trí. Khi đó, cái ta cần tìm là vận tốc ược lượng.

    Nếu ta giả sử lần lượt là tiên nghiệm và tiền nghiệm ước lượng của giá trị x tại thời điểm k. Giá trị tiên nghiệm thu được chỉ dựa vào mô hình hệ thống (1), còn giá trị hậu nghiệm là giá trị thu được sau khi đã có kết quả đo đạc (2). Khi đó sai số của ước đoán tiên nghiệm và hậu nghiệm lần lượt là





    Ma trận hiệp biến của 2 sai số trên được tính lần lượt theo công thức





    Mục đích của chúng ta bây giờ là đi tìm hệ số K sao cho thỏa mản phương trình sau

    (3)

    Đến đây ta thấy , K cũng chính là alpha mà đã giới thiệu ở trên. Phương trình (3) có nghĩa là giá trị hậu nghiệm của ước lượng x sẽ được tính bằng giá trị tiên nghiệm của nó và sau đó thêm/bớt đi một tí dựa vào sai số giữa giá trị đo được và giá trị đo đạc ước đoán . K ở đây chính là độ lợi (gain) của mạch lọc Kalman.

    Câu hỏi đặt ra là làm thế nào để chọn K tối ưu nhất. Tối ưu ở đây theo nghĩa là covariance của sai số của ước lượng hậu nghiệm (tính từ (3)) là nhỏ nhất. Bằng cách thay e_k vào trong biểu thức tính P_k, rồi sau đó lấy đạo hàm của P_k theo K, ta sẽ tìm ra được giá trị K mà tương ứng với nó P_k là nhỏ nhất.



    thay đổi theo thời gian k và chính là độ lời cần tìm của mạch lọc Kalman trong mỗi ước đoán.



    Lần sửa cuối bởi smiles; 27/12/2010 lúc 19:54

  6. The Following 2 Users Say Thank You to nvqthinh For This Useful Post:

    DuLong (01/01/2009), hdiuecp (27/02/2011)

  7. #4
    Tham gia
    Nov 2006
    Nơi Cư Ngụ
    Paris
    Bài viết
    1.694
    Thanks
    222
    Thanked 3.307 Times in 556 Posts
    Blog Entries
    1

    Mặc định

    Tóm lại mạch lọc Kalman bao gồm 2 bước : 1- Ước đoán trạng thái tiên nghiệm, và sau đó, 2-dựa vào kết quả đo để hiệu chỉnh lại ước đoán. Ta có thể tóm tắt lại hoạt động của mạch lọc Kalman bằng các phương trình sau:

    Giả sử bạn đã có giá trị ước đoán ở tại thời điểm (k-1) và biết được giá trị điều khiển . (Giá trị ban đầu tại thời điểm 0 được chọn ). Lúc đó bạn chỉ việc lần lượt tiến hành các tính toán từ 1 đến 2 ở bước 1 rồi từ 1 đến 3 trong bước 2 như trong hình dưới đây.


    Hình trên tóm tắt cơ bản của mạch lọc Kalman. Như đã nhắc đến ở phần 3.4, cái khó của mạch lọc Kalman là làm thể nào để mô hình hóa các trạng thái và đo đạc để có được 2 phương trình (1) và (2) để có thể áp dụng Kalman.

    Để tìm hiểu thêm về mạch lọc Kalman, các bạn có thể xem ở đây http://www.cs.unc.edu/~welch/kalman/

  8. The Following 3 Users Say Thank You to nvqthinh For This Useful Post:

    DuLong (01/01/2009), minhtan09117 (24/09/2012), phuonggm (23/06/2011)

  9. #5
    Tham gia
    Jun 2007
    Nơi Cư Ngụ
    France
    Bài viết
    446
    Thanks
    41
    Thanked 345 Times in 142 Posts

    Mặc định

    Bài viết của bạn rất bổ ích, tuy nhiên, nếu bạn có thể viết một bài giới thiệu tổng quát về các loại bộ lọc số như FIR, IIR, Adaptive Filter (trong đó có Kalman Filter) thì người đọc sẽ nắm được một cách hệ thống hơn kiến thức về mảng này.
    Life is what happens when we're busy making plans.

  10. #6
    Tham gia
    Nov 2006
    Nơi Cư Ngụ
    Paris
    Bài viết
    1.694
    Thanks
    222
    Thanked 3.307 Times in 556 Posts
    Blog Entries
    1

    Mặc định

    Trích Nguyên văn bởi smiles Xem bài viết
    Bài viết của bạn rất bổ ích, tuy nhiên, nếu bạn có thể viết một bài giới thiệu tổng quát về các loại bộ lọc số như FIR, IIR, Adaptive Filter (trong đó có Kalman Filter) thì người đọc sẽ nắm được một cách hệ thống hơn kiến thức về mảng này.
    Hihi, mình chỉ có biết chút ít về bộ lọc Kalman và Grey vì có dùng đến nó đôi lần còn tổng quan về tất cả mấy loại filters thì mình chịu. Nhờ smiles hôm nào làm một thread giới thiệu tổng quan để anh em nắm được một cách hệ thống.

  11. #7
    Tham gia
    Jan 2008
    Nơi Cư Ngụ
    HCM City University Of Technology
    Bài viết
    264
    Thanks
    64
    Thanked 120 Times in 46 Posts
    Blog Entries
    1

    Mặc định

    Kalman đúng là rắc rối mà! Còn Kalman mở rộng nữa. Thường em thấy chủ yêu xài Kalman mở rộng vì ít hệ thống trong thực tế biến đổi trạng thái tuyến tính. Đi tìm lời giải cho bài toán không tuyến tính, người ta đưa ra giải thuật lọc Kalman mở rộng. Thực chất, lọc Kalman mở rộng hoàn toàn tương tự như lọc Kalman cơ bản. Chỉ khác ở giai đoạn xây dựng mô hình hệ thống, ta có thêm bước tuyến tính hóa hệ thống để có thể áp dụng lọc Kalman. Anh Thịnh viết tiếp đi

  12. #8
    Tham gia
    Jan 2008
    Nơi Cư Ngụ
    HCM City University Of Technology
    Bài viết
    264
    Thanks
    64
    Thanked 120 Times in 46 Posts
    Blog Entries
    1

    Mặc định Nhiễu ko co phân bố Gauss thì làm sao?

    các anh cho em hỏi, nếu như mình muốn sử dụng bộ lọc Kalman để ước lượng trạng thái nhưng nhiễu tiến trình không phải phân bố Gauss mà là một dạng khác, chẳng hạn như phân bố hàm mũ hay hàm logarit thì mình phải tính lại cái gì . Vidu: cu thể là nhiễu có phân bố hàm mũ ạ.

  13. #9
    Tham gia
    Oct 2008
    Nơi Cư Ngụ
    Vietnam National University, Hanoi
    Bài viết
    41
    Thanks
    1
    Thanked 35 Times in 11 Posts

    Mặc định

    Bài viết của bac Thinh rất hay. Em đang làm về phần INS/GPS sử dụng Kalman filter. nhưng quả thật là rất bí sách. Nếu bác nào có sách về lĩnh vực này có thể post lên cho em với.
    Các bác có thể kiếm được mấy cuốn này thì hay quá. em xin cảm ơn!
    Global Positioning Systems, Inertial Navigation, & Integration by Mohinder S. Grewal, Lawrence R. Weill, Angus P. Andrews

    Introduction to Random Signals & Applied Kalman Filtering with MATLAB Exercises by Robert G. Brown, Patrick Y.C. Hwang (Contributor)

    Applied Optimal Filtering by Arthur Gleb (Editor)

    Tracking & Kalman Filtering Made Easy by Eli Brookner

    Kalman Filtering : Theory & Practice Using MATLAB by Mohinder S. Grewal, Angus P. Andrews (cuốn này em có rồi ai cần em post lên cho)

    Linear Algebra, Geodesy, and GPS by Gilbert Strang, K. Borre

    Fundamentals of High Accuracy Inertial Navigation by Averil B. Chatfield

    Modern Inertial Technology : Navigation, Guidance, & Control by Anthony Lawrence

    The Global Positioning System and Inertial Navigation by Matthew Barth and Jay A. Farrell

  14. #10
    Tham gia
    Oct 2008
    Nơi Cư Ngụ
    Vietnam National University, Hanoi
    Bài viết
    41
    Thanks
    1
    Thanked 35 Times in 11 Posts

    Mặc định

    Bác nào có cuốn này thì tuyệt vời quá.
    Global Positioning Systems, Inertial Navigation, and Integration, 2nd Edition
    Mohinder S. Grewal, Lawrence R. Weill, Angus P. Andrews

Trang 1/10 123 ... cuốicuối

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •