HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------
BÁO CÁO TIỂU LUẬN
MÔN: XỬ LÝ TÍN HIỆU SỐ NÂNG CAO
Đề tài: Tìm hiểu bộ lọc Kalman
Giảng viên hướng dẫn:
Nhóm SV thực hiện:
Ts. NGUYỄN NGỌC MINH
TRẦN VĂN HIỆU
QUÁCH VĂN PHI
VANHNARLAK SOULIGNAVONG
Lớp :
M14CQTE02-B
Hà nội, năm 2015
Tìm hiểu bộ lọc Kalman
MỤC LỤC
LỚP: M14CQTE02-B
Page i
Tìm hiểu bộ lọc Kalman
DANH MỤC HÌNH VẼ
LỚP: M14CQTE02-B
Page ii
Tìm hiểu bộ lọc Kalman
LỜI MỞ ĐẦU
Trong những năm gần đây, cảm biến và các thiết bị đo lường xuất hiện rất nhiều
trong các thiết bị tự động, dân dụng và thiết bị công nghiệp. Trong đó các cảm biến
thường là bộ phận thiết yếu trong các mạch đo lường dùng để thu nhập các thông số
môi trường(như cảm biến nhiệt độ, độ ẩm, ấp suất,…), thông số đo đạc trạng thái cơ
học(như cảm biến la bàn số, cảm biến vận tốc, gia tốc,…),...
Nhưng một sự bất cập trong các cảm biến là các giá trị đọc được từ cảm biến
thường chứa nhiễu bởi sự tác động của môi trường, của chính cảm biến, các quá trình
chuyển đổi... Do đó giá trị đọc được thường sai số khá lớn. Để giải quyết vấn đề nhiễu
như thế chúng ta thường sử dụng một bộ lọc thích hợp với sai số ảnh hưởng đến cảm
biến. Một số phương pháp lọc nhiễu thường được sử dụng đó là: lọc trung bình, lọc
thông thấp, thông cao và lọc Kalman.
Với những ưu điểm vượt trội, tiềm năng của thuật toán Kalman vào thực tế trong
việc áp dụng để lọc nhiễu trong tín hiệu là rất khả quan, điều này đặt ra cho chúng em
mong muốn nghiên cứu để nắm rõ và tiến tới làm chủ phương pháp này.
Định hướng của chúng em là tìm hiểu lý thuyết về bộ lọc Kalman, tìm hiểu về mô
hình toán học và phạm vi ứng dụng của nó. Sau đó áp dụng mô hình toán học của bộ
lọc trong một hệ thống đo lường cụ thể đó là lọc nhiễu cho cảm biến gia tốc.
Trong phạm vi của bài tiểu luận này, chúng em xin trình bày lý thuyết về bộ lọc
Kalman, nội dung cơ bản bao gồm những mục như sau:
-
Lý thuyết về ước lượng
Mô hình toán học của bộ lọc Kalman
Các ứng dụng của bộ lọc Kalman
Mô phỏng bộ lọc Kalman cho hệ thống tuyến tính rời rạc trên Matlab
Lớp: M14CQTE02-B
Page 4
Tìm hiểu bộ lọc Kalman
I. LÝ THUYẾT BỘ LỌC KALMAN
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 một bài toán lọc thông tin rời rạc truyế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 toán 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à trong nhiều lĩnh vực khác. 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ạng thái của một quá trình sao cho trung bình phương sai của độ là
nhỏ nhất. Bộ lọc Kalman rất hiệu quả trong việc ước đoán 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.
1. Lý thuyết về ước lượng
1.1. Khái niệm
Trong thống kê, một ước lượng là một giá trị được tính toán từ một mẫu thử và
người ta hy vọng đó là giá trị tiêu biểu cho giá trị cần xác định trong tập hợp. Người ta
luôn tìm một ước lượng sao cho đó là ước lượng “không chệch”, hội tụ, hiệu quả và
vững(robust)..
1.2. Đánh giá chất lượng
Một ước lượng là một giá trị x được tính toán trên một mẫu được lấy một
cáchngẫu nhiên, do đó giá trị của x là một biến ngẫu nhiên với kì vọng E(x) và phương
sai V(x). Nghĩa là giá trị x có thể dao động tùy theo mẫu thử, nó có ít cơ hội để có thể
bằng đúng chính xác giá trị X mà nó đang ước lượng. Mục đích ở đây là ta muốn có
thể kiểmsoát sự sai lệch giá trị x và giá trị X.
Một biến ngẫu nhiên luôn dao động xung quanh giá trị kì vọng của nó. Ta muốn
là kì vọng của x phải bằng X. Khi đó ta nói ước lượng là không chệch. Trung bình tích
lũytrong ví dụ về chiều cao trung bình của trẻ 10 tuổi một ước lượng đúng, trong khi
ướclượng về tổng số cá trong hồ được tính như trong ví dụ là một ước lượng không
đúng, đólà ước lượng thừa: trung bình tổng số cá ước lượng được luôn lớn hơn tổng số
cá có thực trong hồ.
Ta cũng muốn là khi mẫu thử càng rộng, thì sai lệch giữa x và X càng nhỏ. Khi
Lớp: M14CQTE02-B
Page 5
Tìm hiểu bộ lọc Kalman
đó ta nói ước lượng là hội tụ. Định nghĩa theo ngôn ngữ toán học là như sau:
lim p(| xn − X |> ε ) = 0
(Xn)
n→∞
hội tụ nếu
với mọi số thực dương (xác suất để sai lệch với
giá trị thực cần ước lượng lớn hơn tiến về 0 khi kích cỡ của mẫu thử càng lớn). Biến
ngẫu nhiên dao động quanh giá trị kì vọng của nó. Nếu phương sai V(x) càng bé, thì
sự dao động càng yếu. Vì vậy ta muốn phương sai của ước lượng là nhỏ nhất có thể.
Khi đó ta nói ước lượng là hiệu quả. Cuối cùng, trong quá trình điều tra, có thể xuất
hiện một giá trị “bất thường” (ví dụ có trẻ 10 tuổi nhưng cao 1,80 m). Ta muốn giá trị
bất thường này không ảnh hưởng quá nhiều đến giá trị ước lượng. Khi đó ta nói ước
lượng là vững. Có thể thấy trung bình tích lũy trong ví dụ về chiều cao trung bình trẻ
10 tuổi không phải là một ước lượng vững.
1.3. Kỳ vọng (Expectation)
Định nghĩa: Giả sử � là đại lượng ngẫu nhiên rời rạc có thể nhận các giá trị �1,
�2, … , �� với các xác suất tương ứng �1, �2, … , ��.
Khi đó kỳ vọng của X, ký hiệu là (�) hay � được xác định bởi công thức:
n
E ( x) = ∑ xi pi
i =1
(1.1)
Nếu � là đại lượng ngẫu nhiên liên tục có hàm mật độ xác suất là (�) thì kỳ
vọngcủa � là:
+∞
E ( x ) = ∫ xf ( x )dx
−∞
(1.2)
Tính chất
i. �(�) = �
ii. �(�. �) = �. (�), với � là hằng số.
iii.�(� + �) = �(�) + �(�)
iv. Nếu X và Y là hai đại lượng ngẫu nhiên độc lập thì:
v. �(�. �) = �(�). �(�)
Ý nghĩa: Kỳ vọng của một đại lượng ngẫu nhiên chính là giá trị trung bình (theo
xác suất) của đại lượng ngẫu nhiên đó. Nó là điểm trung tâm của phân phối mà các giá
trị cụ thể của X sẽ tập trung quanh đó.
Lớp: M14CQTE02-B
Page 6
Tìm hiểu bộ lọc Kalman
1.4. Phương sai (Variance)
Định nghĩa: Phương sai (trung bình bình phương độ lệch) của đại lượng
ngẫunhiên X, ký hiệu (�) hay (�) được xác định bởi công thức:
Var( X ) = E[( X − µ ) 2 ]
(1.3)
Nếu X là đại lượng ngẫu nhiên rời rạc có thể nhận các giá trị �1, �2, … , �� với
xác suất tương ứng là �1, �2, … , �� thì:
n
Var( X ) = ∑ [ xi − µ ]2 pi
i =1
(1.4)
Nếu X là đại lượng ngẫu nhiên liên tục có hàm mật độ xác suất là (�) thì:
+∞
Var ( x) = ∫ [ x − µ ]2 f ( x)dx
−∞
(1.5)
Trong thực tế ta thường tính phương sai bằng công thức:
Var ( x ) = E[ X 2 ] − E[ X ]2
(1.6)
Tính chất:
i.Var (�) = 0
ii. Var(�. �) = � 2. ���(�);
iii. Nếu X, Y là 2 biến ngẫu nhiên độc lập thì:
�ar(� + �) = ���(� − �) = ���(�) + ���(�)
(1.7)
Ý nghĩa: � − � là độ lệch khỏi giá trị trung bình. Do đó phương sai (�) gọi
làtrung bình bình phương độ lệch. Nên phương sai phản ánh mức độ phân tán của các
giá trị của đại lượng ngẫu nhiên quanh giá trị trung bình hay kỳ vọng. Đại lượng ngẫu
nhiên có phương sai càng lớn thì giá trị càng phân tán và ngược lại.
1.5. Độ lệch chuẩn
Định nghĩa: Độ lệch chuẩn của đại lượng ngẫu nhiên X, ký hiệu (�) được xác
định bởi công thức:
σ ( x) = Var ( x)
(1.8)
Lớp: M14CQTE02-B
Page 7
Tìm hiểu bộ lọc Kalman
1.6. Hiệp phương sai (Covariance)
Cho 2 biến ngẫu nhiên X và Y, ta có định nghĩa hiệp phương sai của X và Y,
kýhiêu (�, �):
Cov( X , Y ) = E[( X − µ x )(Y − µ y )]
(1.9)
Trong đó , �� lần lượt là kỳ vọng của X, Y.
Một công thức tương đương của hiệp phương sai:
Cov( X , Y ) = E[ XY ] − µ x µ y
(1.10)
Ý nghĩa của hiệp phương sai là sự biến thiên cùng nhau của 2 biến ngẫu nhiên:
Nếu 2 biến có xu hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá trị cao hơn
kỳ vọng thì biến kia cũng có xu hướng cao hơn kỳ vọng), thì hiệp phương sai của hai
biến này có giá trị dương. Mặt khác, nếu một biến nằm trên giá trị kỳ vọng còn biến
kia có xu hướng nằm dưới giá trị kỳ vọng, thì hiệp phương sai của hai biến có giá trị
âm.
Nếu 2 biến ngẫu nhiên là độc lập thì (�, �) = 0 tuy nhiên điều ngược lại không
đúng. Các biến ngẫu nhiên mà có hiêp phương sai bằng 0 được gọi là không
tươngquan (uncorrelated), chúng có thể độc lập nhau hoặc không.
Như vậy nếu X, Y độc lập ta có E[��] = .
Tính chất
-
Cov( X , Y ) = Var( X )
Cov( X , Y ) = Cov(Y , X )
Cov(aX , bY ) = abCov( X , Y )
Cov( X 1 + X 2 , Y1 + Y2 ) = Cov( X 1 , Y1 ) + Cov ( X 1 , Y2 ) + Cov ( X 2 , Y1 ) + Cov ( X 2 , Y2 )
Var ( X + Y ) = Var ( X ) + Var (Y ) + 2Cov ( X , Y )
1.7. Ma trận hiệp phương sai
Như chúng ta vừa trình bày, hiệp phương sai là đại lượng tính toán sự tương
quan giữa 2 biến ngẫu nhiên.
Lớp: M14CQTE02-B
Page 8
Tìm hiểu bộ lọc Kalman
Vậy giả sử chúng ta có một vector biến ngẫu nhiên có 3 phần tử �1, �2, �3.
Nếu ta muốn tính toán sự tương quan giữa tất cả các cặp biến ngẫu nhiên thì ta phải
tính tất cả 3
hiệp phương sai ���(�1, �2), ���(�1, �3), ���(�2, �3).
Một cách tổng quát, ma trận hiệp phương sai đã ra đời để cho phép ta tính tất cả
các ��� giữa 2 biến ngẫu nhiên trong một vector biến ngẫu nhiên.
Cho một vector biến ngẫu nhiên X chứa n biến ngẫu nhiên, ma trận hiệp
phương sai của X, kỹ hiệu là ∑, được định nghĩa là:
Cov( X 1 , Y1 ) Cov( X 1 , Y2 )
Cov( X , Y ) Cov( X , Y )
2 1
2
2
∑=
M
.
.
Cov( X n , Y1 ) Cov( X n , Y2 )
Với
. Cov( X 1 , Yn )
. Cov( X 2 , Yn )
.
.
. Cov( X n , Yn )
X1
X = ...
X n
Quan sát trên đường chéo của ma trận hiệp phương sai (i=j) ta thấy tại đó là các
phương sai, vì ���(�� , �� ) = ���(�� ).
1.8. Phân phối chuẩn (phân phối Gaussian)
Trong thực tế, người ta thường sử dụng phân phối xác suất có tên là phân phối
chuẩn (normaldistribution) hay phân phối Gaussian.Một biến ngẫu nhiên X được gọi là
có phân phối Gaussian khi nó có hàm mật độ là hàm Gaussian, ký hiệu là �~(�, �) gọi
là X có phân phối chuẩn với tham số �, �.Khi đó hàm mật độ của X là:
f ( x, σ , µ ) =
1
σ 2π
e
−
( x − µ )2
2σ 2
Với phân phối xác suất như trên, người ta tính được �, � lần lượt là kỳ vọng và
độ lệch chuẩn của X.
Dưới đây là đồ thị của một số phân phối chuẩn.
Lớp: M14CQTE02-B
Page 9
Tìm hiểu bộ lọc Kalman
Hình 1.1: Đồ thị của một số phân phối chuẩn.
Quan sát đồ thị ta thấy phân phối chuẩn có dạng chuông. Giá trị kỳ vọng của X
là �=� là trục đối xứng. Độ lệch chuẩn � (hay phương sai
σ2
) càng lớn thì đồ thị càng
bẹt, nghĩa là các giá trị càng phân tán ra xa kỳ vọng.
Trong thực tế, các loại nhiễu trong các hệ thống đo lường có thể được mô
phỏng một cách chính xác bằng nhiễu trắng cộng. Hay nói cách khác tạp âm trắng
Gaussian là loại nhiễu phổ biến nhất trong hệ thống đo lường. Loại nhiễu này có mật
độ phổ công suất đồng đều trên miền tần số và biên độ tuân theo phân bố Gaussian.
Theo phương thức tác động thì nhiễu Gaussian là nhiễu cộng. Vậy các hệ thống đo
lường phổ biến chịu tác động của nhiễu Gaussian trắng cộng (AWGN).
Lớp: M14CQTE02-B
Page 10
Tìm hiểu bộ lọc Kalman
Hình 1.2: Nhiễu Gaussian
1.9. Ước lượng của trung bình và phương sai
Ta chọn ngẫu nhiên n cá thể trong một dân số gồm N cá thể. Ta quan tâm đến
y
đặc trưng định lượng Y của dân số với trung bình
và phương sai V(Y). Trong mẫu
y
đó, đặc trưng Y có trung bình và phương sai đo được lần lượt là
σ
2
=
1
n
và
n
∑ ( yi − y ) 2
i =1
.
Lưu ý là các giá trị �̅ và σ2 thay đổi tùy theo mẫu thử, do đó chúng là các biến
ngẫu nhiên với trung bình và phương sai riêng khác nhau.
Ước lượng trung bình của Y:
y =
Thông thường trung bình của Y, tức là �̅ được ước lượng bởi:
1
n
∑ yi
n i =1
,
còn được gọi là trung bình tích lũy (hay trung bình cộng). Ta chứng minh được đây là
E( y ) = Y
ước lượng không chệch (unbiased), nghĩa là
.
Ước lượng phương sai của Y: là một ước lượng của V(Y), nhưng là ước lượng
không đúng, ta chứng minh được kì vọng của luôn nhỏ hơn V(Y), tức ước lượng là
thiếu. Các ước lượng đúng của V(Y) là:
n
n −1
σ
2
N
(1.11) trong trường hợp lấy mẫu có hoàn lại.
n
N −1 n −1
σ
2
(1.12) trong trường hợp lấy mẫu không hoàn lại.
Trong trường hợp mẫu lớn, phép tính có hoàn lại và phép tính không hoàn lại là
N
như nhau, vì
N −1
xấp xỉ bằng 1. Vì vậy trong trường hợp tổng quát ước lượng đúng
Lớp: M14CQTE02-B
Page 11
Tìm hiểu bộ lọc Kalman
s2 =
của V(Y) là:
1
n
∑ ( yi − y )2
n − 1 i =1
được gọi là phương sai tích lũy của Y.
1.10. Phương pháp bình phương tối thiểu
Trong toán học, phương pháp bình phương tối thiểu, còn gọi là bình phương
nhỏ nhất hay bình phương trung bình tối thiểu, là một phương pháp tối ưu hóa để lựa
chọn một đường khớp nhất cho một dải dữ liệu ứng với cực trị của tổng các sai số
thống kê (error) giữa đường khớp và dữ liệu.
Phương pháp này giả định các sai số (error) của phép đo đạc dữ liệu phân phối
ngẫu nhiên. Định lý Gauss-Markov chứng minh rằng kết quả thu được từ phương pháp
bình phương tối thiểu không thiên vị và sai số của việc đo đạc dữ liệu không nhất thiết
phải tuân theo, ví dụ, phân bố Gauss. Một phương pháp mở rộng từ phương pháp này
là bình phương tối thiểu có trọng số.
Phương pháp bình phương tối thiểu thường được dùng trong khớp đường cong.
Nhiều bài toán tối ưu hóa cũng được quy về việc tìm cực trị của dạng bình phương, ví
dụ như tìm cực tiểu của năng lượng hay cực đại của entropy.
Giả sử dữ liệu gồm các điểm (, ) với i = 1, 2, ..., n. Chúng ta cần tìm một hàm số
f thỏa mãn:
f ( xi ) ≈ yi
(1.13)
Giả sử hàm f có thể thay đổi hình dạng, phụ thuộc vào một số tham số, pj với j
= 1, 2, ..., m.
f ( x ) ≈ f ( p j , x)
(1.14)
Nội dung của phương pháp là tìm giá trị của các tham số sao cho biểu thức sau
đạt cực tiểu:
n
X 2 = ∑ ( yi − f ( xi ))2
i =1
(1.15)
Nội dung này giải thích tại sao tên của phương pháp là bình phương tối thiểu.
Đôi khi thay vì tìm giá trị nhỏ nhất của tổng bình phương, người ta có thể tìm giá trị
nhỏ nhất của bình phương trung bình:
Lớp: M14CQTE02-B
Page 12
Tìm hiểu bộ lọc Kalman
X2 =
1 n
∑ ( yi − f ( xi ))2
n i =1
(1.16)
Điều này dẫn đến tên gọi bình phương trung bình tối thiểu.
Trong hồi quy tuyến tính, người ta thay biểu thức
f ( xi ) ≈ yi
(1.17)
Bằng biểu thức
f ( xi ) = yi + ε i
(1.18)
Với hệ số nhiễu ε là biến ngẫu nhiên có giá trị kỳ vọng bằng 0. Trong biểu thức
của hồi quy tuyến tính x được đo chính xác, chỉ có y chịu nhiễu loạn ε. Thêm nữa, hàm
f tuyến tính với các tham số . Nếu f không tuyến tính với các tham số, ta có hồi quy
phi tuyến, một bài toán phức tạp hơn nhiều hồi quy tuyến tính.
2. Bộ lọc Kalman
2.1. Giới thiệu chung về bộ lọc Kalman
Được đề xuất từ năm 1960 bởi giáo sư Kalman để thu thập và kết hợp linh động
các thông tin từ cảm biến thành phần. Một khi phương trình định hướng và mẫu thống
kê nhiễu trên mỗi cảm biến được biết và xác định, 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ín hiệu
“tinh khiết” và có độ phân bổ không đổi. Trong hệ thống này, tín hiệu cảm biến vào bộ
lọc gồm hai tín hiệu: từ cảm biến góc (inclinometer) và 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ại nhiễu nhờ
hai nguồn tín hiệu hỗ trợ và xử lý lẫn nhau trong bộ lọc, thông qua quan hệ (vận tốc
góc = đạo hàm/vi phân của giá trị góc.
Bô lọc Kalman đơn giản là thuật toán xử lý dữ liệu hồi quy tối ưu. Có nhiều
cách xác định tối ưu, phụ thuộc tiêu chuẩn lựa chọn trình thông số đánh giá. Nó cho
thấy rằng bộ lọc Kalman tối ưu đối với chi tiết cụ thể trong bất kỳ tiêu chuẩn có nghĩa
nào. Một khía cạnh của sự tối ưu này là 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ả giá trị sẵn có, ngoại trừ độ sai số, ước lượng giá trị
hiện thời của những giá trị quan tâm, với cách sử dụng hiểu biết động học thiết bị giá
trị và hệ thống, mô tả số liệu thống kê của hệ thống nhiễu, gồm nhiễu ồn, nhiễu đo và
sự không chắc chắn trong mô hình động học, và những thông tin bất kỳ về điều kiện
Lớp: M14CQTE02-B
Page 13
Tìm hiểu bộ lọc Kalman
ban đầu của giá trị quan tâm.
Hình 1.3: Mô hình đo lường ước lượng của bộ lọc Kalman
Hình 1.3 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 hoặc dự đoán.
2.2. Mô hình toán học
2.2.1 Hệ thống và mô hình quan sát
Chúng ta giả sử rằng có thể mô hình hóa bởi phương trình chuyển trạng thái
xk +1 = Fk xk + Gk uk + w k
xk
uk
(2.1)
wk
Trong đó là trạng thái tại thời điểm k, là vector điều khiển đầu vào,
là
hệ thống cộng hay nhiễu quá trình – thường là nhiễu Gaussian trắng cộng (AWGN) ,
Lớp: M14CQTE02-B
Page 14
Tìm hiểu bộ lọc Kalman
là ma trận chuyển đổi đầu vào và là ma trận chuyển trạng thái.
Ngoài ra chúng ta giả sử rằng, 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ể được biểu diễn bởi một phương trình tuyến
tính như sau
Z k = H k xk + vk
Trong đó
Zk
(2.2)
là thông tin quan sát hay đo lường thực hiện tại thời điểm �,
trạng thái tại thời điểm �,
Hk
là ma trận quan sát và
vk
xk
là
là nhiễu cộng trong quá trình đo
lường.
Hình 2.1: Mô hình không gian trạng thái
2.2.2. Giả thiết
Chúng ta giả thiết như sau
wk
vk
• Nhiễu quá trình và nhiễu đo lường
và
là không tương quan, là nhiễu
Gaussian trắng cộng (AWGN) có giá trị trung bình bằng không và ma trận hiệp
phương sai đã biết.
Khi đó
Q
E wk wlT = {0 k
k =l
otherwise
(2.3)
Lớp: M14CQTE02-B
Page 15
Tìm hiểu bộ lọc Kalman
R
E vk vlT = {0k
k =l
otherwise
(2.4)
E wk vlT = 0 (∀k , l )
(2.5)
Trong đó và là các ma trận đối xứng nửa xác định dương.
• Trạng thái khởi tạo hệ thống �0 là một vector ngẫu nhiên không tương quan
với cả hệ thống và nhiễu đo lường.
• Trạng thái khởi tạo hệ thống có giá trị trung bình và ma trận hiệp phương
sai đã biết.
xˆ0|0 = E [ x0 ]
và
p0|0 = E ( xˆ0|0 − x0 )( xˆ0|0 − x0 )T
(2.6)
Đưa ra những giả định trên với mục đích để xác định, đưa ra tập giá trị quan sát
…,
xk +1
zk +1
z1
,
, bộ lọc ước lượng ở thời điểm � + 1 tạo ra một ước lượng tối ưu của trạng thái
mà chúng ta ký hiệu bởi
xˆk +1
, tối thiểu hóa kỳ vọng của hàm tổn thất bình phương
lỗi.
E || xk +1 − xˆk +1 ||2 = E ( xk +1 − xˆk +1 )T ( xk +1 − xˆk +1 )
(2.7)
2.2.3. Nguồn gốc
Ký hiệu ước lượng dự đoán của trạng thái
z1
zk
xk +1
dựa trên quan sát ở thời điểm �,
xˆk +1|k
, … , là
. Đó được gọi là một bước trước dự đoán hay đơn giản là dự đoán.
Bây giờ, giải pháp để tối thiểu hóa phương trình (2.7) là kỳ vọng của trạng thái ở thời
điểm � + 1 được ước định dựa trên quan sát ở thời điểm �. Như vậy
xˆk +1|k = E xk +1 | z1 ,..., zk = E xk +1 | Z k
Khi đó trạng thái dự đoán được cho bởi
Lớp: M14CQTE02-B
Page 16
(2.9)
Tìm hiểu bộ lọc Kalman
xˆk +1|k = E xk +1 | Z k
= E Fk xk + Gk uk + w k | Z k
= Fk E xk Z k + Gk uk + E w k | Z k
= Fk xˆk |k + Gk uk
(2.10)
Khi sử dụng trong thực tế, nhiễu quá trình có giá trị trung bình là 0 và �� đã
được biết chính xác.
Hiệp phương sai ước lượng dự đoán
trong ước lượng
xˆk +1|k
Pk +1|k
là trung bình bình phương sai số
.
Vì vậy, bằng việc sử dụng các sự kiện mà
wk
xˆk |k
và
là không tương quan:
Pk +1|k = cov( xk +1 − xˆk +1|k )
= E ( xk +1 − xˆk +1|k )( xk +1 − xˆk +1|k )T | Z k
= cov( Fk ( xk − xˆk |k ) + w k )
= Fk cov( xk − xˆk |k ) FkT + E w k w Tk
= Fk Pk |k FkT + Qk
(2.10)
Đang có một ước lượng dự đoán
quan sát
zk +1
xˆk +1|k
, giả sử rằng chúng ta đang có một giá trị
. Làm sao để sử dụng thông tin này để cập nhật trạng thái dự đoán, tức là
xˆk +1|k +1
tìm
. Chúng ta giả sử rằng ước lượng là tổng trọng số tuyến tính của dự đoán và
quan sát mới và có thể được mô tả bởi phương trình
xˆk +1|k = K k' +1 xˆk +1|k + K k +1 zk +1
Lớp: M14CQTE02-B
Page 17
(2.11)
Tìm hiểu bộ lọc Kalman
Trong đó
K k' +1
và
K k +1
là những ma trận hiệu chỉnh bù hay ma trận độ lời (của
K k' +1
K k +1
các kích thước khác nhau). Vấn đề của chúng ta bây giờ là tìm
và
để tối
thiểu hóa điều kiện ước lượng trung bình bình phương sai số. Sai số dự đoán được cho
bởi
ˆk +1|k +1 − xk +1
x%
k +1|k +1 = x
(2.12)
2.2.4. Điều kiện không chệch
E xˆk +1|k +1 − E xk +1
xˆk |k
Để bộ lọc không chệch yêu cầu
. Giả sử rằng
là một
ước lượng không chệch. Kết hợp phương trình (2.11) và (2.12) và tính kỳ vọng
E xˆk +1|k +1 = E K k' +1 xˆk +1|k + K k +1 H k +1 xk +1 + K k +1vk +1
= K k' +1 E xˆk +1|k + K k +1 H k +1 E [ xk +1 ] + K k +1 E [ vk +1 ]
Vì
E [ vk +1 ]
(2.13)
= 0, và dự đoán là không chệch:
E xˆk +1|k +1 = E Fk xˆk |k + Gk uk
= Fk E xˆk|k + Gk uk
= E [ xk +1 ]
Do đó kết hợp phương trình (2.13) và (2.14)
E xˆk +1|k +1 = ( K k' +1 + K k +1 H k +1 ) E [ xk +1 ]
Và điều kiện để
xˆk +1|k +1
không chệch yêu cầu
K k' +1 + K k +1 H k +1 = I
Lớp: M14CQTE02-B
Page 18
(2.14)
Tìm hiểu bộ lọc Kalman
Hay
K k' +1 = I − K k +1H k +1
(2.15)
Để ước lượng không chệch yêu cầu
xˆk +1|k +1 = ( I − K k +1 H k +1 ) xˆk +1|k + K k +1 zk +1
= xˆk +1|k + K k +1[zk +1 − H k +1 xˆk +1|k ]
(2.16)
Trong đó K được gọi là độ lời của bộ lọc Kalman (Kalman gain).
zˆk +1|k
H k +1 xˆk +1|k
có thể được hiểu như một quan sát hay đo lường dự đoán
zˆ k +1|k = E[ zk +1 | Z k ]
= E[ H k +1 xk +1 + vk +1 | Z k ]
=H k +1 xˆk +1|k
(2.17)
Đặt
rk +1
là độ lệch đo lường thể hiện sự sai khác giữa giá trị đo lường
ước lượng của nó
zˆk +1|k
zk +1
, được biểu diễn bởi
rk +1 = zk +1 − H k +1 xˆk +1|k
E rk +1 | Z k = E zk +1 − zˆk +1|k | Z k
= E zk +1 | Z k − zˆk +1|k
=0
(2.19)
Kết hợp (2.16) và (2.18) ta được
xˆk +1|k +1 = xˆk +1|k + K k +1rk +1
(2.20)
Lớp: M14CQTE02-B
Page 19
và
Tìm hiểu bộ lọc Kalman
Hiệp phương sai độ lệch đo lường
Sk +1
được cho bởi,
S k +1 = E[ rk +1rkT+1 ]
= E ( zk +1 − H k +1 xˆk +1|k )( zk +1 − H k +1 xˆk +1|k )T
S k +1 = H k +1 Pk +1|k H kT+1 + Rk +1
(2.21)
Chúng ta xác định hiệp phương sai sai số dự đoán của phương trình (2.10). Bây
giờ chúng ta tính toán hiệp phương sai sai số điều chỉnh.
T
k
%
Pk +1|k +1 = E ( x%
k +1|k +1 )( xk +1|k +1 ) | Z
= E ( xk +1 − xˆk +1|k +1 )( xk +1 − xˆk +1|k +1 )T
= cov( xk +1 − xˆk +1|k +1 )
= cov(( I − K k +1 H K +1 )( xk +1 − xˆk +1|k )) + cov( K k +1vk +1 )
= ( I − K k +1 H K +1 ) cov( xk +1 − xˆk +1|k )( I − K k +1 H K +1 )T + K k +1 cov(vk +1 ) K kT+1
Pk +1|k +1 = ( I − K k +1 H K +1 ) Pk +1|k ( I − K k +1 H K +1 )T + K k +1 Rk +1K kT+1
(2.22)
Ta có thể tính toán
Pk +1|k +1
theo cách khác như sau
Pk +1|k +1 = cov( xk +1 − xˆk +1|k +1 )
= cov( xk +1 − xˆk +1|k − K k +1rk +1 )
= cov( xk +1 − xˆk +1|k ) − cov( K k +1rk +1 )
= Pk +1|k − K k +1S k +1 K kT+1
(2.23)
Trong đó
Lớp: M14CQTE02-B
Page 20
Tìm hiểu bộ lọc Kalman
Pk +1|k = cov( xk +1 − xˆk +1|k )
Rk +1 = cov ( vk +1 ) = E ( vk +1vkT+1 )
Vì vậy hiệp phương sai của ước lượng điều chỉnh đã được biểu diễn qua hiệp
phương sai dự đoán
Pk +1|k
, nhiễu đo lường
Rk +1
và ma trận độ lời Kalman
K k +1
.
2.2.6. Độ lời Kalman
Mục tiêu của chúng ta là làm sao để tối thiểu hóa trung bình bình phương sai số
ước lượng có điều kiện với độ lời Kalman K.
( x%k +1|k+1) ( x% ) | Z
L = min E
K k +1
T
k
k +1|k +1
( x% ) ( x% ) | Z ÷
= min trace E
K k +1
= min trace
K k +1
(P
T
k
k +1|k +1
k +1|k +1
k +1|k +1
)
(2.24)
Với bất kỳ ma trận A và ma trận đối xứng B ta có
(
∂
trace( A
∂A
B A ) ) = 2 AB
T
Kết hợp (2.23) và (2.24) và lấy vi phân ma trận độ lời và đặt kết quả bằng 0 ta
được
∂L = − ( −
2 I K k +1H k +1) P k +1|k H k +1 + 2 K k +1R k +1 = 0
∂K k +1
T
Sắp xếp lại và đưa ra phương trình cho ma trận độ lời
K k +1 = P k +1|k H k +1 H k +1P k +1|k H Tk +1+ R k +1
T
Kết hợp với (2.21) ta được
Lớp: M14CQTE02-B
Page 21
−1
(2.25)
Tìm hiểu bộ lọc Kalman
K
T
k +1
−1
= P k +1|k H k +1S k +1
(2.26)
Cùng với phương trình 2.16, định nghĩa một ước lượng tối ưu tuyến tính trung
bình bình phương sai số.
Từ (2.26) ta có
T
T
T
K k +1S k +1K k +1 = P k +1|k H k +1K k +1
(2.27)
Kết hợp (2.23) và (2.27)
P k +1|k +1 = P k +1|k ( I − H k +1K k +1)
T
=
=
(P (I
k +1|k
(I
T
− H Tk +1K Tk +1
− H Tk +1K Tk +1
))
T
) ( P k +1|k )
T
T
= ( I − K k +1H k +1) P k +1|k
(2.28)
2.2.7. Tóm tắt các phương trình của bộ lọc Kalman
Trong phần này chúng ta sẽ tóm tắt các phương trình tổng quát của giải thuật
lọc Kalman. Giải thuật bao gồm 2 quá trình: quá trình ước lượng và quá trình điều
chỉnh.
• Quá trình dự đoán
xˆk|k
Bộ lọc Kalman dựa vào trạng thái ước lượng điều chỉnh
xk
để ước lượng trạng thái
xˆk +1|k
– là ước lượng dự đoán của
Trạng thái dự đoán:
Lớp: M14CQTE02-B
Page 22
xk +1
- là ước lượng của
cho phép đo
zk +1
Tìm hiểu bộ lọc Kalman
xˆ k +1|k = F k xˆ k|k + G ku k
(2.29)
Hiệp phương sai ước lượng dự đoán:
P k +1|k = F k P k |k F k + Q k
T
(2.30)
Đo lường dự đoán:
zˆ k +1|k = H k +1xˆ k +1|k
(2.31)
• Quá trình điều chỉnh
Độ lệch đo lường:
r k +1 = z k +1− H k +1 xˆ k +1|k
(2.32)
Hiệp phương sai độ lệch:
T
S k +1 = H k +1P k +1|k H k +1 + R k +1
(2.33)
Độ lời Kalman:
T
−1
K k +1 = P k +1|k H k +1S k +1
(2.34)
Trạng thái ước lượng điều chỉnh:
xˆ
k +1|k +1
=x
ˆ k +1|k + K k +1r k +1
(2.35)
Hiệp phương sai ước lượng điều chỉnh:
P k +1|k +1 = ( I − K k +1H k +1) P k +1|k
Lớp: M14CQTE02-B
Page 23
(2.36)
Tìm hiểu bộ lọc Kalman
Hình 2.2: Tóm tắt quá trình khởi tạo của Kalman
Cùng với các điều kiện ban đầu trong ước lượng và ma trận hiệp phương sai lỗi
của nó (phương trình 2.6) đã định nhĩa một giải thuật rời rạc hóa về thời gian và đệ
quy để xác định hiệp phương sai ước lượng tuyến tính tối thiểu được gọi là bộ lọc
Kalman.
II. ỨNG DỤNG CỦA BỘ LỌC KALMAN
Bởi vì bộ lọc Kalman giải quyết một số vấn đề cơ bản là lọc nhiễu và tối ưu cho
các ước lượng nên nó được ứng dụng rất rộng rãi. Ngày nay Kalman được ứng dụng
nhiều trong các ô tô tự lái có khả năng thay thế con người vận hành xe, một chương
trình máy tính được cài sẵn bộ lọc Kalman sẽ có nhiệm vụ điều khiển xe. Những chiếc
xe này thậm chí còn được giới thiệu là an toàn hơn xe lái bởi con người trong một số
trường hợp.
Một ứng dụng khác, có thể chúng ta không thích thú lắm, đó là các tên lửa
không đối không (air-to-air missile: AAM). Đó là các tên lửa dẫn hướng việc bắn từ
một máy bay để tiêu diệt máy bay khác. Tên lửa dẫn hướng hoạt động theo nguyên lý
Lớp: M14CQTE02-B
Page 24
Tìm hiểu bộ lọc Kalman
phát hiện mục tiêu (thông thường bằng rada hoặc hồng ngoại, đôi khi cũng sử dụng
Lazer hoặc quang học) sau đó tự động dẫn đến mục tiêu nhờ quá trình ước lượng của
Kalman.
Ngoài ra bộ lọc Kalman còn được áp dụng nhiều vào hệ thống theo dõi mục
tiêu di động trong mạng cảm biến không dây. Do nhiễu đo lường trên các cảm biến
nên kết quả thu được thường không chính xác, có sai số lớn so với thực tế. Bộ lọc
Kalman được áp dụng để lọc nhiễu, dự đoán, ước lượng trạng thái của mục tiêu như vị
trí, tốc độ và quỹ đạo. Nhờ có quá trình dự đoán và điều chỉnh của bộ lọc Kalman đã
góp phần quan trọng vào việc quản lý trạng thái các cảm biến làm giảm thiểu năng
lượng tiêu thụ cũng như tăng chất lượng theo dõi và kéo dài thời gian sống của mạng.
Một số ứng dụng được liệt kê từ bài viết Kalman Filter trên Wikipedia [5]:
−
−
−
−
−
−
−
−
−
−
−
Lái tự động máy bay (Autopilot)
Ước lượng trạng thái sạc của pin (Battery state of charge (SoC) estimation)
Giao diện tương tác với máy tính bằng não (Brain–computer interface)
Định vị chuyển động (Dynamic positioning)
Các ứng dụng trong kinh tế, đặc biệt là kinh tế vĩ mô, time series, và econometrics
Hệ thống dẫn đường quán tính (Inertial guidance system)
Theo dõi bằng radar (Radar tracker)
Hệ thống định vị vệ tinh (Satellite navigation systems)
Dự báo thời tiết (Weather forecasting)
Hệ thống định vị (Navigation Systems)
Mô hình hóa 3 chiều (3D-Modelling)
Ở Việt Nam có một số ứng dụng như:
− Ứng dụng lọc Kalman trong phân tích biến dạng nhà cao tầng do bức xạ nhiệt mặt
trời.
− Cải thiện chất lượng truyền động không đồng bộ bằng cấu trúc tách kênh trực tiếp sử
dụng kalman filter để quan sát từ thông.
− Ứng dụng Kalman Filter cho dự báo nhiệt độ 2m từ sản phẩm mô hình HRM.
− Hệ thống dẫn đường quán tính INS/GPS.
− Sử dụng bộ lọc Kalman kết hợp với thuật toán bám ảnh Camshift nhằm nâng cao chất
lượng bám trong các hệ thống robot tự động tìm kiếm và bám bắt mục tiêu.
III. MÔ PHỎNG BỘ LỌC KALMAN TRÊN MATLAB
Cho bài toán như sau: có một thông số đưa về từ cảm biến, tuy nhiên thông số này
chịu tác động của nhiễu (nguồn có thể là từ nhiễu của quá trình, nhiễu đo lường, nhiễu
Lớp: M14CQTE02-B
Page 25