Tải bản đầy đủ (.doc) (42 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (655.46 KB, 42 trang )

ĐỒ ÁN 3
Trang 1/43

ĐỒ ÁN 3

ĐIỀU KIỂN MÁY BAY QUADCOPTER

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
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............................................................................................4
DANH MỤC CÁC TỪ VIẾT TẮT........................................................................................5
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 3
Trang 3/43



DANH MỤC CÁC HÌNH VẼ

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 4/43

DANH MỤC CÁC BẢNG BIỂU

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
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 3
Trang 6/43

CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu
Máy bay không người lái là một đề tài không còn xa lạ đối với khoa học hiện
đại, ngày nay drone được sử dụng khá rộng rãi trong nhiều lĩnh vực khác nhau.
Máy bay quadcopter là một trong số đó, nó được sử dụng để quay phim, chụp
hình từ trên cao, hay như một người giao hàng của Amazon, thậm chí trong cả mục
đích quân sự để giảm thiểu binh sĩ tác chiến.
Quadcopter khá cơ động, có thể lên thẳng như một trực thăng nên không cần

một đường băng dài, nhưng cơ cấu cơ học đơn giản hơn một trực thăng.
Một trong những phương pháp được dùng phổ biến để điều khiển một
quadcopter là dùng thuật toán cân bằng PID, chúng ta sẽ đi sâu vào phân tích thuật
toán này.
1.2 Hướng nghiên cứu
Đồ án này sử dụng vi điều khiển Atmega328 và MPU6050, kết hợp với bộ điều
khiển PID để có thể điều khiển một Quadcopter trên không trung.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 7/43

THUẬT TOÁN PID
1.3 Giới Thiệu Thuật Toán Điều Khiển PID
PID là cách viết tắc của các từ Propotional, Integral, Derivative và là giải thuật
điều khiển được dùng nhiều nhất trong các ứng dụng điều khiển tự động với yêu cầu
chính xác, nhanh, ổn định.
Một bộ điều khiển vi tích phân tỉ lệ là một bộ điều khiển vòng hồi tiếp được sử
dụng rất phổ biến trong công nghiệp và đây cũng là bộ điều khiển vòng hồi tiếp
được sử dụng nhiều nhất. Bộ PID sẽ tính toán sự sai lệch giữa giá trị đo hiện tại và
giá trị mong muốn đặt. Bộ điều khiển giảm tối đa sai số này bằng cách điều chỉnh
giá trị đầu vào. Các thông số của PID phải được điều chỉnh phù hợp với từng loại hệ
thống khác nhau.
Bằng cách điều chỉnh ba thông số P, I và D, đáp ứng của bộ điều khiển có thể
được miêu tả dưới dạng độ nhạy sai số của bộ điều khiển, giá trị mà bộ đ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 khi còn được gọi là độ lợi, làm thay đổi giá trị đầu ra, tỉ lệ với giá
trị sai lệch hiện tại. Khâu này được điều chỉnh bằng cách nhân sai số đó với Kp là
một hằng số độ lợi.
(t)
Trong đó: Pout là thừa số tỉ lệ đầu ra, Kp là độ lợi tỉ lệ và e là sai số hiện tại
Nếu độ lợi khâu tỉ lệ này quá lớn, sẽ làm cho hệ thống không ổn định vì độ vọt
lố lớn. Ngược lại, nếu Kp quá nhỏ thì đáp ứng hệ thống rất chậm hay kém nhạy
trong khi sai số đầu vào lớn.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 8/43

Hình 2-1: Đồ thị PV theo thời gian với ba giá trị Kp

Độ trượt cũng là một phần không tách rời được trong khâu tỉ lệ, vì nếu không có
nhiễu khâu tỉ lệ này sẽ không thể xác lập tại giá trị đặt được nhưng nó duy trì một
sai số ổn định trạng thái là một hàm của độ lợi tỉ lệ với độ lợi của quá trình.
Độ trượt tỉ lệ thuận với độ lợi quá trình và tỉ lệ nghịch với độ lợi tỉ lệ, và là một
khiếm khuyết không thể tránh được của điều khiển tỉ lệ thuần túy. Độ trượt có thể
được giảm bớt bằng cách thêm một thừa số độ lệch (cho điểm đặt trên giá trị mong
muốn thực tế), hoặc sửa đổi bằng cách thêm một khâu tích phân (trong bộ điều
khiển PI hoặc PID), sẽ tính toán độ lệch thêm vào một cách hữu hiệu.
1.4.2 Khâu tích phân
Phân bố của khâu tích phân tỉ lệ thuận với cả khoảng sai số và thời gian xảy ra sai
số. Tổng của sai số theo thời gian cho ta biết một tích lũy bù trước đó. Tích lũy này
sau đó được nhân với một hằng số độ lợi tích phân và được cộng với tín hiệu đầu ra
của bộ điều khiển.


Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 9/43

Trong đó
I(out): thừa số tích phân đầu ra
Ki: hằng số độ lợi tích phân
e: sai số
t: thời gian tức thời (hiện tại)
một 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 này kết hợp với khâu tỉ lệ sẽ làm tốc độ di chuyển về điểm đặt tăng lên và khử
sai số dư.
1.4.3 Khâu vi phân
Tốc độ thay đổi của sai số quá trình được tính bằng cách xác định độ dốc của sai số
theo thời gian tức là đạo hàm theo thời gian và nhân tốc độ này với hằng số Kd.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 10/43

Trong đó
Dout: thừa số vi phân đầu ra

Kd: hằng số độ lợi vi phân
e: sai số
t: thời gian hiện tại

Hình 2-3:Đồ thị PV theo thời gian với ba giá trị Kd

Khâu này là chậm tốc độ điều khiển của đầu ra vì nó tập trung để đạt tới điểm đặt
của hệ thống. Nó giảm được biên độ vọt lố được tạo ra từ khâu tích phân và tăng
tính ổn định của bộ điều khiển này.
1.5 Cách hoạt động và xác lập thông số của bộ PID

Để vòng lặp PID này hoạt động tốt, ta phải điều chỉnh các thông số điều khiển từng
khâu cho đến khi giá trị đáp ứng điều khiển tối ưu. Độ ổn định là một điều cơ bản
mà PID phải thực hiện được. Điều khiển PID là một bài toán khó ngay cả khi chỉ có

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 11/43

ba thông số như miêu tả ở trên. Nếu các thông số của bộ điều khiển này bị chọn sai,
hệ thống sẽ mất ổn định và khác biệt về đáp ứng. Sự không ổn định gây ra bởi sự dư
thừa độ lợi, nhất là khi độ trễ lớn. Tóm lại, độ ổn định này phải ổn định, và quá trình
không được có giao động.
Có rất nhiều phương pháp khác nhau để điều chỉnh vòng lặp PID, những phương
pháp hiệu quả thường bao gồm những triển khai của vài dạng mô hình xử lý, sau đó
chọn các thông số P, I và D dựa trên thông số của mô hình động học. Còn lại các
cách điều chỉnh thủ công thì không hiệu quả lắm đặc biệt với các vòng lặp tính bằng
phút hay lâu hơn.

1.5.1 Điều chỉnh thủ công
Ở phương pháp này, ban đầu ta thiết lập thông số Ki và Kd bằng không. Tăng dần
Kp đến khi mô hình dao động điều hòa sau đó chỉnh Kp bằng một nửa giá trị trên.
Ta có Kp, sau đó tăng Ki đến khi đủ thời gian xử lý. Tuy nhiên Ki quá lớn sẽ gây
mất ổn định. Cuối cùng tăng Kd nếu cần thiết, cho đến khi vòng điều khiển có thể
nhanh chóng lấy lại vị trí đặt nếu có nhiễu xẩy ra. Nhưng Kd quá lớn lại gây ra đáp
ứng dư vọt lố, trong trường hợp đó, ta chỉnh Kd về một nữa giá trị mà nó gây ra dao
động. Và đây cũng là cách sử dụng để điều chỉnh các thông số của đồ án này.
1.5.2 Phương pháp Ziegler-Nichols
Một phương pháp điều chỉnh theo kinh nghiệm khác là phương pháp ZieglerNichols được đưa ra bởi John G. Ziegler và Nathaniel B. Nichols vào những năm
1940. Giống phương pháp trên, Ki và Kd lúc đầu được cho bằng không. Tăng Kp
đến khi hệ thống dao dộng ta gọi Kp lúc này là Ku và chu kỳ giao động Pu:
Bảng 1: Phương pháp Ziegler-Nichols

Dạng Điều Khiển
P
PI
PID

Kp
0.5Ku
0.45Ku
0.6Ku

Điều Khiển Máy Bay Quadcopter

Ki
1.2Kp/Pu
2Kp/Pu


Kd
KpPu/8


ĐỒ ÁN 3
Trang 12/43

CÁC LINH KIỆN ĐƯỢC SỬ DỤNG
1.6 Linh kiện thiết kế Quadcopter
1.6.1 Khung Quadcopter
Khung Quadcopter được thiết kế bằng nhựa tổng hơp chịu được va đập, điều quan
trọng là khung này phải cân bằng ở cả bốn chân để máy bay có thể hoạt động tốt
nhất.
Hiện nay khung Quadcopter có thể được mua tại các tiệm bán linh kiện drone trên
địa bàn thành phố Hồ Chí Minh:

Hình 3-4: Khung Quadcopter 450

1.6.2 Motor không chuổi than
Ngày nay, có rất nhiều loại motor, nhưng để đạt được những điều kiện khắc khe với
một máy bay lên thẳng, thì motor brushless là một lựa chọn tối ưu:

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 13/43

Hình 3-5: Motor A2212


Motor không chuổi than cho một tốc độ cao và dòng lớn, ít hư hỏng. Để điều khiển,
ta sử dụng một dòng điện ba pha thông qua một ESC để điều khiển tốc độ và chiều
quay.
1.6.3 ESC (Electronic Speed Control)
ESC được gọi là bộ điều tốc cho động cơ không chuổi than ở trên. Nó nhận tín hiệu
đầu vào là xung điện từ vi điều khiển thể hiện tốc độ điều khiển mong muốn. ngõ ra
là một bộ ba xung PWM (Pulse Wight Modulation) tạo ra dòng ba pha để điều
khiển tốc độ và chiều quay của motor. Mỗi loại ESC cung cấp một dòng lớn nhất
khác nhau, nên có rất nhiều loại ESC trên thị trường. Trong đồ án này, sử dụng ESC
20A của hãng EMAX:

Hình 3-6: ESC Simon 20A

1.6.4 Cánh quạt máy bay (propeller)
Đây là một bộ phận không thể thiếu đối với bất kỳ vậy thể bay nào. Trong đồ án
này, quadcopter sử dụng bốn cánh quạt, một cặp CW và một cặp CCW vì để giữ cân

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 14/43

bằng cho máy bay khi lên thẳng, ta cần tạo ra hai cặp lực đối lập với nhau nhưng cả
hai đều giúp cho máy bay lên thẳng:

Hình 3-7: Cánh 1045

1.7 Bộ phận điều khiển Quadcopter
Ở đồ án này, ta sử dụng vi điều khiển ATmega328 và MPU 6050 để thực hiện lập

trình điều khiển.
1.8 Tay điều khiển và bộ thu tín hiệu
Sử dụng tay điều khiển Revo7 và Rx701

Hình 3-8: Rx701 Và Tay Điều Khiển Devo7

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 15/43

GIẢI THUẬT, PHẦN CỨNG VÀ THỬ NGHIỆM
1.9 Lưu đồ giải thuật

Hình 4-9: Lưu Đồ Giải Thuật

1.9.1 Khối khởi động
Khối khởi động bao gồm nguồn điện là pin LiPo 11.1V. khi ta cấp nguồn vào mạch,
nguồn được chia làm hai nhánh. Nhánh thứ nhất cấp nguồn cho bốn động cơ và bốn
bộ điều tốc ESC, nhánh còn lại cấp nguồn cho vi điều khiển và Gyro. Nguồn này
cần một dòng điện lớn vì các motor cần một tốc độ cao, tiêu thụ một dòng lớn, đây
cũng là lý do đồ án này sử dụng pin LiPo.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 16/43


1.9.2 Khối khởi tạo thông số MPU6050
MPU6050 giao tiếp với vi điều khiển Atmega328 bằng giao thức I2C nên cần xác
định địa chỉ của Gyro. Ta tiến hành lấy địa chỉ và nạp thông số ba trục lúc
Quadcopter cân bằng vào các biến để xử lý PID.

Hình 4-10: Giao Thức I2C

1.9.3 Khối kiểm tra Reciever
Ở bước này, ta kiểm tra về bộ nhận tín hiệu. Ta kiểm tra xem vi xử lý đã nhận tín
hiệu hay chưa và cần ga đã về mức thấp nhất để đảm bảo an toàn hay chưa. Ta sử
dụng một vòng lặp while để thực hiện việc này, và sau mỗi 125 vòng lặp thì đèn
Led sẽ thay đổi trạng thái.

Hình 4-11: Dòng Lệnh Kiểm Tra Reciever Và Cần Ga

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 17/43

1.9.4 Chuẩn hóa tín hiệu từ reciever về 1000us - 2000us
Đây cũng là một khối quan trọng trong lưu đồ giải thuật, ở đây ta phải chuẩn hóa để
bốn kênh tín hiệu được thống nhất, đồng bộ với nhau. Ở đây ta thực hiện hai bước,
bước đầu tiên, ta đã lưu vào eeprom vị trí cao nhất và thấp nhất của các cần điều
khiển.

Hình 4-12: Cần Điều Khiển Của Devo7

Bước thứ hai, ta so sánh giá trị hiện tại nhận được ở biến Actual để so sánh với các

biến định mức Low, High và Center sau đó quy về giá trị 1000us – 2000us.

Hình 4-13: Đoạn Code Thực Hiện Chuẩn Hóa

1.9.5 Khối lấy giá trị của Gyro và chuyển vào bộ PID
Ở khối này, ta tiếp tục lấy giá trị hiện tại ba trục Gyro ở thời điểm hiện tại và giá trị
này được xử lý thành tốc độ góc:

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 18/43

Hình 4-14: Đoạn Code Đổi Giá Trị Gyro Sang Tốc Độ Góc

Sau đó ta chuyển giá trị đã biến đổi này vào bộ PID để tiếp tục tính toán.
1.9.6 Kiểm tra điều kiện khởi động
Đến đây, các thông số đã sẳn sàng để cất cánh máy bay, tuy nhiên ta cần một số thủ
thuật để giúp cho quá trình điều khiển sự khởi động và sự tắt máy bay từ xa được an
toàn. Ở đồ án này, sử dụng các cần điều khiển làm công tắc đóng ngắt nguồn điện.
Khi ta hạ cần throttle xuống vị trí thấp nhất bên trái thì cả bốn động cơ sẽ khởi
động. Nếu cần throttle ở vị trí thấp nhất bên phải, cả bốn động cơ sẽ bị ngắt nguồn
hoàn toàn.

Hình 4-15: Đoạn Lệnh Thể Hiện Điều Kiện Khởi Động

Khi biến start bằng hai, hệ thống sẽ bắt đầu khởi động và tính toán PID, nếu không
thì bước này sẽ tiếp tục được lặp lại theo vòng lặp loop.
1.9.7 Tính Toán PID

Đây là một trong những bước cực kỳ quan trong bên trong đồ án. Đầu tiên, ta tìm
sai số hiện tại so với giá trị đặt ban đầu ở vị trí cân bằng hoàn toàn.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 19/43

Đó chính là e(t) sai số theo thời gian. Nhân nó với hệ số Kp ta đã đặt trước đó, ta
được khâu tỉ lệ đầu tiên.
Khâu tiếp theo là khâu tích phân. Ở đây, tiếp tục tính toán sai số cộng dồn theo thời
gian và lấy nó nhân với độ lợi Ki để tạo thành khâu tích phân. Ta sử dụng dòng
lệnh:
pid_i_mem_roll += pid_i_gain_roll * pid_error_temp
Sau đó, ta tiếp tục tính toán khâu vi phân. Ta sử dụng phép trừ để tìm ra tốc độ thay
đổi của sai số theo thời gian của phép vi phân. Lấy sai số hiện tại trừ cho sai số
trước đó và nhân với Kd, độ lợi khâu vi phân.
Phương trình PID cuối cùng, ta cộng cả ba phép tính trên lại với nhau, sau đó cứ lặp
đi lặp lại theo một vòng lặp thời gian để liên tục cập nhật bất kỳ sự thay đổi nhỏ
nào:

Hình 4-16: Đoạn Lệnh PID Của Kênh Roll

Lưu ý, ở đây đã làm một số thí nghiệm bên ngoài để tìm ra gần đúng các thông số
độ lợi Kp, Ki và Kd bằng cách cố định một nửa khung máy bay và thực hiện kiểm
tra độ ổn định theo phương pháp thực nghiệm.

Điều Khiển Máy Bay Quadcopter



ĐỒ ÁN 3
Trang 20/43

Hình 4-17: Điều Chỉnh PID Thực Nghiệm

1.9.8 Cấp pulse cho ESC
Để điều khiển bốn động cơ chính, điều khiển thông qua bộ ESC đã giới thiệu ở trên
bằng cách gởi xung điện.
Đầu tiên, cần hiểu về cơ chế hoạt động của quadcopter:

Hình 4-18: Cơ Chế Hoạt Động Của Quadcopter

Vậy nên, để điều khiển cần cấp xung cho ESC như sau:

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 21/43

Hình 4-19: Cấp Xung Cho Bốn ESC

Đoạn code trên tạo ra mỗi hai cặp motor cùng tốc độ để có thể điều khiển máy bay
tới lùi, qua trái, qua phải và xoay trái, xoay phải ổn định. Ở đây, esc_1 là CCW ở
đằng trước bên phải, esc_2 là một CW ở đằng sau bên phải, esc_3 là một CCW ở
đằng sau bên trái và cuối cùng esc_4 là một CW ở đằng trước bên trái.

1.10


Phần cứng

Sau khi tham khảo nhiều dự án và thiết kế, đây là bản vẽ sử dụng trong đồ án này:

Hình 4-20: Bản Vẽ Thiết Kế Phần Cứng Quadcopter

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 22/43

1.11

Thử Nghiệm

Sau khi thi công phần cứng, thực hiện một số thử nghiệm bay ban đầu để đảm bảo
hệ thống hoạt động ổn định. Sau đây là một vài hình ảnh:

Hình 4-21: Bay Thử Nghiệm Có Buộc Dây

Đây là thử nghiệm trong nhà, nên có buộc dây để xem giải thuật có đạt yêu cầu hay
không, nên có dùng bốn dây cố định bốn góc.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 23/43


Hình 4-22: Bay Thử Nghiệm Không Gian Rộng

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 24/43

NHẬN XÉT
Quá trình thi công, chạy thử nghiệm đã cho kết quả tương đối tốt. Đúng với thiết
kế đề ra. Tuy nhiên, máy bay không người lái này vẫn chưa ổn định hoàn toàn khi
lên thẳng nhưng có một ít sai số làm máy bay tự trôi.
Tuy giá thành trong việc thiết kế hơi đắt tiền so với thị trường, nhưng công suất và
độ xa thì cải thiện hơn nhiều.

Điều Khiển Máy Bay Quadcopter


ĐỒ ÁN 3
Trang 25/43

1.12
-

Kết luận

Hoàn thành đề tài từ ý tưởng, nghiên cứu đến thực hiện thi công và thử nghiệm
 Ưu điểm, khuyết điểm:
- Đáp ứng nhạy với sự thay đổi nhỏ, cân bằng tốt trên không.
- Mạch chạy ổn định và đáp ứng yêu cầu đề ra.

- Áp dụng ngôn ngữ lập trình bậc cao của trình biên dịch Arduino IDE.
- Tầm điều khiển xa nhờ sử dụng thiết bị chuyên dụng trong điều khiển.
- Giá thành khá cao so với thị trường hiện nay.
- Mô hình còn lớn và tính cơ động chưa cao.

1.13

Hướng phát triển

-

Tiếp tục phát triển, ứng dụng trong các lĩnh vực có nhu cầu.

-

Thực hiện tiếp phần mạch định vị GPS và tự hành.

-

Tối ưu hóa mạch và thêm các chức năng khác như auto-return-home hay truyền

hình ảnh, phim trực tiếp từ máy bay về máy chủ.

Điều Khiển Máy Bay Quadcopter


×