Page 95 - Kỷ yếu hội thảo khoa học quốc tế - Ứng dụng công nghệ mới trong công trình xanh , lần thứ 8
P. 95
78 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT - ĐẠI HỌC ĐÀ NẴNG
đoán theo thời gian được thực hiện sau mỗi thời gian V. GIẢI PHÁP PHẦN CỨNG
T, còn giai đoạn cập nhật giá trị đo được thực hiện khi Hệ thống đề xuất được thể hiện trong Hình 3,
có xung encoder. trong đó sử dụng Arduino Uno R3 để điều khiển động
Với giả sử ban đầu động cơ đứng yên nên giá trị cơ. Biến trở được sử dụng để đặt tốc độ động cơ;
− 1 mạch cầu H dùng L298 để nhận tín hiệu điều khiển
khởi tạo cho x 0 là: của 8051 và xuất điện áp tương ứng ra động cơ DC;
− 0 − 0 encoder để đọc tốc độ động cơ và phản hồi về vi điều
khiển Arduino; vi điều khiển dựa trên tốc độ đặt, tốc
x = 0 − = (9)
0 0 độ phản hồi để ước lượng tốc độ đông cơ và xuất
xung điều khiển ra mạch cầu H; LCD để hiển thị tốc
− độ đặt, tốc độ hiện tại của thuật toán đề xuất.
Do giá trị ban đầu x như trên là hoàn toàn phù
0
hợp tuy nhiên vẫn có những sai lệch nhỏ do không thể LCD
đứng yên tuyệt đối nên hiệp phương sai khởi tạo Hiển thị
được chọn:
10 − 6 0 Đặt tốc độ PWM Mạch cầu Đọc tốc độ
−
Biến
P = − 6 (10) trở Arduino H DC Encoder
0
0 10 (L298)
Phản hồi tốc độ
Do v và v là không đổi và không ảnh hưởng lẫn
nhau nên ta có: Hình 3. Tổng quan hệ thống đề xuất
R 0 10 − 3 0 Sử dụng một bộ định thời T0 trong Arduino Uno
Q = v = − 4 (11) R3 để định khoảng thời gian lấy mẫu T. Trong đó,
0 R v 0 10 thời gian T này phải đảm bảo đủ lớn để thực hiện việc
dự đoán theo mô hình, cập nhật giá trị đo của bộ lọc
Mỗi khi có xung encoder thì cập nhật giá trị đo Kalman, truyền dữ liệu lên máy tính.
theo trình tự ở các phương trình sau:
Việc kết nối của Arduino với các thiết bị được thể
2 hiện trong Bảng I. Trong đó, Encoder 1 là bộ mã hoá
b T 0 vòng qua có độ phân giải thấp, Encoder 2 là bộ mã
R = k , t k hoá vòng quay có độ phân giải cao để thực hiện so
− 4 sánh kết quả, L298 là mạch điều khiển động cơ. Dây
0 10 A của Encoder 1 và Encoder 2 lần lượt được kết nối
vào chân ngắt ngoài D2 và D3 để đảm bảo phát hiện
1 đúng thời điểm xuất hiện xung encoder ở dây A. Dây
0 B của Encoder 1 và Encoder 2 được nối với chân
H = D12, D13 của Arduino để phát hiện chiều quay của
1 các encoder khi có ngắt từ chân kết nối với dây A.
0 Thời gian giữa 2 xung encoder liên tiếp xuất
(12) , t k
−
−
K = k P H T ( HP H T + R k ) − 1 hiện tại dây A được xác định bằng cách đọc giá trị bộ
định thời Timer 0 ở trên.
k
k
p k Bảng I. Kết nối Arduino với các thiết bị
z = 1 Chân Arduino Chân Thiết bị
k
, t k D2 A Encoder 1
−
x = x + K z − Hx ˆ − ) D3 A Encoder 2
k k k ( k k D12 B Encoder 1
P = (I − K H ) P − D13 B Encoder 2
k k k
D11 ENA L298
Sau mỗi thời gian lấy mẫu T thì dự đoán theo trình
tự ở các phương trình sau: D10 IN1 L298
− D9 IN2 L298
x k+ 1 = A x (13) VI. THÍ NGHIỆM VÀ KẾT QUẢ
k k
−
P k+ 1 = A P A + k k k T Q k Hệ thống thí nghiệm được thự hiện trên KIT thực
hành vi điều khiển và điều khiển ghép nối thiết bị
ISBN: 978-604-80-9122-4