Ứng dụng thuật toán Kalman hỗn hợp để giảm ảnh hưởng của nhiễu rung xóc do động cơ của máy bay

    ỨngdụngthuậttoánKalmanhỗnhợp đgiảmảnhhưởngcủanhiễurungxócdo độngcơ củamáybaykhôngngườiláicỡnhỏtronghệthốnglái-dẫn đườngtự động.

                                                                TS. Nguyễn Đăng Minh

                                                   Khoa Công Nghệ Đại học Hòa Bình-Hà Nội

Abstract

Autopilot system of the small unmanned aircraft have use gyroscope sensors. The data of the sensor always contains impurities and particularly complex due to the vibration of working aircraft engines.

This paper proposes an data filtering method based on Kalman filter.

The results were evaluated based on Matlab simulation and testing on the application of sensor MPU6050.

  1. Đặt vấn đề:

Bộ truyền cảm các góc báo trạng thái của máy bay không người lái(UAV)là bộ phận quan trọng trong hệ thống điều khiển lái-dẫn đường của máy bay. Cũng giống như các thiết bị cảm biến khác, thông tin do bộ cảm biến đưa ra luôn kèm theo các tín hiệu nhiễu cần phải loại bỏ để hệ thống lái tự động làm việc được ổn định. Với UAV cỡ nhỏ ngoài nhiễu thường gặp trên còn có nhiễu do động cơ máy bay khi làm việc gây nên.Lọc loại nhiễu này là một yêu cầu cấp thiết đảm bảo hệ thống làm việc tin cậy.

 Để xác định thuật toán lọc tín hiệu từ bộ truyền cảm các góc sử dụng trong hệ thống điều khiển tự động UAV, cần xác định cơ chế đo các góc trong một bộ cảm biến bất kỳ. Các bộ cảm biết khác nhau chỉ khác nhau về các giá trị sai số cụ thể.

Ta ký hiệu  là giá trị cần đo của bộ cảm biến góc.  có thể là góc nghiêng, góc chúc ngóc hoặc góc hướng. Bộ cảm biến nhận góc này thông qua bộ cảm biến con quay hoặc cảm biến vi cơ rồi cung cấp cho hệ thống để thực hiện tự  động lái-đẫn đường choUAV.

Giá trị của có thể được xác định một cách áng chừng(tiên nghiệm) từ trước thông qua biểu thức có tác dụng điều khiển tham số cần đo và tính tới tất cả các yếu tốảnh hưởng đến nó.

Khi đó  có thể  thay đổi theo một quy luật nào đó, ví dụ:

Trong đó  là giá trị của x ở bước k+1và k tương ứng. Còn là đại lượng chi phối quy luật biến đổi từ bước k sang bước k+1 của x. Trong thực tế ta không thể tính hết các yếu tố ảnh hưởng đến  nên giá trị cụ thể của  sẽ là ngẫu nhiên. Tính đến tính chất ngẫu nhiên này ta  bổ sung thêm vào biểu thức trên đại lượng ngẫu nhiên :

Trong bản thân bộ cảm biến, đầu ra sẽ được số hóa và  tín hiệu đưa ra dựa trên kết quả đo giá trị đầu ra với sai số ngẫu nhiên

Dựa vào đặc tính thống kê của các tham số ngẫu nhiên trong quá trình hình thành và cách đo   từ  ta có thể xác định giá trị thực của  bằng một giá trị gần đúng nào đó, gọi giá trị này là giá trị tối ưu(ở bước k) và ký hiệu là  Như thế ta có:

 (1)

Như vậy, biết cơ chế hình thành x và z, từ z và các tham số ngẫu nhiên cần tìm ra giá trị gần đúng nhất so với   là

Cụ thể hóa một số điểm:

-  Là đại lượng điều khiển đã biết, nó kiểm soát quá trình tiến triển của tham số x.

-  là đại lượng ngẫu nhiên xuất hiện khi đo x ở bước đo k. Cả  ,  đều là các đại lượng ngẫu nhiên. Đương nhiên định luật phân bố của chúng độc lập với nhau do bản chất của chúng(từ bước trước tới bước sau).

- Kỳvọngtoánhọccủacácgiá trịngẫunhiêntrên đượcgiảthiết:

                         .

Điều này tương đối phù hợp với thực tế cảm biến góc.

- Luật phân bố của 2 đại lượng này thường được giả thiết là “phân bố chuẩn” với phương sai lần lượt là:  và  và không phụ thuộc vào k

