Trong sự phát triển không ngừng của khoa học và công nghệ làm xuất hiện các đối tượng điều khiển có độ phức tạp ngày càng gia tăng, lý thuyết điều khiển thông minh là phương pháp điều khiển phỏng theo các đặc điểm cơ bản trí thông minh của con người, bao gồm khả năng học, khả năng xử lý thông tin không chắc chắn và khả năng tìm lời giải tối ưu, có vai trò hết sức quan trọng để giải quyết nhiều vấn đề như nâng cao chất lượng điều khiển, độ ổn định của hệ thống, tiết kiệm năng lượng hay như sử dụng máy móc thay thế con người trong các ứng dụng điều khiển phức tạp hoặc nguy hại. Hàng loạt các công trình nghiên cứu về điều khiển bền vững, điều khiển thích nghi, điều khiển tối ưu hay điều khiển mờ và mạng nơron được công bố trong những năm gần đây cho thấy sự quan tâm lớn của các nhà khoa học trên khắp thế giới và những vấn đề, các hướng nghiên cứu phát triển trong lĩnh vực này.
Trang CHƯƠNG 1: TỔNG QUAN 1.1 Khái quát vấn đề công trình liên quan Trong phát triển không ngừng khoa học công nghệ làm xuất đối tượng điều khiển có độ phức tạp ngày gia tăng, lý thuyết điều khiển thông minh phương pháp điều khiển theo đặc điểm trí thông minh người, bao gồm khả học, khả xử lý thông tin không chắn khả tìm lời giải tối ưu, có vai trò quan trọng để giải nhiều vấn đề nâng cao chất lượng điều khiển, độ ổn định hệ thống, tiết kiệm lượng hay sử dụng máy móc thay người ứng dụng điều khiển phức tạp nguy hại Hàng loạt công trình nghiên cứu điều khiển bền vững, điều khiển thích nghi, điều khiển tối ưu hay điều khiển mờ mạng nơron công bố năm gần cho thấy quan tâm lớn nhà khoa học khắp giới vấn đề, hướng nghiên cứu phát triển lĩnh vực Alavandar Nigam [11] phát triển Nơron-Mờ dựa cách tiếp cận giải pháp động học ngược cánh tay robot công nghiệp, cánh sử dụng khả ANFIS ( hệ thống suy diễn nơron mờ thích nghi) để học từ liệu huấn luyện nhằm tạo mạng ANFIS, thực biểu diễn hệ thống suy luận mờ điển hình cách sử dụng cấu trúc giống mạng thần kinh BP Guez Ahmad [13] phát triển giải pháp cho vấn đề động học ngược cách sử dụng mạng nơron robot, mạng nơron huấn luyện giải pháp xác đưa đến tải trọng tối thiểu xử lý tải chu kỳ điều khiển cho phép điều khiển thời gian thực robot thuật toán lan truyền ngược Karlik Aydinb [14] phát triển cách tiếp cận cải tiến giải pháp động học ngược cánh tay robot bậc Một phương pháp tiếp cận cấu Trang trúc mạng nơron nhân tạo (ANN) đề xuất để điều khiển chuyển động cánh tay robot Mô hình mạng nơron sử dụng đơn vị ngưỡng với hàm chuyển sigmoid luật học theo kiểu suy giảm độ dốc Ngoài sử dụng phương pháp khác phương pháp số phương pháp thông minh để giải động học thuận động học ngược cánh tay robot công nghiệp nghiên cứu [16] Trong thập niên trước số mô hình mạng nơron thích nghi học kết hợp áp dụng cho học offline online động lực học cánh tay robot [11] Ahn Anh [4] thành công việc tối ưu hóa mô hình nơron thích nghi NARX động học ngược dựa cánh tay robot PAM cách sử dụng thuật toán di truyền Các tác giả [7] nhận dạng động học ngược cánh tay robot công nghiệp dựa mạng nơron thích nghi Như biết, hệ thống thực mô hình phi tuyến phức tạp nên phương pháp thiết kế kinh điển dựa điều khiển tuyến tính nhiều trường hợp không đảm bảo yêu cầu đặc tính phi tuyến động học đối tượng điều khiển, đặc tuyến đầu đo cấu chấp hành tính chất không đầy đủ, xác mô hình thay (chưa biết đặc tính động học, nhiễu, điều kiện ban đầu) Sự phát triển không ngừng khoa học công nghệ làm xuất đối tượng điều khiển có độ phức tạp ngày tăng Yêu cầu thực tiễn đặt phải điều khiển hệ thống động ngày phức tạp, điều kiện yếu tố bất định ngày gia tăng với yêu cầu chất lựợng điều khiển ngày cao Các yêu cầu đáp ứng cách trọn vẹn, đồng thời dùng lí thuyết điều khiển thông thường sẵn có Đây động lực cho đời hàng loạt lí thuyết điều khiển thông minh hứa hẹn hướng giải triệt để toán điều khiển phi tuyến phức tạp Nhiều sơ đồ điều khiển dùng mạng nơ ron MLP với thuật toán Lan Truyền Trang Ngược (Back Propagation - BP) ứng dụng để giải toán điều khiển hệ phi tuyến phức tạp bất ổn định Tính thích nghi cho phép mô hình mạng nơ-ron sau huấn luyện thực tốt chức dù nhiễu động môi trường thông số đối tượng điều khiển thay đổi theo thời gian Đó nhờ mô hình mạng nơ ron có khả tự cập nhật trọng số Mạng nơ-rơn nhân tạo mô hình toán học đơn giản não người Các nghiên cứu mạng nơ-rơn nhân tạo thập niên 1940 Năm 1944, McCulloh Pitts người xuất công trình nghiên cứu có tính hệ thống mạng nơ-rơn nhận tạo Tuy nhiên nghiên cứu mạng nơ ron phát triển mạnh từ sau năm 1980 Mối quan tâm mạng nơ-rơn nhân tạo bắt nguồn từ khả mạng việc mô phỏng, bắt chước khả học phản ứng no người Kết mạng nơ-rơn nhân tạo ứng dụng nhiều lĩnh vực khác nhận dạng, phân loại, xử lý ảnh, dự báo Các hệ thống điều khiển chứng tỏ tính hiệu chúng lĩnh vực Đến có nhiều cấu hình mạng thuật tóan huấn luyện tương ứng công bố để giải tóan khác Đã có nhiều công trình nghiên cứu mạng nơ-rơn nhận dạng, điều khiển hệ phi tuyến chứng tỏ ưu điểm vượt trội Vì lẽ sở tham khảo báo [7] sử dụng mạng nơron thích nghi (Adaptive neural) để huấn luyện lập trình tay máy Tác giả mạnh dạn sử dụng mô hình mạng nơron thích nghi (Adaptive neural network model) thông qua mô hình nơ ron thích nghi NARX để huấn luyện, lập trình, mô cho hệ tay máy Các giả định điều khiển từ GUI ghi lại tất chuyển động cánh tay máy Các liệu ghi lại sử dụng tập liệu dùng để huấn luyện Trang Luận văn phác thảo sở lý thuyết ứng dụng mô hình nơron NARX dùng để nhận dạng cho hệ tay máy đa bậc Xuất phát từ lý nêu trên, học viên định chọn đề tài: “mô hình hóa, nhận dạng hệ tay máy phi tuyến dùng mô hình mạng nơron thích nghi” với mục đích sử dụng ưu điểm mạng nơ-ron thích nghi, từ đề xuất thuật toán khả thi để nhận dạng hệ tay máy đa bậc phi tuyến Cụ thể là: ứng dụng số giải thuật để giải toán nhận dạng động học hệ tay máy Khẳng định ưu vượt trội phương pháp ứng dụng nhận dạng mô hình qua đánh giá kết mô sử dụng thuật toán mô hình nơron thích nghi NARX 1.2 Giới thiệu luận văn 1.2.1 Phát biểu toán Một vấn đề lý thuyết điều khiển nghiên cứu để sử dụng phản hồi nhằm làm thay đổi động học đối tượng cho đạt đặc tính theo mong muốn Trong luận văn, nghiên cứu tập trung vào phương pháp ứng dụng mô hình nơ ron thích nghi NARX để nhận dạng cho hệ tay máy bậc với mục tiêu sử dụng mô hình nơron thích nghi NARX để huấn luyện mô hình động học thuận, ngược tay máy ba bậc 1.1.2 Nhiệm vụ luận văn Thành lập mô hình động học thuận ngược kinh điển tay máy theo quy tắc D_H ( Denavit_Hartenberg) Nghiên cứu giải thuật giải toán động học thuận, ngược cho hệ tay máy ba bậc với mô hình phi tuyến theo phương pháp sau: - Phương pháp huấn luyện mạng nơron thích nghi NARX Trang - Phương pháp dùng giải thuật học mạng nơ ron truyền thẳng lớp Dùng ngôn ngữ lập trình phần mềm Matlab 7.0 để mô nhận dạng mô hình động nơron thích nghi NARX cho hệ tay máy ba bậc 1.2.3 Bố cục luận văn Với nhiệm vụ thực luận văn trên, bố cục luận văn gồm chương: Chương 1: Tổng quan Giới thiệu khái quát số công trình công bố có liên quan đến điều khiển thông minh sử dụng mạng nơ-ron thích nghi, ý nghĩa ứng dụng mô hình thực tế, mục đích nghiên cứu, nhiệm vụ thực nội dung sơ lược luận văn Chương 2: Cơ sở lý thuyết Lý thuyết điều khiển mạng nơ-ron, thích nghi, giải pháp điều khiển sử dụng mô hình nơron thích nghi NARX cho hệ phi tuyến thuật toán lan truyền ngược huấn luyện mạng nơ-ron truyền thẳng lớp Chương 3: Xây dựng mô hình động học thuận ngược kinh điển theo quy tắc D_H (Denavit_Hartenberg) Trình bày chi tiết toán động học thuận ngược kinh điển theo quy tắc D_H Chương 4: Giải pháp để huấn luyện mô hình nơron thích nghi NARX tay máy ba bậc Trình bày toán nhận dạng cho hệ tay máy bậc, giải thuật nhận dạng theo phương pháp kết mô phương pháp: Trang - Giải thuật nhận dạng sử dụng mô hình nơron thuận thích nghi NARX dùng thuật toán Lan Truyền Ngược (Back Propagation - BP) để cập nhật trọng số kết nối mạng - Giải thuật nhận dạng sử dụng mô hình nơron ngược thích nghi NARX dùng thuật toán Lan Truyền Ngược (Back Propagation - BP) để cập nhật trọng số kết nối mạng Chương 5: Kết mô Matlab Simulink Chương 6: Kết luận hướng phát triển đề tài Phân tích, đánh giá kết thực hiện, khẳng định tính ưu việt phương pháp lựa chọn cho mô hình Rút vấn đề chưa thực luận văn đề xuất hướng phát triển đề tài Trang CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Mạng nơ-rôn nhân tạo Mạng nơ-rôn nhân tạo mô hình toán học đơn giản não người Các nghiên cứu mạng nơ ron nhân tạo thập niên 1940 McCulloch Pitts người xuất công trình nghiên cứu có tính hệ thống mạng nơ-rôn nhận tạo Tuy nhiên nghiên cứu mạng nơ-rôn phát triển mạnh từ sau năm 1980 Mối quan tâm mạng nơ-rôn nhân tạo bắt nguồn từ khả mạng việc mô phỏng, bắt chước khả học phản ứng não người Kết mạng nơ ron nhân tạo ứng dụng nhiều lĩnh vực khác nhận dạng, phân loại, xử lý ảnh, hệ thống điều khiển, dự báo… chứng tỏ tính hiệu chúng lĩnh vực Đến có nhiều cấu hình mạng thuật toán huấn luyện tương ứng công bố để giải toán khác 2.1.1 Khái quát mạng nơ-rôn nhân tạo Nơ-rôn nhân tạo thành phần quan trọng mạng nơ-rôn nhân tạo Năm 1943 McCulloch Pitts đề xuất mô hình nơ ron nhân tạo mô tả hình 2.1 x1 w i1 x2 w i2 xn Ngõ vào yi θi Đơn vị xử lý w in Ngõ Nút Hình 2.1 Cấu trúc nơ ron nhân tạo Trang Trong X = [x1 , x2 , , xn ]T ngõ vào từ môi trường hay ngõ đơn vị xử lý khác, y ngõ nơ-rôn Các giá trị W = [wi1 , wi , , win ]T trọng số kết nối với nơ-rôn khác để xác định cường độ vector ngõ vào Do giá trị ngõ vào hàm kích hoạt XTW Tuỳ thuộc vào hàm kích hoạt, trọng số dương XTW kích thích nơ-rôn ngõ ngược lại Đơn vị xử lý tính tổng trọng số ngõ vào tạo lại tín hiệu yi = yi = giá trị tổng mức ngưỡng θ i Trong giá trị θ i giá trị biên độ lệch ảnh hưởng đến kích hoạt ngõ nơ-rôn Trên sở đó, mô hình toán đơn giản cho đơn vị xử lý i: y i (t + 1) = a ( X T W − θ i ) (2.1) Trong đó, hàm tác động a(f) hàm bậc thang đơn vị 2.1.2 Các thành phần mạng nơ-rôn nhân tạo Có thành phần mạng nơ-rôn nhân tạo: đơn vị xử lý, mô hình kết nối luật học 2.1.2.1 Đơn vị xử lý Một mạng nơ-rôn có nhiều lớp: lớp vào, lớp ẩn lớp Lớp vào phục vụ nơi chứa tín hiệu vào, lớp ẩn chứa nơ-rôn xem đơn vị xử lý, lớp chứa nơ-rôn để định Kết hợp với đơn vị xử lý có hàm tổng hợp hàm kích hoạt, hàm tổng hợp có chức tổng hợp tất tín hiệu vào hàm kích hoạt có chức tạo tín hiệu a Hàm tổng hợp Hàm tổng hợp dạng tuyến tính phi tuyến + Hàm tổng hợp dạng tuyến tính Trang m f i = net i = ∑ wij x j − θ i (2.2) j =1 + Hàm tổng hợp dạng phi tuyến m f i = net i = ∑ wij x 2j − θ i (2.3) j =1 b Hàm kích hoạt Có nhiều kiểu hàm kích hoạt khác luận văn trình bày số hàm kích hoạt phổ biến Các kiểu hàm kích hoạt khác sử dụng tuỳ thuộc vào toán mà mạng nơ-rôn giải + Hàm nấc : (H.2.2.a) ⎧1 neáu a( f ) = ⎨ ⎩0 neáu + Hàm dấu : (H.2.2.b) ⎧ neáu a( f ) = ⎨ ⎩− neáu + Hàm tuyến tính bão hoà: (H.2.2.c) f ≥0 f MaxColorNo), colour_int = MaxColorNo; end; colour=ColorMatrix(colour_int,:); if (w1(j,i) > 0), Trang 113 connect='-'; else connect=' '; end; if (abs(w1(j,i)) >= CancelVal), plot([01],[(MaxNeu/(N0+1))*i (MaxNeu/(N1+1))*j],connect,'Color',colour); end; end; end for i=1:N1, for j=1:N2, colour_int = ceil(abs(w2(j,i))*2+eps); if (colour_int > MaxColorNo), colour_int = MaxColorNo; end; if (w2(j,i) > 0), connect='-'; else connect=' '; end; if (abs(w2(j,i)) >= CancelVal), plot([12],[(MaxNeu/(N1+1))*i (MaxNeu/(N2+1))*j],connect,'Color',colour); end; end; end hold off Trang 114 file xác định mô hình NARX function [W1,W2,PI_vector,iteration,lambda]=nnarxm(NetDef,NN,W1,W2,trparms,GAM ,Y,U) % NNARXM % Determine a nonlinear NARX model of a dynamic system by training a % two-layer neural network with the Marquardt method The function % can handle multi-input multi-output systems (MIMO) [W1,W2,critvec,iteration,lambda]=nnarxm(NetDef,NN,W1,W2,trparms,Gamma, Y,U) [ny,N] = size(Y); [ny,NNn]= size(NN); na = NN(:,1); if NNn==1 nb = 0; % nnar model nk = 0; nu = 0; nab=na; else [nu,N] = size(U); nb = NN(:,2:1+nu); nk = NN(:,2+nu:1+2*nu); % nnarx model if nu>1, nab = na + sum(nb')'; else nab = na+nb; end end nmax = max(max([na nb+nk-1])); % Initialize weights if nescessary Trang 115 if isempty(W1) | isempty(W2), hidden = length(NetDef(1,:)); % Number of hidden neurons W1 = rand(hidden,sum(nab)+1)-0.5; W2 = rand(ny,hidden+1)-0.5; end PHI = zeros(sum(nab),N-nmax); jj = nmax+1:N; index = 0; for o=1:ny, for k = 1:na(o), PHI(k+index,:) = Y(o,jj-k); end index = index+na(o); for kk = 1:nu, for k = 1:nb(o,kk), PHI(k+index,:) = U(kk,jj-k-nk(o,kk)+1); end index = index + nb(o,kk); end end CALL TRAINING FUNCTION if isempty(GAM), Ys=Y; else S = sqrtm(inv(GAM)); Ys = S*Y; end [W1,W2,PI_vector,iteration,lambda]=marq(NetDef,W1,W2,PHI,Ys(:,nmax+1:N )); Thuật toán huấn luyện lan truyền ngược BP [outputs,N] = size(Y); [inputs,N] = size(PHI); % # of outputs and # of data % # of hidden units L_hidden = find(NetDef(1,:)=='L')'; % Location of linear hidden neurons H_hidden = find(NetDef(1,:)=='H')'; % Location of hidden neurons Trang 116 L_output = find(NetDef(2,:)=='L')'; % Location of linear output neurons H_output = find(NetDef(2,:)=='H')'; % Location of output neurons hidden = length(L_hidden)+length(H_hidden); if isempty(W1) | isempty(W2), % Initialize weights if nescessary W1 = rand(hidden,inputs+1)-0.5; W2 = rand(outputs,hidden+1)-0.5; end if (size(W1,2)~=inputs+1 | size(W1,1)~=hidden | % Check dimensions size(W2,2)~=hidden+1 | size(W2,1)~=outputs) error('Dimension mismatch in weights, data, or NetDef.'); end y1 = [zeros(hidden,N);ones(1,N)]; % Hidden layer outputs y2 = zeros(outputs,N); % Network output index = outputs*(hidden+1) + + [0:hidden-1]*(inputs+1); % A useful vector! index2 = (0:N-1)*outputs; iteration = 1; dw = 1; % Yet another useful vector % Counter variable % Flag telling that the weights are new PHI = [PHI;ones(1,N)]; % Augment PHI with a row containg ones parameters1= hidden*(inputs+1); % # of input-to-hidden weights parameters2= outputs*(hidden+1); % # of hidden-to-output weights parameters = parameters1 + parameters2; % Total # of weights PSI = zeros(parameters,outputs*N); % Deriv of each output w.r.t each weight ones_h = ones(hidden+1,1); ones_i = ones(inputs+1,1); % A vector of ones % Another vector of ones theta = [reshape(W2',parameters2,1) ; reshape(W1',parameters1,1)]; theta_index = find(theta); % Index to weights0 theta_red = theta(theta_index); % Reduced parameter vector reduced = length(theta_index); % The # of parameters in theta_red index3 = 1:(reduced+1):(reduced^2); % A third useful vector lambda_old = 0; Trang 117 % TRAIN NETWORK - clc; c=fix(clock); fprintf('Network training started at %2i.%2i.%2i\n\n',c(4),c(5),c(6)); % >>>>>>>>>>>>>>>>>>>>> COMPUTE NETWORK OUTPUT y2(theta) > Training process in action!! > Training process in action!!