ii TÓM TẮT LUẬN VĂN Luận án này sẽ tập trung vào mô hình hóa và điều khiển UAV loại Quadrotor và xây dựng bộ điều khiển thích hợp có thể cân bằng và điều khiển được vị trí khi mang tải c
Tổng quan về máy bay không người lái
Phương tiện bay không người lái hay Máy bay không người lái, viết tắt tiếng Anh là UAV (Unmanned aerial vehicle) là tên gọi chỉ chung cho các loại máy bay mà không có người lái ở buồng lái, hoạt động tự lập và thường được điều khiển từ xa từ trung tâm hay máy điều khiển Theo sự phát triển công nghệ hiện nay có các dạng UAV: o Máy bay theo nghĩa truyền thống được trang bị hệ thống điều khiển và lái tự động, được gọi là UAS (unmanned aircraft system), xuất hiện từ những năm 1950 và đã từng phục vụ việc do thám và trinh sát chiến trường Loại tổ hợp máy bay này có khả năng tự động hóa các hoạt động của máy bay cao, không đòi hỏi những trang thiết bị hàng không đặc chủng, giá thành khai thác sử dụng và bảo trì hệ thống để phục vụ lâu dài rẻ, trong quân sự loại máy bay này có đặc tính tấn công chớp nhoáng o Phương tiện bay kiểu mới, được chế tạo rất đa dạng, có kích thước và công suất động cơ nhỏ đến trung bình, được gọi là drone o Các drone có lắp camera để quan sát, và thường được gọi là flycam Để thuận tiện điều khiển thao tác thì drone có nhiều cánh quạt, thường là 4.
Ứng dụng của máy bay không người lái
Ứng dụng của UAV quadcopter đang tăng lên mạnh mẽ, từ các mục đích quân sự cho đến nghiên cứu khoa học, điện ảnh - truyền hình, nông nghiệp, thương mại, vận chuyển, giải trí, khảo sát địa hình, thăm dò, cứu hộ, cứu nạn, drone luôn tỏ ra là một phương tiện linh động, dễ sử dụng, chi phí hợp lí
Nghiên cứu khí tượng, thuỷ văn, địa lý: các thiết bị bay UAV được ứng dụng mạnh mẽ song hành với việc quan sát từ vệ tinh Các nhiệm vụ điển hình:
Đo lường sự biến dạng của vỏ trái đất để đưa ra các dự đoán sớm về thảm hoạ tự nhiên như động đất, phun trào núi lửa…
Đo lường sự ô nhiễm ở tầng đối lưu và chất lượng của không khí, các nguồn ô nhiễm lan từ nơi này đến nơi khác
Đo lường độ dày lớp và sự biến dạng của lớp băng bề mặt để đưa ra dự đoán về sự nóng lên toàn cầu
Tìm kiếm và giải cứu: các UAV được trang bị camera, hộp cứu hộ có thể dùng cho các nhiệm vụ giải cứu nạn nhân của thảm hoạ: động đất, lũ cuốn, cháy rừng, máy bay rơi
Cứu hoả: các UAV có trang bị cảm biến hồng ngoại có thể tầm nhiệt, nguồn gây cháy ở các khu rừng, toà chung cư, căn hộ,… và truyền gửi tín hiệu đánh dấu chính xác vị trí nguồn gây cháy này cho các đơn vị cứu hộ
Giám sát công cộng: được xem như là 1 giải pháp thay thế có tính hiệu quả về kinh phí thay cho lực lượng cảnh sát truyền thống sử dụng máy bay trực thăng
Giám sát biên giới: UAV có thể được dùng để giám sát được biên giới, làm tình báo ngăn ngừa xâm phạm bất hợp pháp Ứng dụng nông nghiệp: UAV được dùng để phun thuốc trừ sâu, giám sát tình trạng mùa màng Ứng dụng công nghiệp: UAV được dùng để giám sát tình trạng bên trong, bên ngoài đường ống Thực hiện giám sát trên cao đối với 1 số nhà máy điện hạt nhân…
Phân loại các loại UAV
Có rất nhiều cách phân loại UAV, chủ yếu dựa trên tầm hoạt động, cấu hình khí động học, kích cỡ và trọng tải
1.3.1 Phân loại theo tầm hoạt động
UAV có thể được phân loại thành 7 nhóm chính dựa trên tầm cao và khả năng hoạt động
Tầm cao và hoạt động lâu dài (HALE): gồm các thiết bị có khả năng bay ở độ cao trên
1500m và hoạt động lâu hơn 24hr Thường chủ yếu dùng cho nhiệm vụ giám sát tầm xa
Tầm vừa và hoạt động lâu dài (MALE): gồm các thiết bị có khả năng bay ở độ cao từ 5000
– 1500m và hoạt động tới 24hr Các MALE UAV cũng thường được dùng cho các nhiệm vụ giám sát
Tầm vừa hoặc bay chiến thuật (TUAV): gồm các thiết bị có khả năng bay ở độ cao từ 300 –
500m Các thiết bị bay này thường có kích thước nhỏ, đơn giản hơn MALE và HALE
Tầm ngắn (CRUAV): gồm các thiết bị có khả năng hoạt động tầm xa trong khoảng 100km
Các thiết bị này thường dùng cho mục đích dân sự dò đường ống, phun thuốc trên đồng, giám sát tình trạng giao thông,…
UAV loại nhỏ (MUAV): thường có khối lượng khoảng 20kg và tầm hoạt động trong 30m
UAV loại rất nhỏ (MAV): thường có sải cánh nhỏ hơn 150mm Các thiết bị này sử dụng chủ yếu trong nhà với yêu cầu bay chậm hoặc đứng yên
UAV loại siêu nhỏ (NAV): có kích cỡ tầm 10mm, thường dùng bay thành đàn cho mục đích làm nhiễu tín hiệu ra đa Ngoài ra, còn được dùng cho mục đích giám sát các khu vực không gian kín, chật hẹp với camera trang bị
1.3.2 Phân loại theo cấu hình khí động học
UAV có thể được phân loại theo 4 nhóm chính dựa trên cấu hình khí động học
Cánh bằng (Fixed-wing UAV): các thiết bị này yêu cầu có đường băng khi cất cánh và hạ cánh, có thể bay trong thời gian dài với tốc độ cao Loại này thường được dứng dụng trong các nghiên cứu khoa học hoặc quân sự như trinh sát khí tượng hoặc dò thám
Cánh xoay (Rotary-wing UAV): các thiết bày này có thể cất cánh và hạ cánh thẳng đứng, có thể đứng yên trên không và khả năng cơ động cao Loại này có thể phân loại thành 4 nhóm nhỏ hơn:
Đơn trục (Single-rotor): thiết bị chỉ có 1 rotor ở trên đầu thiết bị và 1 rotor ở đuôi giữ cân bằng, tương tự như thiết kế của máy bay trực thăng
Đồng trục (Coaxial): có 2 rotor xoay ngược hướng gắn cùng 1 trục
Tứ trục (Quadrotor): thiết bị có 4 rotor gắn cố định vào khung hình X hoặc +
Đa trục (Multi-rotor): UAV có từ 6-8 rotor Loại này cực kỳ linh hoạt và vẫn có thể duy trì hoạt động trong điều kiện có 1 rotor bị hỏng
Việc tăng số lượng rotor sẽ giúp tăng khả năng mang tải và tầm cao hoạt động tối đa của UAV tuy nhiên sẽ đồng thời tăng giá thành và mức tiêu thụ năng lượng
Hình 1-1 Máy bay cánh bằng
Hình 1-2 Máy bay trực thăng 1 trục và đồng trục
Hình 1-3 Quadrotor và Hexrotor phiên bản thương mại
Khí cầu (Blimps UAV): có hình dạng tương tự bong bóng bay, khinh khí cầu Các thiết bị bay này thường rất nhẹ và kích cỡ lớn, bên trong được bơm đầy khí Heli thường dùng trong các nhiệm vụ diễn ra thời gian lâu trên không có yêu cầu tốc độ bay chậm
Cánh vỗ (Flapping-wing UAV): lấy cảm hứng từ khả năng bay của loài chim, côn trùng, các
UAV này có thể mô phỏng cách thức bay với đôi cánh nhỏ và khả năng tải cực kỳ hạn chế Tuy nhiên, loại này có thể tiêu thụ năng lượng rất thấp và có khả năng cất cánh và hạ cánh thẳng đứng Các mô hình phát triển của loại này đang được diễn ra mạnh mẽ ở các phòng nghiên cứu
Hình 1-5 UAV mô phỏng cử động chim bay vỗ cánh
1.3.3 Phân loại dựa trên kích cỡ và trọng tải
UAV có thể được phân thành 5 loại dựa trên kích cỡ và trọng tải của chúng
Cỡ lớn UAV: thiết bị loại này có kích cỡ lớn, có thể đủ không gian cho 1 phi công điều khiển ở bên trong với chế độ bay tự động hoặc điều khiển Loại này có trọng tải lớn nhất với khả năng hoạt động lâu dài
Cỡ vừa UAV: thiết bị loại này thường dùng cho mục đích giám sát an ninh Có trọng tải tương đối tầm 10kg do đó có thể mang các thiết bị dẫn hướng trọng tải lớn và có độ chính xác cao
Cỡ nhỏ UAV: đây là các thiết bị loại cầm tay có thể điều khiển từ xa bằng sóng vô tuyến (RC) với trọng tải nhỏ từ 2-10kg nên có thể chứa các cảm biến và thiết bị điều hướng khối lượng nhỏ
Cỡ nhỏ gọn UAV: các thiết bị loại này rất nhỏ gọn và có thể cầm tay, dùng bay ở trong nhà và ngoài môi trường với trọng tải nhỏ hơn 2kg Loại này rất phổ biến dùng trong các nghiên cứu về mô hình điều khiển phi tuyến, hàng không
Cỡ siêu nhỏ UAV: chủ yếu sử dụng trong nhà vì kích cỡ rất nhỏ Thường có khối lượng nhỏ hơn 100g khiến cho rất khó trang bị các cảm biến và thiết bị dẫn hướng Chính điều này khiến loại này thành đối tượng nghiên cứu chế tạo các loại cảm biến dẫn hướng siêu nhỏ nhẹ
Hình 1-6 UAV cỡ lớn và cỡ vừa
Hình 1-7 UAV cỡ nhỏ và siêu nhỏ
Giới thiệu Quadrotor
Thuật ngữ “Quadrotor” (hay còn gọi là Drone) dùng để chỉ những phương tiện máy bay UAV kiểu mới, được chế tạo rất đa dạng, có kích thước và động cơ nhỏ đến trung bình Để thuận tiện điều khiển thao tác thì drone được lắp đặt nhiều cánh quạt, thường là 4 (Quad) hoặc là 6 (Hexa) Ngoài ra, về kích thước cũng có những biến đổi khác nhau: chúng có thể sải cánh rộng như một máy bay phản lực hay nhỏ như một chiếc máy bay mô hình được điều khiển bằng sóng radio
Trong lịch sử ghi nhận, phiên bản đầu tiên của Quadrotor được xây dựng và cho bay thử vào năm 1907 Từ thời điểm đó tới ngày nay, các phiên bản đã được cải tiến rất nhiều nhưng định nghĩa về quadrotor vẫn không đổi và được xem là thiết bị UAV cánh xoay
Hình 1-8 Quadrotor (drone) thương mại phổ biến trên thị trường
Các khái niệm về Quadrotor
Quadrotor là 1 thiết bị bay có 4 roto được gắn cố định lên 1 khung có hình + hoặc x Các rotor này là các động cơ BLDC sẽ có các chiều quay như hình, tạo lực nâng để nâng toàn bộ
7 quadcopter Rotor 1 và 3 xoay cùng chiều nhau và ngược chiều với roto 2 và 3 dẫn đến sự cân bằng về moment xoắn của toàn bộ quadrotor
Hình 1-9 Mô hình của quadrotor, góc và các trục toạ độ
Vì đối tượng có tính chất phi tuyến và 6 bậc tự do (DOF), do đó sẽ có 6 biến dùng để miêu tả vị trí của đối tượng trong không gian (𝑥, 𝑦, 𝑧, 𝜑, 𝜃, 𝜓) Trong đó:
(𝑥, 𝑦, 𝑧): đại diện cho khoảng cách từ trọng tâm của quadrotor đến hệ trục toạ độ quán tính gắn với mặt đất (𝑁, 𝐸, 𝐷)
(𝜑, 𝜃, 𝜓): đại diện cho 3 góc Euler chỉ hướng của quadrotor
𝜑: gọi là góc xoay (roll) dọc theo trục x
𝜃: gọi là góc ngẩng (pitch) dọc theo trục y
𝜓: gọi là góc hướng (yaw) dọc theo trục z Để tạo ra các chuyển động hướng lên, các rotor sẽ tăng tốc độ xoay của cánh quạt và ngược lại Để tạo ra các chuyển động xoay quanh trục x (góc roll) thì tốc độ xoay của cánh quạt rotor
2 & 4 sẽ cùng thay đổi Tương tự, để tạo ra các chuyển động xoay quanh trục y (góc pitch) thì tốc độ xoay của cánh quạt rotor 1 & 3 sẽ cùng thay đổi Để tạo ra chuyển động xoay quanh trục z (góc yaw), moment xoắn tác động lên trục này tạo bởi các cặp rotor 1 & 3 và 2 & 4 cần thay đổi Khi muốn xoay quanh trục z theo chiều dương tốc độ cánh quạt của cặp rotor 2 & 4 sẽ cần phải lớn hơn của cặp rotor 1 & 3
Hình 1-10 Minh hoạ sự thay đổi vận tốc xoay rotor ảnh hướng đến hướng di chuyển của quadrotor
1.5.1 Ứng dụng quadcopter vận chuyển hàng hoá, ưu và nhược điểm
Do sự phổ biến mạnh mẽ, tính ứng dụng Quadrotor đã trở nên gần gũi hơn đối với người sử dụng không chuyên lẫn chuyên nghiệp phục vụ cho các công việc khác như quân sự, nông nghiệp, xây dựng, giải trí…
Trong đó, một trong các ứng dụng thể hiện ưu thế mạnh mẽ của Quadrotor trong ngành vận tải đó là vận chuyển hàng hoá trọng tải nhỏ với phạm vi giao hàng rộng
1.5.1.1 Tổng quan các công trình liên quan đến vận tải bằng Quadrotor
Vận tải hàng không gần đây đã nhận được sự chú ý đáng kể với những hứa hẹn tiềm năng kinh tế Cụ thể, các Quadrotor có thể đóng một vai trò quan trọng trong việc cung cấp tải cho một số nơi nguy hiểm hoặc khó tiếp cận do cấu trúc cơ học đơn giản cũng như khả năng bay lượn và hạ cánh thẳng đứng (VTOL) mong muốn Mặc dù việc vận chuyển tải bằng Quadrotor có triển vọng, nhưng nó vẫn rất khó khăn trong các tình huống thực tế Một lý do là bản thân Quadrotor là một hệ thống không chấp hành hoàn toàn (underactuated) Chỉ với 4 đầu vào với
6 bậc tự do (DOF) để điều khiển, Quadrotor dễ dàng mất ổn định và rất khó kiểm soát Vì sự an toàn là một yếu tố quan trọng trong vận chuyển tải, Quadrotor không ổn định có thể hoạt động không phù hợp hoặc thậm chí gây ra sự cố Một khó khăn khác là tải khi vận chuyển, treo
9 với thân của Quadrotor có thể thay đổi động lực học của Quadrotor, do đó có thể gây ra nhiễu và sự mất ổn định hệ thống Điều này có khả năng khiến các bộ điều khiển dựa trên mô hình hiện tại bị giảm hiệu suất hoặc thậm chí gây ra sự cố Những thách thức này hạn chế sự ổn định, hiệu suất của phương tiện vận chuyển trên không này và làm cản trở sự áp dụng rộng rãi tiềm năng này trong thực tế Để giải quyết bài toán này, trong những năm gần đây đã có rất nhiều đề tài nghiên cứu đã thực hiện với giả thuyết khối lượng tải cố định và biết trước Những đề tài này này chủ yếu tập trung vào các vấn đề theo dõi quỹ đạo và sự ổn định
Hình 1-11 Ứng dụng của quadrotor trong việc mang đồ cứu hộ giải cứu
Tuy nhiên, với bài toán chưa xác định trước khối lượng của tải, vẫn còn cần phải có rất nhiều nghiên cứu vì đây là bài toán thực tiễn hơn và có độ khó lớn hơn
Hình 1-12 UAV ứng dụng trong ngành nông nghiệp và công nghiệp vận tải
Vì Quadrotor có cả chuyển động tịnh tiến và chuyển động xoay và vận hành trong môi trường không gian ba chiều với các rotor, nên rất quan trọng để có thể biết được chính xác moment quán tính và tổng trọng lượng của đối tượng.Các thông số này có thể có được bằng các thí nghiệm nếu được đo lường từ trước và có giá trị không đổi Nếu mục tiêu của UAV là mang 1 vật có không xác định trước, sẽ rất khó để biết có thể biết trước giá trị khối lượng của vật Nếu giá trị khối lượng này không chính xác, bộ điều khiển hướng và vị trí của UAV có thể sẽ sụp
10 đổ bị gây ra bởi các thông số không chính xác, bởi vì các thông số này có liên quan chặt chẽ đến chuyển động quay và chuyển động tịnh tiến Tác giả Byung-Cheol Min và cộng sự đã đề xuất giải pháp sử dụng luật điều khiển thích nghi bền vững (ARC) cho UAV trong trường hợp không biết chính xác khối lượng của nó [15] Dựa vào thông số ước tính chúng ta sẽ có được chính xác giá trị trọng lượng của Quadrotor và sẽ sử dụng giá trị đó cho phần điều khiển độ cao
Tác giả Goh Ming Qian và nhóm nghiên cứu của ông đã đưa ra giải pháp dùng điều khiển thích nghi mờ (AFPID) chỉnh định độ lợi cho bộ điều khiển PID để giải quyết vấn đề về sự thay đổi khối lượng của tải, giá trị không chắc chắn của tải khi phải vận chuyển gói hàng hoá khác nhau, hoặc dùng với tải là biến đổi như khối lượng thuốc phun trừ sâu trong nông nghiệp Với các ưu điểm về bản chất của bộ điều khiển mờ, khả năng ổn định thích nghi và bền vững của bộ điều khiển đã được thể hiện trong quá trình điều khiển Quadrotor
Cùng với đó là mô hình Quadrotor là một mô hình phi tuyến, phức tạp, đòi hỏi quá trình nghiên cứu chuyên sâu khi muốn giải bài toán điều khiển Từ đó củng cố và nâng cao những lý thuyết đã được học về điều khiển tự động cũng như rèn luyện kĩ năng hoàn thiện mô hình phần cứng
1.5.1.2 Một số nghiên cứu về luật điều khiển cân bằng và vị trí của Quadrotor Đã có một số lượng lớn nỗ lực nghiên cứu đã được thực hiện cho UAV (Unmanned Aerial Vehicles) bởi vì sự ứng dụng rộng rãi trong những ứng dụng thực tế,hàng loạt các loại UAV đã được ứng dụng không chỉ trong lĩnh vực dân sự mà cả quân sự Loại UAV này có thể được phân loại thành hai loại theo hình dạng và phương pháp bay: máy bay loại cánh cố định và máy bay cất cánh và hạ cánh thẳng đứng (VTOL) Máy bay loại cánh cố định thường được triển khai thử nghiệm trong khoảng không gian rộng để được đảm bảo trong một thời gian ngắn bởi vì chúng có thể bay với tốc độ đáng kể Mặt khác, VTOL (trực thăng, quad-rotor) thì thích hợp cho các khu vực giới hạn hoặc ứng dụng yêu cầu sự cố định hoặc những chuyến bay tốc độ chậm bởi vì chúng có những đặc điểm như lơ lửng và hạ cánh thẳng đứng
Cấu trúc luận văn
Nội dung của luận văn sẽ được trình bày trong 6 chương với mục tiêu sẽ xây dựng được:
Mô hình hoá được quadrotor gồm mô hình khí động học, cấu trúc hệ thống
Bộ điều khiển PID cho Quadrotor để cân bằng, điều khiển vị trí khi mang tải thay đổi khối lượng (trọng tải thay đổi lúc nhấc thả hàng hoá)
Bộ điều khiển thích nghi mờ AFPID để Quadrotor vẫn ổn định, cân bằng bám theo theo vị trí điều khiển khi khối lượng thay đổi trong mức cho phép (trọng tải thay đổi lúc nhấc, di chuyển và lúc thả hàng hoá)
Thực hiện mô phỏng kết quả bằng Matlab và thực hiện triển khai thực nghiệm
Kết quả dự kiến đề tài sẽ có kết quả mô phỏng và thực nghiệm đều cân bằng, bám theo quỹ đạo ổn định với các tải có khối lượng biến thiên từ 0.1kg – 0.7kg
Do đó, để mô hình hoá được quadrotor, ở Chương 2 sẽ trình bày cách thức xây dựng mô hình toán cho đối tượng dựa trên định luật Newton – công thức Euler Tiếp đó, ở Chương 3, thiết kế phần cứng cho Quadrotor đáp ứng cho yêu cầu Chương 4 sẽ trình bày cách thiết kế bộ điều khiển PID, luật điều khiển cho Adaptive Fuzzy PID (AFPID) để điều khiển cân bằng và điều khiển vị trí với các tín hiệu điều khiển cấp cho 4 rotor, kết quả điều khiển với trọng tải không đổi và có thay đổi sẽ được kiểm nghiệm bằng mô phỏng Matlab Đánh giá kết quả các bộ điều khiển sẽ được trình bày ở chương 5 đưa đến kết luận kiểm định cùng với hướng phát triển sẽ được đề cập
Hình 1-13 Quy trình thực hiện luận văn
Mô hình động học
Thiết kết luật điều khiển thích nghi và bền vững cho Quadrotor để cân bằng, quy hoạch quỹ đạo khi mang tải không biết trước khối lượng Thực hiện mô phỏng kết quả bằng Matlab và thực hiện triển khai thực nghiệm.
Kết quả dự kiến
Dự kiến, đề tài sẽ có kết quả mô phỏng và thực nghiệm đều cân bằng, bám theo quỹ đạo ổn định với các tải có khối lượng biến thiên từ 0.1kg – 0.7kg
Nghiên cứu lý thuyết
2.3.1 Mô hình hoá hệ thống quadrotor (System Modelling)
Trong chương này, mô hình động học và động lực học của Quadrotor sẽ được xây dựng dựa trên định luật Newton – công thức Euler với các giả thuyết như sau:
Cấu trúc Quadrotor đối xứng và cứng với tâm khối lượng thẳng đứng với tâm của khung thân Quadrotor
Lực đẩy và lực kéo của mội động cơ tỷ lệ với bình phương vận tốc của động cơ
Vận tốc xung quanh (gió) là không đáng kể
Những cánh quạt được xem là cứng cáp và từ đó việc cánh quạt có độ thun thì chúng ta sẽ bỏ qua (độ thun là sự biến dạng của cánh quạt do tốc độ cao và vật liệu đàn hồi)
Sau khi đưa ra được các phương trình động học và động lực học, các hiệu ứng khí động học tác động lên thân của Quadrotor cũng sẽ được và động lực học của motor cũng sẽ được đề cập
2.3.1.1 Mô hình động học (Kinematic Model)
Trước tiên, ta sẽ cần định nghĩa 2 trục toạ độ cần thiết:
Hệ toạ độ tham chiếu mặt đất EF: Earth reference frame (trục N, E, D)
Hệ toạ độ thân Quadrotor BF: Body fixed frame (trục x,y,z)
Hình 2-2-1 Các hệ toạ độ của Quadrotor
Khoảng cách giữa EF tới BF được định nghĩa bằng vị trí tuyệt đối của trọng tâm Quadrotor (Center of Gravity) bằng vector vị trí 𝑟 = [𝑥 𝑦 𝑧] 𝑇
16 Hướng của Quadrotor được mô tả bằng các góc roll, pitch và yaw (,,) diễn tả sự xoay quanh trục x, y, z Ma trận xoay R b E sẽ giúp chuyển đổi hướng của Quadrotor trong hệ trục BF về hệ trục EF
0 0 1 sin( ) 0 cos( ) 0 sin( ) cos( ) cos( ) cos( ) sin( ) cos( ) sin( ) cos( b b E E
)sin( )sin( ) cos( )sin( ) sin( )sin( )sin( ) cos( ) cos( ) cos( )sin( ) cos( ) cos( )sin( ) sin( )sin( ) sin( ) cos( )sin( ) sin( ) cos( ) cos( ) cos( )
s( ) cos( )sin( )sin( ) cos( )sin( ) cos( ) cos( )sin( ) sin( )sin( ) sin( ) cos( ) sin( )sin( )sin( ) cos( ) cos( ) sin( ) cos( )sin( ) sin( ) cos( ) sin( ) cos( )sin( ) cos( ) cos( )
Ma trận xoay R b G rất quan trọng tính toán mô hình động lực học của quadrotor, bởi vì thực tế sẽ có những trạng thái của thiết bị cần phải đo lường trong hệ trục BF như lực nâng sinh ra bởi cánh quạt trong khi các đo lường khác có thể thực hiện trong hệ trục EF như trọng lực và vị trí quadrotor
Các vận tốc góc 𝜔 = [𝜌 𝑞 𝑟] 𝑇 của Quadrotor thường được đo lường ngay tại trên thân của Quadrotor bằng IMU Mối liên hệ của vận tốc Euler (Euler rate) 𝜂̇ = [̇ 𝜃̇ 𝜓̇] 𝑇 trong hệ toạ độ EF được diễn tả như sau:
Khi Quadrotor làm việc quanh vị trí cân bằng trong không gian, thì 𝑅 𝑟 có thể tối giản thành ma trận I
2.3.1.2 Mô hình động lực học
Chuyển động của Quadrotor có thể chia thành 2 hệ thống con:
Chuyển động xoay (rotational subsystem: roll, pitch, yaw)
Chuyển động tịnh tiến (translational subsystem: x , y, z)
Hệ thống chuyển động xoay là hệ thống chấp hành hoàn toàn (fully actuated) trong khi hệ thống chuyển động tịnh tiến lại không chấp hành hoàn toàn (underactuated)
2.3.1.2.1 Các biểu thức chuyển động xoay
Các biểu thức chuyển động xoay được biểu diễn trong hệ toạ độ BF sử dụng phương pháp Newton-Euler:
𝐽 Ma trận đường chéo quán tính (Inertial Matrix) của Quadrotor
𝜔 Vận tốc góc của thân Quadrotor
𝑀 𝐺 Moment quán tính xoay (Gyroscopic moment) của Quadrotor
𝑀 𝐵 Moment tác động lên thân Quadrotor trong hệ trục body frame
Trong biểu thức trên 𝐽𝜔̇ , 𝜔 × 𝐽𝜔 biểu diễn cho tốc độ thay đổi của moment góc trong hệ trục body frame 𝑀 𝐺 là moment quán tính xoay (Gyroscopic moment) gây ra bởi quán tính của các rotor 𝐽 𝑟 Moment quán tính xoay xác định bằng 𝜔 × [0 0 𝐽 𝑟 Ω 𝑟 ] 𝑇
𝐽 𝑟 Quán tính của các rotor Ω 𝑟 Vận tốc tương đối của các rotor Ω 𝑟 = −Ω 1 + Ω 2 − Ω 3 + Ω 4
Lý do luận văn này biểu diễn biểu thức xoay của chuyển động trong hệ toạ độ BF là vì để biểu diễn được ma trận quán tính của quadrotor độc lập với thời gian
Ma trận quán tính (Inertial Matrix)
Ma trận quán tính của quadcopter là ma trận đường chéo, các phần tử không nằm trên đường chéo bằng 0, vì tính chất đối xứng của quadrotor
18 Với các 𝐼 𝑥𝑥 , 𝐼 𝑦𝑦 , 𝐼 𝑧𝑧 là các moment quán tính tương ứng trên các trục tương ứng của quadrotor trong hệ toạ độ body frame
Moment quán tính xoay (Gyroscopic moment)
Moment quán tính xoay (Gyroscopic moment) là 1 hiện tượng vật lý mà ngẫu lực quán tính cố gắng xoay trục của rotor dọc theo trục quán tính z
Moment tác động lên thân Quadrotor
Dựa trên 2 hiện tượng vật lý do các moment và lực khí động học gây ra bởi các rotor
Hiện tượng xoay, được gây ra bởi lực khí động học hay gọi là lực nâng và moment tổng hợp gọi là moment khí động học Biểu thức dưới đây sẽ diễn tả lực khí động học 𝐹 𝑖 và moment 𝑀 𝑖 gây ra bởi rotor thứ 𝑖
𝐶 𝑇 , 𝐶 𝐷 hệ số khí động học
𝑟 𝑏 bán kính cánh quạt Ω 𝑖 vận tốc góc của rotor 𝑖
Rất dễ nhận ra, các lực và moment khí động học phụ thuộc vào hình dáng của cánh quạt và mật độ không khí Bởi vì xét với điều kiện thực tế, độ cao tối đa khi bay của quadrotor thường giới hạn, do đó mật độ không khí có thể xem như là hằng số trong suốt hành trình bay Từ đó, các biểu thức có thể tinh giản như sau:
𝑀 𝑖 = 𝐾 𝑀 Ω 𝑖 2 Với 𝐾 𝑓 và 𝐾 𝑀 là các hằng số lực và moment khí động học Các hằng số này có thể xác định bằng thí nghiệm cho mỗi loại cánh quạt khác nhau
Bằng cách xác định lực và moment gây ra bởi cánh quạt, chúng ta có thể tìm được moment 𝑀 𝐵 tác động lên thân của quadrotor
Hình 2-2-2 Các lực và moment tác động lên Quadrotor
Mỗi rotor gây ra một lực nâng 𝐹 𝑖 hướng lên và gây ra một moment 𝑀 𝑖 ngược hướng với chiều xoay của cánh quạt rotor 𝑖 tương ứng
Sử dụng luật bàn tay phải để xác định hướng của moment tác động lên mỗi trục của thân quadrotor, ta có:
Trên trục z, các lực nâng không gây ra moment Thay vào đó, các moment gây ra bởi chuyển động quay cánh rotor tạo nên moment xoay trên trục z trong hệ toạ độ BF
= 𝐾 𝑀 (Ω 1 2 − Ω 2 2 + Ω 3 2 − Ω 4 2 ) Vậy ta có vector moment tác động lên thân quadrotor 𝑀 𝐵 như sau:
20 Với 𝑙 là cánh tay của moment, được tính khoảng cách từ tâm trục xoay của mỗi rotor đến trục đi qua tâm của quadrotor (CoG) trùng với gốc toạ độ trong hệ BF
2.3.1.3 Các biểu thức chuyển động tịnh tiến
Các biểu thức tịnh tiến của chuyển động đựa dựa trên định luật 2 Newton trong hệ toạ độ EF
𝑟 = [𝑥 𝑦 𝑧] 𝑇 vị trí trọng tâm của quadrotor trong hệ trục EF
𝐹 𝐵 các lực không phải trọng lực tác động lên quadrotor (body frame)
Các lực không phải trọng lực tác động lên quadrotor
Khi quadrotor đang trong trạng thái định hướng chuyển động theo phương ngang, lực duy nhất tác động lên quadrotor lúc này là lực nâng được gây ra bởi các cánh quạt xoay Do đó vector lực 𝐹 𝐵 như sau:
Do không có lực tác động lên phương X và Y của quadrotor, nên 𝐹 𝑥 = 𝐹 𝑦 = 0,
Trong khi đó 𝐹 𝑧 là tổng lực nâng, có dấu âm vì ngược chiều dương của trục Z
𝐹 𝑏 nhân với ma trận xoay R để chuyển lực nâng từ hệ toạ độ Body frame sang Earth frame, từ đó dễ dàng tính toán cho mọi hướng chuyển động của quadrotor
Các hiệu ứng khí động học
Linh kiện của quadrotor
2 4 động cơ không chổi than SunnySky 2212-980Kv
4 4 bộ điều tốc ESC ESC iPeaka 2S-5S 35A Dshot1200
5 1 pin Lipo (3S) Gens Ace 11.1V 5200mAh 50C 3S Lipo
6 1 bo mạch điều khiển APM 2.8
7 1 Bộ điều khiển từ xa FLYSKY FS I6+RX IA6B
8 1 Loadcell 1kg Aluminum loadcell + H711 ADC
Bảng 3-1 Bảng danh sách linh kiện cho quadrotor
Khung quadrotor (Frame)
Quadrotor là một thiết bị bay cất cánh thẳng đứng nhờ vào lực nâng của bốn động cơ đặt đối xứng với 4 cánh tay của khung Khi bay, các khung sẽ có cấu hình dạng + hoặc x tuỳ theo thiết lập về cách di chuyển của quadrotor, vẫn phổ biến nhất là dạng x-frame
27 Với tính chất đối xứng của khung, trọng tâm của quadrotor theo lý thuyết sẽ nằm giữa trục 2 cánh tay của khung, tạo sự cân đối dễ dàng cho điều khiển cân bằng
Hình 3-1 Ảnh 3D Cad và hình ảnh so sánh thực tế.
Động cơ BLDC (Rotor)
Động cơ đồng bộ nam châm vĩnh cửu là nhóm động cơ xoay chiều đồng bộ (tức là rotor quay cùng tốc độ với từ trường quay) có phần cảm là nam châm vĩnh cửu Dựa vào dạng sóng sức phản điện động stator (EMF) của động cơ mà trong nhóm này ta có thể chia thành 2 loại:
Động cơ (sóng) hình sin (PMSM)
Động cơ (sóng) hình thang (BLDC)
Hình 3-2 Cấu tạo của BLDC và sức phản điện động hình sin, hình thang Động cơ BLDC là loại động cơ sóng hình thang, những động cơ còn lại là động cơ sóng hình sin (PMSM) Chính cái sức phản điện động có dạng hình thang này mới là yếu tố quyết định để xác định một động cơ BLDC chứ không phải các yếu tố khác như Hall sensor, bộ chuyển mạch điện tử (Electronic Commutator)
Hình 3-3 các cách quấn dây của Rotor động cơ BLDC
Loại động cơ BLDC thường có kích thước nhỏ, có hiệu suất cao và có thể vận hành ở tốc độ cao phù hợp và điều khiển vận tốc bằng xung PWM (Pulse-width-module) rất phù hợp với mục đích sử dụng của quadrotor
Hình 3-4 Nguyên lý xuất tín hiệu điều khiển động cơ BLDC từ bộ vi xử lý trung tâm
Các thông số kỹ thuật chính cần quan tâm:
Ký hiệu Đơn vị Giải thích
KV Số vòng quay / volt ở chế độ không tải
Idle current A Dòng điện khi động cơ chạy không tải với tốc độ lớn nhất
Càng lớn thì khả năng tải càng lớn và tiêu hao công suất Max Continuous current A Dòng điện tối đa động cơ có thể hoạt động liên tục
Max current A Dòng điện tối đa động cơ có thể chịu được trong thời gian ngắn
Quá dòng này trong thời gian dài sẽ hư hại động cơ Thrust g Khả năng nâng tải tương ứng với loại cánh quạt, điện áp
Bảng 3-2 Các thông số kỹ thuật đáng lưu ý của động cơ BLDC
Hình 3-5 Động cơ BLDC X2212 980KV II Motor
Cánh quạt (Propeller)
Các loại cánh thường dùng cho quadrotor làm bằng chất liệu nhựa hoặc carbon với đặc tính nhẹ và rất dẻo với sải cánh và độ nghiêng khác nhau tuỳ thuộc mục đích sử dụng
Sải cánh: là chiều dài tính từ 2 đầu cánh quạt, lực nâng tỷ lệ thuận với sải cánh Mỗi loại motor khác nhau sẽ có yêu cầu cánh quạt có sải cánh phù hợp Nếu chọn loại có sải cánh vượt quá mức cho phép có thể dẫn đến hư hỏng motor khi vận hành
Độ nghiêng: là góc hợp thành hướng của cánh và mặt ngang (góc pitch), độ nghiêng càng lớn thì quãng đường đi được theo phương đứng khi hoàn thành 1 vòng quay sẽ càng dài Ở trên thị trường, thông số kỹ thuật của cánh quạt thường dạng cặp số với cặp đầu là sải cánh và cặp sau là quãng đường đi được khi xoay 1 vòng
Ví dụ: 1045 thì sải cánh là 10 inch và sẽ đi được xấp xỉ 4.5 inch khi cánh xoay trọn 1 vòng
Hình 3-6 Cánh quạt nhựa 1047
Bộ điều khiển tốc độ điện tử (ESC)
Là một thiết bị điện tử, thường có vi xử lý bên trong dùng để biến đổi điện áp DC thành điện
3 pha và điều khiển dựa trên xung PWM được cấp từ khối điều khiển bay Nhờ đó, ESC có thể điều khiển tốc độ, đổi chiều xoay và làm thắng điện tử cho động cơ BLDC
ESC sẽ tạo điện áp tuần tự theo lưu đồ dựa trên xung PWM nhận được sẽ được vi xử lý nội của ESC dịch ra điện áp mong muốn và ra lệnh đóng mở các FET của ESC từ đây điều khiển điện áp cấp và tạo 3 pha cho Stator của động cơ
Khả năng chịu dòng của FET cũng chính là khả năng chịu dòng của ESC
Nguồn Pin
Là nguồn sống cho toàn bộ thiết bị của Quadrotor Nguồn điện thường sử dụng cho quadrotor là pin Lipo (Lithium Polymer) vì có những ưu điểm là dòng xả lớn, dung lượng pin lớn và khối lượng nhỏ
Khi lựa chọn pin Lipo cho quadrotor, có các thông số cần lưu ý: o Điện áp: pin được ghép từ nhiều cell, ký hiệu là S, mỗi S bằng 3.7v Sử dụng phổ biến là pin 3S là điện áp định mức là 11.1v o Dung lượng: lượng năng lượng lưu trữ trong pin, có đơn vị là mAh o Dòng xả: khả năng cấp dòng liên tục an toàn của pin, ký hiệu là C, tốc độ xả bằng số lần C của dung lượng pin Ví dụ pin 50C, dung lượng 5200mAh thì dòng xả tối đa là 50*5200mA = 260A
Hình 3-8 Gens Ace 11.1V 5200mAh 50C 3S Lipo Battery XT60 Plug
Trong mô hình này, pin Lipo 11.1V 5200mAh 50C 3S được chọn Thông số kỹ thuật của pin được liệt kê ở Bảng 3-6
Dung lượng pin 5200mAh cho phép cấp nguồn cho 4 động cơ hoạt động liên tục với dòng 260A (lý thuyết) trong thời gian 5200mAh/ (4*15)A = 0.086h hay 5.2 phút
Bộ điều khiển APM 2.8 (Flight controller)
Ardupilot Mega 2560 hoặc gọi là "APM" là một board mạch được xây dựng dựa trên board Adruino 2560 có mã nguồn mở và được xây dựng từ phần cứng đến thư viện bởi cộng đồng Adrupilot Board điều khiển này rất tiện dụng và linh hoạt với nhiều ứng dụng từ xây dựng mô hình xe địa hình, tàu thuỷ, máy bay cánh bằng, quadrotor và anten tự xoay
Hình 3-9 APM 2.8 phiên bản giới hạn
Một số ưu điểm của boar APM 2.8:
Dễ lập trình, nhiều thư viện có sẵn của adruino
Tích hợp sẵn cảm biến IMU MPU6000 6 trục
Tích hợp sẵn cảm biến Barometter MS 5611
Dataflash 4MB để ghi dữ liệu hành trình
Dùng vi xử lý ATMEGA2560 16MHz
Mỏng nhẹ, khối lượng chưa tới 30g
Hình 3-10 Chú thích các port ngoại vi của APM 2.8
Bộ điều khiển từ xa
Là thiết bị gồm bộ thu và phát tín hiệu (RX và TX) dùng để truyền lệnh điều khiển từ xa của người dùng lên quadrotor
Mỗi bộ điều khiển từ xa sẽ có số lượng kênh thu phát sóng khác nhau, thông thường sẽ thiết kế dưới dạng cần gạt 2 trục và 1 số công tắc on-off dùng để điều chỉnh giá trị đặt của các góc roll, pitch, yaw và lực nâng throtte Các công tắc on-off (aux) dùng để cài đặt các chế độ bay đặc biệt của quadrotor như chuyển chế độ bay tự động
Hình 3-11 RX và TX của FlySky FS-i6 i6 2.4G 6CH
Cảm biến cân điện tử (loadcell)
Là thiết bị cảm biến dùng để chuyển đổi lực hoặc trọng lượng thành tín hiệu điện
Loadcell thường được sử dụng để cảm ứng các lực lớn, tĩnh hay các lực biến thiên chậm
Loadcell được cấu tạo bởi hai thành phần, thành phần thứ nhất là "Strain gage" và thành phần còn lại là "Load" Strain gage là một điện trở đặc biệt rất nhỏ, mỏng, có điện trở thay đổi khi bị nén hay kéo dãn và được nuôi bằng một nguồn điện ổn định, được dán lên “Load” - một thanh kim loại chịu tải có tính đàn hồi
Loadcell Hoạt động dựa trên nguyên lý cầu điện trở cân bằng Wheatstone Giá trị lực tác dụng tỉ lệ với sự thay đổi điện trở cảm ứng trong cầu điện trở, và do đó trả về tín hiệu điện áp tỉ lệ
Có thể phân loại loadcells như sau: o Lực tác động: chịu kéo (shear loadcell), chịunén (compression loadcell), dạng uốn
(bending), chịu xoắn (TensionLoadcell) o Hình dạng: dạng đĩa, dạng thanh, dạng trụ, dạng cầu,dạng chữ S o Kích thước và khả năng chịu tải: loại bé (1-5kg), vừa (5-20kg), lớn (>20kg)
Hình 3-12 Loadcell phiên bản thương mại và strain gauge Để chuyển đổi từ sự thay đổi điện trở hay thay đổi điện áp thành giá trị khối lượng, loadcell sẽ cần kết nối mới 1 board mạch ADC (chuyển đổi tương tự sang số) Từ đây, giá trị khối lượng của tải mới được xác định
Hình 3-13 Sơ đồ đấu nối đọc về giá trị khối lượng đo được sử dụng loadcell, HX711 và adruino
Hình 3-14 Hình ảnh lắp đặt thực tế loadcell trên quadrotor
Sơ đồ kết nối thiết bị
Hình mô tả sơ đồ kết nối các thiết bị cho quadrotor với 4 động cơ BLDC điều khiển tốc độ bởi ESC với tín hiệu điều khiển xung PWM được xuất bởi APM 2.8
Bộ điều khiển APM 2.8 nhận lệnh điều khiển từ bộ điều khiển từ xa với các lệnh điều khiển là lực nâng throttle và các góc đặt roll, pitch, yaw
Hình 3-15 Sơ đồ kết nối các thiết bị trên quadrotor
Thiết kế bộ điều khiển
Trong chương này, các giải thuật điều khiển PID và Adaptive Fuzzy PID sẽ được trình bày đáp ứng việc điều khiển vị trí và thích nghi khi khối lượng trọng tải của máy bay bị thay đổi Các kiểm chứng về giải thuật sẽ được thực hiện bằng mô phỏng của phần mềm Matlab
Từ những phân tích động lực học và điều khiển của quadrotor, ta có thể chia các khối điều khiển thành 3 khối điều khiển riêng lẻ: điều khiển hướng, điều khiển độ cao và điều khiển vị trí Trong đó, với khối điều khiển hướng và điều khiển vị trí sẽ áp dụng bộ điều khiển PID và điều khiển độ cao sẽ dùng bộ điều khiển AFPID
4.1.1 Khối điều khiển độ cao (Altitude Controller Block) Để điều khiển cao độ của quadrotor, tín hiệu sai số e giữa giá trị đặt 𝑧 𝑑 và giá trị thực tế z sẽ dùng để điều chỉnh tín hiệu điều khiển U1
Hình 4-4-1 Sơ đồ khối bộ điều khiển độ cao
4.1.2 Khối điều khiển hướng (Attitude & Heading Controller Block) Để điều khiển hướng của Quadrotor, bộ điều khiển lấy giá trị sai số e của giá trị đặt
𝜙 𝑑 , 𝜃 𝑑 , 𝜓 𝑑 và giá trị thực tế của 𝜙, 𝜃, 𝜓 từ đây sẽ điều chỉnh tín hiệu điều khiển 𝑈 2 , 𝑈 3 , 𝑈 4
Hình 4-4-2 Sơ đồ khối cho bộ điều khiển phương hướng
4.1.3 Khối điều khiển vị trí (Position Controller Block)
Không giống như điều khiển độ cao và hướng, điều khiển vị trí x và y không thể tính toán tách riêng biệt và cũng không thể điều khiển trực tiếp dựa trên 1 trong 4 tín hiệu điều khiển 𝑈 1−4 Mặt khác, điều khiển vị trí x và y có thể gián tiếp thông qua điều khiển góc roll và pitch (𝜙, 𝜃) Các góc (𝜙 𝑑 , 𝜃 𝑑 ) có thể tính thông qua biểu thức dưới đây:
Hình 4-4-3 Sơ đồ khối bộ điều khiển vị trí (hệ thống hoàn chỉnh)
4.2 Các bộ điều khiển (Controller)
4.2.1 Điều khiển PID (PID Controller) Đây là bộ điều khiển cực kỳ phổ biến dựa trên tính hiệu sai số e đi vào 3 khâu tỷ lệ, tích phân và vi phân
Ta sẽ sử dụng bộ điều khiển này cho điều khiển hướng và vị trí (Altitude, Heading, Position) của quadrotor
Hình 4-4-4 Sơ đồ khối của 1 bộ điều khiển PID
4.2.1.1 Điều khiển hướng (Attitude & Heading) Điều khiển góc Roll (Roll Controller)
Ta có biểu thức luật điều khiển PID của góc Roll như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân Điều khiển góc Pitch (Pitch Controller)
Ta có biểu thức luật điều khiển PID của góc Pitch như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân Điều khiển góc Yaw (Yaw Controller)
Ta có biểu thức luật điều khiển PID của góc Yaw như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân Điều khiển vị trí (Position Controller)
Sau khi đạt được sự cân bằng, và ổn định cho quadrotor bằng bộ điều khiển hướng và độ cao, bộ điều khiển PID cho vị trí có thể được xây dựng như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân
𝑥 𝑑 Toạ độ x của vị trí mong muốn
𝑦 𝑑 Toạ độ y của vị trí mong muốn
Từ 𝑥̈ 𝑑 , 𝑦̈ 𝑑 sẽ tìm được góc đặt mong muốn (𝜙 𝑑 , 𝜃 𝑑 ) từ đây sẽ giá trị ngõ vào cho bộ điều khiển hướng của quadrotor
4.2.2 Bộ điều khiển thích nghi mờ AFPID (Adaptive Fuzzy PID)
Vì trọng tải của quadrotor bị thay đổi do sự thay đổi khối lượng do các vật tải khác nhau Biểu thức sự biến đổi khối lượng như sau:
𝑚 = 𝑀 𝑞 + 𝑀 𝑃 + 𝛿𝑡 Với: m Khối lượng tổng của quadrotor
𝑀 𝑞 Khối lượng quadrotor không tải
𝑀 𝑃 Khối lượng của tải (payload)
𝛿 Tốc độ biến đổi khối lượng theo thời gian t Thời gian
Chức năng chính của bộ điều khiển AFPID là giảm thiểu sai số về độ cao khi bay theo tín hiệu đặt, vị trí đã cho trước với khối lượng tải bị thay đổi trong hành trình bay hay mỗi khi nâng hạ tải Và bởi vì, khối lượng của vật sẽ thay đổi nặng nhẹ khác nhau làm ảnh hưởng đến tính hiệu điều chỉnh lực nâng chính là tốc độ quay của rotor
Do đó, bộ điều khiển mờ với các tính năng ưu việt đã được đề xuất khi bộ điều khiển mờ có thể điều khiển linh hoạt, ổn định, thích nghi và có thể dịch được những ngôn ngữ như khi khối lượng nặng thì cần lực nâng lớn hơn thành luật điều khiển
Trong luận văn này, bộ điều khiển mờ sẽ được cải tiến, kết hợp và chỉnh định độ lợi cho bộ điều khiển PID và được gọi là bộ điều khiển Adaptive Fuzzy PID (AFPID)
Một số ưu điểm của bộ điều khiển AFPID:
Dựa vào kinh nghiệm điều khiển, quan sát trong thực tế và sự hiểu biết về đặc tính động lực học của quadrotor, các luật điều khiển bằng ngôn ngữ có thể thiết lập cho bộ điều khiển để thừa hưởng các kinh nghiệm này
Logic mờ mô tả được quan hệ vào ra phi tuyến của các hệ thống có tính phi tuyến cao như máy bay, quadrotor
Linh hoạt, có thể chỉnh định các tham số mờ của bộ điều khiển của bộ điều khiển hoặc bằng các phương pháp chỉnh định tối ưu để quadrotor có thể thích nghi và đáp ứng nhanh, vọt lố ít và hoạt động ổn định
Dễ dàng lập trình bằng các ngôn ngữ bậc thấp như C/C++ trên các vi điều khiển, ít tốn thời gian xử lý
Bộ điều khiển AFPID sẽ được chia thành bộ điều khiển nhỏ hơn:
Bộ điều khiển PID cho độ cao z (Altitude) cho tính hiệu điều khiển lực nâng 𝑈 1
Bộ điều khiển mờ Fuzzy sẽ dựa vào đầu vào sai số độ cao và giá trị khối lượng của quadrotor để dùng tính độ lợi 𝑘 𝑝, 𝑘 𝑖, 𝑘 𝑑 bằng cách tính các hệ số độ lợi 𝛼, 𝛽, 𝛾 và đặt vào bộ tính độ lợi
Hình 4-4-5 Sơ đồ khối của bộ điều khiển AFPID cho trục z
𝑚 Khối lượng tổng của quadrotor
𝑒 𝑧 Sai số độ cao của quadrotor
𝑒̇ 𝑧 Đạo hàm sai số độ cao
𝑘 𝑝, 𝑘 𝑖, 𝑘 𝑑 Độ lợi bộ điều khiển PID cho độ cao
Trong đó, độ lợi bộ điều khiển PID cho độ cao sẽ được tính toán dựa trên các hệ số độ lợi
𝛼, 𝛽, 𝛾 theo công thức như sau:
𝑘 𝑑 = 𝑘 𝑑𝑚𝑖𝑛 + (𝑘 𝑑𝑚𝑎𝑥 − 𝑘 𝑑𝑚𝑖𝑛 ) ∗ 𝛽 Với các giá trị 𝑚𝑎𝑥, 𝑚𝑖𝑛 của độ lợi bộ điều khiển PID sẽ được tìm qua thực nghiệm
41 Theo đề xuất của Goh Ming Qian [16], các giá trị 𝑚𝑎𝑥, 𝑚𝑖𝑛 này của độ lợi có thể được tính dựa trên thông số độ lợi chuẩn bộ điều khiển PID độ cao khi hoạt động ổn định ± Δ với Δ lựa chọn phù hợp
Các khối điều khiển
Từ những phân tích động lực học và điều khiển của quadrotor, ta có thể chia các khối điều khiển thành 3 khối điều khiển riêng lẻ: điều khiển hướng, điều khiển độ cao và điều khiển vị trí Trong đó, với khối điều khiển hướng và điều khiển vị trí sẽ áp dụng bộ điều khiển PID và điều khiển độ cao sẽ dùng bộ điều khiển AFPID
4.1.1 Khối điều khiển độ cao (Altitude Controller Block) Để điều khiển cao độ của quadrotor, tín hiệu sai số e giữa giá trị đặt 𝑧 𝑑 và giá trị thực tế z sẽ dùng để điều chỉnh tín hiệu điều khiển U1
Hình 4-4-1 Sơ đồ khối bộ điều khiển độ cao
4.1.2 Khối điều khiển hướng (Attitude & Heading Controller Block) Để điều khiển hướng của Quadrotor, bộ điều khiển lấy giá trị sai số e của giá trị đặt
𝜙 𝑑 , 𝜃 𝑑 , 𝜓 𝑑 và giá trị thực tế của 𝜙, 𝜃, 𝜓 từ đây sẽ điều chỉnh tín hiệu điều khiển 𝑈 2 , 𝑈 3 , 𝑈 4
Hình 4-4-2 Sơ đồ khối cho bộ điều khiển phương hướng
4.1.3 Khối điều khiển vị trí (Position Controller Block)
Không giống như điều khiển độ cao và hướng, điều khiển vị trí x và y không thể tính toán tách riêng biệt và cũng không thể điều khiển trực tiếp dựa trên 1 trong 4 tín hiệu điều khiển 𝑈 1−4 Mặt khác, điều khiển vị trí x và y có thể gián tiếp thông qua điều khiển góc roll và pitch (𝜙, 𝜃) Các góc (𝜙 𝑑 , 𝜃 𝑑 ) có thể tính thông qua biểu thức dưới đây:
Hình 4-4-3 Sơ đồ khối bộ điều khiển vị trí (hệ thống hoàn chỉnh)
Các bộ điều khiển (Controller)
4.2.1 Điều khiển PID (PID Controller) Đây là bộ điều khiển cực kỳ phổ biến dựa trên tính hiệu sai số e đi vào 3 khâu tỷ lệ, tích phân và vi phân
Ta sẽ sử dụng bộ điều khiển này cho điều khiển hướng và vị trí (Altitude, Heading, Position) của quadrotor
Hình 4-4-4 Sơ đồ khối của 1 bộ điều khiển PID
4.2.1.1 Điều khiển hướng (Attitude & Heading) Điều khiển góc Roll (Roll Controller)
Ta có biểu thức luật điều khiển PID của góc Roll như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân Điều khiển góc Pitch (Pitch Controller)
Ta có biểu thức luật điều khiển PID của góc Pitch như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân Điều khiển góc Yaw (Yaw Controller)
Ta có biểu thức luật điều khiển PID của góc Yaw như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân Điều khiển vị trí (Position Controller)
Sau khi đạt được sự cân bằng, và ổn định cho quadrotor bằng bộ điều khiển hướng và độ cao, bộ điều khiển PID cho vị trí có thể được xây dựng như sau:
𝑘 𝑝 Độ lợi khâu tỷ lệ
𝑘 𝑑 Độ lợi khâu vi phân
𝑘 𝑖 Độ lợi khâu tích phân
𝑥 𝑑 Toạ độ x của vị trí mong muốn
𝑦 𝑑 Toạ độ y của vị trí mong muốn
Từ 𝑥̈ 𝑑 , 𝑦̈ 𝑑 sẽ tìm được góc đặt mong muốn (𝜙 𝑑 , 𝜃 𝑑 ) từ đây sẽ giá trị ngõ vào cho bộ điều khiển hướng của quadrotor
4.2.2 Bộ điều khiển thích nghi mờ AFPID (Adaptive Fuzzy PID)
Vì trọng tải của quadrotor bị thay đổi do sự thay đổi khối lượng do các vật tải khác nhau Biểu thức sự biến đổi khối lượng như sau:
𝑚 = 𝑀 𝑞 + 𝑀 𝑃 + 𝛿𝑡 Với: m Khối lượng tổng của quadrotor
𝑀 𝑞 Khối lượng quadrotor không tải
𝑀 𝑃 Khối lượng của tải (payload)
𝛿 Tốc độ biến đổi khối lượng theo thời gian t Thời gian
Chức năng chính của bộ điều khiển AFPID là giảm thiểu sai số về độ cao khi bay theo tín hiệu đặt, vị trí đã cho trước với khối lượng tải bị thay đổi trong hành trình bay hay mỗi khi nâng hạ tải Và bởi vì, khối lượng của vật sẽ thay đổi nặng nhẹ khác nhau làm ảnh hưởng đến tính hiệu điều chỉnh lực nâng chính là tốc độ quay của rotor
Do đó, bộ điều khiển mờ với các tính năng ưu việt đã được đề xuất khi bộ điều khiển mờ có thể điều khiển linh hoạt, ổn định, thích nghi và có thể dịch được những ngôn ngữ như khi khối lượng nặng thì cần lực nâng lớn hơn thành luật điều khiển
Trong luận văn này, bộ điều khiển mờ sẽ được cải tiến, kết hợp và chỉnh định độ lợi cho bộ điều khiển PID và được gọi là bộ điều khiển Adaptive Fuzzy PID (AFPID)
Một số ưu điểm của bộ điều khiển AFPID:
Dựa vào kinh nghiệm điều khiển, quan sát trong thực tế và sự hiểu biết về đặc tính động lực học của quadrotor, các luật điều khiển bằng ngôn ngữ có thể thiết lập cho bộ điều khiển để thừa hưởng các kinh nghiệm này
Logic mờ mô tả được quan hệ vào ra phi tuyến của các hệ thống có tính phi tuyến cao như máy bay, quadrotor
Linh hoạt, có thể chỉnh định các tham số mờ của bộ điều khiển của bộ điều khiển hoặc bằng các phương pháp chỉnh định tối ưu để quadrotor có thể thích nghi và đáp ứng nhanh, vọt lố ít và hoạt động ổn định
Dễ dàng lập trình bằng các ngôn ngữ bậc thấp như C/C++ trên các vi điều khiển, ít tốn thời gian xử lý
Bộ điều khiển AFPID sẽ được chia thành bộ điều khiển nhỏ hơn:
Bộ điều khiển PID cho độ cao z (Altitude) cho tính hiệu điều khiển lực nâng 𝑈 1
Bộ điều khiển mờ Fuzzy sẽ dựa vào đầu vào sai số độ cao và giá trị khối lượng của quadrotor để dùng tính độ lợi 𝑘 𝑝, 𝑘 𝑖, 𝑘 𝑑 bằng cách tính các hệ số độ lợi 𝛼, 𝛽, 𝛾 và đặt vào bộ tính độ lợi
Hình 4-4-5 Sơ đồ khối của bộ điều khiển AFPID cho trục z
𝑚 Khối lượng tổng của quadrotor
𝑒 𝑧 Sai số độ cao của quadrotor
𝑒̇ 𝑧 Đạo hàm sai số độ cao
𝑘 𝑝, 𝑘 𝑖, 𝑘 𝑑 Độ lợi bộ điều khiển PID cho độ cao
Trong đó, độ lợi bộ điều khiển PID cho độ cao sẽ được tính toán dựa trên các hệ số độ lợi
𝛼, 𝛽, 𝛾 theo công thức như sau:
𝑘 𝑑 = 𝑘 𝑑𝑚𝑖𝑛 + (𝑘 𝑑𝑚𝑎𝑥 − 𝑘 𝑑𝑚𝑖𝑛 ) ∗ 𝛽 Với các giá trị 𝑚𝑎𝑥, 𝑚𝑖𝑛 của độ lợi bộ điều khiển PID sẽ được tìm qua thực nghiệm
41 Theo đề xuất của Goh Ming Qian [16], các giá trị 𝑚𝑎𝑥, 𝑚𝑖𝑛 này của độ lợi có thể được tính dựa trên thông số độ lợi chuẩn bộ điều khiển PID độ cao khi hoạt động ổn định ± Δ với Δ lựa chọn phù hợp
Bộ điều khiển mờ sẽ có 3 ngõ vào (𝑚, 𝑒 𝑧 , 𝑒̇ 𝑧 ) và 3 ngõ ra là giá trị của (𝛼, 𝛽, 𝛾) sử dụng phương pháp Madami với tính toán Max-Min Các tín hiệu vào ra của bộ điều khiển được mờ hoá thành các tập mờ và hàm liên thuộc
Bảng 4-1 Luật mờ cho alpha với khối lượng bé (a) và lớn (b)
Bảng 4-2 Luật mờ cho beta với khối lượng bé (a) và lớn (b)
Bảng 4-3 Luật mờ cho beta với khối lượng bé (a) và lớn (b)
Hình 4-4-6 Hàm liên thuộc cho ngõ vào cho sai số (𝑒 𝑧 ), sai số (𝑒̇ 𝑧 ) và 𝑚
Hình 4-4-7 Hàm liên thuộc cho ngõ ra của alpha, beta và gamma
Luật điều khiển mờ có dạng: IF 𝒆 𝒊 AND 𝒆̇ 𝒊 AND 𝒎 𝒊 THEN 𝜶 𝒊 AND 𝜷 𝒊 AND 𝜸 𝒊 được cho dưới dạng bảng và tổng cộng có 8 luật:
Hình 4-4-8 Luật điều khiển mờ cho AFPID
Thực hiện giải thuật
Giải thuật được thực hiện bằng lập trình ngôn ngữ C/C++ trên phần cứng nền tảng được xây dựng trên Arduino có thể lập trình thông qua IDE Arduino complier
4.3.1 Lập trình với thư viện của Ardupilot 3.2.1
Phiên bản APM 2.8 là phiên bản thương mại cuối cùng của dòng APM do cộng đồng Ardupilot (Ardupilot.org) còn được sản xuất trên thị trường, đi kèm với phiên bản phần cứng là hệ thống thư viện mở với các module được xây dựng bởi cộng đồng và phát hành miễn phí dưới giấy phép GPLv3 có tên là Ardupilot
Phiên bản cuối cùng của Ardupilot còn hỗ trợ cho phần cứng APM 2.8 là phiên bản 3.2.1
Trong luận văn này, để tối đa hoá lợi ích và giảm thiểu chi phí đưa ra sản phẩm, thư viện Ardupilot 3.2.1 đã được tận dụng với các mã nguồn thư viện giao tiếp phần cứng như AP_HAL_AVR, AP_AHRS,…
4.3.2 Cấu trúc vòng lặp chính (main loop) Đối với APM 2.8, vòng lặp chính được vận hành với xung nhịp 100hz
Header: Khai báo các thư viện truy dẫn, được sử dụng khi chạy chương trình chính
Setup: Được gọi đến trong vòng lặp đầu tiên của chương trình chính, dùng để khai báo
1 lần các biến, gọi các chương trình khởi tạo con
Loop: Đoạn chương trình sẽ được gọi lặp lại với xung nhịp 100hz
Auxiliary Function: các hàm và chương trình con, sẽ được gọi đến thực hiện các tác vụ riêng biệt
AP_HAL_MAIN(): dùng để gọi các hàm và tác vụ giao tiếp với phần cứng đã được xây dựng sẵn của thư viện Ardupilot
Hình 4-9 Cấu trúc vòng lặp chính chương trình (main loop)
Có 3 chế độ gọi 1 tác vụ, chương trình con trong chương trình chính:
Tuần tự (sequential mode): xử lý các tác vụ, dòng lệnh 1 cách tuần tự từ trên xuống
Song song (parallel mode): xử lý các tác vụ song song cùng với chương trình chính, thời gian xử lý thực
Khối module (modular mode): xử lý các tác vụ là các chương trình con, được gọi đến khi xử lý dòng lệnh gọi tên, giúp đơn giản hoá cấu trúc code, chuyên biệt hoá tác vụ Để thực thi chế độ song song (parallel mode), hệ thống cần sử dụng thư viện lên kế hoạch, đặt lịch gọi (scheduler) với chức năng như sau:
Thời gian gọi lại chương trình = hệ số*10ms
/* scheduler table - all regular tasks apart from the fast_loop() should be listed here, along with how often they should be called
(in 10ms units) and the maximum time they are expected to take (in microseconds)
*/ static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = {
Như đoạn chương trình trên, hàm fifty_hz_loop sẽ được xử lý sau khoảng thời gian 0.5s trong khoảng thời gian tối đa cho phép là 950 microsecond
Hình 4-10 Các chế độ xử lý tác vụ, dòng lệnh của APM 2.8
4.3.3 Giải thuật điều khiển Để xử lý bài toán cân bằng và quy hoạch quỹ đạo cho quadrotor với khối lượng thay đổi, các giá trị cần cảm biến phải thu thập được bao gồm:
Độ cao z: thông qua giá trị đọc về của barometter, gps
Toạ độ x,y: thông qua giá trị xử lý kinh độ, vĩ độ của gps
Phương: được đo đạc thông qua giá trị của la bàn
Phương hướng: thông qua giá trị của cảm biến IMU
Tốc độ xoay, tốc độ góc: thông qua giá trị cảm biến con quay hồi chuyển Gyro
Trọng tải thay đổi: thông qua giá trị của loadcell
Các giá trị cảm biến này sẽ được đọc về và xử lý thông qua thư viện phần cứng HAL được khai báo như sau:
Hình 4-11 Lưu đồ chương trình chính
AP_InertialSensor_MPU6000 imu(ins);
AP_Baro_MS5611 baro(&AP_Baro_MS5611::spi);
Baro_Glitch baro_glitch(baro);
GPS_Glitch gps_glitch(gps);
AP_AHRS_DCM ahrs(ins, baro, gps);
AP_InertialNav inertial_nav(ahrs, baro, gps_glitch, baro_glitch);
4.3.3.1 Xử lý giá trị độ cao Z Để xử lý được giá trị độ cao, cảm biến barometter dựa trên sự thay đổi về áp suất và nhiệt độ sẽ quy đổi về độ cao cách với mặt đất của thiết bị Đồng thời để gia tăng sự chính xác, giá trị đọc độ cao của GPS cũng có thể dùng để hiệu chỉnh giá trị độ cao
/* create instances*/ static AP_Baro baro; float baro_alt=0; void setup(){ baro.init(); baro.calibrate(); //keep quadrotor on the ground before calibrating
} void loop(){ baro.update(); //update the status of baro baro_alt = baro.get_altitude();
4.3.3.2 Xử lý toạ độ X,Y: Để xử lý toạ độ X,Y của Quadrotor dùng cho quy hoạch quỹ đạo, kết quả của GPS sẽ được dùng để xác định với sai số 0.5-1m và được hiệu chỉnh với giá trị vị trí tính toán dựa trên gia tốc tịnh tiến theo phương X, Y của quadrotor
Dùng tích phân giá trị gia tốc góc: static float dt; static uint32_t lasttime; // void update_position(){ ins.update(); uint32_t currtime = millis(); dt = (float)(currtime - lasttime) / 1000.0f; lasttime = currtime;
47 accel = ins.get_accel(); accelx[0] = accelx[1]; accelx[1] = removeChattering(accel.x); // if acceleration is too small, set the value to zero to prevent deviation accely[0] = accely[1]; accely[1] = removeChattering(accel.y);
// Velocity velx[0] = velx[1]; velx[1] = integral(velx,accelx,dt); vely[0] = vely[1]; vely[1] = integral(vely,accely,dt);
//Position x[0] = x[1]; x[1] = integral(x,velx,dt); y[0] = y[1]; y[1] = integral(y,vely,dt);
} float integral(float x[2], float a[2], float dt)
Dùng giá trị đọc vị trí từ GPS
AP_InertialNav inertial_nav(ahrs, baro, gps_glitch, baro_glitch); /*Vảiable*/ static Vector3f pos_gps; static Vector3f vel_gps; static Vector3f pos; static Vector3f vel; uint8_t flag = 0,flag2 = 1; static float dt; static uint32_t last_update; void setup(){ gps.init(NULL); ahrs.set_compass(&compass); inertial_nav.init();
} void loop(){ static uint32_t last_msg_ms; gps.update(); if (last_msg_ms != gps.last_message_time_ms()){ last_msg_ms = gps.last_message_time_ms(); const Location &loc = gps.location(); flag = gps.status();
} uint32_t currtime = hal.scheduler->millis(); dt = (float)(currtime - last_update) / 1000.0f; last_update = currtime; inertial_nav.update(dt); flag = gps.num_sats(); if(pos.x!= 0 && flag >= 3 && flag2 == 1){ const Location &loc = gps.location(); ahrs.set_home(loc); compass.set_initial_location(loc.lat, loc.lng);
} pos_gps = inertial_nav.get_position(); vel_gps = inertial_nav.get_velocity(); pos.x = ((pos_gps.x)/100); pos.y = ((pos_gps.y)/100); pos.z = ((pos_gps.z)/100); if(flag2 == 2){ vel.x = ((vel_gps.x)/100); vel.y = ((vel_gps.y)/100);
} vel.z = ((vel_gps.z)/100); flag2 = 1; hal.console->printf("%0.6f\t %0.6f\t %0.6f\t %0.6f\t%d\n", pos_gps.x,pos_gps.y,vel_gps.x,vel_gps.y,gps.num_sats());
4.3.3.3 Xử lý góc, tốc độ góc Để xử lý các góc và tốc độ góc, các giá trị từ cảm biến Gyro, Baro, GPS sẽ được đọc về và xử lý thông qua thư viện AP_AHRS
Hình 4-12 Sơ đồ khối xử lý dữ liệu từ sensor cho về giá trị góc của quadrotor float roll, pitch, yaw; float gyroRoll, gyroPitch, gyroYaw;
50 compass.init(); compass.read(); ahrs.set_compass(&compass);
} void loop(){ ahrs.update(); roll = ToDeg(ahrs.roll); pitch = ToDeg(ahrs.pitch); yaw = ToDeg(ahrs.yaw); compass.read(); ins.update(); gyro = ins.get_gyro(); gyroRoll = ToDeg(gyro.x); gyroPitch = ToDeg(gyro.y); gyroYaw = ToDeg(gyro.z); // (deg/s)
4.3.3.4 Xử lý giá trị trọng tải thay đổi Để có thể đọc về giá trị khối lượng của tải thay đổi, ta sử dụng loadcell dựa trên nguyên lý biến đổi sự biến dạng của cell làm thay đổi giá trị điện trở dẫn đến điện áp thay đổi
Mạch chuyển đổi ADC HX711 sẽ đổi giá trị điện áp (analog) thành giá trị số (digital) và được đọc về qua các “digital input” pin của APM 2.8
HX711 scale; void setup(){ mquad_read_init();
51 hal.console->printf("Loadcell is cumming\r\n"); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale(CALIBRATION_FACTOR); //Calibrated on 19.Aug at Trung house scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0
} float mquad_read(){ mquad = scale.get_units(); return mquad; // in kg with 3 decimal
4.3.3.5 Bộ điều khiển PID Để điều khiển cân bằng và vị trí cho quadrotor, ta cần 9 bộ điều khiển PID cho các tín hiệu điều khiển bao gồm:
Vị trí: cho các sai số vị trí của x,yz
Góc: các sai số góc đặt của roll, pitch, yaw
Tốc độ góc: các sai số của tốc độ góc roll, pitch, yaw
Hình 4-13 Sơ đồ khối bộ điều khiển PID của hệ thống setthr = rcthr + constrain_float(pids[PID_Z].get_pid((float)z[1] -z[0], 1), -250, 250); roll_pos = constrain_float(pids[PID_X].get_pid((float)pos_target.x - pos_curr.x, 1), -45, 45); pitch_pos = constrain_float(pids[PID_Y].get_pid((float)pos_target.y - pos_curr.y, 1), -45, 45); yaw_pos = constrain_float(pids[PID_YAW].get_pid((float)pos_target.z - pos_curr.z, 1), -300, 300); roll_angle = constrain_float(pids[PID_ROLL_STAB].get_pid((float)roll_pos - roll, 1), -250, 250);
52 pitch_angle = constrain_float(pids[PID_PITCH_STAB].get_pid((float)pitch_pos - pitch, 1), -250, 250); yaw_angle = constrain_float(pids[PID_YAW_ANGLE].get_pid(wrap_180(yaw_pos - yaw), 1), -360, 360); u[0] = setthr; u[1] = constrain_float(pids[PID_ROLL_RATE].get_pid(roll_angle - gyroRoll, 1), -500, 500); u[2] = constrain_float(pids[PID_PITCH_RATE].get_pid(pitch_angle - gyroPitch, 1), -500, 500); u[3] = constrain_float(pids[PID_YAW_RATE].get_pid(yaw_angle - gyroYaw, 1), -500, 500);
4.3.3.5.1 Hiệu chỉnh hệ số PID
Theo lý thuyết, để cân chỉnh hệ số PID phù hợp với thiết bị, các quy trình sẽ theo trình tự sau:
1 Gán các giá trị khởi tạo kI, kD, kP là giá trị nhỏ tầm 0.1-05
Sơ đồ kết nối mô phỏng
Để xây dựng mô phỏng kiểm chứng, các khối mô phỏng sẽ cần được xây dựng: o Khối điều khiển (Controller): o Bộ điều khiển vị trí (x, y): PID controller o Bộ điều khiển góc (roll, pitch, yaw): PID controller o Bộ điều khiển cao độ (z): AFPID controller o Khối chuyển đổi tín hiệu điều khiển 𝑈 1−4 thành tốc độ đặt cho mỗi rotor Ω 1−4 (Motor Speed Calculation) o Khối hàm truyền động cơ (Rotor Dynamics) o Khối tính toán tín hiệu điều khiển tương ứng 𝑈 1−4 thực tế
(System Input Calculation) o Khối mô hình động lực học của Quadrotor (Quadrotor Dynamics) o Khối quan sát trạng thái hệ thống (Observation)
Hình 5-1 Sơ đồ khối mô phỏng và kiểm định chất lượng điều khiển Quadrotor
5.1.1.1 Kiểm định bộ điều khiển PID
Do cấu trúc đối xứng của quadrotor, bộ điều khiển PID cho góc roll 𝜙 tương đương với góc pitch 𝜃 Giả thuyết này có thể dễ dàng kiểm chứng bởi mô phỏng và thể hiện trong bảng …
Và tương tự, như góc roll và góc pitch, bộ điều khiển PID cho vị trí 𝑥 và 𝑦 cũng tương đương nhau do tính chất cấu trúc đối xứng
Do đó khi thực hiện cân chỉnh, việc điều chỉnh sẽ tiết kiệm thời gian và đồng thời khi điều chỉnh cùng lúc hệ số độ lợi cho cả bộ điều khiển PID vị trí 𝑥 và 𝑦 hoặc cho góc roll 𝜙 và pitch
5.1.1.1.1 Kiểm định với quỹ đạo điểm-điểm, trọng tải không đổi
Thực hiện kiểm định bộ điều khiển vị trí và góc (PID), độ cao (PID) với quỹ đạo đoạn thẳng đi từ điểm A đến B và giữ cân bằng trên không tại điểm B
Thông số Giá trị ban đầu Giá trị đặt 𝒌 𝒑 𝒌 𝒊 𝒌 𝒅 Txl
(ST) Vọt lố (OS) Độ cao (z) 0m 2m 4.7 3.4 1.8 4s 0%
Bảng 5-1 Bảng thông số kiểm định bộ điều khiển góc,vị trí & độ cao quỹ đạo điểm-điểm, trọng tải không đổi Đáp ứng vị trí x Đáp ứng vị trí y Đáp ứng độ cao z Sai số trên các trục
62 Đáp ứng góc Roll Đáp ứng góc Pitch Đáp ứng góc Yaw
Hình 5-2 Kết quả kiểm định bộ điều khiển góc, vị trí & độ cao quỹ đạo điểm-điểm, trọng tải không đổi
5.1.1.1.2 Kiểm định với quỹ đạo xoắn tròn, trọng tải không đổi
Thực hiện kiểm định chất lượng bộ điều khiển vị trí và góc (PID), độ cao (PID) với quỹ đạo là dạng xoắn tròn có bán kính = 1m, độ cao tăng dần 1m/s với khối lượng không đổi
Thông số Giá trị ban đầu Giá trị đặt 𝒌 𝒑 𝒌 𝒊 𝒌 𝒅 Txl
(ST) Vọt lố (OS) Độ cao (z) 0m 1m/s 4.7 3.4 1.8 0.5s 0%
Bảng 5-2 Bảng thông số kiểm định bộ điều khiển góc và vị trí quỹ đạo xoắn tròn, trọng tải không đổi
Quỹ đạo đặt và quỹ đạo quadrotor thực tế
63 Đáp ứng của vị trí x Đáp ứng của vị trí y Đáp ứng độ cao z Sai số trên các trục Đáp ứng góc Roll Đáp ứng góc Pitch Đáp ứng góc Yaw Hình 5-3 Kết quả kiểm định bộ điều khiển góc, vị trí & độ cao theo quỹ đạo xoắn tròn, trọng tải không đổi
5.1.1.1.3 Kiểm định với quỹ đạo tròn, trọng tải thay đổi
Thực hiện kiểm định chất lượng bộ điều khiển vị trí và góc (PID), độ cao (PID) với quỹ đạo là dạng xoắn tròn có bán kính = 1m, độ cao = 2m với khối lượng không đổi
Khối lượng tổng của quadrotor thay đổi theo thời gian Quỹ đạo quadrotor bị mất ổn định ở giây thứ 17s Đáp ứng của vị trí x vẫn ổn định khi khối lượng biến thiên Đáp ứng của vị trí y vẫn ổn định khi khối lượng biến thiên Đáp ứng độ cao z dao động rất lớn khi khối lượng thay đổi Sai số trên các trục
Hình 5-4 Kết quả kiểm định bộ điều khiển góc, vị trí & độ cao theo quỹ đạo xoắn tròn, trọng tải thay đổi
Kết quả kiểm định cho thấy, bộ điều khiển PID không thể đáp ứng điều khiển Quadrotor khi trọng tải biến thiên lớn (200%) , dẫn đến dao động mất ổn định hệ thống Đáp ứng trên trục z bị ảnh hưởng nhiều nhất khi trọng tải biến thiên trong khi đáp ứng về vị trí x,y và các góc lại không thể hiện sự ảnh hưởng nhiều khi trọng tải biến thiên
Do đó, riêng với trục z, chỉ cần thiết kế một bộ điều khiển có khả năng thích nghi với sự biến thiên khối lượng
5.1.1.2 Kiểm định bộ điều khiển AFPID
5.1.1.2.1 Kiểm định với quỹ đạo điểm-điểm, trọng tải thay đổi
Thực hiện kiểm định bộ điều khiển vị trí và góc (PID), độ cao (AFPID) với quỹ đạo đoạn thẳng đi từ điểm A đến B và giữ cân bằng trên không tại điểm B
Thông số Giá trị ban đầu
Vọt lố (OS) Độ cao (z) 0m 2m 4.2 8 - 0.1 1.8 3s 3%
Bảng 5-3 Bảng thông số kiểm định bộ điều khiển góc,vị trí và độ cao quỹ đạo điểm-điểm, trọng điểm thay đổi
Khối lượng của quadrotor biến đổi theo thời gian Quỹ đạo điểm (0,0,0) – điểm (1,1,2) Đáp ứng vị trí x với khối lượng biến đổi Đáp ứng vị trí y với khối lượng biến đổi
66 Đáp ứng độ cao z với khối lượng biến đổi Sai số trên các trục Đáp ứng góc Roll Đáp ứng góc Pitch Đáp ứng góc Yaw
Hình 5-5 Kết quả kiểm định bộ điều khiển góc, vị trí & độ cao(AFPID) theo quỹ đạo điểm điểm, trọng tải thay đổi
5.1.1.2.2 Kiểm định với quỹ đạo tròn, trọng tải thay đổi
Thực hiện kiểm định chất lượng bộ điều khiển vị trí và góc (PID), độ cao (PID) với quỹ đạo là dạng xoắn tròn có bán kính = 1m, giữ độ cao = 2m với khối lượng thay đổi
Thông số Giá trị ban đầu Giá trị đặt 𝒌 𝒑𝒎𝒊𝒏 𝒌 𝒑𝒎𝒂𝒙 𝒌 𝒊 𝒌 𝒅𝒎𝒊𝒏 𝒌 𝒅𝒎𝒂𝒙 Txl
Vọt lố (OS) Độ cao (z) 0m 2m 4.2 8 - 0.1 1.8 3s 3%
Hình 5-6 Bảng thông số kiểm định bộ điều khiển góc,vị trí và độ cao quỹ đạo trọn, trọng điểm thay đổi
Khối lượng của quadrotor biến đổi theo thời gian Quỹ đạo tròn (r=1m, z=2m) Đáp ứng vị trí x với khối lượng thay đổi Đáp ứng vị trí y với khối lượng thay đổi Đáp ứng độ cao z với khối lượng thay đổi Sai số trên các trục
68 Đáp ứng góc Roll Đáp ứng góc Pitch Đáp ứng góc Yaw
Hình 5-7 Kết quả kiểm định bộ điều khiển góc, vị trí & độ cao(AFPID) theo quỹ đạo tròn, trọng tải thay đổi
Kết quả kiểm định cho thấy, bộ điều khiển APID đáp ứng điều khiển Quadrotor khi trọng tải biến thiên lớn (200%) vẫn rất tốt Các đáp ứng về điều khiển góc và vị trí không bị ảnh hưởng và đáp ứng trên trục z cho thấy sự ổn định và thích nghi với sự thay đổi của khối lượng.
Kết quả thực nghiệm
Sau khi hoàn thành bộ điều khiển cân bằng, quadrotor đã được kiểm nghiệm bộ điều khiển thích nghi mờ AFPID trong thực tế với các kết quả khả quan
Hình 5-8 Lắp đặt loadcell lên quadrotor
5.2.1 Kiểm định giá trị đọc loadcell Để có thể đọc được giá trị đúng của tải, cần phải thực hiện việc cân chỉnh bù “offset” và hệ số
“scale” của loadcell trước khi sử dụng long HX711::read_average(uint8_t times) { long sum = 0; for (uint8_t i = 0; i < times; i++) { sum += read(); halx.scheduler->delay(0);
} double HX711::get_value(uint8_t times) { return read_average(times) - OFFSET;
} float HX711::get_units(uint8_t times) { return get_value(times) / SCALE;
} void HX711::tare(uint8_t times) { double sum = read_average(times); set_offset(sum);
} void HX711::set_scale(float scale) {
} float HX711::get_scale() { return SCALE;
} void HX711::set_offset(long offset) {
Hình 5-9 Thực hiện cân chỉnh loadcell
5.2.2 Kiểm định bộ điều khiển AFPID Để kiểm định bộ điều khiển AFPID, các giá trị của hệ số 𝛼, 𝛽, 𝛾 và 𝑘𝑃 𝐴𝐹𝑃𝐼𝐷 , 𝑘𝐼 𝐴𝐹𝑃𝐼𝐷 , 𝑘𝐷 𝐴𝐹𝑃𝐼𝐷 và giá trị của các tín hiệu điều khiển 𝑈 1−4 sẽ được thu thập và kiểm định
Tải sẽ là 2 tải thay đổi với giá trị khối lượng lần lượt 0.159g và 0.29g
Hình 5-10 Thu thập các giá trị của bộ điều khiển AFPID thông qua UART
Thử nghiệm thực tế quan sát, thu thập với giá trị m payload thay đổi:
Hình 5-11 Giá trị thu thập trọng tải thay đổi
Hình 5-12 Hệ số alpha, beta và gamma, kP,kI,kD, U1-4 cho bộ điều khiển AFPID
Hình 5-133 Kết quả bay cân bằng thực tế
Kết luận
Đề tài đưa ra đã giải quyết được trọn vẹn quy trình thiết kế bộ điều khiển thích nghi mờ PID (AFPID) đáp ứng nhu cầu điều khiển Quadrotor cho mục đích vận tải với tải trọng biến thiên trong mức cho phép Đề tài đã trình bày và giải quyết các vấn đề về mô hình hoá, nhận dạng hệ thống Quadrotor Đồng thời đề xuất các khối điều khiển và xây dựng bộ điều khiển PID cho khối điều khiển góc và vị trí và AFPID cho khối điều khiển độ cao
Với kết quả kiểm định bằng mô phỏng, có thể thấy kết quả từ bộ điều khiển PID cho độ cao khi trọng tải biến thiên sẽ không đáp ứng được yêu cầu chất lượng điều khiển Và, khi sử dụng bộ điều khiển AFPID được đề xuất, các yêu cầu về chất lượng điều khiển đã được thoả mãn
72 Với các ưu điểm nổi trội của điều khiển mờ như có thể áp dụng kinh nghiệm điều khiển, ít nhạy và bền vững với nhiễu, dễ dàng lập trình trên vi điều khiển, bộ điều khiển AFPID hứa hẹn khả năng sử dụng rộng rãi trong ngành công nghiệp vận tải bằng quadrotor.
Hướng phát triển tương lai
Đề tài cho thấy hướng phát triển có thể áp dụng cho ngành công nghiệp vận tải bằng quadrotor với khả năng phổ biến và triển khai rất nhanh
Với tương lai có thể xây dựng việc điều khiển vị trí bằng công nghệ GPS, việc vận tải từ xa bằng quadrotor với quỹ đạo điểm điểm đã được lập trình sẽ có thể phát triển mạnh mẽ