Ứng dụng mạng nơ ron điều khiển cánh tay máy

63 121 0
Ứng dụng mạng nơ   ron điều khiển cánh tay máy

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

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

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP NGUYỄN XUÂN QUANG ỨNG DỤNG MẠNG -RON ĐIỀU KHIỂN CÁNH TAY MÁY LUẬN VĂN THẠC SĨ KỸ THUẬT Chuyên ngành: Kỹ thuật điều khiển Tự động hóa Thái Nguyên - 2014 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP ***** NGUYỄN XUÂN QUANG ĐỀ TÀI ỨNG DỤNG MẠNG RON ĐIỀU KHIỂN CÁNH TAY MÁY Chuyên ngành: Kỹ thuật điều khiển Tự động hóa Mã số: 6052 0216 LUẬN VĂN THẠC SĨ KỸ THUẬT PHÒNG QUẢN LÝ ĐT SAU ĐẠI HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC Thái Nguyên - 2013 PHẦN MỞ ĐẦU Tổng quan phương pháp điều khiển nơ-ron Mạng nơ-ron nhân tạo (Artificial Neural Networks) xây dựng dựa hiểu biết não người, giúp ta đưa phương pháp lĩnh vực tiếp cận hệ thống thông tin Mạng nơ-ron nhân tạo dùng để giải tốn nhận dạng mẫu (Recognition), tối ưu, nhận dạng (Identification) điều khiển cho đối trường hợp ta mơ hình tốn biết thơng tin vào đối tượng Từ năm 1943, Mc Culloch Pitts đưa số liên kết mạng nơ-ron Những năm sau có nhiều cơng trình nghiên cứu đề xuất phát triển cấu trúc, luật học cho nhiều loại mạng nơ-ron truyền thẳng hồi quy có tính hiệu Trong công nghiệp chế biến, lắp ráp loại rô bốt khác nhau, cánh tay máy sử dụng nhiều Hiện có nhiều phương pháp điều khiển khác áp dụng để điều khiển cánh tay máy Nhưng việc áp dụng mạng nơ-ron vào điều khiển hệ thống hạn chế Với mạng nơ-ron hồi qui thông thường hay gặp phải vấn đề tối ưu cục bộ, tốc độ huấn luyện mạng chậm, khả thích nghi Để kiểm tra tính khả thi mạng nơ-ron nhận dạng điều khiển cánh tay máy, thiết kế chế tạo thử nghiệm cánh tay máy bậc tự thử nghiệm thuật toán điều khiển thời gian thực Song song với phương pháp điều khiển mạng nơ-ron có phương pháp điều khiển khác có tính hiệu cao phương pháp điều khiển kinh điển PID (Proportional Integral Derivative), phương pháp điều khiển thích nghi bền vững Điều khiển bám ổn định tốc độ động cơ, cấu chấp hành nhiệm vụ hàng đầu đặt cho toán điều khiển hệ thống Để thực tốn điều khiển ta cần xây dựng mơ hình tốn mơ tả tính chất động lực học với đầy đủ yếu tố kết cấu khí, vật liệu Từ mơ hình tốn cụ thể phân tích lựa chọn phương pháp điều khiển thích hợp Nhìn chung, nhiệm vụ điều khiển bám ổn định hay quỹ đạo góc chuyển động toán phức tạp Mục tiêu nghiên cứu Ứng dụng mạng nơ-ron nhận dạng điều khiển cánh tay máy bậc tự Thiết kế chế tạo thử nghiệm cánh tay máy bậc tự Đối tượng phạm vi nghiên cứu Chạy thử nghiệm chương trình Matlab Thực nghiệm mơ hình vật lý để kiểm nghiệm, hồn thiện cấu trúc tham số điều khiển Ý nghĩa khoa học thực tiễn đề tài Với phương pháp nhận dạng điều khiển mạng nơ-ron, không cần phải sử dụng mơ hình tốn đối tượng mà cần quan tâm tới tập tín hiệu mẫu vào đối tượng mơ hình mẫu Do tránh q trình xây dựng mơ hình tốn phức tạp nhiều thời gian công sức Phương pháp nghiên cứu Nghiên cứu lý thuyết: - Nghiên cứu mạng nơ-ron hồi qui, mạng RCN (Reservoir Computing Networks) phương pháp huấn luyện mạng - Nghiên cứu thuật toán điều khiển cánh tay máy - So sánh chất lượng hệ thống điều khiển cánh tay máy với phương pháp điều khiển khác Nghiên cứu thực nghiệm: - Chạy thử nghiệm chương trình Matlab - Thực nghiệm mơ hình vật lý để kiểm nghiệm, hồn thiện cấu trúc tham số điều khiển CHƯƠNG 1: CƠ SỞ LÝ THUYẾT MẠNG NƠ-RON 1.1 Giới thiệu mạng nơ-ron 1.1.1 Mạng nơ-ron nhân tạo Để xây dựng mạng nơ-ron nhân tạo giống hệ nơ-ron người, vào năm 1943 Mc Culloch Pitts đề cấu trúc nơron thứ i mơ hình mạng nơ-ron nhân tạo hình 1.1 x1 wi1 x2 wi2 a(.) Σ yi θi PEi wim xm Hình 1.1 Mơ hình nơ-ron Mc Culloch Pitts Trong đó: - xj(k): Tín hiệu vào thứ j thời điểm k - yi(k): Tín hiệu thứ i thời điểm k - a(.): Hàm truyền: Quan hệ vào ron thứ i sau: m yi (k )  a( w ij x j (k )  i ) j 1 Trong đó, wij biểu diễn cường độ kết nối đầu vào thứ j nơ-ron thứ i 1.1.2 Các thành phần mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo đặc trưng yếu tố: phần tử xử lý, cấu trúc ghép nối phần tử xử lý, phương pháp huấn luyện để cập nhập trọng số wij 1.1.2.1 Nơ-ron Mỗi nơ-ron có nhiều đầu vào đầu hình 2.1 Hàm tác động a(f) tạo tín hiệu x1 wi1 xi xm wij wim vi Σ yi a(.) bi Hình 1.2 Mơ hình nơ-ron thứ i xj: Tín hiệu đầu vào thứ j wij: Trọng số để kết nối xj nơ-ron thứ j bi: Bias a(.): Hàm truyền 1.1.2.2 Hàm truyền Một số hàm thông dụng: Hàm bước nhảy đơn vị: f ≥ 0 f < f ≥ -1 f f < f < ≤ f ≤ f > a(f) = Hàm dấu: a(f) = Hàm dốc: a(f) = n = 100; t = 0:2*pi/n:2*pi*(1-1/n); xCenter = + 5*cos(t); yCenter = 10 + 5*sin(t); hold on; Link1 =plot(xLink1, yLink1,'b','LineWidth',6); Center = plot(xCenter,yCenter,'g','LineWidth',5) sys=[0 0 0 1]; x0=[]; end pause(.01) Số hóa Trung tâm Học liệu tnu.edu.vn/ Phụ lục 2: Chương trình huấn luyện nhận dạng mơ hình cánh tay máy bậc tự Matlab (mạng hở) load quang_data net = narxnet(1:2,1:2,6); view(net); net.trainFcn = 'trainlm'; net.performFcn = 'mse'; net.trainParam.goal = 0; net.trainParam.epochs = 1000; net.trainParam.min_grad = 1e-10; net.trainParam.time = inf; net.trainParam.sigma = 5e-5; net.trainParam.lambda = 5e-10; net.trainParam.max_fail = 10000; x = num2cell(R1'); t = num2cell(T1'); net = configure(net,[x;t],t); xs,xi,ai,ts]=preparets(net,x,{},t); net,tr] = train(net,xs,ts,xi,ai); y = net(xs,xi,ai); y = cell2mat(y); figure(1) n = length(xs); ti = 1:n; t1 = cell2mat(ts); subplot(2,1,1) plot(ti,y,'r',ti,t1,'b') legend('Network Output','Target') Số hóa Trung tâm Học liệu tnu.edu.vn/ grid on subplot(2,1,2) plot(ti,y-t1,'r') grid on legend('Error') figure(2) plot(tr.perf) grid on title('MSE') mse_end = min(tr.perf) save Quang_ND_opennet6 net Số hóa Trung tâm Học liệu tnu.edu.vn/ Phụ lục 3: Chương trình huấn luyện nhận dạng mơ hình cánh tay máy bậc tự Matlab (mạng kín) load quang_data01 load Quang_opennet6 net = closeloop(net); view(net) C = 3; N = 990; netc = cell(1,N); perfc = cell(1,N); figu = cell(2,N); d = 1; m = length(T1'); for i = 1:N C = C + 1; net1 = net; k = floor(rand*m/C); if k == k = 1; end net1.trainFcn = 'trainlm'; net1.performFcn = 'mse'; net1.trainParam.goal = 0; net1.trainParam.epochs = 1000; net1.trainParam.min_grad = 1e-15; net1.trainParam.time = inf; net1.trainParam.sigma = 5e-5; net1.trainParam.lambda = 5e-7; Số hóa Trung tâm Học liệu tnu.edu.vn/ net1.trainParam.max_fail = 10000; [x,xr] = batch_data01(C,R1',k,d); [t,rt] = batch_data01(C,T1',k,d); net1 = configure(net1,x,t); [xs,xi,ai,ts] = preparets(net1,x,{},t); [net1,tr] = train(net1,xs,ts,xi,ai); net = net1; netc{1,i} = net; perfc{1,i} = tr.perf; figure(1) plot(perfc{1,end}) grid on title('MSE') mse_end = min(perfc{1,end}) [xs,xi,ai,ts]=preparets(net,xr,{},rt); y = net(xs,xi,ai); y = cell2mat(y); figure(2) n = length(xs); ti = 1:n; t1 = cell2mat(ts); subplot(2,1,1) plot(ti,y,'r',ti,t1,'b') legend('Network Output','Target') grid on subplot(2,1,2) Số hóa Trung tâm Học liệu tnu.edu.vn/ 41 plot(ti,y-t1,'r') grid on legend('Error') mse_end = min(tr.perf) save Quang_ND_closenet6 perfc Số hóa Trung tâm Học liệu tnu.edu.vn/ 42 Phụ lục 4: Chương trình huấn luyện điều khiển cho mơ hình cánh tay máy bậc tự Matlab (mạng hở) load Quang_ND_closenet6 nnplant = netc{1,end}; s = nnplant.layers{1}.size; s1 = 6; load quang_data01 P = RT'; T = RT'; numInputs = 2; numLayers = 4; biasConnect = [1;1;1;1]; inputConnect = [1 1;0 0;0 1;0 0]; layerConnect = [0 0;1 0 0;0 0;0 0]; net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnec t); net.outputConnect = [0 0 1]; net.layers{1}.transferFcn = 'tansig'; net.layers{2}.transferFcn = 'purelin'; net.layers{3}.transferFcn = 'tansig'; net.layers{4}.transferFcn = 'purelin'; d34 = max(nnplant.layerWeights{1,2}.delays); net.inputWeights{3,2}.delays = 1:d34; d11 = max(nnplant.inputWeights{1,1}.delays); net.layerWeights{3,2}.delays = 1:d11; net.layerWeights{1,2}.delays = 1:2; net.inputWeights{1,1}.delays = 1:2; Số hóa Trung tâm Học liệu tnu.edu.vn/ 43 net.inputWeights{1,2}.delays = 1:2; net.layers{1}.size = s1; net.layers{2}.size = 1; net.layers{3}.size = s; net.layers{4}.size = 1; net.layers{1}.initFcn = 'initnw'; net.layers{2}.initFcn = 'initnw'; net.trainFcn = 'trainlm'; net.performFcn = 'mse'; net.trainParam.goal = 0; net.trainParam.epochs = 10000; net.trainParam.min_grad = 1e-50; net.trainParam.time = inf; net.trainParam.max_fail = 10000; net = init(net); x = num2cell([P;T]); t = num2cell(T); net = configure(net,x,t); [xs,xi,ai,ts]=preparets(net,x,t,{}); net = train(net,xs,ts,xi,ai); net.LW{3,2} = nnplant.IW{1,1}; net.b{3} = nnplant.b{1}; net.IW{3,2} = nnplant.LW{1,2}; net.LW{4,3} = nnplant.LW{2,1}; net.b{4} = nnplant.b{2}; net.biases{3}.learn = 0; net.biases{4}.learn = 0; net.layerWeights{3,2}.learn = 0; Số hóa Trung tâm Học liệu tnu.edu.vn/ 44 net.inputWeights{3,2}.learn = 0; net.layerWeights{4,3}.learn = 0; net.trainParam.epochs = 10000; view(net) [net,tr] = train(net,xs,ts,xi,ai); y = net(xs,xi,ai); y = cell2mat(y); ts = cell2mat(ts); figure(1) ti = 1:length(ts); subplot(2,1,1) plot(ti,y,'r',ti,ts,'b') legend('Network Output','Target') grid on subplot(2,1,2) plot(ti,y-ts,'r') grid on legend('Error') figure(2) plot(tr.perf) grid on title('MSE') mse_end = tr.perf(1,end) save Quang_BKD_open_6 net Số hóa Trung tâm Học liệu tnu.edu.vn/ 45 Phụ lục 5: Chương trình huấn luyện điều khiển cho mơ hình cánh tay máy bậc tự Matlab (mạng kín) clc load Quang_open2closed_6 d = 1; C = 3; N = 99; m = length(P); net = netc; netc = cell(1,N); perfc = cell(1,N); figu = cell(2,N); for i = 1:N C = C + 1; net1 = net; k = floor(rand*m/C); if k == k = 1; end net1.trainFcn = 'trainlm'; net1.performFcn = 'mse'; net1.trainParam.goal = 0; net1.trainParam.epochs = 200; net1.trainParam.min_grad = 1e-50; net1.trainParam.time = inf; net1.trainParam.lambda = 5e-10; net1.trainParam.max_fail = 10000; net1.biases{3}.learn = 0; Số hóa Trung tâm Học liệu tnu.edu.vn/ 46 net1.biases{4}.learn = 0; net1.layerWeights{3,2}.learn = 0; net1.layerWeights{3,4}.learn = 0; net1.layerWeights{4,3}.learn = 0; [x,xr] = batch_data01(C,P,k,d); [t,rt] = batch_data01(C,T,k,d); figu{1,i} = xr; figu{2,i} = rt; net1 = configure(net1,x,t); [xs,xi,ai,ts]=preparets(net1,x,t,{}); [net1,tr] = train(net1,xs,ts,xi,ai); net = net1; netc{1,i} = net; perfc{1,i} = tr.perf; end figure(1) plot(perfc{1,end}) grid on title('MSE') figure(2) [xs,xi,ai,ts]=preparets(net1,xr,rt,{}); y = net(xs,xi,ai); y = cell2mat(y); ts = cell2mat(ts); ti = 1:length(ts); subplot(2,1,1) plot(ti,y,'r',ti,ts,'b') legend('Network Output','Target') Số hóa Trung tâm Học liệu tnu.edu.vn/ 47 grid on subplot(2,1,2) plot(ti,y-ts,'r') grid on legend('Error') mse_end = tr.perf(1,end) save Quang_BDK_cloes_6netc perfc Số hóa Trung tâm Học liệu tnu.edu.vn/ 48 Phụ lục 6: Bảng kết huấn luyện thử nghiệm cấu trúc mạng Số lần học Hệ số sai lệch (Epoch) (MSE) 1000 1.3237e-04 1000 1.4141e-04 1000 1.2617e-04 1000 1.1004e-04 1000 1.1964e-04 1000 1.1187e-04 STT Số nơ-ron Ghi Phụ lục 7: Bảng kí hiệu chân IC L298N Số chân Kí hiệu CURRENT SENSING A OUTPUT OUTPUT SUPPLY VOLTAGE VS INPUT ENABLE A INPUT GND LOGIC SUPPLY VOLTAGE VSS 10 INPUT 11 ENABLE B 12 INPUT 13 OUTPUT 14 OUTPUT 15 CURRENT SENSING B Số hóa Trung tâm Học liệu tnu.edu.vn/ Ghi 49 Số hóa Trung tâm Học liệu tnu.edu.vn/ 50 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Hữu Đức Dục, (2009), Mạng nơ-ron ứng dụng điều khiển tự động, Nhà xuất Khoa học Kỹ thuật năm [2] Phan Xuân Minh Nguyễn Doãn Phước, (2004), Lý thuyết điều khiển mờ, Nhà xuất Khoa học Kỹ thuật năm [3] Phạm Công Ngô, (2001), Lý thuyết điều khiển tự động, Nhà xuất Khoa học Kỹ thuật năm [4] Ngô Diên Tập, (2003), Kỹ thuật vi điều khiển với AVR, Nhà xuất Khoa học Kỹ thuật năm Tiếng Anh [5] A.F Atiya and A.G Parlos, (2000), “New results on recurrent network training: Unifying the algorithms and accelerating convergence”, IEEE Neural Networks, 11: 697 [6] B Hammer and J.J Steil, (2002), “Perspectives on learning with recurrent neural networks” In Proc of ESANN [7] G.V Puskorius and F.L.A, (1994), “Neurocontrol of nonlinear dynamical systems with kalman filter trained recurrent networks”, IEEE Neural Networks, 5:279–297 [8] J Suykens, J Vandewalle, and B De Moor, (1996), “Artificial Neural Networks for Modeling and Control of Non-Linear Systems”, Springer [9] P.J Werbos, (1990), “Backpropagation through time: what it does and how to it”, Proc IEEE, 78(10): 1550 - 1560 Số hóa Trung tâm Học liệu tnu.edu.vn/ ... nhau, cánh tay máy sử dụng nhiều Hiện có nhiều phương pháp điều khiển khác áp dụng để điều khiển cánh tay máy Nhưng việc áp dụng mạng n - ron vào điều khiển hệ thống hạn chế Với mạng n - ron hồi... THUYẾT MẠNG NƠ -RON 1.1 Giới thiệu mạng n - ron 1.1.1 Mạng n - ron nhân tạo Để xây dựng mạng n - ron nhân tạo giống hệ n - ron người, vào năm 1943 Mc Culloch Pitts đề cấu trúc n ron thứ i mơ hình mạng n - ron. .. mạng n - ron cho điều khiển có cấu trúc giống mạng n - ron cho đối tượng Mạng bao gồm hai lớp, lớp có n - ron Mạng kết hợp với mạng n - ron đối tượng tạo thành mạng kín có lớp hình vẽ 2.13 Mạng kín

Ngày đăng: 24/02/2019, 21:34

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan