Nghiên cứu lọc thích nghi - Kalman cho cảm biến gia tốc trên xe lăn điện

Bài báo này trình bày phương pháp xử lý tín hiệu đo gia tốc góc nghiêng của

cảm biến gia tốc gắn trên xe lăn điện để cảnh báo hiện tượng đổ ngã trong quá

trình di chuyển. Cảm biến gia tốc là cảm biến ADXL345 có tín hiệu trả về là gia tốc

góc nghiêng theo ba trục X, Y, Z. Các tín hiệu này được đưa qua bộ lọc Kalman để

ước lượng chính xác gia tốc góc nghiêng bất kể sự tác động bởi các nhiễu hệ

thống và nhiễu đo lường. Ngoài ra, hệ thống cảnh báo đổ ngã trong quá trình di

chuyển cũng được trình bày trong bài báo này. Các kết quả mô phỏng bằng phần

mềm Matlab - Simulink và kết quả thực nghiệm đã chứng tỏ bộ lọc Kalman cho

ra tín hiệu đo chính xác, ít dao động mang lại độ tin cậy cho hệ thống điều khiển

của xe lăn điện.

pdf 5 trang yennguyen 5620
Bạn đang xem tài liệu "Nghiên cứu lọc thích nghi - Kalman cho cảm biến gia tốc trên xe lăn điện", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Nghiên cứu lọc thích nghi - Kalman cho cảm biến gia tốc trên xe lăn điện

Nghiên cứu lọc thích nghi - Kalman cho cảm biến gia tốc trên xe lăn điện
 CÔNG NGHỆ 
 Tạp chí KHOA HỌC & CÔNG NGHỆ ● Số Đặc biệt 2018 42
KHOA HỌC
NGHIÊN CỨU LỌC THÍCH NGHI - KALMAN 
CHO CẢM BIẾN GIA TỐC TRÊN XE LĂN ĐIỆN 
KALMAN ADAPTIVE FILTER RESEARCH FOR ACCELEROMETER ON THE ELECTRIC WHEELCHAIR 
Lê Ngọc Duy*, Phan Đình Hiếu, 
Nguyễn Anh Tú, Lưu Vũ Hải 
TÓM TẮT 
Bài báo này trình bày phương pháp xử lý tín hiệu đo gia tốc góc nghiêng của 
cảm biến gia tốc gắn trên xe lăn điện để cảnh báo hiện tượng đổ ngã trong quá 
trình di chuyển. Cảm biến gia tốc là cảm biến ADXL345 có tín hiệu trả về là gia tốc 
góc nghiêng theo ba trục X, Y, Z. Các tín hiệu này được đưa qua bộ lọc Kalman để 
ước lượng chính xác gia tốc góc nghiêng bất kể sự tác động bởi các nhiễu hệ 
thống và nhiễu đo lường. Ngoài ra, hệ thống cảnh báo đổ ngã trong quá trình di 
chuyển cũng được trình bày trong bài báo này. Các kết quả mô phỏng bằng phần 
mềm Matlab - Simulink và kết quả thực nghiệm đã chứng tỏ bộ lọc Kalman cho 
ra tín hiệu đo chính xác, ít dao động mang lại độ tin cậy cho hệ thống điều khiển 
của xe lăn điện. 
Từ khóa: Bộ lọc Kalman, cảm biến gia tốc, trạng thái ước lượng, giá trị đo, ma 
trận hiệp phương sai. 
ABSTRACT 
This paper presents a method of processing tilt angular accelerated signal 
of an accelerometer mounted on an electric wheelchair to alert the fall 
phenomenon during movement. The accelerometer is an ADXL345 sensor 
which generates accelerated signal in three X, Y, Z axis. This signal is passed 
through the Kalman filter to accurately estimate the angular acceleration 
regardless of the impact of system noise and measurement noise. In addition,
the crash warning system during moving process is introduced in this paper. 
The simulation results implemented by Matlab software and experiment 
results show that the Kalman filter contributes the accurate measurement 
signal with low oscillation that provides reliability for the electric wheelchair 
control system. 
Keywords: Kalman filter, accelerometer, estimated state, measured value, 
covariance matrix. 
Khoa Cơ khí, Trường Đại học Công nghiệp Hà Nội 
*Email: lengocduy2809@gmail.com 
Ngày nhận bài: 21/9/2017 
Ngày nhận bài sửa: 20/3/2018 
Ngày chấp nhận đăng: 25/10/2018 
1. ĐẶT VẤN ĐỀ 
Xe lăn điện là một phương tiện di chuyển mới dành 
cho người khuyết tật, người già và bệnh nhân. Nó thay thế 
cho xe lăn truyền thống và giúp cho người khuyết tật di 
chuyển dễ dàng và tiện lợi hơn. Trên xe lăn điện hiện đại, 
hệ thống cảnh báo đổ ngã được tích hợp, khi có hiện 
tượng đổ ngã xảy ra hệ thống sẽ lập tức gửi tin nhắn 
thông báo cho người nhà nhằm giảm nguy cơ rủi ro tai 
nạn. Để hệ thống cảnh báo hoạt động tin cậy thì hệ thống 
cảm biến đo góc nghiêng đóng vai trò hết sức quan trọng. 
Có rất nhiều cảm biến dùng để đo lường gia tốc, va chạm 
hay nghiêng góc. Những cảm biến này bao gồm lớp màng 
áp điện, servo cơ điện, áp điện, góc chất lỏng, vi cơ áp 
điện và cảm biến điện dung, cũng như là cảm biến vi cơ 
điện dung bề mặt [1]. Cảm biến ADXL345 dựa trên 
nguyên lý vi cơ áp điện đo được góc nghiêng ba trục, tiêu 
thụ năng lượng thấp và có thể đo được gia tốc chuyển 
động từ chuyển động hoặc độ rung của vật thể [2]. Tuy 
nhiên, cảm biến này có độ nhạy cao với các nhiễu cơ học 
nên cần phải có thêm các bộ lọc nhiễu. Có nhiều các bộ 
lọc đã được sử dụng như là bộ lọc trung bình, bộ lọc 
thông thấp, bộ lọc thông cao, bộ lọc số, bộ lọc thích nghi 
Kalman. Bộ lọc Kalman là bộ lọc số được dùng để lọc tín 
hiệu nhiễu bằng quan sát các phép đo trong một khoảng 
thời gian xác định. 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ác cảm biến thành phần [3]. Có rất nhiều 
công trình nghiên cứu bộ lọc Kalman để ước lượng trạng 
thái tín hiệu đo như là bộ lọc Kalman tuyến tính (Linear 
Kalman filter), bộ lọc Kalman mở rộng (Extended Kalman 
Filter) và bộ lọc Unscented Kalman [4, 5, 6]. Bộ lọc Kalman 
là một thuật toán ước lượng dự báo - hiệu chỉnh chính 
xác, sử dụng như một mô hình hệ động học để dự báo các 
giá trị trạng thái và một mô hình đo để hiệu chỉnh việc dự 
báo này. Bộ lọc Kalman tuyến tính được ứng dụng cho mô 
hình trạng thái và mô hình đo tuyến tính trong khi đó Bộ 
lọc Kalman mở rộng và bộ lọc Unscented Kalman được 
dùng để ước lượng biến trạng thái cho các mô hình phi 
tuyến. Bộ lọc Kalman mở rộng thực hiện tuyến tính hóa 
hàm phi tuyến dựa vào xấp xỉ hàm Taylor bậc 1, nó hoạt 
động kém hiệu quả với hệ phi tuyến cao. Để hạn chế 
nhược điểm, bộ lọc Unscented Kalman được sử dụng. Nó 
là phương pháp tính toán thống kê một biến ngẫu nhiên 
sau khi biến đổi không tuyến tính, nó mô tả trạng thái với 
một tập hợp tối thiểu các điểm mẫu được lựa chọn. Ngày 
nay, bộ lọc Kalman được ứng dụng nhiều trong thực tế. 
Bộ lọc Kalman sử dụng để tích hợp hệ thống định vị toàn 
SCIENCE TECHNOLOGY 
Số Đặc biệt 2018 ● Tạp chí KHOA HỌC & CÔNG NGHỆ 43
cầu (GPS) với các thiết bị đo quán tính (IMU) như là con 
quay hồi chuyển, gia tốc kế, điện từ kế [7]. Bộ lọc Kalman 
cũng được đưa vào trong cảm biến đo lưu lượng than 
trong nhà máy nhiệt điện [8] nhằm tối ưu hóa quá trình 
điều khiển lượng than trong nhà máy. Trong bài báo này, 
bộ lọc Kalman số tuyến tính sử dụng thuật toán xử lý dữ 
liệu hồi quy tối ưu nhằm ước lượng chính xác gia tốc góc 
nghiêng của của ba trục X, Y, Z trong quá trình xe bị 
nghiêng hay lật. Mô hình cảm biến và thuật toán Kalman 
được xây dựng trên phần mềm Matlab. Thuật toán này 
cũng được chuyển các code lập trình và được nạp vào hệ 
thống điều khiển của xe lăn điện. Nội dung về bộ lọc 
Kalman và hệ thống cảnh báo sẽ được trình bày ở các 
phần tiếp theo. 
2. HỆ THỐNG CẢNH BÁO ĐỔ NGÃ 
Hệ thống cảnh báo đổ ngã có chức năng gửi các tin 
nhắn cảnh báo khi có hiện tượng đổ ngã của xe. Hệ thống 
này có sơ đồ khối như hình 1. 
Hình 1. Sơ đồ khối hệ thống cảnh báo đổ ngã 
Trong đó, khối CPU được cấp dao động từ thạch anh 
ngoài với tần số 8MHz đủ để lấy mẫu và xử lý tín hiệu và 
được nuôi bởi nguồn 5V được kết nối với các thiết bị ngoại 
vi qua các giao thức kết nối UART và SPI. Khối Sim 548 qua 
hai chân truyền nhận có chức năng nhận tín hiệu từ khối 
trung tâm qua giao thức UART. Khối Modul ADXL 345 được 
kết nối tới CPU qua chuẩn gia thức SPI, khối này có nhiệm 
vụ thực hiện gửi giá trị đo góc cho modul CPU. Tín hiệu đo 
được gửi tới bị tác động bởi tín hiệu nhiễu vì vậy bộ lọc 
Kalman được xây dựng để loại bỏ tín hiệu nhiễu ra khỏi hệ 
thống. Quá trình thiết kế bộ lọc Kalman được miêu tả ở các 
phần tiếp theo. 
3. LỌC THÍCH NGHI KALMAN 
3.1. Cơ sở lý thuyết bộ lọc Kalman 
Bộ lọc Kalman đề cập đến bài toán đi ước lượng các 
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 [4]: 
  =  +   +   (1) 
