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.
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
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 = F k-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 = F k-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:
- nghien_cuu_loc_thich_nghi_kalman_cho_cam_bien_gia_toc_tren_x.pdf