Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,7 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Điều khiển hệ máy bay không ngƣời lái sử dụng học tăng cƣờng ĐOÀN ANH ĐỨC Duc.DA202304M@sis.hust.edu.vn Ngành Kỹ thuật điều khiển tự động hóa Giảng viên hƣớng dẫn: PGS TS Nguyễn Hoài Nam Trƣờng: Điện - Điện tử Khoa: Tự động hố Chữ ký GVHD HÀ NỘI, 11/2022 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Đoàn Anh Đức Đề tài luận văn: Điều khiển hệ máy bay không người lái sử dụng học tăng cường Chuyên ngành: Kỹ thuật điều khiển tự động hóa Mã số SV: 20202304M Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 03/11/2022 với nội dung sau: - Chỉnh sửa lỗi tả - Bổ xung năm công bố cho số tài liệu tham chiếu - Bổ xung số thích chương trình mơ Ngày 10 tháng 11 năm 2022 Giáo viên hƣớng dẫn Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG ii Lời cảm ơn Lời em xin chân thành cảm ơn đến Ban Giám hiệu Trường Đại học Bách khoa Hà Nội, Trường Điện - Điện tử, Khoa Tự động hoá tạo điều kiện cho em học tập nghiên cứu Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc tới thầy Nguyễn Hoài Nam hướng dẫn hỗ trợ em q trình thực luận văn Tóm tắt nội dung luận văn Các phương tiện bay không người lái nói chung có nhiều ứng dụng thực tế nhiều lĩnh vực quân sự, nghiên cứu khoa học, công nghiệp, nơng nghiệp, dịch vụ, Trong đó, quadrotor nói riêng có nhiều ưu điểm độ động cao, triển khai quy mơ lớn làm cho phù hợp với ứng dụng giám sát, quay phim, tìm kiến cứu nạn, Trong luận văn này, tác giả lựa chọn quadrotor làm đối tượng nghiên cứu; thiết kế điều khiển sử dụng thuật toán học tăng cường Data-Driven so sánh kết thiết kế với điều khiển PID Chương trình mơ điều khiển đối tượng thực phần mềm Matlab-Simulink Kết mô thiết kế điều khiển sử dụng thuật toán học tăng cường Data-Driven cho thấy đối tượng quadrotor bám tốt giá trị đặt, sở để nghiên cứu áp dụng cho dạng phương tiện bay không người lái khác tương lai HỌC VIÊN Ký ghi rõ họ tên iii MỤC LỤC CHƢƠNG GIỚI THIỆU 1.1 Tổng quan hệ máy bay không người lái 1.2 Một số phương pháp điều khiển máy bay không người lái 1.3 Kết luận chương CHƢƠNG CƠ SỞ LÝ THUYẾT 2.1 Mơ hình quadrotor 2.2 Học tăng cường 10 2.3 2.4 2.2.1 Tìm hiểu học tăng cường 10 2.2.2 Một vài thuật toán học tăng cường với mơ hình Markow 11 2.2.3 Học tăng cường toán tối ưu 18 Thuật toán học tăng cường Data-Driven 19 2.3.1 Thuật toán điều khiển vị trí 19 2.3.2 Thuật toán điều khiển trạng thái 21 2.3.3 Phân tích tính ổn định 24 Kết luận chương 25 CHƢƠNG MÔ PHỎNG ĐIỀU KHIỂN QUADROTOR 26 3.1 Đầu vào mô 26 3.2 Điều khiển quadrotor sử dụng thuật toán học tăng cường Data-Driven 26 3.3 Điều khiển quadrotor sử dụng điều khiển PID 28 3.4 So sánh kết thiết kế với hai điều khiển 32 3.5 Kết luận chương 33 CHƢƠNG KẾT LUẬN 34 4.1 Kết luận 34 4.2 Hướng nghiên cứu, phát triển 34 TÀI LIỆU THAM KHẢO 35 PHỤ LỤC 37 A1 Chương trình mơ điều khiển vị trí sử dụng Data-Driven 37 A2 Chương trình mơ điều khiển góc trạng thái sử dụng Data-Driven 40 iv DANH MỤC HÌNH VẼ Hình 1.1 Quadrotor Hình 1.2 UAV cánh cố định Hình 1.3 UAV có cấu trúc lai Hình 1.4 UAV đập cánh Hình 2.1 Các hệ tọa độ Hình 2.2 Các góc Euler Hình 2.3 Minh họa vận động viên (tác nhân PG) 16 Hình 2.4 Thuật toán Actor-Critic 17 Hình 2.5 Cấu trúc thuật tốn Actor-Critic 18 Hình 3.1 Điều khiển vị trí sử dụng thuật tốn Data-Driven 26 Hình 3.2 Tín hiệu điều khiển vị trí sử dụng thuật tốn Data-Driven 27 Hình 3.3 Điều khiển trạng thái sử dụng thuật tốn Data-Driven 27 Hình 3.4 Tín hiệu điều khiển trạng thái sử dụng thuật tốn Data-Driven 28 Hình 3.5 Cấu trúc điều khiển đối tượng sử dụng điều khiển PID 29 Hình 3.6 Điều khiển vị trí sử dụng điều khiển PID 30 Hình 3.7 Tín hiệu điều khiển vị trí sử dụng điều khiển PID 31 Hình 3.8 Điều khiển trạng thái sử dụng điều khiển PID 31 Hình 3.9 Tín hiệu điều khiển trạng thái sử dụng điều khiển PID 32 Hình 3.10 So sánh điều khiển vị trí hai điều khiển 32 Hình 3.11 So sánh điều khiển trạng thái hai điều khiển 33 v DANH MỤC BẢNG BIỂU Bảng 3.1 Các tham số đối tượng 26 Bảng 3.2 Các tham số điều khiển PID 30 vi DANH MỤC TỪ VIẾT TẮT UAV : Unmanned Aerial Vehicle - Phương tiện bay không người lái UAS RL : Unmanned Aircraft System - Hệ thống máy bay không người lái : Reinforcement Learning - Học tăng cường MDP DP : Markov Decision Process - Quá trình Markov : Dynamic Program - Quy hoạch động ADP ARE HJB : Adaptive Dynamic Program - Quy hoạch động thích nghi : Algebraic Riccati Equation - Phương trình Riccati : Hamilton-Jacobi-Bellman HJI : Hamilton-Jacobi-Isaacs PG : Policy Gradient AC PE : Actor-Critic : Persistence of Excitation PID LQR CNF MPC SISO MIMO : Proportional Integral Derivative : Linear Quadratic Regulator : Composite Nonlinear Feedback : Model Predictive Control : Single Input, Single Output : Multi Inputs, Multi Outputs vii CHƢƠNG GIỚI THIỆU 1.1 Tổng quan hệ máy bay không ngƣời lái UAV phương tiện bay khơng có phi công buồng lái UAV phận cấu thành UAS, hệ thống bao gồm UAV, kiểm soát viên mặt đất hệ thống liên lạc UAV kiểm soát viên Các chuyến bay UAV vận hành với mức độ tự chủ khác điều khiển từ xa người vận hành hay bay tự động máy tính dựa vào hệ thống tự động Các UAV chia làm ba dạng chính: - UAV có nhiều cánh quạt: quadrotor, hexacopter, bicopter … Hình 1.1 Quadrotor - UAV cánh cố định Hình 1.2 UAV cánh cố định - UAV có cấu trúc lai Hình 1.3 UAV có cấu trúc lai Ngồi dạng trên, UAV thiết kế lấy cảm hứng từ sinh học nghiên cứu, phát triển phịng thí nghiệm có nhiều tiềm ứng dụng thực tế Hình 1.4 UAV đập cánh Đặc điểm dạng UAV trên: - UAV có nhiều cánh quạt có khả bay động bay đứng im vị trí cố định khơng gian - UAV cánh cố định có khả bay với vận tốc bay cao sử dụng cánh cố định hệ thống động lực - UAV có cấu trúc lai có hai ưu điểm loại UAV nêu khả bay nhanh khả động, nhiên khả động khơng thể so với UAV có nhiều cánh quạt UAV có ứng dụng vô lớn sống, trải rộng nhiều lĩnh vực Ban đầu tham gia vào nhiệm vụ tốn nguy hiểm cho người ứng dụng quân sự, sau mở rộng nhanh chóng tới thương mại, khoa học, giải trí, nơng nghiệp… Các ứng dụng tác chiến, trinh sát, tình báo, giám sát; hỗ trợ ngành báo chí, truyền thơng; vận chuyển đồ cứu trợ, cứu người; hỗ trợ tìm kiếm cứu nạn; giám sát động vật hoang dã; ứng dụng nông nghiệp; kiểm tra sở hạ tầng, khảo sát cơng trình xây dựng; dịch vụ trắc địa, lập đồ, kiểm soát, phát triển tài nguyên đất đai; giao hàng; chụp ảnh, quay phim giải trí từ khơng; tham gia tạo tác phẩm nghệ thuật Một số UAV ứng dụng chúng: - Ứng dụng dân sự: + Thu thập liệu thời tiết: Aerosonde + Nhiệm vụ viễn thám: Global Observer + Giám sát phát cháy rừng: Patroller + Tìm kiếm cứu nạn, giám sát tuần tra hàng hải: AR5 Life Ray + Tìm kiếm cá biển: Fulmar X + Giao thông (vận chuyển, taxi): SureFly + Quay phim giải trí từ khơng; hỗ trợ ngành báo chí, truyền thơng; tham gia tạo tác phẩm nghệ thuật; dịch vụ trắc địa: Mavic 3, Mini Pro, Air 2S - Ứng dụng quân sự: + Tình báo, giám sát, thu thập mục tiêu trinh sát: Aladin, Anka, Arrow Lite, AR4 Light Ray Evolution, Bat, Bird Eye 400, Black Hornet, Dominator XP, Falco Evo, Firebird, Hermes 90, Hermes 450, Harfang, Hermes 900, Heron 1, Jump 20, Luna X-2000, MQ-8B Fire Scout, Orbiter 1/2/3, P.1HH Hammerhead, RQ-20B Puma AE, Ranger, RQ-4 Global Hawk Block 40, RQ-7 Shadow, RQ-21a Blackjack, ScanEagle, Searcher, Seeker, SD-150 Hero, Shahpar, Skylark I, Sperwer Mk.2, T-20, RQ-16 THawk, Wasp III, Watchkeeper, Zephyr-S + Tình báo, giám sát, thu thập trinh sát mục tiêu biển: AR3 Net Ray, Apid one + Thực nhiệm vụ tác chiến: Aerostar, Apex, Bird Eye 650D, Cabure III, Camcopter S-100, Fury, MQ-1 Predator, MQ-1C Gray Eagle, MQ-9 Reaper, Neuron, Predator C Avenger, Taranis, X-47B + Xác định mối đe dọa di động, cung cấp vị trí mục tiêu cho pháo binh, kiểm soát hỏa lực: KZO, Vulture + Hỗ trợ chiến chống khủng bố: Desert Hawk III Trong UAV trên, quadrotor phương tiện bay khơng người lái có ứng dụng hữu ích nhờ tính động khả bay đứng im vị trí cố định khơng gian Do đó, tác giả lựa chọn quadrotor đối tượng nghiên cứu luận văn, sử dụng để thiết kế mô điều khiển 1.2 Một số phƣơng pháp điều khiển máy bay khơng ngƣời lái Có nhiều phương pháp điều khiển nghiên cứu, phát triển sử dụng cho UAV phụ thuộc vào tính chất, đặc tính đối tượng nhiệm vụ bay khác Một số phương pháp điều khiển nghiên cứu, thử nghiệm thực tế cụ thể sau - Điều khiển PID: Bộ điều khiển PID áp dụng để điều khiển SISO tách kênh trạng thái, vận tốc, vị trí bay lơ lửng với sai lệch 0,2 m [1] Bộ điều khiển PID áp dụng để điều khiển tách kênh trạng thái, vận tốc vị trí Bài thử nghiệm bay theo quỹ đạo từ điểm đến điểm thực để đánh giá hiệu điều khiển [2] Hình 3.7 Tín hiệu điều khiển vị trí sử dụng điều khiển PID b) Điều khiển trạng thái Mơ điều khiển góc trạng thái roll, pitch, yaw quadrotor Kết giá trị đặt giá trị thực tế sau: Hình 3.8 Điều khiển trạng thái sử dụng điều khiển PID Nhận xét: - Góc phi overshoot khoảng %, góc theta overshoot khoảng % góc psi overshoot khoảng % - Giá trị thực tế góc trạng thái phi, theta tiến giá trị đặt sau khoảng giây; giá trị thực tế góc trạng thái psi tiến giá trị đặt sau khoảng 0,2 giây Các góc trạng thái bám tốt giá trị đặt Như vậy, tham số trạng thái đạt mục tiêu điều khiển 31 Hình 3.9 Tín hiệu điều khiển trạng thái sử dụng điều khiển PID 3.4 So sánh kết thiết kế với hai điều khiển a) So sánh điều khiển vị trí Kết so sánh điều khiển vị trí điều khiển học tăng cường DataDriven điều khiển PID Hình 3.10 Hình 3.10 So sánh điều khiển vị trí hai điều khiển Nhận xét: Thời gian đạt giá trị xác lập hai điều khiển tương đương nhau, khoảng s Tuy nhiên, điều khiển học tăng cường Data-Driven cho chất lượng tốt khơng có tượng dao động (x, y) bị overshoot (z) điều khiển PID 32 b) So sánh điều khiển trạng thái Kết so sánh điều khiển trạng thái điều khiển học tăng cường Data-Driven điều khiển PID Hình 3.11 Hình 3.11 So sánh điều khiển trạng thái hai điều khiển Nhận xét: - Đối với điều khiển trạng thái phi theta, điều khiển học tăng cường Data-Driven cho chất lượng điều khiển tốt với thời gian đạt giá trị xác lập ngắn (0,5 s so với s) - Đối với điều khiển trạng thái psi, điều khiển PID cho thời gian đạt giá trị xác lập ngắn so với điều khiển học tăng cường Data-Driven Tuy nhiên, thời gian đạt giá trị xác lập điều khiển học tăng cường Data-Driven nhỏ, khoảng 0,5 s 3.5 Kết luận chƣơng Chương trình bày kết mơ điều khiển vị trí trạng thái quadrotor sử dụng thuật toán học tăng cường Data-Driven Kết thiết kế so sánh với điều khiển PID cho thấy điều khiển học tăng cường DataDriven cho kết tốt, tham số bám tốt giá trị đặt 33 CHƢƠNG KẾT LUẬN 4.1 Kết luận Dựa kết thiết kế mô điều khiển quadrotor vị trí trạng thái, nhìn chung ta thấy điều khiển sử thuật tốn học tăng cường DataDriven cho kết tốt, tham số bám tốt giá trị đặt khoảng thời gian ngắn Kết mô sở ban đầu cho thấy áp dụng thuật tốn vào toán thực tế điều khiển quadrotor 4.2 Hƣớng nghiên cứu, phát triển Kết mô lý tưởng chưa xét đến ảnh hưởng nhiễu Trong tương lai, tác giả tiếp tục bổ xung thêm nhiễu vào mơ hình, nghiên cứu, thiết kế, mơ để hồn thiện tốn điều khiển quadrotor áp dụng cho dạng UAV khác 34 TÀI LIỆU THAM KHẢO [1] D H Shim, H J Kim and S Sastry, Control system design for rotorcraftbased unmanned aerial vehicles using time-domain system identification, IEEE Control Applications, Anchorage, AK (2000), pp 808–813 [2] R W Beard and T W McLain, Small Unmanned Aircraft: Theory and Practice (Princeton University Press, 2012) [3] S Baek, F Bermudez and R Fearing, Flight control for target seeking by 13 gram ornithopter, Intelligent Robots and Systems, San Francisco, CA (2011), pp 286–292 [4] J How, B Bethke, A Frank, D Dale and J Vian, Realtime indoor autonomous vehicle test environment, IEEE Control Syst Mag 28(2) (2008) 51–64 [5] C S Lee, W L Chan, S S Jan and F B Hsiao, A linear-quadratic Gaussian approach for automatic flight control of fixed-wing unmanned air vehicles, Aeronautical J 115(1163) (2011) 29–41 [6] G Cai, B M Chen and T H Lee, Unmanned Rotorcraft Systems (Springer, New York, 2011) [7] F Jin, T Hiroshi and S Shigeru, Development of small unmanned aerial vehicle and flight controller design, AIAA Atmospheric Flight Mechanics, Hilton Head, CA (2007) [8] E N Johnson and S K Kannan, Adaptive trajectory control for autonomous helicopters, J Guid Control Dynam 28(3) (2005)524–538 [9] G Chowdhary, E Johnson, M S Kimbrell, R Chandramohan and A Calise, Flight test results of adaptive controllers in presence of severe structural damage, AIAA Guidance, Navigation, and Control, Toronto, Canada (2010) [10] J M Pflimlin, P Soures and T Hamel, A hierarchical control strategy for the autonomous navigation of a ducted fan flying robot, Robotics and Automation, Orlando, FL (2006), pp 2491–2496 [11] G Cai, B M Chen, X Dong and T H Lee, Design and implementation of a robust and nonlinear flight control system for an unmanned helicopter, J Mechatron 21(5) (2011) 803–820 [12] M Takahashi, G Schulein and M Whalley, Flight control law design and development for an autonomous rotorcraft, Annual Forum of the American Helicopter Society, Montreal, Quebec (2008), pp 1652–1671 [13] H Kim, D Shim and S Sastry, Nonlinear model predictive tracking control for rotorcraft-based unmanned aerial vehicles, American Control, Anchorage, AK (2002), pp 3576–3581 [14] R Garcia and K Valavanis, The implementation of an autonomous helicopter testbed, J Intell Robot Syst 54(1) (2009) 423–454 [15] P Abbeel, A Coates and A Y Ng, Autonomous helicopter aerobatics through apprenticeship learning, Int J Robot Res 29(13) (2010) 1–31 35 [16] F Kendoul, Z Yu and K Nonami, Guidance and nonlinear control system for autonomous flight of mini rotorcraft unmanned aerial vehicles, J Field Robot 27(3) (2010) 311–334 [17] E N Johnson, M A Turbe, A D Wu, S K Kannan and J C Neidhoefer, Flight test results of autonomous fixed-wing UAV transitions to and from stationary hover, AIAA Guidance, Navigation, and Control, Keystone, CO (2006) [18] F Kendoul, Survey of advances in guidance, navigation, and control of unmanned rotorcraft systems, J Field Robot 29(2) (2012) 315–378 [19] Jun Li and Yuntang Li, “Dynamic Analysis and PID Control for a Quadrotor”, International Conference on Mechatronics and Automation, Beijing, China, 2011 [20] Vũ Thị Thúy Nga, Ong Xuân Lộc Trịnh Hải Nam, Học tăng cường Điều khiển tự động với Matlab Simulink, NXB Bách Khoa Hà Nội, 2020 [21] Wanbing Zhao, Hao Liu, “Data-Driven Optinal Formation Control for Quadrotor Team With Unknown Dynamics”, IEEE transactions on cybernetics, 2021 [22] Jiang and Z.-P Jiang, “Computational adaptive optimal control for continuous-time linear systems with completely unknown dynamics,” Automatica, vol 48, no 10, pp 2699–2704, 2012 36 PHỤ LỤC CHƢƠNG TRÌNH MƠ PHỎNG ĐIỀU KHIỂN QUADROTOR A1 Chƣơng trình mơ điều khiển vị trí sử dụng Data-Driven global n m l_1 l_2 T N alpha Q_PNgang R itNum i W2 expl_noise_freq uout n = 12; % Kich thuoc vector bien trang thai m = 3; % Kich thuoc vector bien dieu khien l_1 = 57; % So no-ron mang Critic l_2 = 12; % So no-ron mang Actor T = 0.05; % Chu ky khao sat N = l_1+l_2+300; % So vong lap de thu thap du lieu alpha = 0; % He so suy giam ham mu C_P = [1 0 0 0;0 0 0;0 0 0]; C_PNgang = [C_P (-C_P)]; Q_P = 100*eye(3); Q_PNgang = C_PNgang'*Q_P*C_PNgang; R = eye(3); itNum = 80; % So vong lap de xac dinh vector so expl_noise_freq = (rand(m,100)-.5)*100; % Tan so ngau nhien initialP = [0,0,0,0,0,0, 0.1,0,0.1,0,0.1,0]; % Khoi tao X = [initialP,zeros(1,n^2+l_2^2+m*l_2)]; deltaV = zeros(l_1,N); IntPP = zeros(n^2,N); IntPhiPhi = zeros(l_2^2,N); IntPhiu = zeros(m*l_2,N); % % % % Tham Tham Tham Tham so so so so thu thu thu thu thap thap thap thap du du du du lieu lieu lieu lieu load('InitW_pos.mat'); % Vector so khoi tao c = []; for i = 1:N % Thu thap du lieu he thong [~,X] = ode45(@position_sys,[(i-1)*T,i*T],X(end,:)); deltaV(:,i) = exp(-alpha*T)*sigma([X(end,1:6)X(end,7:12);X(end,7:12)]')-sigma([X(1,1:6)X(1,7:12);X(1,7:12)]'); IntPP(:,i) = X(end,n+1:n+n^2)'-X(1,n+1:n+n^2)'; IntPhiPhi(:,i) = X(end,n+n^2+1:n+n^2+l_2^2)'X(1,n+n^2+1:n+n^2+l_2^2)'; IntPhiu(:,i) = X(end,n+n^2+l_2^2+1:n+n^2+l_2^2+m*l_2)'X(1,n+n^2+l_2^2+1:n+n^2+l_2^2+m*l_2)'; end for it = 1:itNum % Khoi tao so W2 cho u W2 = reshape(W(l_1+1:l_1+m*l_2),[l_2,m]); matu = zeros(m*l_2,l_2^2); for j = 1:m matu((j-1)*l_2+1:j*l_2,:) = kron(eye(l_2),W2(:,j)'); end W2RW2 = W2*R*W2'; H = [deltaV;2*kron(R,eye(l_2))*(IntPhiu-matu*IntPhiPhi)]; 37 Y = -IntPP'*Q_PNgang(:)-IntPhiPhi'*W2RW2(:); W_old = W; W = H'\Y; end W2 = reshape(W(l_1+1:l_1+m*l_2),[l_2,m]); t0=0; Tr=5; Ts=0.05; x0=initialP; len=1; for i=1:(Tr/Ts) % Mo phong kiem chung [time,output] = ode45(@position,[t0,t0+Ts],x0); k=length(time);t0=time(k); x0=output(k,:); u(:,i)=uout;tu(i,1)=(i-1)*Ts; t(len:len+length(time)-1,1) = time; out(len:len+length(time)-1,:) = output; len=length(t)+1; end % -% Ve vi tri va tin hieu dieu khien figure(1); subplot(3,1,1); hold on; plot(t,0.1*ones(1,length(t)),':g','LineWidth',1.5); plot(t,out(:,1),'LineWidth',1.5); title 'Vi tri (Data-Driven)'; grid on; xlabel 'Thoi gian (s)'; ylim([-0.05,0.2]); legend('X_d','X'); subplot(3,1,2); hold on; plot(t,0.1*ones(1,length(t)),':g','LineWidth',1.5); plot(t,out(:,3),'LineWidth',1.5); grid on; ylim([-0.05,0.2]); xlabel 'Thoi gian (s)'; legend('Y_d','Y'); subplot(3,1,3); hold on; plot(t,0.1*ones(1,length(t)),':g','LineWidth',1.5); plot(t,out(:,5),'LineWidth',1.5); grid on; ylim([-0.05,0.2]); xlabel 'Thoi gian (s)'; legend('Z_d','Z'); figure(2) subplot(3,1,1); plot(tu,u(1,:),'LineWidth',1.5); title 'Tin hieu dieu khien vi tri (Data-Driven)'; grid on; xlabel 'Thoi gian (s)'; ylim([-0.5,1]); legend('u-X'); 38 subplot(3,1,2); plot(tu,u(2,:),'LineWidth',1.5); grid on; ylim([-0.5,1]); xlabel 'Thoi gian (s)'; legend('u-Y'); subplot(3,1,3); plot(tu,u(3,:),'LineWidth',1.5); grid on; ylim([10,14]); xlabel 'Thoi gian (s)'; legend('u-Z'); % -function a = position_sys(t,x) % Mo hinh de thu thap du lieu global i T n alpha expl_noise_freq X1 = [x(1:6)-x(7:12);x(7:12)]; X = x(1:n); m = 1.2; g = 9.81; % Khoi luong; Gia toc truong K1 = [12 0 0]; K2 = [0 12 0]; K3 = [0 0 12 1]; u_01 = -K1*(X(1:6) - X(7:12)); u_02 = -K2*(X(1:6) - X(7:12)); u_03 = -K3*(X(1:6) - X(7:12)); u_0 = [u_01;u_02;u_03]; A_P 0 B_P u = = [0 0 0;0 0 0 0;0 0 0;0 0 0 0;0 0 1;0 0 0 0]; = m^-1*1*[0 0;1 0;0 0;0 0;0 0;0 1]; u_0+sum(130*sin(expl_noise_freq*t),2); P_dot = A_P*X(1:6) + B_P*u - [0; 0; 0; 0; 0; g]; Xd_dot = [0 0 0;0 0 0 0;0 0 0;0 0 0 0;0 0 0 1;0 0 0 0]*X(7:12); PhixPhi = exp(-alpha*(t-(i-1)*T))*kron(Phi(X1),Phi(X1)); Phixu = exp(-alpha*(t-(i-1)*T))*kron(u,Phi(X1)); XX = exp(-alpha*(t-(i-1)*T))*kron(X,X); a = [P_dot;Xd_dot;XX;PhixPhi;Phixu]; end function a = position(t,X) % Mo hinh vi tri global W2 uout X1 = [X(1:6)-X(7:12);X(7:12)]; u = W2'*Phi(X1); uout=u; m = 1.2; g = 9.81; % Khoi luong; Gia toc truong A_P = [0 0 0;0 0 0 0;0 0 0;0 0 0 0;0 0 0 1;0 0 0 0]; B_P = m^-1*1*[0 0;1 0;0 0;0 0;0 0;0 1]; 39 Xdot = A_P*X(1:6) + B_P*u - [0; 0; 0; 0; 0; g]; Xd_dot = [0 0 0;0 0 0 0;0 0 0;0 0 0 0;0 0 0 1;0 0 0 0]*X(7:12); a = [Xdot;Xd_dot]; end function a = sigma(x) % Ham kich hoat global l_1 temp = zeros(l_1-6,1); id = 1; for i1 =1:6 for i2 = i1:12 temp(id)=x(i1)*x(i2); id = id+1; end end a = temp; end function a = Phi(x) % Ham kich hoat a = [x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10);x(11);x (12)]; end A2 Chƣơng trình mơ điều khiển góc trạng thái sử dụng Data-Driven global Jx Jy Jz l uout global n m l_1 l_2 T N alpha Q_ThetaNgang R itNum i W2 Jx = 2.353e-3; Jy = 2.353e-3; Jz = 5.262e-2; l = 0.2; n = 12; % Kich thuoc bien trang thai m = 3; % Kich thuoc vector bien dieu khien l_1 = 57; % So no-ron mang Critic l_2 = 41; % So no-ron mang Actor T = 0.05; % Chu ky khao sat N = (l_1+m*l_2)+500; % So vong lap de thu thap du lieu alpha = 0.01; % He so suy giam ham mu C_Theta = [1 0 0 0;0 0 0;0 0 0]; C_ThataNgang = [C_Theta (-C_Theta)]; Q_Theta = 130*eye(3); Q_ThetaNgang = C_ThataNgang'*Q_Theta*C_ThataNgang; R = eye(3); itNum = 80; % So vong lap de xac dinh vector so initialState = [0,0,0,0,0,0, 0.1,0,0.1,0,0.1,0,]; % Khoi tao X = [initialState,zeros(1,n^2+l_2^2+m*l_2)]; deltaV = zeros(l_1,N); % Tham so thu thap du lieu IntStateState = zeros(n^2,N); % Tham so thu thap du lieu IntPhiPhi = zeros(l_2^2,N); % Tham so thu thap du lieu 40 IntPhiu = zeros(m*l_2,N); % Tham so thu thap du lieu load('InitW_alt.mat'); % Vector so khoi tao c = []; for i = 1:N % Thu thap du lieu he thong [~,X] = ode45(@altitude_sys,[(i-1)*T,i*T],X(end,:)); deltaV(:,i) = exp(-alpha*T)*sigma([X(end,1:6)X(end,7:12);X(end,7:12)]')-sigma([X(1,1:6)X(1,7:12);X(1,7:12)]'); IntStateState(:,i) = X(end,n+1:n+n^2)'-X(1,n+1:n+n^2)'; IntPhiPhi(:,i) = X(end,n+n^2+1:n+n^2+l_2^2)'X(1,n+n^2+1:n+n^2+l_2^2)'; IntPhiu(:,i) = X(end,n+n^2+l_2^2+1:n+n^2+l_2^2+m*l_2)'X(1,n+n^2+l_2^2+1:n+n^2+l_2^2+m*l_2)'; end for it = 1:itNum % Khoi tao so W2 cho u W2 = reshape(W(l_1+1:l_1+m*l_2),[l_2,m]); matu = zeros(m*l_2,l_2^2); for j = 1:m matu((j-1)*l_2+1:j*l_2,:) = kron(eye(l_2),W2(:,j)'); end W2RW2 = W2*R*W2'; H = [deltaV;2*kron(R,eye(l_2))*(IntPhiu-matu*IntPhiPhi)]; Y = -IntStateState'*Q_ThetaNgang(:)-IntPhiPhi'*W2RW2(:); W_old = W; W = H'\Y; end W2 = reshape(W(l_1+1:l_1+m*l_2),[l_2,m]); t0=0; Tr=5; Ts=0.05; x0=initialState; len=1; for i=1:(Tr/Ts) % Mo phong kiem chung [time,output] = ode45(@altitude,[t0,t0+Ts],x0); k=length(time);t0=time(k); x0=output(k,:); u(:,i)=uout;tu(i,1)=(i-1)*Ts; t(len:len+length(time)-1,1) = time; out(len:len+length(time)-1,:) = output; len=length(t)+1; end % -% Ve trang thai va tin hieu dieu khien figure(1); subplot(3,1,1); hold on; plot(t,0.1*ones(1,length(t)),':g','LineWidth',1.5); plot(t,out(:,1),'LineWidth',1.5); title 'Trang thai (Data-Driven)'; grid on; xlabel 'Thoi gian (s)'; 41 ylim([-0.1,0.2]); legend('Phi_d','Phi'); subplot(3,1,2); hold on; plot(t,0.1*ones(1,length(t)),':g','LineWidth',1.5); plot(t,out(:,3),'LineWidth',1.5); grid on; xlabel 'Thoi gian (s)'; legend('Theta_d','Theta'); ylim([-0.1,0.2]); subplot(3,1,3); hold on; plot(t,0.1*ones(1,length(t)),':g','LineWidth',1.5); plot(t,out(:,5),'LineWidth',1.5); grid on; xlabel 'Thoi gian (s)'; legend('Psi_d','Psi'); ylim([-0.1,0.2]); figure(2) subplot(3,1,1); plot(tu,u(1,:),'LineWidth',1.5); title 'Tin hieu dieu khien trang thai (Data-Driven)'; grid on; xlabel 'Thoi gian (s)'; ylim([-0.1,0.2]); legend('u-Phi'); subplot(3,1,2); plot(tu,u(2,:),'LineWidth',1.5); grid on; ylim([-0.5,0.2]); xlabel 'Thoi gian (s)'; legend('u-Theta'); subplot(3,1,3); plot(tu,u(3,:),'LineWidth',1.5); grid on; ylim([-0.6,0.2]); xlabel 'Thoi gian (s)'; legend('u-Psi'); % -function a = altitude_sys(t,x) % Mo hinh de thu thap du lieu global i T n alpha Jx Jy Jz l X1 = [x(1:6)-x(7:12);x(7:12)]; X = x(1:n); K1 = [103 1.82 0 0]; K2 = [0 122 1.36 0]; K3 = [0 0 110 3.3]; u_01 = -K1*(X(1:6) - X(7:12)); u_02 = -K2*(X(1:6) - X(7:12)); u_03 = -K3*(X(1:6) - X(7:12)); u_0 = [u_01;u_02;u_03]; 42 F_Theta = [X(2);(Jy-Jz)*(Jx^-1)*X(4)*X(6);X(4);(JzJx)*(Jy^-1)*X(2)*X(6); X(6);(Jx-Jy)*(Jz^-1)*X(2)*X(4)]; b_Theta1 = [0;(l/Jx);0;0;0;0]; b_Theta2 = [0;0;0;l/Jy;0;0]; b_Theta3 = [0;0;0;0;0;(Jz^-1)]; B_Theta = [b_Theta1 b_Theta2 b_Theta3]; u_noise1 = sum(1.48*sin([1 11 13 15 17]*t)); u = u_0 + [0.59*u_noise1;0.76*u_noise1;0.90*u_noise1]; state_dot = F_Theta + B_Theta*u; Xd_dot = [0 0.5 0 0;-0.25 0 0 0;-0.5 0 0 0;0 -0.25 0 0;0 0 0 0;0 0 0 0]*X(7:12); PhixPhi = exp(-alpha*(t-(i-1)*T))*kron(Phi(X1),Phi(X1)); Phixu = exp(-alpha*(t-(i-1)*T))*kron(u,Phi(X1)); XX = exp(-alpha*(t-(i-1)*T))*kron(X,X); a = [state_dot;Xd_dot;XX;PhixPhi;Phixu]; end function a = altitude(t,X) % Mo hinh trang thai global W2 Jx Jy Jz l uout X1 = [X(1:6)-X(7:12);X(7:12)]; u = W2'*Phi(X1); uout=u; F_Theta = [X(2);(Jy-Jz)*(Jx^-1)*X(4)*X(6);X(4);(JzJx)*(Jy^-1)*X(2)*X(6); X(6);(Jx-Jy)*(Jz^-1)*X(2)*X(4)]; b_Theta1 = [0;(l/Jx);0;0;0;0]; b_Theta2 = [0;0;0;(l/Jy);0;0]; b_Theta3 = [0;0;0;0;0;(Jz^-1)]; B_Theta = [b_Theta1 b_Theta2 b_Theta3]; Xdot = F_Theta + B_Theta*u; Xd_dot = [0 0.5 0 0;-0.25 0 0 0;-0.5 0 0 0;0 -0.25 0 0;0 0 0 0;0 0 0 0]*X(7:12); a = [Xdot;Xd_dot]; end function a = sigma(x) % Ham kich hoat global l_1 temp = zeros(l_1-6,1); id = 1; for i1 =1:6 for i2 = i1:12 temp(id)=x(i1)*x(i2); id = id+1; end end a = temp; end function a = Phi(x) % Ham kich hoat 43 a = [x(1)^2;x(1)*x(2);x(1)*x(3);x(1)*x(4);x(1)*x(5);x(1)*x(6);x (1)*x(7);x(1)*x(8);x(1)*x(9);x(1)*x(10); x(1)*x(11);x(1)*x(12);x(2)^2;x(3)^2;x(4)^2;x(5)^2;x(6)^2;x( 7)^2;x(8)^2;x(9)^2; x(10)^2;x(11)^2;x(12)^2;x(1);x(2);x(3);x(4);x(5);x(6);x(7); x(8);x(9);x(10);x(11);x(12);x(1)^3;x(2)^3;x(3)^3;x(4)^3;x(5 )^3;x(6)^3]; end 44 TÓM TẮT LUẬN VĂN THẠC SĨ Đề tài: Điều khiển hệ máy bay không người lái sử dụng học tăng cường Tác giả luận văn: Đoàn Anh Đức Khóa: 2020B Người hướng dẫn: PGS TS Nguyễn Hồi Nam Từ khóa (Keyword): Reinforcement Learning, Data-Drive, UAV, quadrotor Nội dung tóm tắt: a) Lý chọn đề tài Học tăng cường phương pháp tiếp cận tốn điều khiển phương tiện bay khơng người lái theo xu hướng điều khiển thông minh gần Phương pháp khơng u cầu biết mơ hình cụ thể đối tượng, đó, khơng có cơng cụ để nhận dạng đối tượng, ta thiết kế điều khiển cho đối tượng với chất lượng điều khiển tốt b) Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu Luận văn nghiên cứ, thiết kế điều khiển cho phương tiện bay khơng người lái quadrotor sử dụng thuật tốn học tăng cường Data-Driven c) Tóm tắt đọng nội dung đóng góp tác giả Thiết kế điều khiển sử dụng thuật toán học tăng cường Data-Driven cho quadrotor Mô phỏng, đánh giá hiệu thuật toán điều khiển so sánh kết thiết kế với điều khiển PID d) Kết luận Thuật toán học tăng cường sử dụng để điều khiển phương tiện bay không người lái cho kết tốt, làm tiền đề cho việc nghiên cứu, áp dụng thực tế quadrotor dạng phương tiện bay không người lái khác 45 ... Hình 3.7 Tín hiệu điều khiển vị trí sử dụng điều khiển PID 31 Hình 3.8 Điều khiển trạng thái sử dụng điều khiển PID 31 Hình 3.9 Tín hiệu điều khiển trạng thái sử dụng điều khiển PID 32... 3.4 Tín hiệu điều khiển trạng thái sử dụng thuật tốn Data-Driven 28 Hình 3.5 Cấu trúc điều khiển đối tượng sử dụng điều khiển PID 29 Hình 3.6 Điều khiển vị trí sử dụng điều khiển PID ... quan hệ máy bay không người lái số phương pháp điều khiển máy bay không người lái Hiện nay, có nhiều phương pháp điều khiển UAV nghiên cứu, phát triển thử nghiệm thực tế Trong phương pháp đó, điều