Với các giả thuyết trên bài toán đặt ra đã được Kalman, R. E.  giảiquyếtmộtcáchtổngthể[1].

Sau đây ta thảo luận  thêm một số điểm liên quan đến bài toán cụ thể đối với các bộ truyền cảm góc của UAVđể có thể đơn giản hóa bài toán khi áp dụng  thuật toán lọc Kalman cho bộ autopilot trên UAV..

  1. Thuật toán Kalman:

Đặt vấn đề: Từ giả thuyết về cách đo x trên đây, cần tìm ra thuật tóa đánh giá x sao cho nó gần với giá trị thật nhất(sai số nhỏ nhất-theo nghĩa bình phương sai số tối thiểu).

Giả sử ở bước K ta có được giá trị  và khá gần với giá trị thật của x. Mặt khác ta lại biết:

nên ngay cả khi chưa nhận được giá trị đo ở bước tiếp theo k+1 ta cũng có thể áng chừng được nó sẽ gần với giá trị: .

Mặt khác ở bước k+1 ta có giá trị đo . Ý tưởng của thuật toán lọc Kalman chính là ở chỗ biết được cơ cấu đo một đại lượng nào đó(thông tin tiên nghiệm) qua  quy luật ngẫu nhiên của nó ta có thể tìm ra thuật toán để  tìm được giá trị tối ưu gần với giá trị thật nhất  ở bước tiếp theo.

Rõ rang ta cần lựa chọn giữa giá trị đo được ở bước k+1 tức là giữa   và giá trị tối ưu ở bước k:  dẫn đến cần chọn hệ số k thích hợp trong biểu thức:

Hệ số  được đưa vào biểu thức này được gọi là hệ số Kalman. Hệ số này đương nhiên phụ thuộc vào từng bước k nên ta có thể ký hiệu là . Ở đây để khi không sợ nhầm lẫn ta dùng ký hiệu k.

Rõ ràng, nếu phép đo là chính xác, k sẽ được chọn sao cho k->1, ngược lại ta quan tâm hơn đến giá trị dự đoán(tiên nghiệm) tức thành phần thứ 2 trong công thức là  .

Trong trường hợp tổng quát, để tìm hệ số Kalman , cần xác định giá trị nhỏ nhất của biểu thức:

Dùng phương trình (1) để viết lại biểu thức sai số:

Đánhgiá saisốtheotiêuchuẩnkỳvọngtoánhọccủabìnhphươngsaisốnhỏnhất:

Dễthấy:

Khi:

Chứngminh:

Vì rằng, cácgiá trịngẫunhiêncó trongbiểuthức đốivới , độclậpvớinhaunênkỳvọngtoánhọc đồngthờicủachúng=0:

Ngoài ra, vì: , nên công thức đối với phương sai được đơn giản thành:

                           và    .

Biểu thức này nhận giá trị cực tiểu khi cho đạo hàm bậc nhất của nó=0.

Ở đây ta buộc phải cho thêm chỉ số vào k để xác định rõ k ở bước thứ k+1(ở trên để đơn giản ta đã bỏ qua).

Thế hệ số Kalman  vào biểu thức tính kỳ vọng sai số bình phương ta được  :

.
Như vậy chúng ta đã có một hệ các công thức lặp để xác định   qua từng bước khi nhận được  và  ở bước trước.

  1. Kiểm tra thuật toán trên bằng mô phỏng trên Matlab:

clear all; %loc Kalman khi u(t)=vt.

N=150  % number of samples

a=0.01 % parameter of u(t)

sigmaPsi=1

sigmaEta=50;

k=1:N; %number of …

x=k;

x(1)=0;

z(1)=x(1)+normrnd(0,sigmaEta);

for t=1:(N-1)

  x(t+1)=x(t)+a*t+normrnd(0,sigmaPsi);

   z(t+1)=x(t+1)+normrnd(0,sigmaEta);

end;

% Algoritm of kalman filter

xOpt(1)=z(1);

eOpt(1)=sigmaEta; % eOpt(t) is a square root of the error dispersion . It\’s not a random variable.

for t=1:(N-1)

  eOpt(t+1)=sqrt((sigmaEta^2)*(eOpt(t)^2+sigmaPsi^2)/(sigmaEta^2+eOpt(t)^2+sigmaPsi^2))

  K(t+1)=(eOpt(t+1))^2/sigmaEta^2

 xOpt(t+1)=(xOpt(t)+a*t)*(1-K(t+1))+K(t+1)*z(t+1)

