1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural

84 15 0

Đ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

Nội dung

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH TRẦN VĂN THIỆN ĐIỀU KHIỂN THÍCH NGHI CHO HỆ OMNI ROBOT SỬ DỤNG GIẢI THUẬT PID NEURAL Chuyên ngành KỸ THUẬT ĐIỆN TỬ Mã chuyên ngành 60520203 LUẬN VĂN THẠC SĨ THÀNH PHỐ HỒ CHÍ MINH, NĂM 2019 ii TÓM TẮT LUẬN VĂN THẠC SĨ Trong luận văn này trình bày một bộ điều khiển bám thích nghi PID Neural để kiểm soát quỹ đạo của robot Omni 3 bánh Khi robot di chuyển sẽ chịu tác động của một số thành phần không chắc chắn của mô hình, các nhiễu c.

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH TRẦN VĂN THIỆN ĐIỀU KHIỂN THÍCH NGHI CHO HỆ OMNI ROBOT SỬ DỤNG GIẢI THUẬT PID-NEURAL Chuyên ngành: KỸ THUẬT ĐIỆN TỬ Mã chuyên ngành: 60520203 LUẬN VĂN THẠC SĨ THÀNH PHỐ HỒ CHÍ MINH, NĂM 2019 TÓM TẮT LUẬN VĂN THẠC SĨ Trong luận văn trình bày mợt bợ điều khiển bám thích nghi PID-Neural để kiểm soát quỹ đạo robot Omni bánh Khi robot di chuyển chịu tác động một số thành phần khơng chắn mơ hình, nhiễu chưa biết, tương tác thông số hệ thống robot Mạng neural sử dụng để ước lượng thành phần không chắn nhiễu chưa biết hệ thống robot Bộ điều khiển bám thích nghi PID-Neural chứng minh ổn định qua định lý Lyapunov Hiệu bộ điều khiển kiểm chứng mô kết thực tế ii ABSTRACT This thesis presents an adaptive tracking PID-Neural controller to control the trajectory of the Omni three-wheeled robot When the robot moves, it is affected by some uncertain components of the model, unknown noise, the interaction of parameters in the robot system Neural networks are used here to estimate uncertain components and unknown noise of the robot system PID-Neural adaptive grip controller is proved stable through Lyapunov's theorem The adaptive tracking PIDNeural controller is proved stable through Lyapunov's theorem The efficiency of the controller is verified by simulation and actual results iii MỤC LỤC MỤC LỤC v DANH MỤC HÌNH ẢNH vii DANH MỤC BẢNG BIỂU ix MỞ ĐẦU 1 Đặt vấn đề Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu: Cách tiếp cận phương pháp nghiên cứu Ý nghĩa thực tiễn đề tài CHƯƠNG TỔNG QUAN 1.1 Giới thiệu robot tự hành 1.2 Giới thiệu robot omni 1.3 Các cơng trình nghiên cứu CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Cơ sở toán 2.1.1 Chuẩn (Norm) 2.1.2 Hàm liên tục 10 2.1.3 Hàm đạo hàm 10 2.1.4 Vết ma trận 10 2.2 Động lực học robot 11 2.2.1 Động lực học robot tổng quát 11 2.2.2 Động lực học cho robot Omni bánh 12 2.3 Lý thuyết ổn định Lyapunov 15 2.3.1 Giới thiệu phương pháp Lyapunov 15 2.3.2 2.3.3 2.3.4 2.3.5 Điểm cân hệ phi tuyến 16 Ổn định Lyapunov 16 Phương pháp trực tiếp Lyapunov 17 Bổ đề Barbalat 18 2.4 Mạng neural để ước lượng 18 CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN VÀ MÔ PHỎNG 21 3.1 Thiết kế bộ điều khiển PID-Neural 21 v 3.2 3.3 Mô 26 Kết mô 27 3.3.1 3.3.2 Robot hoạt động không nhiễu 28 Robot hoạt đợng có nhiễu 32 3.4 Kết luận mô 45 CHƯƠNG MƠ HÌNH THỰC NGHIỆM 46 4.1 4.2 Sơ đờ khối tồn bợ hệ thống robot 46 Mơ hình thực tế phịng thí nghiệm 47 4.3 Kết thực nghiệm: 48 4.3.1 Thực nghiệm 49 4.3.2 4.3.3 Thực nghiệm 53 Kết luận thực nghiệm 56 KẾT LUẬN VÀ KIẾN NGHỊ 57 Kết luận 57 Kiến nghị 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 61 LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN 76 vi DANH MỤC HÌNH ẢNH Hình 1.1 Robot thám hiểm hỏa Sojourner[1] Hình 1.2 (A) Seekur, (B) Pioneer 3D-X, (C) PowerBot[1] Hình 1.3 WABOT-1(A) WABOT(B)[1] Hình 1.4 WowWee Rovio[1] Hình 1.5 Phase V Robocat robot[3] Hình 1.6 Robot đá banh[4] Hình 2.1 Cấu trúc hình học Omni robot bánh 12 Hình 2.2 (A) Ổn định Lyapunov, (B) Ổn định tiệm cận Lyapunov 17 Hình 2.3 Cấu trúc mạng RBF 19 Hình 3.1 Sơ đồ khối đề xuất cho hệ thống Robot 21 Hình 3.2 Sơ đờ mơ tồn bợ hệ thống Omni robot bánh Matlab 26 Hình 3.3 Quỹ đạo robot di chuyển theo đường tròn trường hợp 28 Hình 3.4 Bám trục X robot di chuyển theo trường hợp 29 Hình 3.5 Bám trục Y robot di chuyển theo trường hợp 29 Hình 3.6 Bám góc theta robot di chuyển theo trường hợp 30 Hình 3.7 Sai số bám theo x, y, theta robot di chuyển theo trường hợp 30 Hình 3.8 Momen điều khiển robot di chuyển theo trường hợp 31 Hình 3.9 Quỹ đạo robot di chuyển theo trường hợp 32 Hình 3.10 Bám trục x robot di chuyển theo trường hợp 33 Hình 3.11 Bám trục y robot di chuyển theo trường hợp 33 Hình 3.12 Bám góc theta robot di chuyển theo trường hợp 34 Hình 3.13 Sai số bám theo x, y, theta robot di chuyển theo trường hợp 34 Hình 3.14 Momen điều khiển robot di chuyển theo trường hợp 35 Hình 3.15 Ước lượng nhiễu thơng số khơng biết trường hợp 35 Hình 3.16 Quỹ đạo robot di chuyển theo trường hợp 37 Hình 3.17 Bám trục X robot di chuyển theo trường hợp 38 Hình 3.18 Bám trục Y robot di chuyển theo trường hợp 38 Hình 3.19 Bám góc Theta robot di chuyển theo trường hợp 39 Hình 3.20 Sai số bám theo x, y, theta robot di chuyển theo trường hợp 39 Hình 3.21 Momen điều khiển robot di chuyển theo trường hợp 40 Hình 3.22 Ước lượng nhiễu thông số theo trường hợp 40 Hình 3.23 Robot bám quỹ đạo trường hợp 42 vii Hình 3.24 Đáp ứng theo trục x robot bám quỹ đạo trường hợp 42 Hình 3.25 Đáp ứng theo trục y robot bám quỹ đạo trường hợp 43 Hình 3.26 Đáp ứng theo góc theta robot bám quỹ đạo trường hợp 43 Hình 3.27 Sai số bám theo x, y, theta robot trường hợp 44 Hình 3.28 Momen điều khiển robot robot di chuyển theo trường hợp 44 Hình 4.1 Sơ đờ khối phần cứng hệ thống robot 46 Hình 4.2 Khu vực chạy thử robot 47 Hình 4.3 Robot Omni bánh thực tế 48 Hình 4.4 Giao diện Matlab 48 Hình 4.5 Quỹ đạo bám robot chạy thực nghiệm 49 Hình 4.6 Đáp ứng robot theo trục x 50 Hình 4.7 Đáp ứng robot theo trục y 51 Hình 4.8 Sai số bám theo trục x,y 51 Hình 4.9 Momen điều khiển robot theo trục x 52 Hình 4.10 Momen điều khiển robot theo trục y 52 Hình 4.11 Robot bám quỹ đạo thực nghiệm 53 Hình 4.12 Sai số bám theo trục x,y 54 Hình 4.13 Tín hiệu PWM điều khiển theo trục x 55 Hình 4.14 Tín hiệu PWM điều khiển theo trục y 55 viii DANH MỤC BẢNG BIỂU Bảng 3.1 Thơng số mơ hình robot Omni bánh 27 Bảng 3.2 Thơng số mơ hình Robot Omni bánh ban đầu 27 Bảng 3.3 MSE trình robot di chuyển theo trường hợp 31 Bảng 3.4 MSE trình robot di chuyển theo trường hợp 36 Bảng 3.5 MSE robot di chuyển theo trường hợp 41 Bảng 3.6 MSE trình robot di chuyển theo trường hợp 44 Bảng 4.1 MSE trình robot di chuyển theo thực nghiệm 53 Bảng 4.2 MSE trình robot di chuyển theo thực nghiệm 56 ix MỞ ĐẦU Đặt vấn đề Xã hội ngày phát triển, robot tự hành dần trở nên phổ biến giới Robot tự hành di chuyển từ nơi đến nơi khác một cách tự động, không cần can thiệp hay trợ giúp từ bên Robot tự hành có đặc tính đặc biệt di chuyển tự không gian làm việc xác định trước, để đạt mục tiêu đề Khả di động làm cho chúng phù hợp với nhiều ứng dụng mơi trường Muốn robot di chuyển theo mợt quỹ đạo định trước, địi hỏi phải có mợt bợ điều khiển Chất lượng bám quỹ đạo sai số quỹ đạo yêu cầu quỹ đạo chạy thực Tuy nhiên, thực tế rất khó để robot bám quỹ đạo mợt cách xác, tồn một số thành phần không chắn mơ hình robot, nhiễu chưa biết, tương tác thông số hệ thống, đặc biệt robot tăng tốc giảm tốc Để điều khiển robot di chuyển theo một quỹ đạo cách hiệu một nhiệm vụ đầy thách thức rất quan trọng Vì thế, ta cần thiết kế mợt bợ điều khiển thích nghi giúp cho chất lượng bám robot cải thiện Mục tiêu nghiên cứu Nghiên cứu phương trình đợng học, đợng lực học robot omni bánh Nghiên cứu khả học mạng neural, cụ thể dùng mạng sở xuyên tâm RBF Thiết kế bợ điều khiển thích nghi PID-Neural cho robot omni bánh, để robot di chuyển theo quỹ đạo định trước mợt cách xác Đối tượng phạm vi nghiên cứu: Mô bợ điều khiển thích nghi PID-Neural thiết kế áp dụng vào mơ hình robot omni bánh, sử dụng phần mềm Matlab/simulink Chạy thực nghiệm để kiểm chứng giải thuật phịng thí nghiệm Giao diện Guide Matlab: giám sát, điều khiển robot thông qua camera Cách tiếp cận phương pháp nghiên cứu Điều khiển Omni robot dùng thuật toán PID nhiều người sử dụng, mang lại hiểu nhất định, nhiên cịn có nhiều hạn chế việc điều khiển mợt hệ phi tuyến, đưa cách giải dùng mạng neural để ước lượng yếu tố bất định hệ phi tuyến Nghiên cứu báo, tạp chí cơng bố Xây dựng mơ hình đợng lực học robot Chứng minh tính ổn định bợ điều khiển dựa định lý Lyaponov, sau mơ Matlab Simulink để xem hoạt động bộ điều khiển thiết kế Kiểm tra chất lượng bộ điều khiển thông qua mơ hình thực tế Ý nghĩa thực tiễn đề tài Nâng cao chất lượng bộ điều khiển, giúp cho robot hoạt đợng linh hoạt xác Ứng dụng nhiều lĩnh việc điều khiển máy móc thiết bị, làm tăng śt hoạt đợng, giảm sức lao động người 'BoundingBoxOutputPort', true', 'MinimumBlobArea', 100, 'MaximumBlobArea', 3000, 'MaximumCount', 10); hshapeinsBox = vision.ShapeInserter('BorderColorSource', 'Input port', % Set box handling 'Fill', true, 'FillColorSource', 'Input port', 'Opacity', 0.4); htextinsRed = vision.TextInserter('Text', 'Red : %2d', % Set text for number of blobs 'Location', [5 2], 'Color', [1 0], // red color 'Font', 'Courier New', 'FontSize', 14); htextinsGreen = vision.TextInserter('Text', 'Green : %2d', % Set text for number of blobs 'Location', [5 18], 'Color', [0 0], // green color 'Font', 'Courier New', 'FontSize', 14); htextinsCent = vision.TextInserter('Text', '+ X:%4d, Y:%4d', % set text for centroid 'LocationSource', 'Input port', 'Color', [1 0], // yellow color 'Font', 'Courier New', 'FontSize', 14); hVideoIn = vision.VideoPlayer('Name', 'Final Video', % Output video player 'Position', [100 100 vidInfo.MaxWidth+20 vidInfo.MaxHeight+30]); nFrame = 0; % Frame number initialization %% Processing Loop while (nFrame < 200) rgbFrame = step(vidDevice); % Acquire single frame rgbFrame = flipdim(rgbFrame,1); 62 diffFrameRed = imsubtract(rgbFrame(:,:,1), rgb2gray(rgbFrame)); diffFrameRed = medfilt2(diffFrameRed, [3 3]); binFrameRed = im2bw(diffFrameRed, redThresh); diffFrameGreen = imsubtract(rgbFrame(:,:,2), rgb2gray(rgbFrame)); diffFrameGreen = medfilt2(diffFrameGreen, [3 3]); binFrameGreen = im2bw(diffFrameGreen, greenThresh); [centroidRed, bboxRed] = step(hblob, binFrameRed); centroidRed = uint16(centroidRed [centroidGreen, bboxGreen] = step(hblob, binFrameGreen); centroidGreen = uint16(centroidGreen); rgbFrame(1:50,1:90,:) = 0; vidIn = step(hshapeinsBox, rgbFrame, bboxRed, single([1 0])); % vidIn = step(hshapeinsBox, vidIn, bboxGreen, single([0 0])); % for object = 1:1:length(bboxRed(:,1)) centXRed = centroidRed(object,1); centYRed = centroidRed(object,2); vidIn = step(htextinsCent, vidIn, [centXRed centYRed], [centXRed-6 centYRed-9]); end for object = 1:1:length(bboxGreen(:,1)) centXGreen = centroidGreen(object,1); centYGreen = centroidGreen(object,2); vidIn = step(htextinsCent, vidIn, [centXGreen centYGreen], [centXGreen-6 centYGreen-9]); end tile=3.2; mang = [centXRed/tile,centYRed/tile,centXGreen/tile,centYGreen/tile,x_mouse*10,y _mouse*10]; set(handles.x_do, 'string', mang(1)); set(handles.y_do, 'string', mang(2)); set(handles.x_xanh, 'string', mang(3)); set(handles.y_xanh, 'string', mang(4)); arrayString='!'; specCharArray='@#$%^&'; 63 for i=1:length(mang) arrayString=strcat(arrayString, num2str(mang(i)),specCharArray(i)); end fprintf(s,arrayString); %arrayString %mang(1) vidIn = step(htextinsRed, vidIn, uint8(length(bboxRed(:,1)))); % Count the number of red blobs vidIn = step(htextinsGreen, vidIn, uint8(length(bboxGreen(:,1)))); % x_tam = 100*tile; y_tam =75*tile; bk=45*tile; hold on t=0:0.0008:100; x=x_tam+bk*sin(2*pi*2*t); y=y_tam+bk*cos(2*pi*2*t); % save hX.mat x x_8=x_tam+bk*sin(2*pi*2*t); y_8=y_tam+bk*cos(1*pi*2*t); %hold on plot(x,y,'b',x_tam, y_tam,'*');%Plotting sin Vs cos hold on plot(mang(1)*tile, mang(2)*tile,'b o'); % plot(x_8,y_8,x_tam, y_tam,'*');%Plotting sin Vs cos %axes(handles.axes2); cla; axes(handles.axes1); cla; imshow(vidIn); nFrame = nFrame+1; if nFrame >100 nFrame=0; end end %% Clearing Memory release(hVideoIn); % Release all memory and buffer used release(vidDevice); clear all; 64 clc;fclose(s);delete(s);close function thoat_Callback(hObject, eventdata, handles) global s; close;fclose(s);delete(s); release(hVideoIn); % Release all memory and buffer used release(vidDevice); clear all; clc; function x_do_Callback(hObject, eventdata, handles) function x_do_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function y_do_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function y_do_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function y_xanh_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function Connect_com_Callback(hObject, eventdata, handles) global s; s = serial('COM17'); set(s,'Baudrate', 19200); fopen(s); function guichuoi_Callback(hObject, eventdata, handles) global s; fprintf(s,'1234567E'); function disconnect_Callback(hObject, eventdata, handles) function figure1_WindowButtonMotionFcn(hObject, eventdata, handles) global s x_mouse y_mouse ; pos = get(hObject, 'currentpoint'); % get mouse location on figure 65 x_mouse =pos(1); y_mouse = 15- pos(2); % assign locations to x and y set(handles.lbl_x, 'string', [num2str(10*x_mouse)]); % update text for x set(handles.lbl_y, 'string', [num2str(10*y_mouse)]); % update text for y function figure1_WindowButtonUpFcn(hObject, eventdata, handles) global s; pos = get(hObject, 'currentpoint'); % get mouse location on figure x_mouse = pos(1); y_mouse = pos(2); % assign locations to x and y set(handles.lbl_last_action, 'string', [' X: ', num2str(x_mouse), ', Y: ', num2str(y_mouse)]); % fprintf(s,'1234567E'); function pushbutton11_Callback(hObject, eventdata, handles) disp('thien'); Chương trình viết cho điều khiển PID-Neural: function [sys,x0,str,ts] = bodieukhienPID_neural_omni3wheel(t,x,u,flag) switch flag, cas [sys,x0,str,ts]=mdlInitializeSizes; case 1, e 0, sys= mdlDerivatives(t, x, u); case 3, sys=mdlOutputs(t,x,u); case {2,4,9} sys=[]; otherwise error(['Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes global a b c l m Kw Kr Ke ki esi to_d D1 D2 D3 theta b= 5; % so node an c= 3;% ngo f_hat laf ngo mangj NN a = 15; % ngo vao mang l=0.5; %thong so ham RBF m=6; % ngo Kw= 7; % he so hojc cho mang Kr= 3; % he so ty le kp+kd Ke= 2; % he so ty le kp 66 ki=0; esi = 0.01; % chan tren to_d = 0.01; %chan tren sizes = simsizes; %% t?o giá tr? ??t mong mu?n sizes.NumContStates = c*b;%% b node an, g?m bi?n tr?ng thái sizes.NumDiscStates = 0; sizes.NumOutputs =7; %%%s? l??ng ngõ q q dot sizes.NumInputs = 18; %s? l??ng ngõ vào sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 0; sys = simsizes(sizes); for ii=1:c*b x0(ii)= 0; end % str = []; ts = []; function sys= mdlDerivatives(t,x,u) global a b c l m Kw Kr Ke ki esi to_d to f_hat theta D1 D2 D3 e xdat = u(1); ydat = u(2); xdat_1dot = u(4); ydat_1dot = u(5); xdat_2dot = u(7); ydat_2dot = u(8); xthuc = u(10); ythuc = u(11); xthuc_1dot = u(13); ythuc_1dot = u(14); thetadat = u(3); thetadat_1dot = u(6); thetadat_2dot = u(9); thetathuc = u(12); thetathuc_1dot = u(15); e_tichphan=[u(16);u(17);u(18)]; qd= [xdat;ydat;thetadat]; qd_1dot = [xdat_1dot;ydat_1dot;thetadat_1dot]; 67 qd_2dot = [xdat_2dot;ydat_2dot;thetadat_2dot]; qt= [xthuc;ythuc;thetathuc]; qt_1dot = [xthuc_1dot;ythuc_1dot;thetathuc_1dot]; theta = pi/2 + thetathuc; goc =1; D1= [cos(theta);sin(theta) ;goc]; D2 =(1/2)*[-cos(theta)-sqrt(3)*sin(theta);sin(theta)+sqrt(3)*cos(theta);goc]; D3 =(-1/2)*[cos(theta)-sqrt(3)*sin(theta);sin(theta)+sqrt(3)*cos(theta);goc]; e = qd - qt; e_dot = qd_1dot - qt_1dot; r=(Ke*e+e_dot+ki*e_tichphan); for j=1:1:c, for jj=1:1:b, % W(j,jj)=x(jj+(j-1)*jj); W(j,jj)=x(j*jj+(j-1)*(b-jj)); end end %% ngo vao cho mang NN 15 z= [qd_2dot(1); qd_1dot(1); qd(1); e_dot(1);e(1); qd_2dot(2);qd_1dot(2);qd(2); e_dot(2); e(2);qd_1dot(3);qd(3); qd_2dot(3);e_dot(3);e(3)]; e_dot(2); e(2)]; %% tinhs toans ham kich hoat (xich ma) for j = 1:1:b, for i= 1:1:a, deta(j)= exp(-(z(i)-l)^2/(m*m)) ; %e^ end end %% tính tốn giátriji uoc luong luc dieu khien y = W*deta td=[0.1*sin(t);0.1*cos(t);0]; f_hat = W*deta' ; to_v = (esi+to_d)*r/norm(r); to= Kr*r+f_hat +to_v; %to= Kr*r; 68 for j= 1:1:c, for jj = 1:1:b, W(j,jj)= Kw*deta(jj)*r(j); % sys(jj+(j-1)*jj)= W(j, jj); sys(j*jj+(j-1)*(b-jj))= W(j, jj); end end function sys=mdlOutputs(t,x,u) global to f_hat theta D1 D2 D3 e if t==0 to=zeros(3,1); e=zeros(3,1); f_hat=zeros(3,1); D1= [0;1;1]; D2=[-sqrt(3)/2;-0.5;1] ;D3=[sqrt(3)/2;-0.5;1] ; end u1 = to'*D1; u2 = to'*D2; u3 = to'*D3; sys(1)=u1;%q1 sys(2)=u2;%q2 sys(3)=u3;%q2 sys(4)= norm(f_hat); sys(5)= e(1); sys(6)= e(2); sys(7)= e(3); Mơ hình: function [sys,x0,str,ts] = mohinh2(t,x,u,flag) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); %case 2, %sys=mdlUpdate(t,x,u,A,B,C); 69 case 3, sys=mdlOutputs(t,x,u); %case 4, % sys = mdlGetTimeOfNextVarHit( m= 5; end u1=u(1); u2=u(2); u3=u(3); u=[u1;u2; u3]; %%% x3=q1_dot, x4 = q2_dot xt=x(1); 70 yt=x(2); thetat=x(3); xt_1dot=x(4); %x_1dot yt_1dot=x(5); %y_1dot thetat_1dot = x(6);%theta1dot H11 =-sin(thetat); H12 =-sin(pi/3 -thetat ); H13 = sin(pi/3 +thetat ); H21 = cos(thetat); H22 =-cos(pi/3 - thetat); H23 =-cos(pi/3 + thetat); H31 = L; H32 = L; H33 = L; H = [H11 H12 H13; H21 H22 H23; H31 H32 H33]; % inv(H') MM=[m 0 ;0 m ; 0 J]; VV=[1.5*b 0; 1.5*b ; 0 3*b*L*L]; M= (1/a)*inv(H)*MM; V = (1/a)*inv(H)*VV; %% o=6; r= 1; xd = o+r*sin(t); yd = o+r*cos(t); thetad= 0; xd_1dot = cos(t); yd_1dot = -sin(t); thetad_1dot= 0; xd_2dot = -sin(t); yd_2dot = -cos(t); thetad_2dot =0; qd = [xd;yd;thetad]; qd_1dot = [xd_1dot;yd_1dot;thetad_1dot]; qd_2dot = [xd_2dot;yd_2dot;thetad_2dot]; 71 q=[xt;yt;thetat]; q_1dot=[xt_1dot;yt_1dot;thetat_1dot]; td=[0.1*sin(t);0.1*cos(t);0]; Kr = 3; e = qd -q; e_1dot = qd_1dot - q_1dot; fd = M*(qd_2dot+Kr*e_1dot)+V*(qd_1dot+Kr*e); %nhieu mo hinh %% +td QQ=inv(M)*(u-V*q_1dot-td); % q_2dot mo hinh %% -td sys(1)=x(4); % t?a ?? x sys(2)=x(5); % sys(3)= x(6); sys(4)=QQ(1); sys(5)=QQ(2); sys(6)=QQ(3); function sys=mdlOutputs(t,x,u) global fd if t==0 fd = zeros(3,1); end sys(1)=x(1); sys(2)=x(2); sys(3)=x(3); sys(4)=x(4); sys(5)=x(5); sys(6)=x(6); sys(7)=norm(fd); Hiện thị: close all; figure(1); plot(t, Qd(:,1), 'k', t, Q(:,1), ' ',t, Q_pd(:,1), '-.' ,'LineWidth',3);title('X'); xlabel('Time (s)'); ylabel('x(m)'); 72 legend('Dat','PID-Neural', 'PID'); grid on; %%%%% xuat gia tri y figure(2); plot(t, Qd(:,2), 'k', t, Q(:,2), ' ',t, Q_pd(:,2), '-.' ,'LineWidth',3);title('Y'); xlabel('Time (s)'); ylabel('y(m)'); legend('Dat','PID-Neural', 'PID'); grid on; %%%%% xuat gia tri theta figure(3); plot(t, Qd(:,3), 'k', t, Q(:,3), ' ',t, Q_pd(:,3), '-.' ,'LineWidth',3);title('theta'); xlabel('Time (s)'); ylabel('theta'); legend('Dat','PID-Neural', 'PID'); grid on; %%%%% xy grab figure(4); plot(Qd(:,1),Qd(:,2), 'k' ,'LineWidth',2); hold on; plot(Q(:,1), Q(:,2), ' ' ,'LineWidth',2); plot(Q_pd(:,1), Q_pd(:,2), 'r-.' ,'LineWidth',2); xlabel('x(m)'); ylabel('y(m)'); legend('Dat','PID-Neural', 'PID'); title('XY'); grid on; %%%%% sai so E1 = Qd(:,1) - Q(:,1); E2 = Qd(:,2) - Q(:,2); E3 =Qd(:,3)-Q(:,3); %%%%% xuat gia tri van toc q2_dot vaf q2d_dot figure(5); plot(t, E1,'k', t, E2, ' ', t, E3, '-.' ,'LineWidth',3); xlabel('Time (s)'); ylabel('sai so x, y, theta'); legend('x','y', 'theta'); title('Sai so x y, theta') grid on; %%%%% xuat gia tri luc dieu khien figure(6); plot(t, to(:,1), 'k', t, to(:,2), ' ' ,t, to(:,3),'-.' ,'LineWidth',3); 73 title('LUC DIEU KHIEN'); xlabel('Time (s)'); ylabel('Luc dieu khien'); legend('u1','u2', 'u3'); grid on; %%%%% xuat gia tri uoc l??ng figure(7); plot(t, Q(:,7), 'k' , t,f_hat, ' ', 'LineWidth',3); title('SO SANH UOC LUONG'); xlabel('Time (s)'); ylabel('fhat, fd'); legend('fd','fhat'); grid on; A1=Qd(:,1)-Q(:,1); A2=Qd(:,2)-Q(:,2); A3=Qd(:,3)-Q(:,3); A4=Qd(:,1)-Q_pd(:,1); A5=Qd(:,2)-Q_pd(:,2); A6=Qd(:,3)-Q_pd(:,3); MSE_x_pid_neural=sum(A1.^2)/3001 MSE_y_pid_neural=sum(A2.^2)/3001 MSE_theta_pid_neural=sum(A3.^2)/3001 MSE_x_pd=sum(A4.^2)/3001 MSE_y_pd=sum(A5.^2)/3001 MSE_theta_pd=sum(A6.^2)/3001 Quỹ đạo đặt hình trịn: function [sys,x0,str,ts] = dat_tron(t,x,u,flag) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 3, sys=mdlOutputs(t,x,u); case {1,2,4,9} sys=[]; otherwise error(['Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes 74 sizes = simsizes; %% t?o giá tr? ??t mong mu?n sizes.NumContStates = 0;%% g?m bi?n tr?ng thái sizes.NumDiscStates = 0; sizes.NumOutputs = 9; %%%s? l??ng ngõ q q dot sizes.NumInputs = 0; %s? l??ng ngõ vào sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = []; %giá tr? ban ??u c?a bi?n tr?ng thái str = []; ts = [0]; function sys=mdlOutputs(t,x,u) o=6; r= 1; xd = o+r*sin(t); yd = o+r*cos(t); thetad= 0; xd_1dot = cos(t); yd_1dot = -sin(t); thetad_1dot= 0; xd_2dot = -sin(t); yd_2dot = -cos(t); thetad_2dot =0; sys(1)=xd;%q1 sys(2)=yd;%q2 sys(3)=thetad;%q1_dot sys(4)=xd_1dot;%q_dot sys(5)=yd_1dot;%q1_2dot sys(6)=thetad_1dot;%q2_2dot sys(7)=xd_2dot;%q_dot sys(8)=yd_2dot;%q1_2dot sys(9)=thetad_2dot;%q2_2dot 75 LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN I LÝ LỊCH SƠ LƯỢC: Họ tên: Trần Văn Thiện Giới tính: Nam Ngày, tháng, năm sinh: 10/04/1994 Nơi sinh: Quy Nhơn, Bình Định Email: t.v.thien1994@gmail.com Điện thoại: 0348 368 009 II QUÁ TRÌNH ĐÀO TẠO: Năm 2012-2016 Trường Đại học Cơng nghiệp thành phố Hờ Chí Minh Bậc đào tạo: Đại học – Tín Loại hình đào tạo: Chính quy Khoa: Khoa Cơng nghệ Điện tử Lớp: Đại học điện tử tự động 8A Năm: 2016-2018 Trường Đại học Cơng nghiệp thành phố Hờ Chí Minh Bậc đào tạo: Thạc sĩ – Tín Loại hình đào tạo: Chính quy (Đợt 2) Ngành: Kỹ thuật điện tử - 60520203 Chuyên ngành: Kỹ thuật điện tử - 60520203 Khoa: Khoa Công nghệ Điện tử Lớp: Cao học Kỹ thuật điện tử 6B III Q TRÌNH CƠNG TÁC CHUN MƠN: Thời gian Từ 2016 - Nay Nơi công tác Trường Cao đẳng Sài Gịn Cơng việc đảm nhiệm Nhân viên IT XÁC NHẬN CỦA Tp HCM, ngày tháng Năm 20 CƠ QUAN / ĐỊA PHƯƠNG Người khai Trần Văn Thiện 76 ... robot tăng lên từ 2kg lên 5kg Bợ điều khiển PID- Neural tỏ thích ứng bợ điều khiển PID Cụ thể: Hình 3.9 quỹ đạo bám robot sử dụng hai bộ điều khiển PID PID -Neural, ta thấy bộ điều khiển PID. .. Thiết kế bợ điều khiển thích nghi PID- Neural cho robot omni bánh, để robot di chuyển theo quỹ đạo định trước mợt cách xác Đối tượng phạm vi nghi? ?n cứu: Mô bợ điều khiển thích nghi PID- Neural thiết... thực nghi? ??m để kiểm chứng hoạt đợng thực tế Trong [12] bợ điều khiển thích nghi PI mờ áp dụng cho Omni robot, mô thực để kiểm tra hiệu bộ điều khiển Kết mô chứng tỏ bộ điều khiển thích nghi

