tối ưu hóa điều khiển pid cho hệ ball and beam dùng giải thuật genetic algorithm

108 658 2
tối ưu hóa điều khiển pid cho hệ ball and beam dùng giải thuật genetic algorithm

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN SƠN HÀ TỐI ƯU HÓA ĐIỀU KHIỂN PID CHO HỆ BALL AND BEAM DÙNG GIẢI THUẬT GENETIC ALGORITHM NGÀNH: KỸ THUẬT ĐIỆN TỬ- 60520203 S K C0 5 Tp Hồ Chí Minh, tháng 04/2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN SƠN HÀ TỐI ƯU HÓA ĐIỀU KHIỂN PID CHO HỆ BALL AND BEAM DÙNG GIẢI THUẬT GENETIC ALGORITHM NGÀNH: KỸ THUẬT ĐIỆN TỬ- 60520203 Hướng dẫn khoa học: PGS.TS TRẦN THU HÀ Tp Hồ Chí Minh, tháng 04/ 2015 GVHD: PGS.TS TRẦN THU HÀ LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƢỢC: Họ & tên: NGUYỄN SƠN HÀ Giới tính: Nam Ngày, tháng, năm sinh: 07/06/1984 Nơi sinh: Tiền Giang Quê quán: Tiền Giang Dân tộc: Kinh Chỗ riêng địa liên lạc: KV Thới Hòa– Phƣờng Phƣớc Thới – Q Ô Môn– TP Cần Thơ Điện thoại quan: Điện thoại nhà riêng: 0939990749 Fax: E-mail: sonha04n@gmail.com II QUÁ TRÌNH ĐÀO TẠO Trung học chuyên nghiệp: Hệ đào tạo: Trung cấp Thời gian đào tạo từ 10/ 2002 đến 10 /2004 Nơi học (trƣờng, thành phố): Trƣờng kỹ thuật Cao Thắng Ngành học: Điện Tử Công Nghiệp Đại học: Hệ đào tạo: Chính Quy Thời gian đào tạo từ 10/2005đến 7/2009 Nơi học (trƣờng, thành phố): Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM Ngành học: Kỹ Thuật Điện – Điện Tử Tên đồ án, luận án môn thi tốt nghiệp: ĐIỀU KHIỂN VÀ GIÁM SÁT DÂY CHUYỀN SẢN XUẤT THỨC ĂN GIA SÚC Ngày & nơi bảo vệ đồ án, luận án thi tốt nghiệp: 19/07/2009 – Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM Ngƣời hƣớng dẫn: ThS NGUYỄN TẤN ĐỜI III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian Nơi công tác Công việc đảm nhiệm 01/2010 – đến Cảng hàng không quốc tế Cần Thơ i Kỹ sƣ Điện – Điện Tử HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ LỜI CAM ĐOAN Tôi cam đoan công trình nghiên cứu Các số liệu, kết nêu luận văn trung thực chƣa đƣợc công bố công trình khác Tp Hồ Chí Minh, ngày 26 tháng 04 năm 2015 (Ký tên ghi rõ họ tên) NGUYỄN SƠN HÀ ii HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ LỜI CẢM ƠN Tôi xin chân thành cảm ơn gia đình tôi, đặc biệc cha mẹ tạo điều kiện cho ăn học ngày hôm Chính họ nguồn động viên lớn ủng hộ tôi, giúp đỡ suốt trình học tập nhƣ việc thực chuyên đề Tôi xin chân thành cám ơn cô hƣớng dẫn PGS TS TRẦN THU HÀ trƣờng Đại học Kỹ Thuật Tp Hồ Chí Minh tận tình dạy, hƣớng dẫn, đóng góp nhiều ý kiến quý báu suốt trình thực luận văn Tôi xin chân thành cám ơn thầy cô khoa Điện - Điện Tử nói riêng thầy cô trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp Hồ Chí Minh tạo cho môi trƣờng học tập thật tuyệt vời tạo điều kiện cho hoàn thành luận văn Xin cám ơn tất bạn học viên anh chị đóng góp ý kiến giúp đỡ hoàn thành luận văn Ngƣời thực luận văn NGUYỄN SƠN HÀ iii HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ TÓM TẮT Hệ thống ball and beam hệ thống đƣợc sử dụng nhiều phòng thí nghiệm, đƣợc sử dụng để kiểm chứng tính xác thực giải thuật tuyến tính lẫn phi tuyến, cổ điển nhƣ đại Hệ thống bao gồm động DC, banh máng trƣợt, dây điện trở, Encoder gắn đồng trục với động Trong luận văn học viên xem xét giải vấn đề liên quan đến hệ bóng Do tồn lực ma sát lăn, nên đáp ứng hệ thống đạt đƣợc mức độ tƣơng đối Hệ ball and Beam trục lệch đòi hỏi thách thức điều khiển so với Ball and Beam trục thân hệ thống không ổn định vị trí mà phải tính toán trƣớc lực để ổn định ban đầu cho thống Hơn banh có xu hƣớng lăn tự nên việc cho banh cân khó banh có xu hƣớng lệch khỏi vị trí cân cao Nếu nhƣ cảm biến vị trí dây điện trở không xác làm cho viên bi định vị không vị trí dẫn đến sai số lớn cân Trong luận văn học viên thiết kế cấu trúc điều khiển PID khác nhau, ứng dụng giải thuật di truyền tìm kiếm tối ƣu hóa điều khiển có cấu trúc PID khác Sau áp dụng cấu trúc điều khiển PID tối ƣu thông qua kiểm chứng GA mô hình bóng thực tế iv HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ ABSTRACT Ball and beam system is a system that is used a lot in the lab, it can be used to verify the authenticity of the algorithm linear and nonlinear, as well as a modern classic The system consists of DC motors, ball slides, resistance wire, coaxial encoder attached to the motor In this thesis students will consider and resolve issues related to ball bar system Due to the existence of rolling friction, so the response of the system to achieve a relatively high level Ball and Beam System axis deviation requires control challenges than Ball and Beam axis between the system itself is not stable in position which must be calculated before an initial force to stabilize the system Furthermore, because the ball tends to roll up the freedom to balance the ball very hard and the ball tends to deviate from the equilibrium position is very high If the position sensor wires or incorrectly will cause the balls are not in place leading to significant error and imbalance In this thesis students design the PID control structures are different, the application of genetic algorithms in search and optimize the PID controller is structured differently Then apply PID control structure optimal GA verified through ball bar on the actual model v HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ MỤC LỤC LÝ LỊCH KHOA HỌC i LỜI CAM ĐOAN ii LỜI CẢM ƠN iii TÓM TẮT .iv MỤC LỤC vi DANH SÁCH CÁC HÌNH viiix DANH SÁCH CÁC BẢNG xi DANH SÁCH CÁC CHỮ VIẾT TẮT xii Chƣơng TỔNG QUAN .1 1.1.Tổng quan đề tài 1.1.1 Đặt vấn đề 1.1.2 Tổng quan hệ thống Ball and Beam 1.1.3 Các đề tài nghiên cứu hệ thống Ball and Beam 1.1.3.1 Tình hình nghiên cứu nƣớc .4 1.1.3.2 Tình hình nghiên cứu nƣớc 1.2.Mục tiêu luận văn .8 1.3.Nhiệm vụ đề tài 1.4.Phƣơng pháp thực 1.5.Nội dung luận văn .9 1.6.Ý nghĩa thực tiễn đề tài .10 Chƣơng CƠ SỞ LÝ THUYẾT 11 2.1 Mô hình toán học hệ bóng 11 2.2 Điều khiển PID cho hệ bóng .15 2.2.1 Giới thiệu .15 2.2.2 Vấn đề chỉnh định cho PID 16 2.2.3 Lƣu đồ điều khiển cho PID số 16 2.2.4 Ứng dụng điều khiển PID cho hệ bóng 18 2.3 Điều khiển PID mờ cho hệ bóng 19 2.3.1 Tổng quan điều khiển PID mờ .19 2.3.2 Ứng dụng điều khiển PID mờ cho hệ bóng .20 2.4 Giải thuật di truyền tối ƣu hóa hệ thống .22 2.4.1 Tổng quan giải thuật di truyền 22 2.4.2 Mã hóa – giải mã 24 vi HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ 2.4.3 Hàm thích nghi 25 2.4.4 Chọn lọc 26 2.4.4.1 Chọn lọc tự nhiên 26 2.4.4.2 Qui trình chọn lọc hạng tuyến tính 26 2.4.5 Lai ghép .27 2.4.5.1 Phép lai điểm 27 2.4.5.2 Lai ghép nhiều điểm .27 2.4.5.3 Lai ghép 28 2.4.6 Đột biến .28 2.4.6.1 Đột biến điểm 29 2.4.6.2 Đột biến nhiều điểm .29 2.4.7 Các thông số giải thuật di truyền 29 2.4.7.1 Kích thƣớc quần thể .29 2.4.7.2 Xác xuất lai ghép 29 2.4.7.3 Xác xuất đột biến 30 2.4.8 Ứng dụng giải thuật tối ƣu hóa điều khiển 30 Chƣơng KẾT QUẢ MÔ PHỎNG 33 3.1 Xây dựng đối tƣợng mô .33 3.2 Điều khiển PID lặp vòng 34 3.3 Điều khiển PID thỏa hiệp .37 3.4 Điều khiển PID FUZZY lặp vòng : .39 3.5 Điều khiển PIDFUZZY thỏa hiệp 41 3.6 Kết luận 43 Chƣơng 4: MÔ HÌNH THỰC TẾ 45 4.1 Giới thiệu mô hình thực tế 45 4.2 Cảm biến: 47 4.2.1 Encoder 47 4.2.2 Cảm biến dây điện trở 49 4.3 Động 50 4.4 Mạch điện .50 4.4.1 DSP TMS320F28335 50 4.4.2 Cầu H 51 4.4.3 Nguồn 52 4.5 Phần mềm lập trình 53 4.6 Chƣơng trình lập trình 55 4.7 Kết thực tế 56 vii HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ 4.8 Kết luận 62 Chƣơng 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 63 5.1 Kết luận 63 5.1.1 Những nhiệm vụ hoàn thành 63 5.1.2 Những hạn chế 63 5.1.3 Kết luận .63 5.2 Hƣớng phát triển .64 TÀI LIỆU THAM KHẢO .65 PHỤ LỤC 67 viii HVTH:NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ a5=par(bestchrom,5) a6=par(bestchrom,6) b1=par(bestchrom,7) b2=par(bestchrom,8) b3=par(bestchrom,9) b4=par(bestchrom,10) b5=par(bestchrom,11) b6=par(bestchrom,12) J=1/bestfit(end) sim('mpGA_PIDFUZZY_cach1.mdl'); Chƣơng trình chạy GA PID fuzzy thỏa hiệp hình 3.11 clc; clear all rand('state',sum(100*clock)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% m=60.47*10^-3; R=2.46*10^-2/2; d=0.075; g=9.81; L=0.55; Jb=2/5*m*R^2; Kb=0.0535; Rm=3.5; La=0.9*10^-3; M=346.6*10^-3; J1=M*L^2/3; Kg=7.5; Jm=0.049*10^-4; Km=0.053; Bm=5*10^-4; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% I1=1/2*(307.06*10^-3)*(8*10^-2)^2; PHỤ LỤC 80 HVTH: NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ I2=1/2*(122.43*10^-3)*(3.4*10^-2)^2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Jm=Jm+I1+I2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% K1=Rm*Jm*L/Km/Kg/d+J1; K2=L/d*(Km*Kb/Rm+Kb+Rm*Bm/Km/Kg); K3=1+Km/Rm; K4=7/5; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% max_generation=20000; max_stall_generation=50000; epsilon=0.0001; pop_size=20; npar = 12; range=[ 0 0 0 0 0 0 ; 10 10 10 10 10 10 100 100 100 100 100 100 ]; dec=[ 1 1 1 2 2 2]; sig=[ 3 3 3 4 4 4]; cross_prob = 0.5; mutate_prob = 0.5; elitism = 1; rho=0.02; % Khởi động ngẫu nhiên hệ par=Init(pop_size,npar,range); Terminal=0; generation = 0; stall_generation=0; % Đánh giá độ thích nghi quần thể ban đầu for pop_index=1:pop_size, a1=par(pop_index,1); a2=par(pop_index,2); a3=par(pop_index,3); PHỤ LỤC 81 HVTH: NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ a4=par(pop_index,4); a5=par(pop_index,5); a6=par(pop_index,6); b1=par(pop_index,7); b2=par(pop_index,8); b3=par(pop_index,9); b4=par(pop_index,10); b5=par(pop_index,11); b6=par(pop_index,12); sim('mpGA_PIDFUZZY_cach2.mdl'); if length(e1)>9500 J=e1'*e1+e2'*e2; fitness(pop_index)=1/(J+eps); else J=10^100; fitness(pop_index)=1/(J+eps); end end; [bestfit,bestchrom]=max(fitness); J0=1/bestfit+0.001; Jmin=4000000; while ~Terminal, generation = generation+1; disp(['generation #' num2str(generation) ' of maximum ' num2str(max_generation)]); % Mã hóa thập phân pop=Encode_Decimal_Unsigned(par,sig,dec); % Chọn lọc hạng tuyến tính parent=Select_Linear_Ranking(pop,fitness,0.2,elitism,bestchrom); % Lai ghép hai điểm child=Cross_Twopoint(parent,cross_prob,elitism,bestchrom); % Đột biến pop=Mutate_Uniform(child,mutate_prob,elitism,bestchrom); PHỤ LỤC 82 HVTH: NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ % Giải mã thập phân par=Decode_Decimal_Unsigned(pop,sig,dec); % Đánh giá lại độ thích nghi quần thể for pop_index=1:pop_size, a1=par(pop_index,1); a2=par(pop_index,2); a3=par(pop_index,3); a4=par(pop_index,4); a5=par(pop_index,5); a6=par(pop_index,6); b1=par(pop_index,7); b2=par(pop_index,8); b3=par(pop_index,9); b4=par(pop_index,10); b5=par(pop_index,11); b6=par(pop_index,12); sim('mpGA_PIDFUZZY_cach2.mdl'); J=(e1'*e1)+(e2'*e2); if (length(e1)>9500)&&(J1, if abs(bestfit(generation)-bestfit(generation-1))k2, t=k2; k2=k1; k1=t; end; child(p1,1:k1)=parent(p1,1:k1); child(p1,k1+1:k2)=parent(p2,k1+1:k2); child(p1,k2+1:chrom_len)=parent(p1,k2+1:chrom_len); else child(p1,:)=parent(p1,:); end end end %Đột biến function newpop=Mutate_Uniform(pop,mutate_prob,elitism,bestchrom) if (nargin < 4), error(['Too few input arguments.']); end; PHỤ LỤC 86 HVTH: NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ [pop_size,chrom_len]=size(pop); newpop=pop; for pop_index= 1:pop_size, if (elitism==0) || (elitism==1 && pop_index~=bestchrom), for gene_index = 1:chrom_len, if mutate_prob > rand % If true then mutate rand_gene=rand*10; % Creat a random gene while(pop(pop_index,gene_index)==rand_generem(rand_gene,1)|rand_gene==10), rand_gene=rand*10; end; newpop(pop_index,gene_index)=rand_gene-rem(rand_gene,1); end end end end %Giải mã thập phân function par=Decode_Decimal_Unsigned(pop,sig,dec) if (nargin < 3), error(['Too few input arguments Use: PAR=decode(POP,SIG,DEC)']); end; if size(sig)~=size(dec), error(['Mismatch between SIG and DEC']); end; [pop_size,chrom_len]=size(pop); npar=length(sig); if chrom_len~=sum(sig), error(['Mismatch between chromosome length and SIG']); end par=zeros(pop_size,npar); for pop_index = 1:pop_size, start_gene = 0; for par_index = 1:npar, for count=1:sig(par_index), gene_index=start_gene+count; weight=dec(par_index)-count; par(pop_index,par_index)=par(pop_index,par_index)+(pop(pop_index,gene_index))*1 0^weight; end start_gene=start_gene+sig(par_index); end end Các hàm S-Function sử dụng chƣơng trình %Đo vị trí bi function y = fcn(u) PHỤ LỤC 87 HVTH: NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ y=(0.56-u/4095*0.56)*100; end %Chƣơng trình bên khối S-Function Builder ”vitri“ long x; x =in[0]*100; out[6]= x%10 +48; x/=10; out[5]= x%10 +48; x/=10; out[4]= 46; out[3]= x%10 +48; x/=10; out[2]= x%10 +48; x/=10; out[1]= x%10 +48; x/=10; out[0]= x%10 +48; % Điều kiện để dừng chƣơng trình function y = fcn(e1,e2) if (abs(e1)>(3))||(abs(e2)>(3)) y=1; else y=0; end %Đo vị trí góc lệch beam function y_out = fcn(u) x=((15/3000)*u)-15; if x>100 y_out=-16; else y_out=x; end %Chƣơng trình bên khối S-Function Builder ”góc“ long x; x =in[0]; if (x>0) out[0]='+'; else {out[0]='-'; x=-x;} out[6]=';'; out[5]= x%10 +48; x/=10; out[4]= x%10 +48; x/=10; out[3]= x%10 +48; x/=10; out[2]= x%10 +48; x/=10; PHỤ LỤC 88 HVTH: NGUYỄN SƠN HÀ GVHD: PGS.TS TRẦN THU HÀ out[1]= x%10 +48; %Chƣơng trình bên khối S-Funtion Builder ”dienap“ long x; x =in[0]; if (x>0) out[0]='+'; else {out[0]='-'; x=-x;} out[6]=';'; out[5]= x%10 +48; x/=10; out[4]= x%10 +48; x/=10; out[3]= x%10 +48; x/=10; out[2]= x%10 +48; x/=10; out[1]= x%10 +48; %Chƣơng trình bên khối PID function [P_WM,rev]= fcn(voltage,rev_before) if voltage>20 x=20; elseif voltage

Ngày đăng: 20/08/2016, 23:49

Từ khóa liên quan

Mục lục

  • 1.pdf

    • Page 1

    • 2.pdf

    • 3.pdf

    • 4 BIA SAU A4.pdf

      • Page 1

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

Tài liệu liên quan