end;

plot(k,xOpt,\’r\’,k,z,\’g\’,k,x,\’b\’)

legend(\’xOpt\’,\’Measured z\’,\’x\’)

title(\’Kalman Filter to angle sensor for UAV-DHHB\’)

 Trên MatLab ta được:

  1. Nhu cầu nâng cấp thuật toán

Khi lắp bộ cảm biến lên UAV có sử dụng các động cơ 50cm3 trở lên, do UAV có kích thước nhỏ, tốc độ vòng quay của cánh quạt từ 3000-7000v/phút làm UAV rung, lắc mạnh. Với UAV tần số cộng hưởng thường từ 5-10Hz nên các cảm biến góc bị tác động theo và các góc đưa ra cũng có tần số dao động tương tự.

Lọc Kalman chỉ nhằm đưa ra được giá trị chính xác của các góc và không lọc được tín hiệu do máy bay rung sinh ra.Thông thường cần lắp cảm biến góc đúng trọng tâm máy bay để giảm ảnh hưởng của máy bay rung đến góc thật nhưng vẫn cần áp dụng các biện pháp bổ sung. Kinh nghiệm khai thác UAV cho thấy khi không có biện pháp lọc bổ trợ, hệ thống điều khiển UAV làm việc không ổn định.

Trong trường hợp cụ thể như đang xét, hàm có tác động đến hình thành  có thể được xem là hàm với các tham số được xem là ngẫu nhiên.

  1. Thuật toán hỗn hợp

Quan sát tín hiệu sau lọc Kalman ta thấy rõ dao động hình sin với tần số khoảng dưới 10Hz. Thành phần này có thể được lọc thông qua cơ chế lọc tín hiệu thấp tần HPF. Tham số mạch lọc cần chọn sao cho tần số cắt đủ thấp để có thể lọc được dao động hình sin trên nhưng không là trung bình bản thân tín hiệu góc sau khi đã tiến hành lọc theo thuật toán Kalman.

Mạch lọc trung bình khá đơn giản và cũng có thể được dùng để lọc tín hiệu như bộ lọc HPF, như thế khi nhận được tín hiệu   ta xác định lại theo công thức:

 , trong đó kk là hệ số được chọn bằng thực nghiệm và phụ thuộc vào điều kiện của từng máy bay.

Thường có thể chọn kk=0.5 cho các lần thử nghiệm đầu tiên.

  1. Kiểm tra thuật toán hỗn hợp trên bằng mô phỏng trên Matlab:

clear all;

N=1000;  % number of samples

f=10;

a=0.002*pi*f; %          %omega=a=2*pi*f

A=16;  %amplituda of osilation of UAV tính ra

A=A*pi/180; %radian

sigmaPsi=1;%radian

%sigmaPsi=0;

sigmaEta=50;

%sigmaEta=5.0; %???

k=1:N;

x(1)=0;

x1(1)=0;

z(1)=x(1)+normrnd(0,sigmaEta);

for t=1:(N-1)

   mm=normrnd(0,sigmaPsi);

  x(t+1)=x(t)+A*sin(a*t)+mm;

  x1(t+1)=x(t+1)-mm; %x1 sin

  z(t+1)=x(t+1)+normrnd(0,sigmaEta);

end;

%kalman filter

xOpt(1)=z(1);

xOpt_1(1)=z(1);

xOpt_2(1)=z(1);

eOpt(1)=sigmaEta; % eOpt(t) is a square root of the error dispersion (variance). It\’s not a random variable.

for t=1:(N-1)

  eOpt(t+1)=sqrt((sigmaEta^2)*(eOpt(t)^2+sigmaPsi^2)/(sigmaEta^2+eOpt(t)^2+sigmaPsi^2));

  K(t+1)=(eOpt(t+1))^2/sigmaEta^2;

 xOpt(t+1)=(xOpt(t)+A*sin(a*t*1.0))*(1-K(t+1))+K(t+1)*z(t+1);

 xOpt_1(t+1)=(xOpt_1(t)+A*sin(a*t+0.2))*(1-K(t+1))+K(t+1)*z(t+1);

 xOpt_2(t+1)=((xOpt(t)+A*sin(a*t*0.5))*(1-K(t+1))+K(t+1)*z(t+1))*0.5;+0.5*xOpt_2(t);

