Tự chỉnh thông số bộ điều khiển mờ dùng các thuật toán tối ưu hóa phỏng sinh học

79 23 0
Tự chỉnh thông số bộ điều khiển mờ dùng các thuật toán tối ưu hóa phỏng sinh học

Đ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 Quốc Gia Tp Hồ Chí Minh TRƯỜNG ðẠI HỌC BÁCH KHOA NGUYỄN ðỨC HỒNG TỰ CHỈNH THƠNG SỐ BỘ ðIỀU KHIỂN MỜ DÙNG CÁC THUẬT TỐN TỐI ƯU HĨA PHỎNG SINH HỌC Chuyên ngành: TỰ ðỘNG HÓA LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 7, năm 2009 CƠNG TRÌNH ðƯỢC HỒN THÀNH TẠI TRƯỜNG ðẠI HỌC BÁCH KHOA ðẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học : TS Huỳnh Thái Hoàng (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : TS Nguyễn Thiện Thành (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : PGS.TS Nguyễn Tấn Tiến (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận văn thạc sĩ ñược bảo vệ HỘI ðỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ðẠI HỌC BÁCH KHOA, ngày 31 tháng năm 2009 i ðẠI HỌC QUỐC GIA TP HCM TRƯỜNG ðẠI HỌC BÁCH KHOA CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM ðộc Lập - Tự Do - Hạnh Phúc -oOo Tp HCM, ngày 31 tháng năm 2009 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn ðức Hoàng Giới tính : Nam Ngày, tháng, năm sinh : 10/01/1984 Nơi sinh : Bình Thuận Chuyên ngành : Tự động hóa Khoá (Năm trúng tuyển) : 2007 1- TÊN ðỀ TÀI: TỰ CHỈNH THÔNG SỐ BỘ ðIỀU KHIỂN MỜ DÙNG CÁC THUẬT TỐN TỐI ƯU HĨA PHỎNG SINH HỌC 2- NHIỆM VỤ LUẬN VĂN: .+ Nghiên cứu thuật toán tối ưu hóa sinh học, so sánh ưu khuyết ñiểm thuật toán .+ ðề xuất thuật toán tối ưu sinh học lai, cải thiện chất lượng lời giải, tốc ñộ hội tụ .+ Áp dụng chỉnh định thơng số ñiều khiển mờ giữ cân hệ lắc ngược quay 3- NGÀY GIAO NHIỆM VỤ : 4- NGÀY HOÀN THÀNH NHIỆM VỤ : 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi ñầy ñủ học hàm, học vị ): TS Huỳnh Thái Hoàng Nội dung ñề cương Luận văn thạc sĩ ñã ñược Hội ðồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) TS Nguyễn ðức Thành TS Huỳnh Thái Hoàng ii Lời cảm ơn Trước hết tơi muốn gửi lời cảm ơn đến thầy Huỳnh Thái Hoàng, tiến sĩ giảng viên trường ðại học Bách khoa thành phố Hồ Chí Minh, Khoa ðiện – ðiện tử, Bộ mơn ðiều khiển Tự động, người hướng dẫn trực tiếp để tơi hồn thành luận văn Em xin chân thành cảm ơn ý kiến đóng góp, nhận xét thầy Tơi muốn cảm ơn thầy cô Bộ môn ðiều khiển Tự động trang bị cho tơi kiến thức cần thiết để tơi tiếp tục vững bước đường học vấn Cuối tơi muốn gửi lời cảm ơn đến ba mẹ tơi, người chăm lo, ni dưỡng tạo điều kiện để tơi n tâm hồn thành luận văn Một lần chân thành cảm ơn tất người Tp Hồ Chí Minh, 7/2009 Nguyễn ðức Hồng iii Tóm tắt Thiết kế điều khiển mờ liên quan ñến việc chọn tham số hàm thuộc, hệ số tiền hậu xử lý, hệ sở luật mờ Tối ưu tham số ñiều kiện quan trọng ñể ñạt ñược chất lượng ñiều khiển Khi số biến ngõ vào phương pháp thử sai trở nên tiện lợi, nhiên số biến ngõ vào lớn phải yêu cầu phương pháp khác Một phương pháp thuật tốn tối ưu hóa sinh học Chúng phương pháp tìm kiếm ngẫu nhiên có tính định hướng, theo tiến hóa sinh vật tự nhiên hành vi xã hội bầy ñàn Các phương pháp ñã ñược ứng dụng thành cơng nhiều lĩnh vực, đặc biệt tối ưu hóa hàm phi tuyến Trong luận văn này, thuật tốn tối ưu hóa sinh học sử dụng ñể chỉnh ñịnh tối ưu tham số ñiều khiển mờ ổn ñịnh hệ lắc ngược xoay Các kết mơ sử dụng để so sánh thuật tốn, từ rút kết luận khả ứng dụng thuật toán việc chỉnh định tham số Ngồi ra, luận văn tập trung vào phân tích so sánh thuật tốn để tìm mối liên hệ chúng, đồng thời kết hợp ưu điểm chúng lại với ñể tạo thuật toán lai tốt iv Mục Lục Chương Giới thiệu 1.1 ðặt vấn ñề 1.2 Cơng trình liên quan 1.3 Phạm vi nghiên cứu 1.4 Tóm lược nội dung luận văn Chương Các thuật tốn tối ưu hóa sinh học 2.1 Giới thiệu 2.2 Các thuật tốn tối ưu hóa theo tiến hóa 2.2.1 Thuật toán di truyền (GA) 2.2.2 Thuật tốn tiến hóa sai phân (DE) 10 2.3 Các thuật tốn tối ưu hóa theo trí tuệ bầy ñàn 13 2.3.1 Thuật tốn tối ưu bầy đàn (PSO) 13 2.3.2 Thuật toán ếch nhảy (SFLA) 17 2.3.3 Thuật toán ong (BA) 19 Chương Các thuật toán tối ưu hóa sinh học lai 22 3.1 Giới thiệu 22 3.2 So sánh thuật tốn tối ưu hóa sinh học 22 3.2.1 Giống 22 3.2.2 Khác 23 3.2.3 Nhận xét 25 3.3 Các thuật tốn tối ưu hóa sinh học lai 26 3.3.1 Ý tưởng 26 3.3.2 Thuật toán lai HSFL-BA 26 3.3.3 Kết mô 27 3.3.4 Nhận xét 31 3.4 Tóm tắt 31 Chương Tự chỉnh tham số ñiều khiển mờ ổn ñịnh hệ lắc ngược xoay 32 4.1 Giới thiệu 32 4.2 Hệ lắc ngược xoay 32 4.2.1 Mô tả toán học 32 v 4.3 Thiết kế ñiều khiển mờ giữ cân hệ lắc ngược xoay 34 4.3.1 Tự chỉnh tham số ñiều khiển mờ 34 4.3.2 Kết mô 36 4.3.3 So sánh nhận xét 49 Chương Kết luận hướng phát triển 52 5.1 Kết luận 52 5.1.1 Kết ñạt ñược 52 5.1.2 Hạn chế 52 5.2 Hướng phát triển 53 Tài liệu tham khảo Phụ Lục A1 Thuật toán di truyền (GA) pl A2 Thuật tốn tiến hóa sai phân (DE) pl A3 Thuật tốn tối ưu bầy đàn (PSO) pl A4 Thuật toán ếch nhảy (SFLA) pl A5 Thuật toán ong (BA) pl 10 A6 Thuật toán lai HSFL-BA pl 12 B Bài báo vi Luận văn cao học Chương Giới thiệu 1.1 ðặt vấn ñề Các tốn tối ưu hóa quan trọng thực tiễn, ñặc biệt lĩnh vực kỹ thuật thiết kế, thực nghiệm khoa học ñịnh kinh doanh Do phức tạp toán ngày tăng (tính phi tuyến, số biến cần tối ưu lớn,…) khơng thể giải phương pháp tối ưu tốn học truyền thống gradient, tồn phương tuyến tính, quy hoạch động…, thúc đẩy phát triển phương pháp khác dựa vào nguyên lý tự nhiên trực giác Một phương pháp thuật tốn tối ưu hóa sinh học ðây phương pháp tìm kiếm ngẫu nhiên, bắt chước tiến hóa sinh học tự nhiên và/hoặc hành vi xã hội bầy ñàn Các thuật tốn ứng dụng thành cơng nhiều lĩnh vực, ñặc biệt lĩnh vực ñiều khiển Trong ñề tài này, tác giả sử dụng số thuật tóan tối ưu hóa sinh học để chỉnh định tối ưu tham số ñiều khiển mờ Trên sở kết thu ñược, tác giả khả ứng dụng thuật toán chỉnh định tham số Ngồi ra, đề tài tập trung vào phân tích so sánh thuật tốn để tìm mối liên hệ chúng, đồng thời kết hợp ưu điểm chúng lại với để tạo thuật tốn lai tốt ðó mục đích đề tài Vì lĩnh vực rộng nên ñề tài tác giả tập trung vào thuật toán là: GA (Genetic Algorithm), DE (Differential Evolution), PSO (Particle Swarm Optimization), SFLA (Shuffled Frog Leaping Algorithm), BA (Bees Algorithm) Trang |1 Luận văn cao học 1.2 Công trình liên quan Lĩnh vực tối ưu hóa sinh học phát triển nhanh chóng thời gian qua ứng dụng thành cơng nhiều lĩnh vực Có nhiều sách báo viết vấn đề Hằng năm có nhiều hội nghị thảo luận phát triển ứng dụng thuật toán sinh học Hầu hết viết ñều tập trung vào vấn ñề so sánh chất lượng thuật tốn ( tốc độ hội tụ, thời gian thực thi,…) ([P7], [P16] [P17], [P22], [P29]), ứng dụng thuật toán vào trường hợp cụ thể thiết kế ñiều khiển mờ (chỉnh ñịnh tối ưu tham số, chỉnh ñịnh hệ luật,…) ([P4], [P6], [P8], [P9], [P10], [P11], [P12]), nhận dạng mờ ([P26], [P27]), phân bố tài nguyên (tối ưu mạng phân bố nước sử dụng thuật tốn ACO, SFLA) ([P19], [P24], [P28]), hoạch định đường ñi cho robot môi trường ñộng sử dụng thuật toán ACO lai ([P14]),… Việc áp dụng thuật toán di truyền vào thiết kế ñiều khiển mờ ñã phát triển mạnh 10 năm qua Hình 1.1 hình 1.2 cho thấy xu hướng phát triển ([P8], [P25]) Hình 1.1 Số lượng xuất năm Hình 1.2 Số trích dẫn năm Ngồi ra, gần có số thuật tốn sử dụng ñể chỉnh ñịnh ñiều khiển mờ thuật toán PSO ([P12]), thuật toán BA ([P6]) 1.3 Phạm vi nghiên cứu Trang |2 Luận văn cao học Như trình bày phần 1.2, việc nghiên cứu cách có hệ thống thuật tốn tối ưu hóa sinh học chưa có Vì vậy, đề tài tác giả tổng hợp, nghiên cứu, phân tích ñiểm giống khác thuật tốn tối ưu sinh học để có nhìn cách tổng quát thuật toán Phân tích khả thuật tốn đến việc tìm kiếm lời giải tối ưu tốc ñộ hội tụ chất lượng nghiệm Trên sở phân tích khả thuật tốn đến việc tìm kiếm lời giải tối ưu, tác giả ñề xuất cải tiến nâng cao chất lượng thuật toán tối ưu sinh học cách lai thuật toán quen thuộc nhằm phát huy ưu điểm thuật tốn riêng lẽ để thuật tốn tốt ðể chứng minh cho nhận định, thuật tốn ñược ứng dụng vào chỉnh ñịnh tối ưu tham số ñiều khiển mờ ổn ñịnh lắc ngược xoay vị trí cân ðây đối tượng phức tạp ñiều khiển mà việc chỉnh ñịnh tham số phương pháp thử sai khó để đạt u cầu ổn định hay chất lượng đáp ứng q độ 1.4 Tóm lược nội dung luận văn Luận văn bao gồm chương với nội dung sau: Chương khái quát phát triển thuật tốn tối ưu hóa sinh học, mục đích phạm vi nghiên cứu luận văn Chương trình bày lý thuyết số thuật tốn tối ưu hóa sinh học bao gồm thuật tốn theo tiến hóa GA, DE thuật tốn theo trí tuệ bầy ñàn PSO, SFLA BA Chương phân tích điểm giống khác thuật tốn, đề xuất lai ghép thuật tốn để thuật tốt Chương trình bày kết ñạt ñược ứng dụng thuật tốn vào chỉnh định tối ưu tham số ñiều khiển mờ ổn ñịnh lắc ngược xoay vị trí cân Chương tóm tắt kết ñạt ñược, chưa ñạt ñược hướng phát triển luận văn Trang |3 Phụ lục Luận văn cao học elitism = 1; % flag best chromosome rang =[0 0 0.0 0.3 0.7 0.10 0.10 0.01 0.01 001.0; % range of the % variables 1 1 0.3 0.7 1.0 5.00 5.00 2.00 2.00 100.0]; pop=X_random(N,rang); for i=1:N Var = pop(i,:); evaluate; J(i) = JJ; end fval = J; [fvalmin,indmin] = min(fval); bestmem = pop(indmin,:); fvalp = zeros(1,G+1); fvalp(1) = fvalmin; rot = rotd= rt = mui = (0:1:N-1); (0:1:d-1); zeros(N); zeros(N,d); % rotating index array (size N) % rotating index array (size d) % another rotating index array %Iterations of the algorithm for iter=1:G % iterations pause(1) disp(sprintf('Interation Number: %02.0f',iter)); Best(iter,:)=bestmem; % Linear Ranking Selection parent = LRS(pop,fval,0.65,elitism,indmin); % Crossover BLX_alpha child = C_BLX(parent,Pc,0.5,elitism,indmin); % Random Mutation pop = RM(child,Pm,rang,elitism,indmin); for i=1:N Var = pop(i,:); evaluate; fval(i) = JJ; end [fvalmin, indmin] = min(fval); bestmem = pop(indmin,:); fvalp(iter) = fvalmin; iter = iter + 1; end % for i=1:iter save BestGA Best; end % End NDH 2008 T r a n g | pl Phụ lục Luận văn cao học A2 Thuật tốn tiến hóa sai phân (DE) A2.1.Mã giả Begin; Generate random population of P solutions (vectors); For each individual i = P: calculate fitness (i); Select vector xi; Select mutal different vectors xr0, xr1, xr2 ; Generate trial vector vi = xr0 + c(xr1 - xr2); Generate new vector ui = crossover(xi,vi); Calculate the fitness of the vector ui; If ui is better than xi then replace xi by ui; Check if termination = true; End; A2.2.Chương trình % Matlab code of the DE applied to RIP % Corresponding Contact: Nguyen Duc Hoang (ndhoang@hcmut.edu.vn), % (C) 2008 Ho Chi Minh City of University Technology function RIP_Fuzzy_DE clc; close all; clear all; G N d pc c = = = = = 200; 50; 12; 0.5; 0.8; % population size rang =[0 0 0.0 0.3 0.7 0.10 0.10 0.01 0.01 001.0; % range of the % variables 1 1 0.3 0.7 1.0 5.00 5.00 2.00 2.00 100.0]; pop=X_random(N,rang); for i=1:N T r a n g | pl Phụ lục Luận văn cao học Var = pop(i,:); evaluate; J(i) = JJ; end fval = J; [fvalmin,indmin] = min(fval); bestmem = pop(indmin,:); fvalp = zeros(1,max_iteration+1); fvalp(1)= fvalmin; clear U; rot = rotd= rt = mui = (0:1:N-1); (0:1:d-1); zeros(N); zeros(N,d); % rotating index array (size N) % rotating index array (size d) % another rotating index array %Iterations of the algorithm for iter=1:G % iterations pause(1) disp(sprintf('Interation Number: %02.0f',iter)); Best(iter,:)=bestmem popold = pop; ind a0 rt a1 rt a2 rt a3 = = = = = = = = randperm(3); 1:1:N; rem(rot+ind(1),N); a0(rt+1); rem(rot+ind(2),N); a0(rt+1); rem(rot+ind(3),N); a0(rt+1); pm0 pm1 pm2 pm3 = = = = popold(a0,:); popold(a1,:); popold(a2,:); popold(a3,:); mui = rand(N,d) < pc; % index pointer array % shuffle locations of vectors % rotate indices by ind(1) positions % rotate vector locations % all random numbers < pc are 1, otherwise mui=sort(mui'); % transpose, collect 1's in each column for i=1:N n=floor(rand*d); if n > rtd = rem(rotd+n,d); mui(:,i) = mui(rtd+1,i); %rotate column i by n end end mui = mui'; % transpose back mpo = mui < 0.5; % inverse mask to mui ui = pm3 + c*(pm2 - pm1); ui = pm0.*mpo + ui.*mui; T r a n g | pl Phụ lục Luận văn cao học for i=1:N Var = ui(i,:); evaluate; fvaltmp = JJ; if fvaltmp < fval(i) pop(i,:) = ui(i,:); fval(i) = fvaltmp; end if fvaltmp < fvalmin fvalmin = fvaltmp; bestmem = ui(i,:) end end fvalp(iter+1) = fvalmin; iter = iter + 1; end % for i=1:iter bestmem fvalmin save BestDE Best; end% End NDH 2008 T r a n g | pl Phụ lục Luận văn cao học A3 Thuật toán tối ưu bầy ñàn (PSO) A3.1.Mã giả Begin; Generate random population of N solutions (particles); For each individual i Є N: calculate fitness (i); Initialize the value of the weight factor, ω; For each particle; Set Xp as the best position of particle i; If fitness (i) is better than Xp; Xp(i) = fitness (i); End; Set Xg as the best fitness of all particles; For each particle; Calculate particle velocity according to Eq (2.6); Update particle position according to Eq (2.7); End; Check if termination = true; End; A3.2.Chương trình % Matlab code of the PSO applied to RIP % Corresponding Contact: Nguyen Duc Hoang (ndhoang@hcmut.edu.vn), % (C) 2008 Ho Chi Minh City of University Technology function RIP_Fuzzy_PSO clc; clear all; close all; paras; G = 500; N = 50; % bird population size T r a n g | pl Phụ lục Luận văn cao học d = 12; rang =[ 0 0 0.0 0.50 0.75 0.1 0.1 0.01 0.01 001.0; % range of the % variables 1 1 0.5 0.75 1.00 5.0 5.0 2.00 2.00 100.0]; index = 1:d; c1= 2.5; c2= 1.8; w = 0.6; U=X_random(N,rang); for i=1:N Var = U(i,:); evaluate; J(i) = JJ; end Par_N=sortrows([U,J'],d+1) Par_O = Par_N; Pbest = Par_N; Gbest = Pbest(1,:); V_N = zeros(n,d); V_O = zeros(n,d); clear U; l=0; %Iterations of the algorithm for i=1:G % iterations disp(sprintf('Interation Number: %02.0f',i)); [fit,ind]=min(Pbest(:,d+1)); Gbest=Pbest(ind,:); Best(i,:)=Gbest; for j = : N, % Update bird V_N(j,:) = w*V_O(j,:)+c1*rand*(Pbest(j,index)Par_O(j,index))+c2*rand*(Gbest(index)-Par_O(j,index)); Par_N(j,index) = Par_O(j,index)+V_N(j,:); Var = Par_N(j,index); evaluate; if JJ < Pbest(j,d+1), Pbest(j,:)=[Par_N(j,index),JJ]; end % first if end % for j=1:N Par_O = Par_N; V_O=V_N; end % for i=1:iter save BestVal Best; end% End NDH 2008 T r a n g | pl Phụ lục Luận văn cao học A4 Thuật toán ếch nhảy (SFLA) A4.1.Mã giả Begin; Generate random population of N solutions (frogs); For each individual i = N: calculate fitness (i); Sort the population N in descending order of their fitness; Divide N into m memeplexes; For each memeplexe; Determine the best and worst frogs; Improve the worst frog position using Eqs (2.8) or (2.9); Repeat for a specific number of iterations; End; Combine the evolved memeplexes; Sort the population N in descending order of their fitness; Check if termination = true; End; A4.2.Chương trình % Matlab code of the SFLA applied to RIP % Corresponding Contact: Nguyen Duc Hoang (ndhoang@hcmut.edu.vn), % (C) 2008 Ho Chi Minh City of University Technology function RIP_Fuzzy_SFLA clc; close all; clear all; paras; G = 500; N = 50; d = 12; m = 10; p = N/m; iter_meme = 10; c = 2; % frog population size T r a n g | pl Phụ lục Luận văn cao học rang =[0 0 0.0 0.3 0.7 0.10 0.10 0.01 0.01 001.0; % range of the % variables 1 1 0.3 0.7 1.0 5.00 5.00 2.00 2.00 100.0]; Dmax = inf; U=X_random(N,rang); for i=1:N Var = U(i,:); evaluate; J(i) = JJ; end Par_Q=sortrows([U,J'],d+1); clear U; %Iterations of the algorithm for i=1:G % iterations disp(sprintf('Interation Number: %02.0f',i)); Xg = Par_Q(1,:); Best(i,:)=Xg; for j = : m, index=j:m:N; X_meme = Par_Q(index,:); for k = 1: iter_meme, ind_b = 1; % the best frog in the memeplex ind_w = p; U = update_frog(Dmax,c,X_meme(ind_b,1:d),X_meme(ind_w,1:d)); Var = U; evaluate; if JJ

Ngày đăng: 16/02/2021, 18:47

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

Tài liệu liên quan