Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
1,26 MB
Nội dung
Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀO NGUYỄN BÌNH AN ĐIỀU KHIỂN MỜ THÍCH NGHI ROBOT Chun ngành : ĐIỀU KHIỂN HỌC KỸ THUẬT Mã số nghành: 2.05.01 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 10 năm 2005 CƠNG TRÌNH ĐƯỢC HOÀ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 : PGS.TS NGUYỄN THỊ PHƯƠNG HÀ Cán chấm nhận xét : Cán chấm nhận xét : Luận văn thạc sĩ 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 tháng năm TRƯỜNG ĐẠI HỌC BÁCH KHOA PHÒNG ĐÀO TẠO SÑH - CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP – TỰ DO – HẠNH PHUÙC Tp.HCM, ngày… tháng… năm 20… NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Đào Nguyễn Bình An phái : Nam Ngày, tháng, năm sinh: 17/12/1979 nới sinh: Tp Hồ Chí Minh Chuyên ngành: ĐIỀU KHIỂN HỌC KỸ THUẬT MSHV: DKKT13.001 I - Tên đề tài: ĐIỀU KHIỂN MỜ THÍCH NGHI ROBOT II- Nhiệm vụ nội dung: Tìm hiểu Acrobot, lý thuyết điều khiển mờ thích nghi, thực mô điều khỉên Acrobot III- Ngày giao nhiệm vụ: 2/2005 IV- Ngày hoàn thành nhiệm vụ: 11/2005 V- Họ tên cán hướng dẫn: PGS.TS NGUYỄN THỊ PHƯƠNG HÀ CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH PGS.TS Nguyễn Thị Phương Hà Nội dung Đề cương Luận Văn Thạc Só Hội Đồng Chuyên Nghành thông qua ngày… tháng … năm 20 PHÒNG ĐÀO TẠO SĐH KHOA QUẢN LÝ NGÀNH trang LỜI CẢM ƠN Xin gửi lời cảm ơn trân trọng đến PGS.TS Nguyễn Thi Phương Hà tận tình hướng dẫn giúp đỡ suốt trình học tập thực đề tài để luận văn hoàn thành cách tốt Xin chân thành cảm ơn giảng viên Bộ môn truyền đạt kiến thức quý giá giúp đỡ nhiệt tình suốt trình học làm luận văn Cảm ơn Bạn học khoá Cao học 13, học viên khoá trước đóng góp nhiều ý kiến hữu ích trình học tập Và cuối cùng, cảm ơn động viên, chăm sóc, giúp đỡ gia đình suốt trình học Cao Học trang TÓM TẮT NỘI DUNG LUẬN VĂN Luận văn thạc só tìm hiểu điều khiển cho đối tượng phi tuyến, mức tác động Acrobot Mục tiêu điều khiển đưa Acrobot từ vị trí cân bền lên vị trí cân ngược ( không bền) Trên sở tìm hiểu đặc tính động học Acrobot điều khiển nhiều tác giả thiết kế, số điều khiển thiết lập: tuyến tính hoá/LQR , mờ trực tiếp, FMRLC để điều khiển Acrobot Kết qủa điều khiển hoạt động toàn hệ thống kiểm chứng qua việc mô Matlab, từ rút kết luận so sánh Luận văn Thạc Só cố gắng để hoàn thành cách tốt nhất, chắn không tránh khỏi nhiều thiếu sót, bất cập, cụ thể việc chứng minh, tìm hiểu ổn định hệ thống lý thuyết Do đó, việc nghiên cứu sâu để chứng minh ổn định, tìm điều khiển ưu việt trang MỤC LỤC Trang Lời cảm ơn Tóm tắt nội dung luận văn CHƯƠNG 1: GIỚI THIỆU CHƯƠNG 2: GIỚI THIỆU ACROBOT 2.1 Mô tả Acrobot .8 2.2 Thiết lập Phương trình động học Acrobot 10 2.3 Mô Acrobot Matlab .14 CHƯƠNG 3: MỘT SỐ LÝ THUYẾT LIÊN QUAN: TUYẾN TÍNH HOÁ, MỜ 19 3.1 Tuyến tính hoá mô hình trạng thái .20 3.2 Cấu trúc đìêu khiển mờ 25 3.3 Thiết kế điều khiển mờ 31 3.4 Cấu trúc điều khiển mờ thông minh 32 CHƯƠNG 4: BỘ ĐIỀU KHIỂN FMRLC .39 4.1 Mô tả điều khiển FMRLC .40 4.2 Các bước thiết kế điều khiển FMRLC 49 CHƯƠNG 5: THIẾT KẾ CÁC BỘ ĐIỀU KHIỂN 52 5.1 Bộ điều khiển giữ cân LQR .53 5.2 Bộ điều khiển cân Mờ trực tiếp 55 5.3 Bộ điều khiển cân FMRLC 60 5.4 Bộ điều khiển dựng dứng PD 64 trang CHƯƠNG 6: MÔ HÌNH MÔ PHỎNG VÀ KẾT QUẢ 66 6.1 Thông số mô hình Acrobot 67 6.2 Mô điều khiển cân LQR 67 6.3 Mô điều khiển cân Mờ trực tiếp .70 6.4 Mô điều khiển cần FMRLC 72 6.5 Mô điều khiển dựng đứng PD 74 6.6 Hoạt động điều khiển cân điều kiện có nhieãu 77 CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 81 7.1 KẾT LUAÄN 82 7.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 83 PHỤ LỤC: A CÁC ĐOẠN CHƯƠNG TRÌNH 84 B TÀI LIỆU THAM KHẢO trang CHƯƠNG 1: GIỚI THIỆU Hệ thống mức tác động hệ thống hoạt động với số lượng phận tác động bậc tự Những hệ thống loại thực công việc phức tạp với số lượng nhỏ phận tác động có ưu trọng lượng, giá thành, hiệu mặt lượng có độ tin cậy cao Vì lợi điểm trên, hệ thống mức tác động quan tâm đáng kể nhà nghiên cứu Tuy nhiên, phức tạp chất phi tuyến, việc điều khiển hệ thốngloại khó khăn Acrobot điển hình hệ thống loại Acrobot từ chữ Acrobat nghóa người nghệ só biểu diễn đu bay Acrobot mô lại động tác giữ cân vị trí cân ngược (còn gọi nôm na trồng chuối) người nghệ só phải dùng lực eo, hông để đung đưa vài lần quanh vị trí cân dụng đứng lên giữ cân vị trí ngược Trong lúc thực động tác, người nghệ só dùng lực hông, eo để thực phần khác thể phần thân trên( từ hông trở lên) phần thân (từ hông trở xuống) giữ thẳng Acrobot mô tương tự gồm hai khâu nối với khớp có gắn động để mô lực eo hông khớp quay tự Mục tiêu điều khiển dựng đứng giữ Acrobot vị trí cân ngược Đã có nhiều phương pháp, cách tiếp cận để điều khiển Acrobot Ví dụ, Hauser Murray [4] Bortoff Spong [5] nghiên cứu vấn đề giữ cân Acrobot vị trí cân ngược phương pháp xấp xỉ phi tuyến trang giả tuyến tính Bertemerier Fearing [6] nghiên cứu ứng dụng điều khiển phi tuyến để thực điều khiển trượt Lee Smith [8] mô tả phương pháp điều khiển mờ cách kết hợp thuật toán di truyền, hệ mờ thuật meta-rule để tự thiết kế chỉnh định điều khiển mờ Thuật toán di truyền sử dụng kết điều khiển PD Tuy nhiên, phương pháp phức tạp Spong [10,11,12] mô tả phương pháp tuyến tính LQR để giữ cân Ý tưởng để dựng đứng Acrobot dùng điều khiển bên để tác động vào khâu hai làm cho biên độ dao động khâu tăng lên sau lần khâu hai lắc Tuy nhiên, luật điều khiển dựng đứng dựa nguyên tắc tăng lượng cho hai khâu (tùy theo cách thiết kế) điều dẫn đến không hẳn lượng Acrobot tăng Bên cạnh đó, vùng giữ cân LQR hẹp Luận văn đề cập đến phương pháp khác để giữ cân cho Acrobot thích nghi dùng điều khiển FMRLC so sánh kết với điều khiển LQR, điều khiển mờ trực tiếp Bộ điều khiển FMRLC thiết kế hi vọng đạt mục tiêu: • có phạm vi giữ thăng tốt • khả chống nhiễu Luận văn gồm phần: • Giới thiệu Acrobot, đặc tính động học mô • Các lý thuyết liên quan • Thiết kế điều khiển • Mô kết • Kết luận trang CHƯƠNG 2: GIỚI THIỆU ACROBOT trang 81 CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI trang 82 7.1 KẾT LUẬN: Quá trình điều khiển Acrobot từ vị trí cân bền lên vị trí cân ngược cần phải có điều khiển riêng biệt Bộ điều khiển LQR hoàn thành nhiệm vụ giữ cân cho Acrobot phạm vi điều chỉnh hẹp dễ bị ảnh hưởng nhiễu Thêm vào việc tuyến tính hoá mô hình không đơn giản, đòi hỏi phải có thông số xác mô hình Như thực tế với can thiệp thành phần ma sát, sai số đo đạt thông số mô hình… hoạt động điều khiển LQR bị ảnh hưởng nghiêm trọng Bộ điều khiển mờ trực tiếp trội với dụng khác là: không cần phải biết thông số mô hình cụ thể, dễ thiết lâp… Acrobot dường đặc điểm bởi: (1) thất bại tự tìm luật điều khiển, (2) phải dựa vào LQR để tìm điều khiển mờ thích hợp, (3) hoạt động với tín hiệu nhiễu thí nghiệm, (4) không tăng phạm vi điều khiển so với LQR Bộ điều khiển FMRLC tỏ trội việc giữ cân chống nhiễu, phạm vi điều khiển tăng đôi chút Điều lý giải cách đơn giản: (1) FMRLC thừa hưởng kinh nghiệm từ LQR thông qua giá trị ban đầu giá trị trung tâm hàm liên thuộc ngõ điều khiển mờ trực tiếp, (2) FMRLC cải tiến từ mô hình điều khiển mờ trực tiếp cách thêm vào đặc tính thích nghi theo mô hình tham khảo FMRLC khía cạnh khác không điều khiển LQR: đáp ứng hệ thống không trơn tru LQR trang 83 7.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI: Tuy mô cho thấy điều khiển hoạt động tốt tồn số điểm: Sự ổn định hệ thống cần khảo sát, chứng minh cách rõ ràng có vị trí ban đầu làm cho điều khiển không ổn định, cần cải tiến để điều khiển khắc phục nhược điểm Cải thiện thời gian điều khiển Acrobot từ vị trí cân bền lên đến vị trí thích hợp để giữ cân ngược cách tìm cải tiến điều khiển dựng đứng Acrobot Trang 84 TÌM MA TRẬN K: %parameters m1=1.9008; m2=0.7175; l1=0.2; l2=0.2; lc1=1.8552E-1; lc2=6.2054E-2; I1=4.3399E-3; I2=5.2285E-3; g=9.81; %finding state equation syms d11 d12 d22; syms h1 h2 theta1 theta2 T; syms q1 Q1 q2 dq1 dq2 ddq1 ddq2; equ1= ' d11 * ddq1 + d12 * ddq2 + h1 + theta1 = 0'; equ2= ' d12 * ddq1 + d22 * ddq2 + h2 + theta2 = T'; [Ddq1,Ddq2]=solve(equ1, equ2 , ddq1, ddq2); digits(4); D11= m1*lc1^2 + m2*( l1^2 + lc2^2 + 2*l1*lc2*cos(q2))+I1+I2; D22= m2*lc2^2 + I2; D12= m2*(lc2^2 + l1*lc2*cos(q2)) + I2; H1 = -m2*l1*lc2*sin(q2)*dq2^2 - 2*m2*l1*lc2*sin(q2)*dq2*dq1; H2 = m2*l1*lc2*sin(q2)*dq1^2; Theta1=(m1*lc1 + m2*l1)*g*cos(q1) + m2*lc2*g*cos(q1+q2); Trang 85 Theta2=m2*lc2*g*cos(q1+q2); D11=vpa(D11); D22=vpa(D22); D12=vpa(D12); H1=vpa(H1); H2=vpa(H2); Theta1=vpa(Theta1); Theta2=vpa(Theta2); %finding linearized model f1=subs(Ddq1,{d11,d22,d12,h1,h2,theta1,theta2},{D11,D22,D12,H1,H2,Thet a1,Theta2}); f1=subs(f1,q1,Q1+pi/2); f2=subs(Ddq2,{d11,d22,d12,h1,h2,theta1,theta2},{D11,D22,D12,H1,H2,Thet a1,Theta2}); f2=subs(f2,q1,Q1+pi/2); df1q1=diff(f1,Q1); df1q2=diff(f1,q2); df2q1=diff(f2,Q1); df2q2=diff(f2,q2); K=[]; x={0,1,0,0,0}; a31=vpa(subs(df1q1,{Q1,q2,dq1,dq2,T},x)); a32=vpa(subs(df1q2,{Q1,q2,dq1,dq2,T},x)); a41=vpa(subs(df2q1,{Q1,q2,dq1,dq2,T},x)); a42=vpa(subs(df2q2,{Q1,q2,dq1,dq2,T},x)); Trang 86 A=double( [ 0 0; 0 ; a31 a32 0; a41 a42 0]); df1T=diff(f1,T); df2T=diff(f2,T); b3=vpa(subs(df1T,{Q1,q2,dq1,dq2,T},x)); b4=vpa(subs(df2T,{Q1,q2,dq1,dq2,T},x)); B=double( [0 b3 b4]'); C=[1 0 ; 0; 0 0; 0 1]; D=[0 0 0]'; acrlin=ss(A,B,C,D); Q=[1000 -500 0; -500 1000 0; 0 1000 -500; 0 -500 1000]; R=[10000]; K=[LQR(A,B,Q,R)] ĐIỀU KHIỂN MỜ TRỰC TIẾP: function [sys,x0,str,ts] = FC_Pass_sf(t,x,u,flag,Params,FCPass) %TIMESTWO S-function whose output is two times its input % This M-file illustrates how to construct an M-file S-function that % computes an output value based upon its input The output of this % S-function is two times the input value: % % y = * u; % % See sfuntmpl.m for a general S-function template % % See also SFUNTMPL Trang 87 % Copyright 1990-2002 The MathWorks, Inc % $Revision: 1.7 $ % % Dispatch the flag The switch function controls the calls to % S-function routines at each simulation stage of the S-function % switch flag, %%%%%%%%%%%%%%%%%% % Initialization % %%%%%%%%%%%%%%%%%% % Initialize the states, sample times, and state ordering strings case [sys,x0,str,ts]=mdlInitializeSizes; %%%%%%%%%%% % Outputs % %%%%%%%%%%% % Return the outputs of the S-function block case sys=mdlOutputs(t,x,u,Params,FCPass); %%%%%%%%%%%%%%%%%%% % Unhandled flags % %%%%%%%%%%%%%%%%%%% % There are no termination tasks (flag=9) to be handled Trang 88 % Also, there are no continuous or discrete states, % so flags 1,2, and are not used, so return an emptyu % matrix case { 1, 2, 4, } sys=[]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Unexpected flags (error handling)% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return an error message for unhandled flag values otherwise error(['Unhandled flag = ',num2str(flag)]); end % end timestwo % %====================================================== % mdlInitializeSizes % Return the sizes, initial conditions, and sample times for the S-function %====================================================== % function [sys,x0,str,ts] = mdlInitializeSizes() sizes = simsizes; Trang 89 sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs sizes.NumInputs = 1; % dynamically sized = 4; % dynamically sized sizes.DirFeedthrough = 1; % has direct feedthrough sizes.NumSampleTimes = 1; sys = simsizes(sizes); str = []; x0 = []; ts = [-1 0]; % inherited sample time % end mdlInitializeSizes %====================================================== % mdlOutputs % Return the output vector for the S-function %====================================================== function sys = mdlOutputs(t,x,u,Params,FCPass) x=[u(1) u(2) u(3) u(4)]'; if abs(x(1))>1 x(1)=sign(x(1)*0.99); end if abs(x(2))>1 x(2)=sign(x(2)*0.99); end if abs(x(3))>1 x(3)=sign(x(3)*0.99); end if abs(x(4))>1 x(4)=sign(x(4)*0.99); end temp=test(x,Params,FCPass); sys = temp;% end mdlOutputs Trang 90 TẠO CÁC LUẬT MỜ CHO BỘ ĐIỀU KHIỂN MỜ TRỰC TIẾP: a=-1; b=1; nMfIn=13; nMfOut=49; mftype={}; mftype{1,1}='trapmf'; for i=2:(nMfIn-1) mftype{i,1}='trimf'; end mftype{nMfIn,1}='trapmf'; mfparam={}; aaa=(b-a)/(nMfIn-1); mfparam{1,1}=[-1 -1 a a+aaa]; for i=2:(nMfIn-1) mfparam{i,1}=[(i-2)*aaa+a (i-1)*aaa+a i*aaa+a]; end mfparam{nMfIn,1}=[(nMfIn-2)*aaa+a b 1]; mftype{1,2}='trapmf'; for i=2:(nMfOut-1) mftype{i,2}='trimf'; end Trang 91 mftype{nMfOut,2}='trapmf'; imax=(nMfOut-1)/2; z=0.8; mfparam{1,2}=[-1 -1 mfout(-imax,imax,z) mfout(-imax+1,imax,z)]; for i=(-imax+1):(imax-1) mfparam{i+imax+1,2}=[mfout(i-1,imax,z) mfout(i,imax,z) mfout(i+1,imax,z)]; end mfparam{nMfOut,2}=[mfout(imax-1,imax,z) mfout(imax,imax,z) 1];; FCPass=newfis('FCPass'); FCPass.input(1).name='x1'; FCPass.input(1).range=[-1 1]; for i=1:13 FCPass.input(1).mf(i).name=num2str(i); FCPass.input(1).mf(i).type=mftype{i,1}; FCPass.input(1).mf(i).params=mfparam{i,1}; end FCPass.input(2).name='x2'; FCPass.input(2).range=[-1 1]; Trang 92 for i=1:13 FCPass.input(2).mf(i).name=num2str(i); FCPass.input(2).mf(i).type=mftype{i,1}; FCPass.input(2).mf(i).params=mfparam{i,1}; end FCPass.input(3).name='x3'; FCPass.input(3).range=[-1 1]; for i=1:13 FCPass.input(3).mf(i).name=num2str(i); FCPass.input(3).mf(i).type=mftype{i,1}; FCPass.input(3).mf(i).params=mfparam{i,1}; end FCPass.input(4).name='x4'; FCPass.input(4).range=[-1 1]; for i=1:13 FCPass.input(4).mf(i).name=num2str(i); FCPass.input(4).mf(i).type=mftype{i,1}; FCPass.input(4).mf(i).params=mfparam{i,1}; end FCPass.output(1).name='u'; Trang 93 FCPass.output(1).range=[-1 1]; for i=1:49 FCPass.output(1).mf(i).name=num2str(i); FCPass.output(1).mf(i).type=mftype{i,2}; FCPass.output(1).mf(i).params=mfparam{i,2}; end Params={nMfIn,nMfOut,mfparam,mftype}; trang 94 TÀI LIỆU THAM KHAÛO [1] The Swingup Control Problem for the Acrobot – Mark W.Spong [2] Intelligent Control for Swing up and Balancing of an Inverted Pendulum System – Moeljono Widjaja, Stephen Jurkovich [3] A Fuzzy Control Strategy for Acrobots Combining Model-Free and Model- Based Control - Xuzhi Lai , Jin-Hua She, Yasuhiro Ohyama and Zixing Cai - IEE Proceedings Control Theory and Applications 1999 [4] Motion Control of Acrobots Using Fuzzy and Sliding-Mode Control Strategy - Xuzhi Lai, Zixing Cai, and Jin-Hua She - Proceedings of the 3rd Asian Control Conference, July, 4-7, 2000 [5] Intelligent Control for an Acrobot – Scott C.Brown and Kevin M.Passino [6] Adaptive Fuzzy Control: Experiments and Comparative Analyses – Raul Ordonez, Jon Zumberge, Jeffrey T.Spooner, Kevin M.Passino [7] Direct Adaptive Fuzzy Control Of Nonlinear System Class With Application - H Chekireb, M Tadjine, and D Bouchara - Control and Intelligent Systems, Vol 31, No 2, 2003 [8] Adaptive Fuzzy Sliding Mode Motion Control of Robot Manipulator – Andreja Rojko, Karel Jezernik [9] Adaptive Tracking Control for Both Constraned and Coordinated Manipulator Systems – Chian-Song Chiu and Kuang-Yw Lian – Proceedings of 38th Conference on Decision and Control [10] Feedback Control of Dynamic Systems – Gene F.Franklin, J.David Powell, Abbas Emani Naeimi – Addison-Wesley Publishing Company Company 1991 [11] Nonlinear Systems – Hassan K.Khalli – Prentice Hall 2002 trang 95 [12] Fuzzy Set and Fuzzy Logic – Geoge J.Klir and Bo Yuan – Prentice Hall 1995 [13] Fuzzy Logic with Engineering Applications – Timothy J.Ross – Mc Graw- Hill 1995 [14] A Course in Fuzzy, Systems and Control – Prentice Hall 1997 ... ngành: ĐIỀU KHIỂN HỌC KỸ THUẬT MSHV: DKKT13.001 I - Tên đề tài: ĐIỀU KHIỂN MỜ THÍCH NGHI ROBOT II- Nhiệm vụ nội dung: Tìm hiểu Acrobot, lý thuyết điều khiển mờ thích nghi, ... đưa hệ tự thích nghi trở thành hệ điều khiển thông minh So với điều khiển kinh điển, điều khiển mờ có nhiều tham số nên miền chỉnh định cho hệ mờ định hướng thích nghi lớn 3.4.1 Thích nghi trực... tín hiệu điều khiển bước trước trang 37 3.4.4 Bộ điều khiển mờ lai: Bộ điều khiển mờ lai (Fuzzy-hybrid) điều khiển tự động thiết bị điều khiển bao gồm hai phần : a phần thiết bị điều khiển kinh