Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 116 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
116
Dung lượng
1,34 MB
Nội dung
Lời cảm ơn LỜI CẢM ƠN Xin gửi lời cảm ơn chân thành tới PGS.TS Nguyễn Thị Phương Hà, người gợi mở cho học viên hướng nghiên cứu độc đáo, có tính ứng dụng phù hợp với khả học viên Đồng thời tận tình hướng dẫn, giúp đỡ học viên suốt thời gian thực luận văn Học viên gửi lời cảm ơn tới thành viên gia đình , tới Vợ gái, người tạo điều kiện thời gian, vật chất hết lịng chăm sóc, động viên tinh thần để học viên tập trung nghiên cứu hoàn thành luận văn Học viên xin gửi lời cảm ơn đến tất thầy, cô trực tiếp giảng dạy suốt khóa học, người bạn học viên thuộc lớp cao học tự động hóa khóa 2006 quan tâm liên lạc động viên trong suốt thời gian qua Cuối học viên xin chân thành cảm ơn đồng chí, đồng nghiệp công tác Học viện Hải quân, nhà khách Quân chủng Hải quân thành phố Hồ Chí Minh Trường Cao Đẳng kỹ thuật Vinhempic tạo điều kiện thuận lợi sinh hoạt học tập cho học viên suốt khóa học Học viên thực Phạm Quang Hiếu LUẬN VĂN CAO HỌC Trang i Tóm tắt TĨM TẮT Luận văn đề cập số giải thuật tìm luật điều khiển tối ưu cho hệ lắc ngược kép xe (DIPC) Mô hình tốn học hệ DIPC xây dựng dựa vào phương trình Euler-Lagrange biến đổi hệ phương trình trạng thái cho mục đích thiết kế điều khiển Điều khiển tối ưu hệ DIPC với mục tiêu cực tiểu hàm tiêu chất lượng dạng tồn phương Có nhiều phương pháp thực hiện: Phương pháp điều khiển tồn phương tuyến tính (LQR), Phương pháp phương trình Riccati trạng thái phụ thuộc (SDRE), phương pháp sử dụng giải thuật học mạng nơ-ron (NN) phương pháp kết hợp giải thuật học mạng nơ-ron LQR SDRE Ngơn ngữ lập trình Matlab 6.5 sử dụng để lập trình hàm M mơ động hoạt động hệ DIPC Trên sở phân tích so sánh giá trị trung bình hàm chi phí phương pháp, cho thấy ưu vượt trội phương pháp SDRE thiết kế điều khiển ABSTRACT In this dissertation presents a number of algorithms for optimal control of a double inverted pendulum on a cart (DIPC) Mathematical model of DIPC is based on Euler-Lagrange equation and transformed into a system of state equations for control design purposes Optimal control problem of DIPC desires minimizing of a quadratic cost function Several approaches are presented: Linear Quadratic Regulator (LQR), State-dependent Riccati Equation (SDRE), Neural Network learning control (NN) and combinative methods of the NN with LQR or SDRE Programming languge of Matlab 6.5 is used to program M function for simulation results The potential advantage of the SDRE in control design is demostrated by comparision of simulation results LUẬN VĂN CAO HỌC Trang ii Mục lục MỤC LỤC Chương 1: TỔNG QUAN .1 1.1 Đặt vấn đề nghiên cứu 1.2 Giới thiệu luận văn 1.2.1 Phát biểu toán .2 1.2.2 Nhiệm vụ luận văn .3 1.2.3 Bố cục luận văn Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Điều khiển tối ưu .6 2.1.1 Khái niệm điều khiển tối ưu 2.1.2 Các toán điều khiển tối ưu .8 2.1.2.1 Bài toán tối ưu hóa khơng có điều kiện ràng buộc 2.1.2.2 Bài tốn tối ưu hóa có điều kiện ràng buộc .8 2.1.3 Điều khiển tối ưu hệ thống rời rạc 10 2.1.4 Điều khiển tối ưu hệ thống liên tục .12 2.1.5 Điều khiển tối ưu hệ tuyến tính với phiếm hàm dạng tồn phương 14 2.1.5.1 Hệ tuyến tính liên tục .14 2.1.5.2 Hệ tuyến tính rời rạc 17 2.2 Mạng nơ ron nhân tạo 19 2.2.1 Cấu trúc nơ-ron sinh học 20 2.2.2 Mô hình tốn mạng nơ ron nhân tạo 21 2.2.3 Mạng nơ-ron lớp .22 2.2.4 Mạng nơ-ron nhiều lớp 23 2.2.5 Mạng hồi quy 27 2.2.6 Mạng hàm sở xuyên tâm 29 2.2.7 Luật học Delta-Bar-Delta .29 2.3 Kết luận 30 LUẬN VĂN CAO HỌC Trang iii Mục lục Chương 3: MƠ HÌNH CON LẮC NGƯỢC KÉP TRÊN XE .31 3.1 Mơ hình vật lý 31 3.2 Mơ hình toán học 32 3.3 Phương trình trạng thái hệ DIPC 35 3.4 Kết luận: 36 Chương 4: ĐIỀU KHIỂN TỐI ƯU HỆ DIPC 37 4.1 Bài toán điều khiển 37 4.2 Phương pháp LQR 38 4.2.1 Cách giải toán 38 4.2.2 Kết mô 40 4.3 Phương pháp SDRE 43 4.3.1 Giải thuật phương pháp SDRE 43 4.3.2 Kết mô 46 4.4 Phương pháp sử dụng giải thuật học mạng nơ ron 50 4.4.1 Cách giải toán 50 4.4.2 Giải thuật học điều khiển .58 4.4.2.1 Các bước thực giải thuật .58 4.4.2.2 Sơ đồ giải thuật .60 4.4.3 Kết mô 62 4.5 Phương pháp kết hợp giải thuật học mạng nơ-ron LQR 65 4.5.1 Cách giải toán 65 4.5.2 Giải thuật phương pháp NN+LQR 67 4.5.2.1 Các bước thực giải thuật .67 4.5.2.2.Sơ đồ giải thuật .70 4.5.3 Kết mô 71 4.6 Phương pháp kết hợp giải thuật học mạng nơ-ron SDRE 73 4.6.1 Cách giải toán 73 4.6.2 Giải thuật theo phương pháp kết hợp NN SDRE 74 4.6.2.1 Các bước thực giải thuật .74 LUẬN VĂN CAO HỌC Trang iv Mục lục 4.6.2.2.Sơ đồ giải thuật .77 4.6.3 Kết mô 79 Chương 5: KẾT LUẬN 82 5.1 Nội dung thực 82 5.2 Kết đạt 90 5.3 Hạn chế luận văn 90 5.4 Hướng phát triển đề tài 90 TÀI LIỆU THAM KHẢO VÀ TRÍCH DẪN 92 PHỤ LỤC 94 LUẬN VĂN CAO HỌC Trang iv Mục lục hình vẽ MỤC LỤC HÌNH MINH HỌA Hình 2.1: Cấu trúc nơ-ron sinh học 20 Hình 2.2: Cấu trúc nơ-ron nhân tạo 21 Hình 2.3 Mạng nơ-ron lớp 22 Hình 2.4: Cấu trúc mạng nơ-ron ba lớp 24 Hình 2.5 Biểu diễn hàm lượng sai số chiều 26 Hình 2.6: Mạng hồi quy toàn phần 27 Hình 2.7: Mạng hồi quy bán phần Jordan .28 Hình 2.8: Mạng hồi quy bán phần Elman 28 Hình 2.9: Cấu trúc mạng RBF 29 Hình 3.1: Mơ hình hệ lắc ngược kép xe 31 Hình 4.1:Sơ đồ khối điều khiển tối ưu theo phương pháp LQR .39 Hình 4.2 Kết mô phương pháp LQR với θ1=100 θ2= -100 40 Hình 4.3 Kết mơ phương pháp LQR với θ1=150 θ2= -150 41 Hình 4.4 Kết mơ phương pháp LQR với θ1=200 θ2= 200 41 Hình 4.5: Kết mô phương pháp LQR với θ1=350 θ2=350 42 Hình 4.6: Sơ đồ khối minh họa điều khiển theo phương pháp SDRE 44 Hình 4.7: Kết so sánh phương pháp SDRE LQR với θ1=50; θ2 =-50 .46 Hình 4.8: Kết so sánh phương pháp SDRE LQR với θ1=100; θ2 =-100 47 Hình 4.9: Kết so sánh phương pháp SDRE LQR với θ1=180; θ2 =-180 47 Hình 4.10: Kết so sánh phương pháp SDRE LQR với θ1=320; θ2 =320 48 Hình 4.11: Kết mô phương pháp SDRE với θ1=280; θ2 =-280 48 Hình 4.12: Kết mơ phương pháp SDRE với θ1=400; θ2 =400 49 Hình 4.13: Mạng nơ-ron truyền thẳng lớp .51 Hình 4.14: Sơ đồ khối điều điều khiển dùng mạng nơ-ron .54 Hình 4.15: Sơ đồ khối cập nhật tính vector λk phương pháp NN .55 Hình 4.16: Sơ đồ thực giải thuật theo phương pháp NN 61 Hình 4.17:Giao diện mơ điều khiển hệ DIPC theo phương pháp NN 62 LUẬN VĂN CAO HỌC Trang vi Mục lục hình vẽ Hình 4.18:Giao diện dùng đặt thơng số ban đầu .62 Hình 4.19:Kết mơ động điều khiển hệ DIPC 63 Hình 4.20: Kết mơ phương pháp NN với θ1=100; θ2=-100 .63 Hình 4.21: Kết mô phương pháp NN với θ1=120; θ2=-120 .64 Hình 4.22: Kết mơ phương pháp NN với θ1=320; θ2=320 64 Hình 4.23: Sơ đồ khối điều điều khiển theo phương pháp NN+LQR 66 Hình 4.24: Sơ đồ khối cập nhật tính vector λk phương pháp NN+LQR 67 Hình 4.25: Sơ đồ thực giải thuật theo phương pháp NN+LQR 70 Hình 4.26: Kết mơ phương pháp NN+LQR với θ1=100; θ2=-100 .71 Hình 4.27: Kết mô phương pháp NN+LQR với θ1=120; θ2=-120 .71 Hình 4.28: Kết mơ phương pháp NN+LQR với θ1=320; θ2=320 72 Hình 4.29: Sơ đồ khối điều điều khiển dùng mạng nơ-ron kết hợp với SDRE 73 Hình 4.30: Sơ đồ khối cập nhật tính vector λk phương pháp NN+SDRE 74 Hình 4.31: Sơ đồ thực giải thuật theo phương pháp NN+SDRE 78 Hình 4.32: Kết mơ phương pháp NN+SDRE với θ1=100; θ2= -100 79 Hình 4.33: Kết mơ phương pháp NN+SDRE với θ1=120; θ2= -120 79 Hình 4.34: Kết mơ phương pháp NN+SDRE với θ1=250; θ2=250 80 Hình 4.35: Kết mô phương pháp NN+SDRE với θ1=320; θ2= 320 80 Hình 5.1: Đáp ứng phương pháp với góc lệch ban đầu θ1 =100 ; θ = -100 85 Hình 5.2: Đáp ứng phương pháp với góc lệch ban đầu θ1 = 15o ; θ = 15o .86 Hình 5.3: Đáp ứng phương pháp với góc lệch ban đầu θ1 = 12o ; θ = −12o 87 Hình 5.4: Đáp ứng phương pháp với góc lệch ban đầu θ1 = 30o θ = 30o 88 LUẬN VĂN CAO HỌC Trang vii Chữ viết tắt CHỮ VIẾT TẮT Back Propagation Through Time : BPTT Double Inverted Pendulum on a Cart: DIPC Linear Quadratic Regulator : LQR Neural Network : NN State-Dependent Riccati Equation : SDRE State-dependent coefficient : SDC LUẬN VĂN CAO HỌC Trang viii -1- Chương Chương TỔNG QUAN 1.1 Đặt vấn đề nghiên cứu Hệ lắc ngược mơ hình có nhiều ứng dụng thiết bị máy móc kỹ thuật, đặc biệt lĩnh vực hàng không sử dụng phổ biến phịng thí nghiệm kỹ thuật điều khiển nhiều trường đại học giới Hệ lắc ngược có nhiều dạng: hệ lắc ngược đơn, hệ lắc ngược kép, hệ lắc ngược xoay… Là mơ hình có tính chất phi tuyến bất định, nên hệ lắc ngược coi công cụ hữu hiệu để thực khảo sát tốn tìm luật điều khiển cho hệ thống tuyến tính phi tuyến, đồng thời mơ hình phù hợp phục vụ cho việc nghiên cứu thiết kế điều khiển hệ thống máy móc kỹ thuật thực tế Ví dụ, quân ứng dụng phân tích thiết kế điều khiển bệ phóng tên lửa, bệ pháo xe tự hành [11], y học điều khiển giữ thăng cho xe hỗ trợ người tàn tật di chuyển, điều khiển thiết bị hỗ trợ lấy sách giá cao thư viện lớn… Đã có nhiều cơng trình nghiên cứu điều khiển mơ hình này, điều khiển hệ lắc ngược hướng nghiên cứu hấp dẫn nhà khoa học điều khiển nhiều năm gần Điều khiển hệ lắc ngược toán phức tạp, bao gồm hai vấn đề: Điều khiển dựng đứng lắc từ vị trí bên lên vị trí thẳng đứng bên (Swingup control) điều khiển lắc giữ thăng vị trí thẳng đứng bên (Stability control) [1, 3, 15] Có nhiều phương pháp điều khiển mơ hình lắc ngược nghiên cứu: Điều khiển mờ với hai điều khiển mờ gồm điều khiển dựng đứng (swingup control) điều khiển ổn định (stability control) mơ hình thực hệ lắc ngược [15,19]; Điều khiển phi tuyến cho mơ hình mờ hệ lắc ngược kép [8]; Bộ điều khiển suy diễn nơ ron mờ thích nghi (ANFIS) với mơ hình mờ Takagi Sugeno để ổn định thăng lắc ngược đơn vị trí thẳng đứng (Stability control) [3]; Điều khiển thích nghi dựa nguyên lý Novel tính tốn mềm (Adaptive Control Base on Novel Principles of Soft Computing) [10]; Điều khiển bền vững lắc ngược đơn [5] LUẬN VĂN CAO HỌC -2- Chương Các phương pháp điều khiển đề cập cho kết điều khiển tốt hệ lắc ngược điều kiện không yêu cầu cực tiểu hàm tiêu chất lượng (Perfomance Index PI) Trong thực tế chất lượng điều khiển đối tượng cần phải thỏa mãn tiêu đặt như: swingup lắc với thời gian tối thiểu, ổn định lắc khoảng thời gian ngắn nhất, tiêu hao lượng…Trường hợp yêu cầu điều khiển ổn định lắc ngược với mong muốn cực tiểu hàm tiêu chất lượng đó, giải pháp điều khiển tối ưu với điều khiển LQR dùng phổ biến cho chất lượng điều khiển tốt, đồng thời đơn giản thiết kế điều khiển [4, 14, 18, 22] Tuy nhiên, điều khiển LQR áp dụng điều khiển cho mơ hình tuyến tính Hệ lắc ngược kép mơ hình có tính chất phi tuyến cao, kết điều khiển LQR không đáp ứng yêu cầu mong muốn Đã có nhiều báo khoa học đề cập đến giải pháp điều khiển tối ưu mô hình phi tuyến như: Phương pháp phương trình Riccati biến trạng thái phụ thuộc (SDRE) [1, 2], phương pháp sử dụng thuật toán lan truyền ngược qua thời gian (BPTT) để huấn luyện mạng nơ-ron cực tiểu hàm chi phí (Cost Function) điều khiển ổn định lắc ngược đơn [12] Xuất phát từ yêu cầu thực tiễn, thiết bị mong muốn làm việc trạng thái tối ưu theo tiêu chuẩn Luận văn nghiên cứu số giải thuật điều khiển ổn định tối ưu hệ lắc ngược kép Mục đích luận văn: Ứng dụng số giải thuật trình bày để giải tốn điều khiển ổn định tối ưu cho hệ lắc ngược kép xe (DIPC), đối tượng có nhiều ứng dụng lĩnh vực mà tác giả công tác Khẳng định ưu vượt trội phương pháp ứng dụng điều khiển mơ hình qua đánh giá kết mô phương pháp 1.2 Giới thiệu luận văn 1.2.1 Phát biểu toán Tìm luật điều khiển tối ưu hàm tiêu chất lượng (Performance Index PI) dạng tồn phương cho mơ hình lắc ngược kép xe (DIPC) với thông số LUẬN VĂN CAO HỌC -94- Phụ lục PHỤ LỤC Phụ lục 1: Các giao diện chương trình điều khiển tối ưu hệ lắc ngược kép Hình 1: Giao diện Hình 2, 3, 4, 5, Hình 2: Giao diện điều khiển LQR LUẬN VĂN CAO HỌC -95- Hình 3: Giao diện điều khiển SDRE Hình 4: Giao diện điều khiển NN LUẬN VĂN CAO HỌC Phụ lục -96- Phụ lục Hình 5: Giao diện điều khiển NN+LQR Hình 6: Giao diện điều khiển NN+SDRE Hình Hình Hình LUẬN VĂN CAO HỌC -97- Hình 7: Giao diện đặt thơng số mơ Hình 8: Giao diện mô động điều khiển LUẬN VĂN CAO HỌC Phụ lục -98- Phụ lục Hình 9: Giao diện kết sau mô Phụ lục 2: Hàm dbroom_model.m trả ma trận D,C,G thông số đặt phương trình 3.13 function [D, C, G, d] = dbroom_model(x, MODEL) global XENUM; l1 = MODEL.L1; % thơng số mơ hình hệ lắc ngược kép l2 = MODEL.L2; m0 = MODEL.m0; m1 = MODEL.m1; m2 = MODEL.m2; g = 9.81; q0 = x(XENUM.theta0); % Đặt biến trạng thái q1 = x(XENUM.theta1); q2 = x(XENUM.theta2); q0dot = x(XENUM.dtheta0); LUẬN VĂN CAO HỌC -99- q1dot = x(XENUM.dtheta1); q2dot = x(XENUM.dtheta2); D = zeros(3, 3); C = zeros(3, 3); G = zeros(3, 1); d = zeros(8, 1); d(1) = m0 + m1 + m2; d(2) = (m1/2 + m2) * l1; d(3) = m2 * l2 / 2; d(4) = (m1/3 + m2) * l1^2; d(5) = m2 * l1 * l2 / 2; d(6) = m2 * l2^2 / 3; d(7) = (m1/2 + m2) * l1 * g; d(8) = m2 * l2 * g / 2; % -các phần tử ma trận D, C, G % D(1, 1) = d(1); D(1, 2) = d(2) * cos(q1); D(1, 3) = d(3) * cos(q2); D(2, 1) = D(1, 2); D(2, 2) = d(4); D(2, 3) = d(5) * cos(q1-q2); D(3, 1) = D(1, 3); D(3, 2) = D(2, 3); D(3, 3) = d(6); C(1, 2) = -d(2) * q1dot * sin(q2); C(1, 3) = -d(3) * q2dot * sin(q2); C(2, 3) = d(5) * q2dot * sin(q1-q2); C(3, 2) = -d(5) * q1dot * sin(q1-q2); G(2) = -d(7) * sin(q1); G(3) = -d(8) * sin(q2); LUẬN VĂN CAO HỌC Phụ lục -100- Phụ lục Phụ lục 3: Hàm dbroom_sim.m mô hệ lắc ngược kép theo phương trình động học 3.13 function x1 = dbroom_sim(x0, u, MODEL, dt) global XENUM; x1 = zeros(6, 1); q0 = x0(XENUM.theta0); % Đặt biến trạng thái q1 = x0(XENUM.theta1); q2 = x0(XENUM.theta2); q0dot = x0(XENUM.dtheta0); q1dot = x0(XENUM.dtheta1); q2dot = x0(XENUM.dtheta2); [D, C, G] = dbroom_model(x0, MODEL); % Trả ma trận D,C,G G(1) = G(1) - u; qDdot = -D \ (C * [q0dot; q1dot; q2dot] + G); q0Ddot = qDdot(1); q1Ddot = qDdot(2); q2Ddot = qDdot(3); % ===========Trạng thái mới==========% x1(XENUM.theta0) = q0 + dt * q0dot; x1(XENUM.theta1) = q1 + dt * q1dot; x1(XENUM.theta2) = q2 + dt * q2dot; x1(XENUM.dtheta0) = q0dot + dt * q0Ddot; x1(XENUM.dtheta1) = q1dot + dt * q1Ddot; x1(XENUM.dtheta2) = q2dot + dt * q2Ddot; if abs(x1(XENUM.theta1)) > pi/2 x1(XENUM.theta1) = sign(x1(XENUM.theta1)) * pi/2; end LUẬN VĂN CAO HỌC -101- Phụ lục Phụ lục 4: Hàm ffnet.m trả giá trị đầu mạng nơ-ron function OUT = ffnet(W1, W2, B1, B2, IN) HidOut = tanh(W1 * IN + B1); OUT = W2 * HidOut + B2; Phụ lục 5: Hàm dbroom_jac.m trả ma trận jacobian df/dx df/du mơ hình lắc ngược kép x = f ( x, u ) function [Dfxd, Dfud] = dbroom_jac(x, u, MODEL) global SIM XENUM; Dfx = zeros(6, 6); Dfu = zeros(6, 1); x2 = x(XENUM.dtheta0: XENUM.dtheta2); q1 = x(XENUM.theta1); q2 = x(XENUM.theta2); q1dot = x(XENUM.dtheta1); q2dot = x(XENUM.dtheta2); [D, C, G, d] = dbroom_model(x, MODEL); dDdq1 = zeros(3, 3); dDdq2 = zeros(3, 3); dCdq1 = zeros(3, 3); dCdq2 = zeros(3, 3); dGdq1 = zeros(3, 1); dGdq2 = zeros(3, 1); dDdq1(1, 2) = -d(2) * sin(q1); dDdq1(2, 3) = -d(5) * sin(q1-q2); dDdq1(2, 1) = dDdq1(1, 2); dDdq1(3, 2) = dDdq1(2, 3); dDdq2(1, 3) = -d(3) * sin(q2); LUẬN VĂN CAO HỌC -102- Phụ lục dDdq2(2, 3) = d(5) * sin(q1-q2); dDdq2(3, 1) = dDdq1(1, 3); dDdq2(3, 2) = dDdq1(2, 3); dCdq1(1, 2) = -d(2) * cos(q1) * q1dot; dCdq1(2, 3) = d(5) * cos(q1-q2) * q2dot; dCdq1(3, 2) = -d(5) * cos(q1-q2) * q1dot; dCdq2(1, 3) = -d(3) * cos(q2) * q2dot; dCdq2(2, 3) = -d(5) * cos(q1-q2) * q2dot; dCdq2(3, 2) = d(5) * cos(q1-q2) * q1dot; dGdq1(2) = -d(7) * cos(q1); dGdq2(3) = -d(8) * cos(q2); Dinv = inv(D); % ==========tính ma trận jacobian theo cơng thức 4.51============% Dfx(1:3, 4:6) = eye(3); % công thức 4.51 Dfx(4:6, 4:6) = -2 * Dinv * C; Dfx(4:6, 2) = -Dinv * (dCdq1*x2 + dGdq1 - dDdq1 * Dinv * (C*x2 + G - [u; 0; 0])); Dfx(4:6, 3) = -Dinv * (dCdq2*x2 + dGdq2 - dDdq2 * Dinv * (C*x2 + G - [u; 0; 0])); Dfu(4:6) = Dinv(1, :); % công thức 4.52 [Dfxd, Dfud] = c2d(Dfx, Dfu, SIM.dt); % Chuyển từ hệ liên tục sang hệ rời rạc Phụ lục 6: Hàm nnjacob.m lan truyền ngược cập nhật sai số function [dW1, dW2, dB1, dB2, dIN] = nnjacob(W1, W2, B1, B2, IN, e); a1 = tanh(W1 * IN + B1); % lan truyền thuận d2 = e; d1 = (W2' * d2) * (ones(size(a1)) - a1 * a1); LUẬN VĂN CAO HỌC -103- Phụ lục %========tính gradient hàm sai số =========% dIN = d1' * W1; dW1 = d1 * IN'; dB1 = d1; dW2 = d2 * a1'; dB2 = d2; Phụ lục 7: Hàm adaptweight.m hiệu chỉnh thích nghi tốc độ học mạng theo luật delta-bar-delta function [W1, W2, B1, B2, lrw1, lrw2, lrb1, lrb2] = adaptweights(ddW1, ddW2, ddB1, ddB2, ddW1old, ddW2old, ddB1old, ddB2old, W1, W2, B1, B2, lrw1, lrw2, lrb1, lrb2, epoch) global NN SIM; MaxW1 = max(abs(ddW1(:))); MaxW2 = max(abs(ddW2(:))); MaxB1 = max(abs(ddB1(:))); MaxB2 = max(abs(ddB2(:))); if MaxW1 == | MaxW2 == | MaxB1 == | MaxB2 == if ~SIM.quiet disp('Weights are not updated: dW1, dW2, dB1, or dB2 returned by bptt.m are zero'); end return; end if NN.adaptivelearn % hiệu chỉnh thích nghi tốc độ học W1 = W1 - lrw1 * ddW1 / MaxW1; % Cập nhật trọng số kết nối mạng W2 = W2 - lrw2 * ddW2 / MaxW2; B1 = B1 - lrb1 * ddB1 / MaxB1; B2 = B2 - lrb2 * ddB2 / MaxB2; LUẬN VĂN CAO HỌC -104- w1x = sign(ddW1old * ddW1); Phụ lục % Hàm dấu w2x = sign(ddW2old * ddW2); b1x = sign(ddB1old * ddB1); b2x = sign(ddB2old * ddB2); %======= tính tốn tốc độ học theo luật delta-bar-delta=======% lrw1 = (NN.im * (w1x > 0) + NN.dm * (w1x < 0)) * lrw1; lrw2 = (NN.im * (w2x > 0) + NN.dm * (w2x < 0)) * lrw2; lrb1 = (NN.im * (b1x > 0) + NN.dm * (b1x < 0)) * lrb1; lrb2 = (NN.im * (b2x > 0) + NN.dm * (b2x < 0)) * lrb2; else %=====Cập nhật trọng số kết nối theo phương pháp Gradient descent=====% MaxWW = max([MaxW1 MaxW2 MaxB1 MaxB2]); mu1 = NN.mu * 0.97^epoch; W1 = W1 - mu1 * ddW1 / MaxWW; W2 = W2 - mu1 * ddW2 / MaxWW; B1 = B1 - mu1 * ddB1 / MaxWW; B2 = B2 - mu1 * ddB2 / MaxWW; End Phụ lục 8: Hàm bptt.m lan truyền ngược qua thời gian cực tiểu hàm chi phí function [ddW1, ddW2, ddB1, ddB2] = bptt(X, U, MODEL, W1, W2, B1, B2, Umax, Xmax); global FLAG XENUM NNENUM SIM UPARAM NN tick RIC LQR; ddW1 = zeros(size(W1)); ddW2 = zeros(size(W2)); ddB1 = zeros(size(B1)); ddB2 = zeros(size(B2)); nn_input = zeros(NNENUM.dim, 1); imax = size(X, 2); LUẬN VĂN CAO HỌC -105- Phụ lục if FLAG.crash imax = round(0.75 * imax); end if UPARAM.doV % Trạng thái tối ưu cuối lambda = RIC * X(:, imax); else lambda = zeros(size(X,1), 1); end for kk = (imax-1) : -1 : % Cập nhật ngược theo thơi gian x = X(:, kk); u = U(:, kk); % -Ma trận jacobian mơ hình [dFx, dFu] = dbroom_jac(x, u, MODEL); % Ma trận jacobian mạng nơ-ron -nn_input(1:XENUM.dim) = x; nn_input(NNENUM.sin_theta1) = sin(x(XENUM.theta1)); nn_input(NNENUM.sin_theta2) = sin(x(XENUM.theta2)); nn_input(NNENUM.cos_theta1) = cos(x(XENUM.theta1)); nn_input(NNENUM.cos_theta2) = cos(x(XENUM.theta2)); NNinmax = [Xmax; ones(4, 1)]; nn_input = nn_input * NN.inmask; if NN.normal nn_input = nn_input / NNinmax; end dun = dFu' * lambda + UPARAM.R * u; if NN.normal dun = dun * Umax; end [dW1, dW2, dB1, dB2, dXn] = nnjacob(W1, W2, B1, B2, nn_input, dun); LUẬN VĂN CAO HỌC -106- Phụ lục dXn = dXn' * NN.inmask; if NN.normal dXn = dXn / NNinmax; end % Thành phần trạng thái hàm đầu vào mạng dXnn1 = dXn(1: XENUM.dim); dXnn2 = dXn(XENUM.dim+1: NNENUM.dim); % Jacobian hàm lượng giác trạng thái đầu vào mạng nơ-ron dtrig_x = zeros(4, length(x)); dtrig_x(1, XENUM.theta1) = cos(x(XENUM.theta1)); dtrig_x(2, XENUM.theta2) = cos(x(XENUM.theta2)); dtrig_x(3, XENUM.theta1) = -sin(x(XENUM.theta1)); dtrig_x(4, XENUM.theta2) = -sin(x(XENUM.theta2)); % Tính nhân tử lagrange % lambda = dFx'*lambda + 2*UPARAM.Q*x + dXnn1 + dtrig_x'*dXnn2; % Tính Gradient hàm chi phí theo trọng số kết nối mạng nơ-ron ddW1 = ddW1 + dW1; % Theo công thức (4.54) ddB1 = ddB1 + dB1; % Theo công thức (4.55) ddW2 = ddW2 + dW2; % Theo công thức (4.56) ddB2 = ddB2 + dB2; % Theo công thức (4.57) end Phụ lục 8: Hàm sdform.m trả ma trận hệ thống phương pháp SDRE function [A, B] = sdform(x, MODEL) global XENUM; [D, C, G, d] = dbroom_model(x, MODEL); Gsd = zeros(3, 3); if x(2) ~= Gsd(2, 2) = G(2) / x(XENUM.theta1); else LUẬN VĂN CAO HỌC -107- Gsd(2, 2) = -d(7); end if x(2) ~= Gsd(3, 3) = G(3) / x(XENUM.theta2); else Gsd(3, 3) = -d(8); end Dinv = inv(D); C(1, 1) = C(1, 1); A = zeros(6, 6); A(1:3, 4:6) = eye(3); A(4:6, 1:3) = -Dinv * Gsd; A(4:6, 4:6) = -Dinv * C; B = zeros(6, 1); B(4:6) = Dinv(:, 1); LUẬN VĂN CAO HỌC Phụ lục Lý lịch trích ngang LÝ LỊCH TRÍCH NGANG Họ tên: PHẠM QUANG HIẾU Giới tính : Nam Ngày sinh: 14 – 10 – 1973 Nơi sinh : Xã Vĩnh Tân, Huyện Vĩnh Lộc, Tỉnh Thanh Hóa Địa liên lạc: 23E – Đường Thái Nguyên – TP.Nha Trang - Tỉnh Khánh Hòa Địa e-mail : hieu.phamquang@gmail.com QUÁ TRÌNH ĐÀO TẠO 9/1994 – 9/1999 : Học viên ngành Điện-Điện tử, chuyên ngành Tên lửa Hải quân, Khoa Vũ khí Hải quân, Học viện Hải quân Luận văn tốt nghiệp: “ Khai thác sử dụng Thiết bị tự dẫn nhiệt tên lửa hành trình P-22 ” Điểm bảo vệ: 8.5 Tổng điểm tích lũy: 8.0 9/2006 – : Học viên cao học ngành Tự động hóa, khoa Điện-Điện tử, Trường Đại học Bách khoa Thành Phố Hồ Chí Minh, hệ quy Q TRÌNH CƠNG TÁC 3/1993 - 11/1993 : Nhập ngũ huấn luyện lữ đồn 147 Hải qn 11/1993 – 9/1994: Cơng tác công ty 128 Hải quân 9/1994 -9/1999 : Học viên Học viện Hải quân 9/1999 – Nay : Giảng viên khoa Tên lửa - Pháo tàu, Học viện Hải quân ... 2.1.2.2 Bài tốn tối ưu hóa có điều kiện ràng buộc .8 2.1.3 Điều khiển tối ưu hệ thống rời rạc 10 2.1.4 Điều khiển tối ưu hệ thống liên tục .12 2.1.5 Điều khiển tối ưu hệ tuyến tính... văn Trình bày tốn điều khiển tối ưu hệ lắc ngược kép xe (DIPC), giải thuật tìm luật điều khiển theo phương pháp kết mô phương pháp: + Giải thuật điều khiển tối ưu hệ lắc ngược kép xe với mơ hình... khiển tối ưu hệ lắc ngược kép xe (DIPC) với mơ hình tuyến tính: ¾ Phương pháp điều khiển tuyến tính hóa dạng toàn phương (LQR) Nghiên cứu giải thuật giải toán điều khiển tối ưu hệ lắc ngược kép