Ngày đăng: 05/07/2022, 08:45

HÌNH ẢNH LIÊN QUAN

Hình 1.4 WowWee Rovio[1] - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 1.4 WowWee Rovio[1] (Trang 13)
Hình 1.5 Phas eV Robocat robot[3] - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 1.5 Phas eV Robocat robot[3] (Trang 14)
Hình 1.6 Robot đá banh[4] - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 1.6 Robot đá banh[4] (Trang 14)
Hệ thống được gọi là ổn định tiệm cận Lyapunov (được miêu tả ở Hình 2.2(A)) tại điểm cân bằngx e0nếu với 0  bất  kỳ  bao  giờ  cũng  tồn  tại   phụ  thuộc  sao  cho nghiệm x(t) của phương trình (1) với điều kiện đầu x(0) thỏa mãn:  - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
th ống được gọi là ổn định tiệm cận Lyapunov (được miêu tả ở Hình 2.2(A)) tại điểm cân bằngx e0nếu với 0 bất kỳ bao giờ cũng tồn tại  phụ thuộc sao cho nghiệm x(t) của phương trình (1) với điều kiện đầu x(0) thỏa mãn: (Trang 25)
Ta đề xuất thiết kế bộ điều khiển PID-Neural như trong Hình 2.4 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
a đề xuất thiết kế bộ điều khiển PID-Neural như trong Hình 2.4 (Trang 29)
Hình 3.3 Quỹ đạo robot khi di chuyển theo đường tròn trường hợp 1 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.3 Quỹ đạo robot khi di chuyển theo đường tròn trường hợp 1 (Trang 36)
Hình 3.5 Bám trụ cY khi robot di chuyển theo trường hợp 1 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.5 Bám trụ cY khi robot di chuyển theo trường hợp 1 (Trang 37)
Hình 3.4 Bám trục X khi robot di chuyển theo trường hợp 1 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.4 Bám trục X khi robot di chuyển theo trường hợp 1 (Trang 37)
Hình 3.6 Bám góc theta khi robot di chuyển theo trường hợp 1 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.6 Bám góc theta khi robot di chuyển theo trường hợp 1 (Trang 38)
Tuy nhiên nhìn vào kết quả sai số toàn phương trung bìn hở bảng 3.3 ta nhận thấy PID-Neural có sai số nhỏ hơn - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
uy nhiên nhìn vào kết quả sai số toàn phương trung bìn hở bảng 3.3 ta nhận thấy PID-Neural có sai số nhỏ hơn (Trang 40)
Hình 3.11 Bám trụ cy khi robot di chuyển theo trường hợp 2 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.11 Bám trụ cy khi robot di chuyển theo trường hợp 2 (Trang 41)
Hình 3.13 Sai số bám theo x,y, theta của robot khi di chuyển theo trường hợp 2 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.13 Sai số bám theo x,y, theta của robot khi di chuyển theo trường hợp 2 (Trang 42)
Hình 3.12 Bám góc theta khi robot di chuyển theo trường hợp 2 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.12 Bám góc theta khi robot di chuyển theo trường hợp 2 (Trang 42)
Hình 3.18 Bám trụ cY khi robot di chuyển theo trường hợp 3 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.18 Bám trụ cY khi robot di chuyển theo trường hợp 3 (Trang 46)
Hình 3.17 Bám trục X khi robot di chuyển theo trường hợp 3 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.17 Bám trục X khi robot di chuyển theo trường hợp 3 (Trang 46)
Hình 3.22 Ước lượng nhiễu và các thông số không biết theo trường hợp 3 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.22 Ước lượng nhiễu và các thông số không biết theo trường hợp 3 (Trang 48)
Hình 3.21 Momen điều khiển của robot khi di chuyển theo trường hợp 3 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.21 Momen điều khiển của robot khi di chuyển theo trường hợp 3 (Trang 48)
Bảng 3.5 MSE của robot khi di chuyển theo trường hợp 3 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Bảng 3.5 MSE của robot khi di chuyển theo trường hợp 3 (Trang 49)
Hình 3.23 Robot bám quỹ đạo trường hợp 4 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.23 Robot bám quỹ đạo trường hợp 4 (Trang 50)
Hình 3.24 Đáp ứng theo trục x của robot khi bám quỹ đạo trường hợp 4 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.24 Đáp ứng theo trục x của robot khi bám quỹ đạo trường hợp 4 (Trang 50)
Hình 3.25 Đáp ứng theo trụ cy của robot khi bám quỹ đạo trường hợp 4 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.25 Đáp ứng theo trụ cy của robot khi bám quỹ đạo trường hợp 4 (Trang 51)
Hình 3.26 Đáp ứng theo góc theta của robot khi bám quỹ đạo trường hợp 4 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.26 Đáp ứng theo góc theta của robot khi bám quỹ đạo trường hợp 4 (Trang 51)
Hình 3.27 Sai số bám theo x,y, theta của robot ở trường hợp 4 - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 3.27 Sai số bám theo x,y, theta của robot ở trường hợp 4 (Trang 52)
CHƯƠNG 4 MÔ HÌNH THỰC NGHIỆM 4.1 Sơ đồ khối toàn bộ hệ thống robot  - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
4 MÔ HÌNH THỰC NGHIỆM 4.1 Sơ đồ khối toàn bộ hệ thống robot (Trang 54)
Hình 4.3 Robot Omni3 bánh thực tế - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 4.3 Robot Omni3 bánh thực tế (Trang 56)
Hình 4.7 Đáp ứng của robot theo trụ cy - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 4.7 Đáp ứng của robot theo trụ cy (Trang 59)
Hình 4.9 Momen điều khiển robot theo trục x - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 4.9 Momen điều khiển robot theo trục x (Trang 60)
Hình 4.13 Tín hiệu PWM điều khiển theo trục x - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 4.13 Tín hiệu PWM điều khiển theo trục x (Trang 63)
Hình 4.14 Tín hiệu PWM điều khiển theo trụ cy - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
Hình 4.14 Tín hiệu PWM điều khiển theo trụ cy (Trang 63)
Loại hình đào tạo: Chính quy Khoa: Khoa Công nghệ Điện tử  Lớp: Đại học điện tử tự động 8A  - Điều khiển thích nghi cho hệ omni robot sử dụng giải thuật pid neural
o ại hình đào tạo: Chính quy Khoa: Khoa Công nghệ Điện tử Lớp: Đại học điện tử tự động 8A (Trang 84)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN