Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
2,12 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP NGUYỄN XUÂN QUANG ỨNGDỤNGMẠNGNƠ -RON ĐIỀUKHIỂNCÁNHTAYMÁY LUẬN VĂN THẠC SĨ KỸ THUẬT Chuyên ngành: Kỹ thuật điềukhiể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 ỨNGDỤNGMẠNGNƠRONĐIỀUKHIỂNCÁNHTAYMÁY Chuyên ngành: Kỹ thuật điềukhiể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ềukhiể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ềukhiể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ánhtaymáy sử dụng nhiều Hiện có nhiều phương pháp điềukhiển khác áp dụng để điềukhiểncánhtaymáy Nhưng việc áp dụngmạng nơ-ron vào điềukhiể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ềukhiểncánhtay máy, thiết kế chế tạo thử nghiệm cánhtaymáy bậc tự thử nghiệm thuật toán điềukhiển thời gian thực Song song với phương pháp điềukhiểnmạng nơ-ron có phương pháp điềukhiển khác có tính hiệu cao phương pháp điềukhiển kinh điển PID (Proportional Integral Derivative), phương pháp điềukhiển thích nghi bền vững Điềukhiể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ềukhiển hệ thống Để thực tốn điềukhiể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ềukhiển thích hợp Nhìn chung, nhiệm vụ điềukhiể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 Ứngdụngmạng nơ-ron nhận dạng điềukhiểncánhtaymáy bậc tự Thiết kế chế tạo thử nghiệm cánhtaymá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ềukhiển Ý nghĩa khoa học thực tiễn đề tài Với phương pháp nhận dạng điềukhiểnmạ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ềukhiểncánhtaymáy - So sánh chất lượng hệ thống điềukhiểncánhtaymáy với phương pháp điềukhiể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ềukhiể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ựngmạ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 nơ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ánhtaymá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ánhtaymá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ềukhiển cho mơ hình cánhtaymá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ềukhiển cho mơ hình cánhtaymá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 ứngdụngđiềukhiể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ềukhiển mờ, Nhà xuất Khoa học Kỹ thuật năm [3] Phạm Công Ngô, (2001), Lý thuyết điềukhiể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ềukhiể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