Ngoài ra, tại thời điểm k bằng một phương pháp nào đó 
có thể đo đạc, quan sát được chính xác trạng thái của hệ 
thống và nó cũng được biểu diễn bởi một phương trình 
tuyến tính: 
  =   +  (2) 
Trong đó: F là ma trận chuyển trạng thái, nó được áp 
dụng cho trạng thái trước đó xk-1; B là ma trận kiểm soát đầu 
vào, nó được áp dụng cho các vector điều khiển uk; H là ma 
trận quan sát, nó chuyển không gian trạng thái đo đạc vào 
không gian trạng thái quan sát; wk, vk là 2 vector biến ngẫu 
nhiên đại diện cho nhiễu hệ thống và nhiễu đo đạc được 
giả định là tuân theo phân bố Gauss với trung bình là 0 và 
ma trận hiệp biến (covariance) lần lượt là Q và R. Trong đó 
~ ( , )k kw N 0 Q , ~ (0,). 
Các ma trận Q, R, F, 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 
để thuận tiện hơn cho quá trình tính toán. 
Bộ lọc Kalman gồm hai quá trình: 1- ước đoán trạng thái 
tiên nghiệm; 2- dựa vào kết quả đo để hiệu chỉnh tiên đoán. 
Quá trình ước đoán trạng thái tiên nghiệm 
Quá trình ước đoán tiên nghiệm để ước lượng giá trị 
trạng thái tiên nghiệm và ma trận hiệp phương sai tiên 
nghiệm. Để xác định được các giá trị này thì trước tiên phải 
khởi tạo giá trị ban đầu của trạng thái ước lượng hậu 
nghiệm k-1|k, và ma trận tương quan sai số k-1|k. Quá trình 
ước đoán trạng thái tiên nghiệm và ma trận hiệp biến tiên 
nghiệm được xác định như sau: 
k|k-1 = Fk-1|k+Buk (3) 
k|k-1 = FPk-1|k+Q (4) 
Trong đó : k|k-1 là trạng thái tiên nghiệm được ước đoán 
ở thời điểm k; k-1|k là trạng thái hậu nghiệm được ước đoán 
ở thời điểm k-1. Ma trận k|k-1 là ma trận tương quan sai 
số tiên nghiệm; Ma trận k-1|k là ma trận tương quan sai số 
hậu nghiệm. 
Quá trình hiệu chỉnh ước đoán 
Quá trình hiệu chỉnh ước đoán là quá trình dựa vào giá 
trị đo lường để hiệu chỉnh giá ước đoán tiên nghiệm để 
được kết quả ước đoán hậu nghiệm chính xác. Kết quả này 
chính là giá trị ước lượng đầu ra của bộ lọc Kalman. Quá 
trình hiệu chỉnh ước đoán được thực hiện như sau: 
 k|k = k|k-1+ ∗(zk – H∗ k|k-1) (5) 
 = |
(|
 + ) (6) 
|= ( − )| (7) 
Trong đó: Kk là độ lợi của mạch lọc Kalman, giá trị Kk thay 
đổi theo mỗi ước đoán k và được chọn sao cho tương quan 
sai số ước lượng hậu nghiệm là nhỏ nhất; I là ma trận đơn 
vị; k|k là trạng thái hậu nghiệm được ước đoán ở thời điểm 
thứ k. Đây chính là giá trị đầu ra của bộ lọc Kalman. 
3.2. Giải thuật Kalman áp dụng cho cảm biến gia tốc góc 
Cảm biến gia tốc góc ADXL345 trả tín hiệu đầu ra là một 
chuỗi xung và được tách thành ba giá trị đo theo ba trục X, 
Y, Z. Các giá trị đo này thường bị tác động bởi nhiễu nên 
không chính xác. Chính vì vậy bộ lọc Kalman được đưa vào 
loại bỏ ảnh hưởng của nhiễu. Các giá trị đo theo ba trục X, 
Y, Z là đầu vào của bộ lọc Kalman, các giá trị đo này là độc 
MODUL CPU
MODUL
ADXL 345
SIM 548
 5V DC
12V DC
LCD
COMPUTER
SPI UART
UART UART
 CÔNG NGHỆ 
 Tạp chí KHOA HỌC & CÔNG NGHỆ ● Số Đặc biệt 2018 44
KHOA HỌC
lập nên có thể đưa giải thuật lọc Kalman vào từng giá trị đo. 
Phương trình trạng thái rời rạc mô tả tín hiệu đo trên mỗi 
trục đo được xác định như sau: 
 =  +   +  ;  =  +  
Trong đó: xk là véc tơ trạng thái gồm ba thành phần là 
góc nghiêng, vận tốc gốc nghiêng và gia tốc góc nghiêng. 
 = 
 
 
 
;  =  ; B = 0;  = [1 0 0];  = 
1 ∆


∆

0 1 ∆
0 0 1
; 
Δ là chu kỳ lấy mẫu, ma trận F được chọn với giả thiết 
gia tốc góc là không đổi; tín hiệu , là tín hiệu nhiễu 
hệ thống và nhiễu đo đạc có ma trận hiệp biến Q, R lần lượt 
được chọn như sau:  = 
1 0 0
0 1 0
0 0 1
 .;  =[]; n,m là 
các giá trị dương được chọn theo thực nghiệm. 
Hình 2. Khối module ADXL345 
Các bước tính toán của bộ lọc: 
Bước 1: Ước đoán trạng thái tiên nghiệm 
 k|k-1 = Fk-1|k+Buk (8) 
 => 

 
 
= 
1 ∆


∆

0 1 ∆
0 0 1
.

 
 
 
= 
 + ∆   +


∆
 
  + ∆  
 
 
Bước 2: Xác định ma trận sai số tương quan tiên nghiệm 
k|k-1 = FPk-1|k+Q (9) 
 ⟹  |= 
1 ∆


∆

0 1 ∆
0 0 1
|
1 0 0
∆ 1 0


∆
 ∆ 1
+

1 0 0
0 1 0
0 0 1
 . 
Bước 3: Xác định độ lợi bộ lọc Kalman 
  = |
(|
 + ) (10) 
 Ta có : |= 
|
 |
 |

|
 |
 |

|
 |
 |

 
 ⟹   = | (|  + ) 
= 
|
 /(|
 + )
|
 /(|
 + )
|
 /(|
 + )
 
 Bước 4: Xác định giá trị ước đoán hậu nghiêm 
k|k= k|k-1+ ∗(zk – H∗ k|k-1) 
= 
|
 |
 |
+  ( − |) (11) 
Bước 5: Xác định ma trận sai số tương quan hậu nghiệm: 
 |= ( −  )|= (
1 0 0
0 1 0
0 0 1
 − .[1 0 0]) ∗

|
 |
 |

|
 |
 |

|
 |
 |

 (12) 
3.3. Kết quả mô phỏng và thực nghiệm 
Số liệu đo thực nghiệm được xác định từ cảm biến gia 
tốc góc ADXL345 (hình 2) được lưu vào bảng dữ liệu Excel 
(“dulieu.xslx”). Bảng dữ liệu này gồm có bốn cột trong đó 
ba cột lấy giá trị đo từ ba trục X, Y, Z và một cột lấy giá trị 
đo tổng hợp ba trục. Bảng dữ liệu này được truy suất tới 
phần mềm Matlab. Ngoài ra, thuật toán lọc Kalman được 
xây dựng và lập trình trên Matlab cho ra kết quả được mô 
tả bởi các hình tiếp theo. Chọn chu kỳ lấy mẫu Δ= 0,01, giá 
trị ban đầu của trạng thái ước đoán hậu nghiệm 
 |= 
0
0
0
 và ma trận tương quan sai số k-1|k = 
0 0 0
0 0 0
0 0 0
. 
0 50 100 150 200 250 300 350 400
-10
-8
-6
-4
-2
0
2
4
6
Số lượng mẫu đo
G
iá
 tr
ị 
đ
o 
th
eo
 p
hư
ơ
ng
 X
Giá trị ước lượng
Giá trị thực
(a) 
0 50 100 150 200 250 300 350 400
-15
-10
-5
0
5
10
15
G
iá
 t
rị
 đ
o
 t
he
o
 p
h
ư
ơ
ng
 Y