xOpt_2(t+1)=((xOpt(t))*(1-K(t+1))+K(t+1)*z(t+1))*0.4;+0.6*xOpt_2(t);

end;

plot(k,xOpt,\’b\’,k,z,\’-r\’,k,x,\’m\’,k,xOpt_1,\’y\’,k,xOpt_2,\’–b\’,k,x1,\’–g\’);

legend(\’xOpt\’,\’Z\’,\’X\’,\’Opt_1\’,\’Opt_2\’,\’x1\’,\’Location\’,\’NorthEastOutside\’);

title(\’Signal after kalman filter\’)

figure,plot(k,x,\’m\’,k,xOpt,\’b\’,k,xOpt_2,\’–g\’)

legend(\’x\’,\’Opt_1\’,\’Opt_2\’,\’Location\’,\’NorthEastOutside\’);

%title(\’?? th? ch? tín hi?u x\’)

Quan sát tín hiệu đo được, tín hiệu thật và tín hiệu đánh giá ta có thể xác định hiệu quả của thuật toán trên.

Các thuật toán trên đã được cài đặt để sử dụng thông tin của bộ cảm biến MPU 6050[4] sử dụng bộ vi điều khiển Arduino UNO sử dụng để điều khiển UAV trong các đề tài nghiên cứu của sinh viên Đại học Hòa Bình-Hà Nội.

7.Kết luận

Các thuật toán đã được cài đặt được sử dụng cho các bộ autopilot sử dụng trên UAV cỡ nhỏ cho thấy chúng thỏa mãn nhu cầu xác định các góc trong khi việc rung của máy bay do động cơ gây ra ít ảnh hưởng tới dữ liệu đưa ra.

TÀI LIỆU THAM KHẢO

[1]. Kalman, R. E. (1960). \”A New Approach to Linear Filtering and Prediction Problems\”. JournalofBasicEngineering 82 (1): 35–45.
[2]. Г. Ф. Савинов О некоторых особенностях алгоритма оптимальной фильтрации Калмана — Бьюси // Авиакосмическое приборостроение № 6, 2007 г.

[3].А. Ю. Горбачев Критерии оценки алгоритмов оптимальной фильтрации //        Авиакосмическое приборостроение № 6, 2008 г.

[4]. В. И. Тихонов, В. Н. Харисов Статистический анализ и синтез Радиотехнических устройств и систем.

[5]. Datasheet MPU6050 (internet).

[6]. Arduino Uno(internet).


Phóng sự về Đại Học Hòa Bình
12 Bài viết mới nhất
Nhấn chuột để Đăng ký nhập học
Nhấn chuột để Đăng ký nhập học
Trang tuyển sinh ĐHHB
Bảo vệ luận văn thạc sỹ CNTT
Bảo vệ luận văn thạc sỹ CNTT
Trường Đại Học Hòa Bình
*CHÀO MỪNG VÀ CÁM ƠN BẠN ĐÃ GHÉ THĂM TRƯỜNG ĐẠI HỌC HÒA BÌNH QUA WEBSITE hbuniv.edu.vn. CHÚC BẠN MỌI SỰ TỐT LÀNH*>
WebSite của Đại học Hòa Bình

http://hbuniv.edu.vn và kênh tuyển sinh daihochoabinh.edu.vn

Sinh viên ĐHHB được tuyên dương
Nhấn chuột phải-view image để xem ảnh

Nhấn chuột phải-view image để xem ảnh

Lễ ký kết hợp tác toàn diện
CHỌN THÔNG TIN THEO CHỦ ĐỀ
Nguyễn Thế Hiển chuẩn bị Khóa luận
Nguyễn Thế Hiển  chuẩn bị Khóa luận

Đề tài khóa luận: Xây dựng VideoClip ứng dụng bộ phần mềm Adobe.

Sinh viên ĐHHB thực hành
Sinh viên ĐHHB thực hành
Video của sinh viên Khoa CNTT
VB_VCC
Bản đồ Hà Nội-Đại học Hòa Bình
Thử nghiệm Máy bay KNL
TIN TỨC - SỰ KIỆN
THÔNG BÁO
Sinh viên ĐHHB với thể thao
Trận chung kết kéo co Nữ
Kêt nạp đảng viên tại ĐHHB
Kêt nạp đảng viên tại ĐHHB
Trao cờ thi đua
Trao cờ thi đua
Giới thiệu Đại học Hòa Bình
Vi du the marquee trong HTML

Mời các bạn yêu thích Video vào mục Video để xem

Áo dài Việt