Bộ lọc Kalman thực hiện phương pháp truy hồi đối với chuỗi các giá trị đầuvào bị nhiễu, nhằm tối ưu hóa giá trị ước đoán trạng thái của hệ thống.. Một cách khái quát, bộ lọc Kalman là mộ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Giảng viên hướng dẫn: PGS TS Nguyễn Thị Hoàng Lan
Danh sách sinh viên nhóm 18:
- Trần Minh Công MSSV: 20121345
- Phạm Quang Hiếu MSSV: 20121695
- Chu Văn Huy MSSV: 20121786
- Nguyễn Văn Khỏe MSSV: 20121926
- Lương Cao Phong MSSV: 20122218
Hà Nội, 30-11-2014
Trang 2LỜI NÓI ĐẦU
Việc ứng dụng các bộ lọc trong lọc nhiễu tín hiệu là một nhu cầu bức thiếttrong quản lý và thu thập thông tin hiện nay Điều đó đóng vai trò quan trọng trong
kĩ thuật định hướng, định vị và điều khiển các phương tiện di chuyển, cùng với kĩthuật phân tích dữ liệu trong các lĩnh vực xử lý tín hiệu và kinh tế nhất là trong thờiđại công nghệ thông tin phát triển như hiện nay
Bộ lọc Kalman, được Rudolf (Rudy) E Kálmán công bố năm 1960, là thuậttoán sử dụng chuỗi các giá trị đo lường, bị ảnh hưởng bởi nhiễu hoặc sai số, để ướcđoán biến số nhằm tăng độ chính xác so với việc sử dụng duy nhất một giá trị đolường Bộ lọc Kalman thực hiện phương pháp truy hồi đối với chuỗi các giá trị đầuvào bị nhiễu, nhằm tối ưu hóa giá trị ước đoán trạng thái của hệ thống
Để hoàn thành được bài tập lớn này, nhóm chúng em xin được gửi lời cảm
ơn chân thành đến cô giáo hướng dẫn, PGS.TS Nguyễn Thị Hoàng Lan, Giảngviên Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội - đã hết lònggiúp đỡ, hướng dẫn, chỉ dạy tận tình để nhóm em hoàn thành được đề tài này
Hà Nội, 10 tháng 12 năm 2014
Nhóm 18(Danh sách thành viên ký tên)
Trang 3MỤC LỤC
LỜI NÓI ĐẦU ………1
MỤC LỤC ……….2
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM ……… 3
I LỌC KALMAN MÔ HÌNH ỨNG DỤNG LỌC KALMAN LỌC NHIỄU TÍN HIỆU……… 4
1 Khái niệm bộ lọc Kalman ……… ……… 4
2 Mô hình ứng dụng lọc Kalman lọc nhiễu tín hiệu ………5
3 Các phương trình của bộ lọc Kalman……… 6
4 Bản chất của bộ lọc Kalman……….8
5 Bộ lọc Kalman rời rạc………8
II PHÂN BIỆT MÔ HÌNH ỨNG DỤNG LỌC KALMAN VỚI MÔ HÌNH ỨNG DỤNG LỌC WIENER LỌC NHIỄU TÍN HIỆU………12
III MÔ PHỎNG BỘ LỌC KALMAN VỚI LỌC NHIỄU TÍN HIỆU DÙNG MATLAB ……… 13
IV BÀI TẬP ………18
IV KẾT LUẬN……….20
V TÀI LIỆU THAM KHẢO……… ……….21
Trang 4PHÂN CÔNG CÔNG VIỆC TRONG NHÓM
Chu Văn Huy: Tìm hiểu lý thuyết lọc Kalman
Trần Minh Công: Tìm hiểu mô hình lọc Kalman lọc nhiễu tín hiệu
Nguyễn Văn Khỏe: Phân biệt mô hình ứng dụng lọc Kalman và môhình ứng dụng lọc Wiener với lọc nhiễu tín hiệu
Lương Cao Phong: Thử nghiệm mô phỏng bằng Mathlab
Phạm Quang Hiếu: Bài tập
Trang 5I LỌC KALMAN MÔ HÌNH ỨNG DỤNG LỌC KALMAN LỌC NHIỄU TÍN HIỆU
1 Khái niệm bộ lọc Kalman
- Bộ lọc được đề xuất năm 1960 bởi giáo sư Kalman để thu thập, kết hợp cácthông tin từ cảm biến thành phần Từ phương trình định hướng và mẫuthống kê nhiễu trên mỗi cảm biến, bộ lọc Kalman sẽ cho ược lượng giá trịtối ưu (chính xác do đã được loại sai số, nhiễu) như là đang sử dụng một tínhiệu tinh khiết
- Tín hiệu cảm biến vào bộ lọc gồm 2 tín hiệu:
Tín hiệu cảm biến góc (inclinometer)
Tín hiệu cảm biến vận tốc góc (gyro)
- Tín hiệu đầu ra của bộ lọc là tín hiệu của inclinometer và gyro đã được loạinhiễu
Khái niệm: Bộ lọc Kalman đơn giản là thuật toán xử lí dữ liệu hồi quy tối ưu.
Cách xác định tối ưu, phụ thuộc tiêu chuẩn đánh giá Bộ lọc Kalman hợp nhất tất cả thông tin được cung cấp tới nó Nó xử lí tất cả các giá trị sẵn có, ngoại trừ độ sai số, ước lượng giá trị tạm thời của những giá trị quan tâm.
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 toán học
mô tả một phương pháp tính toán truy hồi hiệu qủa cho phép ước đoán trạngthá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
Trang 6Hình 1: Mô hình đo lường ước lượng của bộ lọc Kalman
Hình 2: Tín hiệu trước và sau khi lọc qua Kalman
Chúng ta có tín hiệu đó được, mô hình của tín hiệu đo được (tín hiệu tuyến tính),sau đó áp dụng vào trong hệ thống phương trình của mạch lọc để ước lượng trạngthái được quan tâm Để ứng dụng hiệu quả mạch Kalman, ta cần mô hình hóa đượcmột cách tuyến tính sự thay đổi trạng thái cần ước lượng hoặc dự đoán
2 Mô hình toán học
- Giả sử có thể mô hình hóa bằng PT chuyển trạng thái:
x k+1=F k x k+G k u k+w k
Trang 7x k là trạng thái thời điểm k, u k là vector điều khiển đầu vào, w k là hệ thốngcộng hay nhiễu quá trình(thường là nhiễu trắng cộng), G k là ma trận chuyểnđổi đầu vào, F k là ma trận chuyển trạng thái.
- Giả sử khả năng quan sát trạng thái được thực hiện thông qua một hệ thống
đo lường có thể hiện được biểu diễn bằng PT tuyến tính:
z k=H k x k+v k
z k là thông tin quan sát hay đo lường thực hiện tại thời điểm k, x k là trạng tháitại thời điểm k, H k là ma trận quan sát, v k là nhiễu cộng trong quá trình đolường
Hình 3: Mô hình không gian trạng thái
x là trạng thái tại thời điểm k
z sẽ là thông tin đầu ra thu được
3 Các phương trình của bộ lọc Kalman
Tóm tắt các phương trình tổng quát trong 2 quá trình: ước lượng và điều chỉnh
+ Quá trình dự đoán:
Bộ lọc Kalman dựa vào trạng thái ước lượng điều chỉnh ^x k∨k- là ước lượng của x k
để ước lượng trạng thái ^x k+1∨k- là ước lượng dự đoán của x k+1cho phép đo z k+1
- Trạng thái dự đoán:
Trang 9Hình 4: Tóm tắt quá trình khởi tạo của Kalman
4 Bản chất của bộ lọc Kalman
Hình 5: Mô hình hóa bộ lọc Kalman
Hình trên mô hình hóa hoạt động của bộ lọc Kalman Chúng ta có tín hiệu
đo được, chúng ta có mô hình tín hiệu đo được (đòi hỏi tuyến tính) và sau đó là ápdụng vào trong hệ thống phương trình của bộ lọc để ước lượng trạng thái quan
Trang 10tâm Thực ra tín hiệu đo là không khó, phương trình có sẵn, cái chúng ta cần chính
là mô hình hóa hệ thống Để có thể ứng dụng một cách hiệu quả bộ 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áicần ước lượng (estimate) hoặc ước đoán (predict)
5 Bộ lọc Kalman rời rạc
- Bộ lọc Kalman đề cập đến bài toán tổng quát hóa đi ước lượng trạng thái củamộ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ộtphương trình ngẫu nhiên tuyến tính như sau:
x k+1=F k x k+G k u k+w k (1)
- Và kết quả đo đạc:
z k=H k x k+v k (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ẫu nhiên này độc lập và được giả sử tuân theo phân bố Gauss với
trung bình bằng 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ước là nxn.
B(nxl) 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.
Vector đo đạc z có kích thước là m nên ma trận H sẽ là mxn 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ử là 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 đại 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 quy luật thay đổi vận tốc nhưng talại có thể đo đạc được sự thay đổi của vị trí Khi đó cái ta cần tìm là vận tốc ướclượng
Nếu ta giả sử ^x−k¿¿
ϵ R n , ^x k ϵ ´R n lần lượt là xác suất tiên nghiệm và hậu
nghiệm ước lượng giá trị của x tại thời điểm k Giá trị tiên nghiệm chỉ phụ thuộc
Trang 11và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 chính là “độ lợi” của bộ lọc Kalman!
Thay giá trị e k vào P k , lấy đạo hàm P k theo K, ta sẽ tìm được giá trị K mà tương ứng với nó P k là nhỏ nhất:
K k = P−k¿H T
¿ ¿ ¿
K k thay đổi theo thời gian k và chính là độ lời cần tìm của bộ lọc Kalman
trong mỗi ước đoán
Tóm lại: bộ lọc Kalman trải qua 2 bước:
1 – Ước lượng trạng thái tiên nghiệm
2 – Dựa vào kết quả đo để hiệu chỉnh và ước đoánGiả sử bạn đã có giá trị ước đoán ^x k−1 ở tại thời điểm (k-1) và biết được giá trị điều
khiển u k-1 Giá trị ban đầu tại thời điểm 0 được chọn là ^x0 = H * z 0 Lúc đó bạn chỉcần lần lượt tiến hành các tính toán theo sơ đồ sau:
Trang 12Hình 6: Sơ đồ tính toán của bộ lọc Kalman
Trang 13II PHÂN BIỆT MÔ HÌNH ỨNG DỤNG LỌC KALMAN VỚI MÔ HÌNH ỨNG DỤNG LỌC WIENER LỌC NHIỄU TÍN HIỆU
• Mô hình bài toán
s(n) là tín hiệu cần ước lượng (được thu
nhận bởi hệ thống G từ môi trường có
nhiễu)
• Mô hình quan sát :
x(n) = G*s(n) + n(n)
với G(n) là hệ thống tuyến tính chưa
chính xác, n(n) là cộng nhiễu ngẫu nhiên
• Mô hình bài toán
Vector trạng thái trong mô hình lọcKalman của hệ thống tuyến tính tại thờiđiểm t phụ thuộc vào các trạng thái tạithời điểm t-1, theo quan hệ:
x t = F t x t-1 + B t u t + w t
• Mô hình quan sát:
z t = H t x t + v t với H t là ma trận của mô hình quan sát,
v t là nhiễu trong lúc đo.
giả sử nhiễu cũng tuân theo phân bố
Gaussian N(0,R t )
* Lọc Wiener là giải pháp cho mô hình bài toán ngược,ứng dụng nhiều trongvấn đề khôi phục tín hiệu gốc bị nhiễu chỉ từ tín hiệu quan sát được Nói cáchkhác thì lọc Wiener là giải pháp ước lượng cho tín hiệu
* Lọc Kalman là phương pháp thuật toán lọc nhiễu ra khỏi thông tin,ước lượngquá trình ngẫu nhiên quan sát được Lọc Kalman nhằm ước lượng trạng thái của
hệ thống tuyến tính theo dạng hộp đen mà tại đó chỉ có thể truy cập đến tín hiệuđầu ra của hộp,không quan sát được những gì xảy ra trong hộp Lọc Kalman làgiải pháp không chỉ cho ước lượng tín hiệu mà còn cả trong ước lượng trạngthái của các quá trình ngẫu nhiên quan sát được
Ví dụ:
Bài toán Kalman ước lượng vị trí và vận tốc của một ôtô đang chạy trênđường:
Trang 14- Vector trạng thái tại thời điểm t gồm 2 thành phần vị trí và vận tốc x t và ^x t
- Mô hình quan sát đo lường vector u tại thời điểm t: u t = f t
m
Với f là lực đẩy ôtô tại thời điểm t và m là trọng lượng ôtô
- Chu kỳ ∆t là thời gian tác động lực đẩy giữa thời điểm t – 1 và t
- Các trạng thái vị trí và vận tốc ôtô tại thời điểm t được xác định bởi:
Bài toán: Một vệ tinh do thám cứ 1 phút lại gửi 1 số lượng tín hiệu về trạm chỉ
huy Nhưng do quá trình đo đạc xảy ra nhiễu (nhiễu do nguồn điện, nhiễu do đolường, nhiễu do môi trường …) nên người ta cho tín hiệu đi qua bộ cảm biến
Nhiệm vụ: Từ bộ cảm biến này xác định độ nhiễu của tín hiệu bằng bộ lọc Kalman Phân tích:
Mô hình của bài toán:
Trang 15 Với :
o x k là vector trạng thái tín hiệu tại thời điểm k, (n,1)
o u k là vector tham số đầu vào điều khiển trạng thái k, (l,1)
o F k là ma trận chuyển trạng thái k, kích thước (n,n)
o B k là ma trận điều khiển trạng thái k, kích thước (n,l)
o w k là nhiễu ngẫu nhiên, phân bố Gaussian nhiều chiều N(0,Q), trong
đó Q kí hiệu của ma trận hiệp phương sai của nhiễu w
o z k là vector đo đạc (measurement) từ trạng thái x k cho kết quả theo môhình quan sát trạng thái k
o v k là nhiễu lúc đo đạc và giả sử nhiễu này cũng phân bố Gaussiannhiều chiều N(0,R)
Trang 16- Từ phương trình cho quá trình “Measure Update”, ta thấy:
o Hệ số K k tỉ lệ nghịch so với R Như vậy khi R lớn thì tốc độ ước lượng chậm, ngược lại khi R nhỏ thì tốc độ ước lượng nhanh Tốc độ nhanh đồng nghĩa với việc gia tăng độ tin tưởng cho bộ lọc!
o Hệ số K k tỉ lệ thuận so với số lượng giá trị mà cảm biến thu nhậnđược Như vậy, khi số lượng đạt đến một độ lớn vừa đủ ta sẽ thu đượckết quả như mong muốn!
- Chọn các thông số ước lượng ban đầu x(0) = 0; P 0 = 5; R = 1; đồng thời thay
đổi số lượng tín hiệu đi qua cảm biến trong vòng 1 phút
Với đầu vào số lượng 50:
Hình 1: Kết quả của bộ lọc với 50 điểm
Với đầu vào số lượng 250:
Trang 17Hình 2: Kết quả của bộ lọc với 250 điểm
- Kết quả mong muốn là đường nét liền màu đen, giá trị từ cảm biến là các
điểm màu xanh, kết quả ước lượng là đường nét liền màu đỏ
Nhận xét: Ta thấy được sự khác biệt rõ rệt của 2 đồ thị Ở đồ thị 2 số lượng điểm
tập trung quanh kết quả mong muốn dày đặc, kết quả ước lượng (đường nét liền
màu đỏ) khá thẳng so với kết quả mong muốn (đường nét liền màu đen).
%process noise and measurement noise
w = 1e-5; %process noise, may it equal to Zero
v = 1e0; %mesurement noise
%equivelent covariance
Trang 18Q = 1e-3;
R = 1;
%initial value
xpre = 0; %chosing this value is not import;
Ppre = 1; %must different from Zero;
%to plot the result
time = []; %timing
pos = []; %measurement result, from sersor
posest = []; %measurement estimate, after Kalman
%update for ploting
time = [time i];
plot(time,posest,'LineWidth',3,'MarkerEdgeColor','r','M
Trang 19input,'LineWidth',2,'MarkerEdgeColor','r','MarkerFaceCo
Trang 20a Chứng minh rằng nếu X(t) là quá trình ngẫu nhiên với trung bình bằng 0 và
có hàm tự tương quan R XX(t1, t2) = f (t¿ ¿ 1)f(t2)w(t1−t2) ¿ thì quá trình:
Y(t) =X (t) f (t) là quá trình WSS với hàm tự tương quan w(τ)).
b Chứng minh rằng nếu X(t) là nhiễu trắng với hàm tự tương quan có dạng
R XX(t1, t2) = q (t1)δ(t1−t2) thì quá trình Z(t) = X (t)
√q(t) là quá trình nhiễu trắngWSS
BÀI LÀM:
Để một quá trình A(t) nào đó là WSS thì E{A(t)} = hằng số và hàm tự tương
quan R AA(t1, t2) chỉ phụ thuộc vào hiệu số (t1−t2)
a Ta có: E{Y(t)} = E{ Y (t) X (t)} = 0 = hằng số (do E{X(t)} = 0 theo giảthiết)
Và R YY(t1,t2 ) = E{Y(t1)Y(t2)} = E{X (t f (t1)X (t2)
1 )f (t2) } = f R XX(t1, t2)
(t1) f (t2) = w (t¿ ¿1−t2 ) ¿,chỉ phụ thuộc vào (t1−t2)
Do đó Y(t) là quá trình WSS với hàm tự tương quan w(τ))
b Tương tự câu a, ta có: E{Z(t)} = E{ X (t)
Ta có: với t1 ≠ t2
C zz(t1, t2)=R ZZ(t1,t2)−µ z(t1)µ z(t2)=R ZZ(t1,t2)=δ(t1−t2) = 0
(do µ z(t1)¿µ z(t2) = 0)
Trang 21Do thời gian làm báo cáo không có nhiều nên chắc chắn có sai sót Rất mong thầy
cô giáo và các bạn góp ý bổ sung để chúng em có thể hoàn thiện báo cáo hơn.Chúng em xin chân thành cám ơn cô Nguyễn Thị Hoàng Lan đã giúp đỡ tận tình đểchúng em có thể hoàn thành được nội dung đề tài này!!!
Trang 22VI TÀI LIỆU THAM KHẢO
[1] Athanasios Papoulis “Probability, Random Variables and StochasticProcesses”, 3rd Edition McGraw Hill, 2002
[3] “An Introduction to the Kalman filter” Department of Computer Science,
Uni-versity of North Carolina at Chapel Hill, 2006, tác giả Leslie Lamport
[5] “Nghiên Cứu Bộ Lọc Kalman Áp Dụng Cho Bài Toán Cảm Biến” – 8/2008, tácgiả Nguyễn Quốc Dính