Số lượng mẫu đo
Giá trị ước lượng
Giá trị thực
(b) 
SCIENCE TECHNOLOGY 
Số Đặc biệt 2018 ● Tạp chí KHOA HỌC & CÔNG NGHỆ 45
(c) 
(d) 
Hình 3. Đặc tính các giá trị đo với m = 0,1; n = 0,5 
(a) 
(b) 
(c) 
(d) 
Hình 4. Đặc tính các giá trị đo với m = 0,1; n = 5 
Từ hình 3 có thể nhận thấy giá trị ước lượng gần giống 
với giá trị đo thực với sai lệch tương đối bé. Ngoài ra, giá trị 
ước lượng ít bị dao động hơn nhiều so với tín hiệu đo thực, 
điều đó chứng tỏ bộ lọc Kalman đã thực hiện tốt nhiệm vụ 
loại bỏ tín hiệu nhiễu. Khi tăng giá trị n = 5 và giữ nguyên 
giá trị m tức là tăng 10 lần ma trận hiệp phương sai của 
nhiễu tín hiệu đo (hình 4), khi đó dễ dàng nhận thấy mặc dù 
mức độ dao động của các giá trị ước lượng có giảm đi chút 
ít so với các giá trị ước lượng ở hình 3. Tuy nhiên, sai lệch 
giữa giá trị ước lượng và giá trị đo thực rất lớn, thời gian 
đáp ứng của bộ lọc giảm. Vì vậy, bộ lọc Kalman không đảm 
bảo ước lượng chính xác giá trị đo. Do vậy tỷ số n/m quyết 
định chất lượng của bộ lọc Kalman. Nếu tỷ số này bé thì bộ 
lọc đáp ứng nhanh, sai số giảm tuy nhiên khả năng loại bỏ 
nhiễu sẽ kém. Khi tỷ số n/m tăng dần thì đáp ứng bộ lọc sẽ 
chậm đi, sai lệch giữa giá trị thực và giá trị ước lượng sẽ 
tăng, tuy nhiên mức độ dao động sẽ giảm tức là khả năng 
lọc nhiễu của bộ lọc Kalman sẽ tốt lên. Chính vì vậy phải lựa 
chọn n/m thỏa mãn đầy đủ yêu cầu về khả năng đáp ứng, 
sai lệch và khả năng lọc nhiễu. Trong bài báo này lựa chọn 
m = 0,1, n = 0,5 đã thỏa mãn yêu cầu (hình 3). 
4. KẾT LUẬN 
Bài báo đã trình bày cấu trúc hệ thống cảnh báo đổ ngã 
và phương pháp thiết kế bộ lọc Kalman cho cảm biến 
ADXL345 được gắn trên xe lăn điện. Trong quá trình thiết 
kế, cơ sở lý thuyết và ứng dụng của lọc Kalman cho cảm 
 CÔNG NGHỆ 
 Tạp chí KHOA HỌC & CÔNG NGHỆ ● Số Đặc biệt 2018 46
KHOA HỌC
biến ADXL345 được trình bày. Kết quả mô phỏng đã chứng 
tỏ chất lượng tốt của bộ lọc Kalman. Giá trị ước lượng đã 
đảm bảo đáp ứng nhanh, sai lệch và dao động thấp so với 
giá trị đo thực. Ngoài ra, kết quả mô phỏng đã chứng tỏ đặc 
tính đầu ra của bộ lọc phụ thuộc vào các ma trận hiệp 
phương sai của tín hiệu nhiễu hệ thống và nhiễu đo đạc. 
Chính vì vậy cần phải lựa chọn chính xác các ma trận hiệp 
phương sai. 
TÀI LIỆU THAM KHẢO 
[1]. Robert H. Bishop. Mechatronic system, sensors, Actuators. Taylor and 
Francis Group 2007 
[2]. Analog Devices. Datasheet – ADXL345. One Technology way. 2017. 
[3]. R. E. Kalman. A new Approach to linear filtering and prediction problems. 
Transactions of the ASME-Jounal of Basic Engineering, 35-45, 1960. 
 [4]. T. Singhal, A. Harit, D. N. Vishwakarma. State estimation and error 
analysis of a single state dynamic system with sensor data using Kalman Filter. 
International Journal of Information and Electronics Engineering, Vol. 3, No. 4, 
399-402, 2013. 
[5]. S. J. Julier and J. K. Uhlmann. A New Extension of the Kalman Filter to 
Nonlinear Systems. In Proc. of AeroSense: The 11th Int. Symp. On 
Aerospace/Defence Sensing, Simulation and Controls., 1997. 
[6]. S. J. Julier. Unscented filtering and nonlinear estimation. In Proc. The IEEE, 
Vol. 92, No. 3, 401- 422, 2004. 
[7]. F. Caron, E. Duos, D. Pomorski, P. Vanheeghe. GPS/IMU Data Fusion using 
Multisensor Kalman Filtering: Introduction of Contextual Aspects. Information 
fusion, vol. 7, pp. 221-230, 2006. 
[8]. L. Magni, J. Paderno, and F. Pretolani. Kalman Filter Estimation of the 
coal flow in power plants. In Pro. of the 44th IEEE Conference on Decision and 
Control, Seville, Spain, 12-15, 2005. 

File đính kèm:

  • pdfnghien_cuu_loc_thich_nghi_kalman_cho_cam_bien_gia_toc_tren_x.pdf