Bộ lọc Kalman tuyến tính
lượt xem 2
download
Bài toán ước lượng trạng thái của hệ động lực là một trong những bài toán quan trọng trong lý thuyết điều khiển, có nhiều ứng dụng trong khoa học cũng như trong thực tiễn. Đối với các hệ động lực ngẫu nhiên, nhiều nhà khoa học đã đề xuất phương pháp sử dụng bộ lọc Kalman và các ứng dụng của nó.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bộ lọc Kalman tuyến tính
- ĐẠI HỌC TÀI CHÍNH - KẾ TOÁN BỘ LỌC KALMAN TUYẾN TÍNH LINEAR KALMAN FILTER Ngày nhận bài : 15/11/2021 ThS. Đặng Thị Kiêm Hồng Ngày nhận kết quả phản biện : 17/12/2021 Trường Đại học Tài chính - Kế toán Ngày duyệt đăng : 22/12/2021 TÓM TẮT Bài toán ước lượng trạng thái của hệ động lực là một trong những bài toán quan trọng trong lý thuyết điều khiển, có nhiều ứng dụng trong khoa học cũng như trong thực tiễn. Đối với các hệ động lực ngẫu nhiên, nhiều nhà khoa học đã đề xuất phương pháp sử dụng bộ lọc Kalman và các ứng dụng của nó. Bài viết giới thiệu những vấn đề cơ bản về bộ lọc Kalman tuyến tính, làm rõ quy trình hoạt động của bộ lọc thông qua ví dụ trong không gian một chiều và hai chiều. Việc hiểu rõ quy trình hoạt động của bộ lọc sẽ làm nền tảng cho những nghiên cứu chuyên sâu về lọc Kalman cũng như những ứng dụng của bộ lọc trong kinh tế, tài chính. Từ khoá: Bộ lọc Kalman, lý thuyết cơ bản về bộ lọc Kalman. ABSTRACT The problem of state estimation of the dynamic system is one of the important problems in control theory, which has many applications in science as well as in practice. For stochastic dynamical systems, many scientists have proposed the method of using Kalman filter and its applications. The article introduces the basics of linear Kalman filters, and clarifies the filter’s operation through examples in one-dimensional space and two-dimensional space. Understanding the filter’s working process will be the foundation for in-depth studies on Kalman filter as well as its applications in economics and finance. Keywords: Kalman filter, basic theory of Kalman filter. 1. Giới thiệu Trong thống kê và kinh tế học, bộ lọc chỉ đơn giản là một thuật ngữ được sử dụng để mô tả một thuật toán cho phép ước lượng đệ quy các tham số không được quan sát, thay đổi theo thời gian hoặc biến đổi trong hệ thống. [2.] Nó khác với dự báo vì dự báo được đưa ra cho tương lai, trong khi bộ lọc thu được các ước lượng về các tham số không thể quan sát được trong cùng khoảng thời gian với tập thông tin. Bộ lọc Kalman được giới thiệu lần đầu tiên vào năm 1960 bởi Rudolf E. Kalman (1930 – 2016), một kỹ sư điện, nhà toán học, nhà phát minh người Mỹ gốc Hungary. Bộ lọc Kalman là một bộ lọc tuyến tính đệ quy, lần đầu tiên được phát triển như một bộ lọc rời rạc để sử dụng trong các ứng dụng kỹ thuật và sau đó được sử dụng bởi các nhà thống kê và các nhà kinh tế lượng. Bộ lọc Kalman là một công cụ mạnh mẽ kết hợp thông tin không chắc chắn ở thời điểm hiện tại cùng với thông tin đầy nhiễu loạn của môi trường sang một dạng thông tin mới đáng tin cậy hơn để phục vụ dự đoán tương lai. Bộ lọc sử dụng quan sát hiện tại để dự đoán giá trị không thể quan sát của kỳ tiếp theo và sau đó sử dụng thời gian thực hiện tiếp theo để cập nhật dự báo đó. Bộ lọc Kalman tuyến tính là tối ưu, tức là công cụ ước tính trung bình bình phương sai số nhỏ nhất nếu các biến quan sát và nhiễu tuân theo phân phối Gauss. Mặt khác, nó là tốt nhất trong số các loại bộ lọc tuyến tính. Điểm mạnh của bộ lọc Kalman là chạy rất nhanh và tính ổn định cao. 97
- TẠP CHÍ KHOA HỌC TÀI CHÍNH KẾ TOÁN Bài viết sẽ giới thiệu bộ lọc Kalman tuyến tính, làm rõ quy trình hoạt động của bộ lọc trong trường hợp một chiều và hai chiều ở mục 2. Sau đó bài viết giới thiệu bộ lọc Kalman tổng quát ở mục 3 và cuối cùng là kết luận. 2. Ý tưởng cơ bản của bộ lọc Kalman 2.1. Trường hợp biến ngẫu nhiên một chiều Trước hết ta sẽ xem xét bộ lọc Kalman đơn giản trong không gian một chiều.[6.] Kí hiệu giá trị Kalman đạt được là KG (Kalman Gain), sai số trong ước lượng là EEST (error in estimate), sai số trong đo lường là EMEA (error in measurement), giá trị ước lượng hiện tại là ESTt (current estimate), giá trị ước lượng trước đó là ESTt −1 (previous estimate), giá trị đo lường là MEA (measurement), EESTt là sai số trong giá trị ước lượng hiện tại, EESTt −1 là sai số trong giá trị ước lượng trước đó. Cách thức hoạt động của lọc Kalman là lặp đi lặp lại quy trình gồm 3 bước: EEST • Bước 1: Tính KG = . EEST + EMEA • Bước 2: Tính ESTt = ESTt −1 + KG [ MEA − ESTt −1 ] . ( ( EMEA ) EESTt−1 ) • Bước 3: Tính EESTt = = [1 − KG ] EESTt −1 . ( ) ( ( EMEA ) + EESTt−1 ) Bây giờ ta sẽ tìm hiểu thông qua ví dụ đơn giản và dễ hiểu giúp ta biết được cách thức hoạt động của bộ lọc Kalman: Hiện tại nhiệt độ thực là 72, giả sử ta không biết nhiệt độ thực này và đang cố gắng tìm ra nhiệt độ thực bằng bộ lọc Kalman thông qua ước lượng ban đầu là ESTt −1 = 68 , sai số ước lượng EEST = 2, giá trị đo lường ban đầu MEA = 75, sai số trong đo lường EMEA = 4 . Lần tính đầu tiên: EEST 2 1 • Bước 1: Tính KG = = = = 0,33 . EEST + EMEA 2 + 4 3 • Bước 2: ESTt = ESTt −1 + KG [ MEA − ESTt −1 ] = 68 + 0,33 ( 75 − 68 ) = 70,33 . ( ) • Bước 3: EESTt = [1 − KG ] EESTt −1 = (1 − 0,33) .2 = 1,33 . Lặp lại quá trình tính toán ta có: EEST 1,33 KG = = = 0, 25 EEST + EMEA 1,33 + 4 ; ESTt = ESTt −1 + KG [ MEA − ESTt −1 ] = 70,33 + 0, 25 ( 71 − 70,33) = 70,50 . ( ) EESTt = [1 − KG ] EESTt −1 = (1 − 0, 25 ) .1,33 = 1, 00 . Tiếp tục quy trình trên, ta có kết quả tóm tắt trong bảng sau: MEA EMEA EST EESTt −1 KG EESTt t-1 68 2 t 75 4 70,33 0,33 1,33 t+1 71 4 70,50 0,25 1,00 t+2 70 4 70,40 0,20 0,80 t+3 74 4 71 0,17 0,66 Sau 4 lần lặp ta thấy giá trị ước lượng là 71, gần với giá trị thực 72. Số vòng lặp càng lớn, giá trị ước lượng theo bộ lọc Kalman sẽ cho kết quả rất gần giá trị thực 72. 98
- ĐẠI HỌC TÀI CHÍNH - KẾ TOÁN 2.2. Trường hợp biến ngẫu nhiên hai chiều Để tổng quát hóa, người ta đã đưa ra định dạng ma trận cho bộ lọc Kalman, nhằm đưa vào chương trình máy tính tính toán tự động. Để minh họa cho phần này, chúng ta sẽ sử dụng mô hình là một chiếc xe tự lái đang chuyển động trên một đường thẳng với hai trạng thái cần theo dõi là: vị trí (position) và vận tốc (velocity).[4] Trên xe cũng có gắn thiết bị GPS để định vị với sai số 10m, đây là con số khá lớn nếu chúng ta muốn xác định chính xác vị trí của chiếc xe. Ngoài ra, chiếc xe còn chịu ảnh hưởng của địa hình (chẳng hạn như ổ gà hay các đoạn đường gồ ghề), do đó xác định vị trí chiếc xe thông qua đồng hồ vận tốc là không thể chính xác. Chúng ta không biết vị trí và vận tốc thực sự của chiếc xe và bộ lọc Kalman sẽ giả định rằng hai biến position và velocity là ngẫu nhiên và tuân theo phân ( ) ( ) phối Gauss với các tham số lần lượt là µp , σ p2 và µv , σ v2 . Vecto chứa các biến trạng thái của hệ µ thống là xt = p . Để xác định sự phân tán của hệ trạng thái tại thời điểm t, chúng ta sử dụng ma µv trận hiệp phương sai, trong đó mỗi phần tử của ma trận biểu diễn giá trị hiệp phương sai giữa hai biến: cov ( p, p ) cov ( p, v ) Σt t = cov ( v, p ) cov ( v, v ) trong đó cov ( p, p ) = σ p2 , cov ( v, v ) = σ v2 . Để dự đoán, chúng ta cần có mô hình động lực. Các phương trình chuyển động được biểu diễn như sau (tạm thời chỉ quan tâm đến chuyển động đều): pt = pt −1 + vt −1∆t vt = vt −1 Đưa về dạng ma trận: 1 ∆t với F = gọi là ma trận động lực của hệ trạng thái. 0 1 Sau khi dự đoán được trạng thái mới của hệ thống, chúng ta cần cập nhật lại ma trận hiệp phương sai của hai biến ngẫu nhiên này: Σt t −1 = F Σt −1 t −1 F ′ (F’ là ma trận chuyển vị của ma trận F). Nếu trong quá trình hoạt động, chiếc xe cần giảm tốc (vì gặp đèn tín hiệu) hoặc tăng tốc (để vượt dốc) thì ta cần thêm biến gia tốc a vào mô hình động lực. 1 pt = pt −1 + vt −1∆t + a∆t 2 2 vt = vt −1 + a∆t Đưa về dạng ma trận: ∆t 2 trong đó B = 2 gọi là ma trận điều khiển đầu vào, ut = a gọi là biến điều khiển đầu vào. ∆t Ngoài ra chúng ta cần quan tâm đến các tác động từ môi trường mà ta không thể kiểm soát được (chẳng hạn như địa hình), vì thế trạng thái dự đoán được có thể không chính xác. Chúng ta sẽ mô phỏng các tác động này như nhiễu với trung bình w = 0 và hiệp phương sai Q : 99
- TẠP CHÍ KHOA HỌC TÀI CHÍNH KẾ TOÁN Tiếp theo chúng ta sẽ sử dụng dữ liệu đọc được từ cảm biến để hiệu chỉnh trạng thái của hệ thống. Với trạng thái được dự đoán , chúng ta mong muốn rằng trạng thái đo được từ cảm biến cũng sẽ gần giống như vậy: Trong đó, H là ma trận quan sát, vì chúng ta có thể đo được giá trị hai biến vị trí và vận tốc nên 0 1 H = . Tất nhiên kết quả của phép đo không thể trùng với kết quả dự đoán trên lý thuyết vì nhiễu, 1 0 z do đó nó cần được biểu diễn bởi một phân phối Gauss nhiều biến có giá trị kỳ vọng là zt = p , ma trận hiệp phương sai R. zv Như vậy đến thời điểm này chúng ta đã có 2 phân phối Gauss (của trạng thái được dự đoán và của trạng thái đo được). Để tìm ra phân phối của vùng giao nhau giữa 2 phân phối Gauss (một biến), chúng ta cần thực hiện phép nhân giữa 2 phân phối đó: ( ) ( ) ( N x µ , σ 2 = N x µ0 , σ 02 .N x µ1 , σ 12 ) Sau một loạt biến đổi (tham khảo trong [1.]), chúng ta sẽ nhận được: σ 2 (µ − µ ) σ4 µ = µ0 + 0 2 1 2 0 ; σ 2 = σ 02 − 2 0 2 . σ 0 + σ1 σ 0 + σ1 σ 02 Đặt k = 2 2 ta nhận được: µ = µ0 + k ( µ1 − µ0 ) , σ = (1 − k ) σ 02 . 2 σ 0 + σ1 Đối với phân phối Gauss nhiều biến, ta có: K = Σ 0 ( Σ 0 + Σ1 ) −1 (2.1) µ = µ0 + K ( µ1 − µ0 ) (2.2) Σ = ( I − K ) Σ0 (2.3) Trong đó: Σ là ma trận hiệp phương sai của phân phối Gauss nhiều biến; I là ma trận đơn vị; K được gọi là ma trận Kalman đạt được. Tiếp theo là cập nhật trạng thái, quay trở lại với chiếc xe tự lái, chúng ta đã có hai phân phối Gauss nhiều biến: N ( µex , Σ ex ) và N ( zt , R t ) , thay vào (2.2) và (2.3) với và ( µ1 , Σ1 ) = ( zt , Rt ) ta được: (2.4) H Σt t H ′ = H Σt t −1 H ′ − KH Σt t −1 H ′ (2.5) ( ) −1 Thay vào (2.1) ta được: K = H Σt t −1 H ′ H Σt t −1 H ′ + Rt (2.6) Nhân bên trái của hai vế đẳng thức (2.6) cho H −1 và đặt K t = H −1.K ta được: ( ) −1 K t = Σt t −1 H ′ H Σt t −1 H ′ + Rt (2.7) Nhân bên trái của hai vế đẳng thức (2.4) cho H −1 ta được: . Nhân bên trái và bên phải của hai vế đẳng thức (2.5) cho H −1 ta được: Σt t = Σt t −1 − K H Σt t −1 . Như vậy, ta có hệ phương trình cập nhật như sau: 100
- ĐẠI HỌC TÀI CHÍNH - KẾ TOÁN Giá trị chính là trạng thái ước tính tốt nhất và nó sẽ được sử dụng để dự đoán trạng thái ở thời điểm t + 1.[5] Hình 2.1. Các quy trình trong lọc Kalman (Hình do tác giả vẽ). Hình 2.2. Sơ đồ khối của bộ lọc Kalman. 3. Bộ lọc Kalman tổng quát Gọi Z t ∈ n là (các) giá trị quan sát cho biến Z và gọi X t ∈ m là vectơ của (các) biến không quan sát trong thực tế. Mối quan hệ giữa Z và X được giả định là đã biết và được mô tả bằng phương trình: Z t = H t′X t + v t (3.1) trong đó H t đã biết, vt là nhiễu trắng Gauss với E [ vt .v′s ] ≡ Rtδ ts , trong đó δ ts là Kronecker delta, bằng 1 nếu t = s và bằng 0 nếu t ≠ s . X t được giả sử phát triển theo phương trình chuyển động: X t +1 = Ft X t + wt (3.2) trong đó wt là nhiễu trắng Gauss với E [ wt .ws′ ] ≡ Qtδ ts . 101
- TẠP CHÍ KHOA HỌC TÀI CHÍNH KẾ TOÁN Các giả thiết bổ sung là vt và wt là độc lập, trạng thái ban đầu là một biến ngẫu nhiên Gauss có giá trị trung bình E X 0 Z −1 = E [ X 0 ] = X 0 và Var X 0 Z −1 = ∑ 0 độc lập với vt và wt . Bộ lọc Kalman đưa ra một thuật toán để xác định các ước lượng và với ma trận hiệp phương sai tương ứng ∑t t −1 và ∑t t . Nó bao gồm các phương trình sau: (3.3) (3.4) (3.5) ( ) −1 ∑t +1 t = Ft ∑t t −1 − ∑t t −1 H t H t′ ∑t t −1 H t + Rt H t′ ∑t t −1 Ft′ + Gt Qt Gt′ (3.6) ∑ 0 −1 = ∑ 0 (3.7) (3.8) ( ) −1 ∑t t = ∑t t −1 − ∑t t −1 H t H t′ ∑t t −1 H t + Rt H t′ ∑t t −1 (3.9) Lưu ý rằng (3.5) và (3.8) ngụ ý: (3.10) Vì vậy (3.3) tương đương với (3.11) Ma trận K t được gọi là ma trận Kalman đạt được và phương trình (3.6), được định nghĩa một cách đệ quy là ma trận hiệp phương sai có điều kiện, được gọi là phương trình Ricatti. Các phương trình (3.3) và (3.6) là các phương trình dự đoán, đưa ra các ước tính tối ưu của các giá trị trong tương lai dựa trên tập thông tin hiện tại và các phương trình (3.8) và (3.9) là các phương trình cập nhật cập nhật dự báo của giai đoạn trước dựa trên các giá trị hiện tại có thể quan sát được. Khi X t là không cố định, thuật toán có thể được khởi tạo với các giá trị tùy ý cho X 0 −1 và ∑ 0 −1 , nhưng với các phần tử trên đường chéo phản ánh độ không đảm bảo về X 0 −1 . Phần lớn trọng số sau đó sẽ được trao cho thông tin mới trong vòng lặp thứ hai. Ngoài ra, bộ lọc giả định rằng Ft , H t , Rt và Qt đã biết. Khi chúng chưa được biết, chúng có thể được ước lượng bằng cách sử dụng phương pháp ước lượng khả năng tối đa (MLE). Vì các giá trị đã cho của các tham số, bộ lọc Kalman cho ηt t −1 = Z t − Z t t −1 và phương sai có điều kiện của sai số dự báo Σt t −1 = E ηt2t −1 = H t′ ∑t t −1 H t + Rt . Nếu X 0 , vt và wt theo phân phối Gauss, thì phân phối có điều kiện của Z t cũng theo phân phối Gauss và MLE có thể được sử dụng để ước tính các tham số không xác định. Một trong những sức mạnh chính của thuật toán đến từ tính đệ quy tự nhiên của nó. Bộ lọc có các chu kỳ dự đoán và cập nhật liên tiếp, theo đó một ước tính của X t lần đầu tiên được thu thập dựa trên thông tin tại t -1 và quan sát Z t được sử dụng để cập nhật và cải thiện dự đoán. Điều này có nghĩa là rằng bộ lọc tự động sử dụng tất cả thông tin có trong dự báo và bộ thông tin mà không cần phải lưu trữ và xử lý toàn bộ dữ liệu lịch sử ở mọi bước. Ví dụ: Xét hệ Newton không nhiễu với vị trí p, vận tốc v và tăng tốc liên tục a. Hệ thống có thể được mô tả như sau: 102
- ĐẠI HỌC TÀI CHÍNH - KẾ TOÁN p 0 1 0 p v = 0 0 1 v hay X = A. X a 0 0 0 a Phiên bản rời rạc của hệ này (với số phân hoạch thời gian là T) có thể được viết như sau: X k +1 = FX k trong đó F được cho bởi 1 T T 2 / 2 ( ) 2 AT ( ) F = exp AT = I + AT + 2! + ... = 0 1 T . 0 0 1 Bộ lọc Kalman của hệ trên là: Xˆk k −1 = FXˆk −1 k −1 Σk k −1 = F Σk −1 k −1F '+ Qk −1 = F Σk −1 k −1F ' (do Qk −1 = 0 ). Vì ta không có bất cứ thông tin đo đạc nào từ sau thời điểm k-1 (thời điểm đã được xử lý) đến trước thời điểm k nên việc ước lượng là không chắc chắn. Giả sử ta đo được vị trí với phương sai δ : 2 Z k = H k′X k + vk = 1 0 0 X k + vk vk ( ) 0, Rk , Rk Ma trận Kalman đạt được từ phương trình (3.5) là −1 K k = Fk ∑k k −1 H k H k′ ∑k k −1 H k + Rk . Các phương trình cập nhật được xác định theo phương trình (3.8) và (3.9). Sau đây là kết quả tính toán dựa trên chương trình Mathlab cho 60 bước thời gian đầu tiên (T = 60), code Mathlab được lấy từ trang web của cuốn sách tham khảo [3.]. Hình 3.1. thể hiện phương sai của ước lượng vị trí, cho thấy phương sai tăng giữa mỗi bước thời gian và giảm ở mỗi bước kế tiếp, hình này cũng cho thấy phương sai hội tụ về trạng thái ổn định. Hình 3.2. thể hiện sai số của phép đo vị trí (với độ lệch chuẩn 30) và sai số trong ước lượng vị trí sau thử nghiệm. Sai số ước lượng bắt đầu với độ lệch chuẩn gần 30 nhưng đến cuối mô phỏng, độ lệch chuẩn là khoảng 11. Hình 3.1. Hình 3.1. Hình 3.2. Hình 3.2. 103
- TẠP CHÍ KHOA HỌC TÀI CHÍNH KẾ TOÁN 5. Kết luận Bộ lọc Kalman có nhiều ứng dụng trong công nghệ, kinh tế và tài chính, trong khuôn khổ bài viết tác giả chưa thể giới thiệu được hết. Hiện đã có một khối lượng nghiên cứu đồ sộ về bộ lọc Kalman, tuy nhiên việc hiểu được nguyên tắc hoạt động của thuật toán là rất quan trọng, tạo tiền đề cho những nghiên cứu chuyên sâu sau này. Đóng góp chủ yếu của tác giả là hệ thống các kết quả và chi tiết các ví dụ để người đọc dễ tiếp cận hơn với Bộ lọc Kalman. Hiện tại vẫn còn nhiều bài toán liên quan đến hệ động lực ngẫu nhiên, sử dụng bộ lọc Kalman mở rộng và bộ lọc Kalman không mùi đang được giới khoa học quan tâm nghiên cứu. TÀI LIỆU THAM KHẢO 1. P.A. Bromiley, Products and Convolutions of Gaussian Probability Density Functions, Tina Memo No. 2003-003, 2014. 2. Pasricha, Gurnain Kaur, Kalman Filter and its Economic Applications, MPRA Paper No. 22734, 2010. 3. D. Simon, Optimal State Estimation: Kalman, H-infinity, and Nonlinear Approaches, John Wiley & Sons, 2006. 4. https://codelungtung.wordpress.com/2019/05/29/bo-loc-kalman/ 5. https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/ 6. https://www.youtube.com/watch?v=CaCcOwJPytQ&t=9s 104
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Điều khiển mô hình con lắc ngược sử dụng bộ điều khiển LQR với hai vòng phản hồi
5 p | 138 | 12
-
Áp dụng bộ lọc Kalman để nâng cao độ chính xác đo GPS động
12 p | 31 | 5
-
Sử dụng bộ lọc Kalman tuyến tính tối ưu cho hệ bám thời gian giữ chậm tín hiệu GPS
8 p | 73 | 3
-
Xác định đồng thời paracetamol và cafein trong hỗn hợp bằng phương pháp trắc quang kết hợp thuật toán lọc Kalman
8 p | 53 | 2
-
So sánh kỹ thuật ước lượng sử dụng phương pháp tuyến tính hóa và bộ lọc Kalman mở rộng cho động cơ đồng bộ nam châm vĩnh cửu
6 p | 10 | 2
-
Nghiên cứu đặc tính thống kê các lỗi dự báo tín hiệu giao thoa trong thuật toán bộ lọc Kalman phi tuyến
9 p | 37 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn