ĐIỀU KHIỂN máy BAY QUADCOPTER (có code và sơ đồ mạch bên dưới)

42 2.1K 37
ĐIỀU KHIỂN máy BAY QUADCOPTER (có code và sơ đồ mạch bên dưới)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐIỀU KIỂN máy BAY QUADCOPTER (có code bên dưới) ĐIỀU KIỂN máy BAY QUADCOPTER (có code bên dưới) ĐIỀU KIỂN máy BAY QUADCOPTER (có code bên dưới) ĐIỀU KIỂN máy BAY QUADCOPTER (có code bên dưới) ĐIỀU KIỂN máy BAY QUADCOPTER (có code bên dưới) ĐIỀU KIỂN máy BAY QUADCOPTER (có code bên dưới)

ĐỒ ÁN Trang 1/43 ĐỒ ÁN ĐIỀU KIỂN MÁY BAY QUADCOPTER Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 2/43 MỤC LỤC MỤC LỤC .2 DANH MỤC CÁC HÌNH VẼ .3 DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT CHƯƠNG 1.TỔNG QUAN VỀ ĐỀ TÀI .6 THUẬT TOÁN PID .7 CÁC LINH KIỆN ĐƯỢC SỬ DỤNG .12 GIẢI THUẬT, PHẦN CỨNG VÀ THỬ NGHIỆM 15 NHẬN XÉT 24 TÀI LIỆU THAM KHẢO 26 PHỤ LỤC A 27 Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 3/43 DANH MỤC CÁC HÌNH VẼ Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 4/43 DANH MỤC CÁC BẢNG BIỂU Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 5/43 DANH MỤC CÁC TỪ VIẾT TẮT TX Transiver RX Reciever PID Proportional Integral Derivative ESC Electronic Speed Control PWM Pulse Wight Modulation CW Clock Wise CCW Counter Clock Wise Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 6/43 CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu Máy bay không người lái đề tài khơng xa lạ khoa học đại, ngày drone sử dụng rộng rãi nhiều lĩnh vực khác Máy bay quadcopter số đó, sử dụng để quay phim, chụp hình từ cao, hay người giao hàng Amazon, chí mục đích quân để giảm thiểu binh sĩ tác chiến Quadcopter động, lên thẳng trực thăng nên không cần đường băng dài, cấu học đơn giản trực thăng Một phương pháp dùng phổ biến để điều khiển quadcopter dùng thuật toán cân PID, sâu vào phân tích thuật tốn 1.2 Hướng nghiên cứu Đồ án sử dụng vi điều khiển Atmega328 MPU6050, kết hợp với điều khiển PID để điều khiển Quadcopter không trung Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 7/43 THUẬT TỐN PID 1.3 Giới Thiệu Thuật Tốn Điều Khiển PID PID cách viết tắc từ Propotional, Integral, Derivative giải thuật điều khiển dùng nhiều ứng dụng điều khiển tự động với yêu cầu xác, nhanh, ổn định Một điều khiển vi tích phân tỉ lệ điều khiển vòng hồi tiếp sử dụng phổ biến công nghiệp điều khiển vòng hồi tiếp sử dụng nhiều Bộ PID tính tốn sai lệch giá trị đo giá trị mong muốn đặt Bộ điều khiển giảm tối đa sai số cách điều chỉnh giá trị đầu vào Các thông số PID phải điều chỉnh phù hợp với loại hệ thống khác Bằng cách điều chỉnh ba thông số P, I D, đáp ứng điều khiển miêu tả dạng độ nhạy sai số điều khiển, giá trị mà điều khiển vọt lố so với điểm đặt 1.4 Các Thông Số Của Bộ PID 1.4.1 Khâu tỉ lệ Khâu tỉ lệ đơi gọi độ lợi, làm thay đổi giá trị đầu ra, tỉ lệ với giá trị sai lệch Khâu điều chỉnh cách nhân sai số với Kp số độ lợi (t) Trong đó: Pout thừa số tỉ lệ đầu ra, Kp độ lợi tỉ lệ e sai số Nếu độ lợi khâu tỉ lệ lớn, làm cho hệ thống khơng ổn định độ vọt lố lớn Ngược lại, Kp nhỏ đáp ứng hệ thống chậm hay nhạy sai số đầu vào lớn Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 8/43 Hình 2-1: Đồ thị PV theo thời gian với ba giá trị Kp Độ trượt phần không tách rời khâu tỉ lệ, khơng có nhiễu khâu tỉ lệ xác lập giá trị đặt trì sai số ổn định trạng thái hàm độ lợi tỉ lệ với độ lợi trình Độ trượt tỉ lệ thuận với độ lợi trình tỉ lệ nghịch với độ lợi tỉ lệ, khiếm khuyết tránh điều khiển tỉ lệ túy Độ trượt giảm bớt cách thêm thừa số độ lệch (cho điểm đặt giá trị mong muốn thực tế), sửa đổi cách thêm khâu tích phân (trong điều khiển PI PID), tính tốn độ lệch thêm vào cách hữu hiệu 1.4.2 Khâu tích phân Phân bố khâu tích phân tỉ lệ thuận với khoảng sai số thời gian xảy sai số Tổng sai số theo thời gian cho ta biết tích lũy bù trước Tích lũy sau nhân với số độ lợi tích phân cộng với tín hiệu đầu điều khiển Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 9/43 Trong I(out): thừa số tích phân đầu Ki: số độ lợi tích phân e: sai số t: thời gian tức thời (hiện tại) biến tích phân trung gian Hình 2-2: Đồ thị PV theo thời gian với ba giá trị Ki Khâu kết hợp với khâu tỉ lệ làm tốc độ di chuyển điểm đặt tăng lên khử sai số dư 1.4.3 Khâu vi phân Tốc độ thay đổi sai số q trình tính cách xác định độ dốc sai số theo thời gian tức đạo hàm theo thời gian nhân tốc độ với số Kd Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 10/43 Trong Dout: thừa số vi phân đầu Kd: số độ lợi vi phân e: sai số t: thời gian Hình 2-3:Đồ thị PV theo thời gian với ba giá trị Kd Khâu chậm tốc độ điều khiển đầu tập trung để đạt tới điểm đặt hệ thống Nó giảm biên độ vọt lố tạo từ khâu tích phân tăng tính ổn định điều khiển 1.5 Cách hoạt động xác lập thông số PID Để vòng lặp PID hoạt động tốt, ta phải điều chỉnh thông số điều khiển khâu giá trị đáp ứng điều khiển tối ưu Độ ổn định điều mà PID phải thực Điều khiển PID tốn khó có Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 28/43 int esc_1, esc_2, esc_3, esc_4; int throttle, battery_voltage; int cal_int, start, gyro_address; int receiver_input[5]; unsigned long timer_channel_1, timer_channel_2, timer_channel_3, timer_channel_4, esc_timer, esc_loop_timer; unsigned long timer_1, timer_2, timer_3, timer_4, current_time; unsigned long loop_timer; double gyro_pitch, gyro_roll, gyro_yaw; double gyro_axis[4], gyro_axis_cal[4]; float pid_error_temp; float pid_i_mem_roll, pid_roll_setpoint, gyro_roll_input, pid_output_roll, pid_last_roll_d_error; float pid_i_mem_pitch, pid_pitch_setpoint, gyro_pitch_input, pid_output_pitch, pid_last_pitch_d_error; float pid_i_mem_yaw, pid_yaw_setpoint, gyro_yaw_input, pid_output_yaw, pid_last_yaw_d_error; void setup(){ for(start = 0; start 1050){ if(receiver_input_channel_4 > 1508)pid_yaw_setpoint = (receiver_input_channel_4 - 1508)/3.0; else if(receiver_input_channel_4 < 1492)pid_yaw_setpoint = (receiver_input_channel_4 - 1492)/3.0; } calculate_pid(); battery_voltage = battery_voltage * 0.92 + (analogRead(0) + 65) * 0.09853; if(battery_voltage < 1030 && battery_voltage > 600)digitalWrite(12, HIGH); throttle = receiver_input_channel_3; if (start == 2){ if (throttle > 1800) throttle = 1800; esc_1 = throttle - pid_output_pitch + pid_output_roll - pid_output_yaw; esc_2 = throttle + pid_output_pitch + pid_output_roll + pid_output_yaw; esc_3 = throttle + pid_output_pitch - pid_output_roll - pid_output_yaw; esc_4 = throttle - pid_output_pitch - pid_output_roll + pid_output_yaw; if (battery_voltage < 1240 && battery_voltage > 800){ esc_1 += esc_1 * ((1240 - battery_voltage)/(float)3500); esc_2 += esc_2 * ((1240 - battery_voltage)/(float)3500); Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 33/43 esc_3 += esc_3 * ((1240 - battery_voltage)/(float)3500); esc_4 += esc_4 * ((1240 - battery_voltage)/(float)3500); } if (esc_1 < 1200) esc_1 = 1200; if (esc_2 < 1200) esc_2 = 1200; if (esc_3 < 1200) esc_3 = 1200; if (esc_4 < 1200) esc_4 = 1200; if(esc_1 > 2000)esc_1 = 2000; if(esc_2 > 2000)esc_2 = 2000; if(esc_3 > 2000)esc_3 = 2000; if(esc_4 > 2000)esc_4 = 2000; } else{ esc_1 = 1000; esc_2 = 1000; esc_3 = 1000; esc_4 = 1000; } while(micros() - loop_timer < 4000); loop_timer = micros(); PORTD |= B11110000; timer_channel_1 = esc_1 + loop_timer; timer_channel_2 = esc_2 + loop_timer; timer_channel_3 = esc_3 + loop_timer; Điều Khiển Máy Bay Quadcopter ĐỒ ÁN Trang 34/43 timer_channel_4 = esc_4 + loop_timer; while(PORTD >= 16){ esc_loop_timer = micros(); if(timer_channel_1

Ngày đăng: 09/03/2018, 19:27

Từ khóa liên quan

Mục lục

  • 1.1 Giới thiệu

  • 1.2 Hướng nghiên cứu

  • 1.3 Giới Thiệu Thuật Toán Điều Khiển PID

  • 1.4 Các Thông Số Của Bộ PID

    • 1.4.1 Khâu tỉ lệ

    • 1.4.2 Khâu tích phân

    • 1.4.3 Khâu vi phân

    • 1.5 Cách hoạt động và xác lập thông số của bộ PID

      • 1.5.1 Điều chỉnh thủ công

      • 1.5.2 Phương pháp Ziegler-Nichols

      • 1.6 Linh kiện thiết kế Quadcopter

        • 1.6.1 Khung Quadcopter

        • 1.6.2 Motor không chuổi than

        • 1.6.3 ESC (Electronic Speed Control)

        • 1.6.4 Cánh quạt máy bay (propeller)

        • 1.7 Bộ phận điều khiển Quadcopter

        • 1.8 Tay điều khiển và bộ thu tín hiệu

        • 1.9 Lưu đồ giải thuật

          • 1.9.1 Khối khởi động

          • 1.9.2 Khối khởi tạo thông số MPU6050

          • 1.9.3 Khối kiểm tra Reciever

          • 1.9.4 Chuẩn hóa tín hiệu từ reciever về 1000us - 2000us

          • 1.9.5 Khối lấy giá trị của Gyro và chuyển vào bộ PID

          • 1.9.6 Kiểm tra điều kiện khởi động

Tài liệu cùng người dùng

Tài liệu liên quan