Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
2,62 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM - NGÔ PHONG CƢỜNG NGHIÊN CỨU GIẢI PHÁP DÙNG TAY MÁY CHO BÀI TỐN LƢU TRỮ, TRÍCH XUẤT BÌNH GAS TRONG HỆ THỐNG PHÂN PHỐI LUẬN VĂN THẠC SĨ Chuyên ngành: Kỹ thuật Cơ điện tử Mã số ngành: 60520114 TP HỒ CHÍ MINH, tháng 02 năm 2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM - NGÔ PHONG CƢỜNG NGHIÊN CỨU GIẢI PHÁP DÙNG TAY MÁY CHO BÀI TỐN LƢU TRỮ, TRÍCH XUẤT BÌNH GAS TRONG HỆ THỐNG PHÂN PHỐI LUẬN VĂN THẠC SĨ Chuyên ngành : Kỹ thuật Cơ điện tử Mã số ngành: 60520114 HƢỚNG DẪN KHOA HỌC: TS.NGUYỄN DUY ANH TP HỒ CHÍ MINH, tháng 02 năm 2014 CƠNG TRÌNH ĐƢỢC HỒN THÀNH TẠI TRƢỜNG ĐẠI HỌC CƠNG NGHỆ TP HCM Cán hƣớng dẫn khoa học: TS NGUYỄN DUY ANH (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ệ Trƣờng Đại học Công nghệ TP HCM ngày 25 tháng 01 năm 2014 Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ Luận văn Thạc sĩ) Họ tên TS Ngô Cao Cƣờng PGS.TS Nguyễn Tấn Tiến TS Nguyễn Hùng TS.Võ Hoàng Duy TS Nguyễn Quốc Hƣng Chức danh Hội đồng Chủ tịch Phản biện Phản biện Ủy viên Ủy viên, Thƣ ký Xác nhận Chủ tịch Hội đồng đánh giá Luận sau Luận văn đƣợc sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV TRƢỜNG ĐH CƠNG NGHỆ TP HCM PHỊNG QLKH – ĐTSĐH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP HCM, ngày 12 tháng 06 năm 2013 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: NGÔ PHONG CƢỜNG Giới tính: Nam Ngày, tháng, năm sinh: 20/09/1968 Nơi sinh: Thừa Thiên Huế Chuyên ngành: Kỹ thuật Cơ điện tử MSHV: 1241840001 I- Tên đề tài: NGHIÊN CỨU GIẢI PHÁP DÙNG TAY MÁY CHO BÀI TỐN LƢU TRỮ, TRÍCH XUẤT BÌNH GAS TRONG HỆ THỐNG PHÂN PHỐI II- Nhiệm vụ nội dung: - Thiết kế bố trí sản phẩm nhà kho, sử dụng tay máy (robot) gắp sản phẩm nhập xuất lƣu trữ Lựa chọn robot phù hợp để đáp ứng yêu cầu - Phân tích động học thuận nghịch robot chọn - Đề xuất giải thuật nhập xuất xếp sản phẩm nhà kho, mô - Kết mô kết luận III- Ngày giao nhiệm vụ: 12/06/2013 IV- Ngày hoàn thành nhiệm vụ: 30/12/2013 V- Cán hƣớng dẫn: TS.NGUYỄN DUY ANH CÁN BỘ HƢỚNG DẪN (Họ tên chữ ký) KHOA QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) i LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi 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 Tơi xin cam đoan giúp đỡ cho việc thực Luận văn đƣợc cảm ơn thơng tin trích dẫn Luận văn đƣợc rõ nguồn gốc Học viên thực Luận văn Ngô Phong Cƣờng ii LỜI CÁM ƠN Trong suốt thời gian tham gia học chƣơng trình cao học thực luận văn thạc sĩ, nhận đƣợc giảng dạy, giúp đỡ, hƣớng dẫn, góp ý nhiều q Thầy Cơ môn Cơ điện tử, khoa Cơ điện tử Trƣờng Đại học Cơng Nghệ Tp.HCM q Thầy Cơ Trƣờng Đại học Bách Khoa Tp HCM Trƣớc tiên, chân thành cám ơn quý Thầy tham gia giảng dạy chƣơng trình cao học ngành Cơ điện tử, giúp chúng tơi tích lũy thêm kiến thức sâu rộng chuyên môn, cung cấp cho biện pháp nghiên cứu lĩnh vực điều khiển Tôi chân thành gửi lời cám ơn sâu sắc đến Thầy Tiến sĩ Nguyễn Duy Anh, ngƣời Thầy giảng dạy, hƣớng dẫn góp ý giúp tơi hồn thành luận văn thạc sĩ TpHCM, ngày17 tháng 11 năm 2013 Học viên Ngơ Phong Cƣờng iii TĨM TẮT Hiện nhu cầu sử dụng bình gas dân dụng 12 kg ngày nhiều dẫn đến nhu cầu xây dựng nhà kho nhỏ có chức phân phối bình gas đến ngƣời tiêu dùng lớn Từ trạng vấn đề tự động hóa cơng việc lƣu trữ, xếp, phân phối nhà kho cần thiết nhằm tăng hiệu cơng việc Mục tiêu luận văn đƣa phƣơng án tự động hóa cơng việc xếp bình gas nhà kho, cụ thể lựa chọn robot để thực công việc Đề tài tập trung giải phần sau: Đƣa phƣơng án lựa chọn robot phù hợp với yêu cầu Mô robot phần mềm 3D thể kết cấu hoạt động robot Đƣa giải thuật xếp kho: - Tối ƣu hóa đƣờng robot việc xếp sản phẩm nhà kho - Phân phối sản phẩm theo phƣơng pháp sản phẩm nhập trƣớc đƣợc xuất trƣớc(FIFO-“first-in-first-out”) - Mô robot phần mềm 3D thể hoạt động nhập xuất xếp sản phẩm robot nhà kho iv ABSTRACT Nowadays, the demand for using of 12kg civil gas tanks has increased This leads to the set up of small warehouses which its function is distributing gas to consummers has also increased As the current state, the issue of automatize storage, arrangement and distribution in the warehouses is essential to improve work efficiency The main objective of this thesis (essay) is to suggest a soution for arranging the gas tanks in the warehouses automatically- using a robot to handle this job is one among options Thesis focuses on the following sections: Providing alternative plans in design, analyzing, evaluating and opting the plans in accordance with the requirements Simulating 3D robot on a software representing structure and operation of the robot Providing warehouse arrangement algorithm: - Optimization of robot paths in arranging items in a warehouse - Item distribution by FIFO (First-In-First-Out) method - 3D Robot simulation on a software showing I/O operation of items in the warehouse v MỤC LỤC LỜI CAM ĐOAN i LỜI CÁM ƠN ii TÓM TẮT iii ABSTRACT iv MỤC LỤC v DANH MỤC CÁC TỪ VIẾT TẮT vii DANH MỤC CÁC BẢNG ix DANH MỤC CÁC BIỂU ĐỒ, ĐỒ THỊ, SƠ ĐỒ, HÌNH ẢNH x Chƣơng 1: Giới thiệu 1.1 Mở đầu 1.1.1 Đặt vấn đề 1.1.2 Phạm vi nghiên cứu mục tiêu luận văn 1.1.3 Ý nghĩa thực tiễn luận văn 1.2 Tổng quan 1.2.1 Các nghiên cứu nƣớc có liên quan đến đề tài 1.2.2 Tổng quan kho bãi 1.2.3 Tiêu chuẩn quy định an toàn vận chuyển lƣu trữ bình gas(LPG) 1.3 Tóm tắt chƣơng luận văn Chƣơng 2: Thiết kế bố trí sản phẩm nhà kho lựa chọn robot phù hợp 2.1 Yêu cầu thực tế nhà kho chứa bình gas 2.2 Thiết kế bố trí sản phẩm nhà kho 2.3 Lựa chọn robot phù hợp yêu cầu 11 2.3.1 Các dạng robot công nghiệp thƣờng đƣợc sử dụng nhà kho 11 2.3.2 Xác định yêu cầu kỹ thuật robot 14 vi 2.4 Sơ đồ nguyên lý robot gắp bình gas 15 2.5 Tính tốn sơ kích thƣớc khâu 16 Chƣơng Phân tích động học robot 18 3.1 Động học vị trí 18 3.1.1 Bài toán động học thuận 18 3.1.2 Bài toán động học ngƣợc 19 3.2 Động học vận tốc 21 Chƣơng Giải thuật xếp kho mô 24 4.1 Giải thuật xếp nhà kho mô 24 4.1.1 Đặt vấn đề giới hạn phạm vi thực 24 4.1.2 Một số quy định 24 4.1.3 Đề xuất giải thuật nhập xuất xếp bình gas nhà kho 26 4.2 Mô giải thuật nhập xuất xếp bình gas nhà kho 31 4.2.1 Kết mô giải thuật nhập xuất xếp bình gas 31 4.2.1 Kết mô giải thuật xếp xuất sản phẩm 36 4.3 Mô hoạt động robot 38 4.3.1 Mơ mơ hình robot 38 4.3.2 Mơ hoạt động mơ hình robot nhập xuất xếp sản phẩm 40 Chƣơng 5: Kết luận 42 5.1 Kết luận 42 5.2 Kiến nghị 42 Tài liệu tham khảo 44 date = 86; for i = 4:8 for j = 4:8 work_area(j,i,1) = 10; work_area(j,i,2) = 10; end end %khai bao toa input_begin = x_input_begin y_input_begin z_input_begin bat dau cua qua trinh nhap sp vao [3 , , 1]; = input_begin(1); = input_begin(2); = input_begin(3); %khai bao toa ket thuc cua qua trinh xuat sp output_end = [9 , , 1]; x_output_end = output_end(1); y_output_end = output_end(2); z_output_end = output_end(3); input = 1; trongso = ones(y_area,x_area); move = zeros(10,3); %cac buoc di chuyen cua canh tay robot buoc = 1;%xuat bang excel SoBinhNhap = 4; %khai bao ve thi x_plot = zeros(1,SoBinhNhap); y_plot = zeros(1,SoBinhNhap); z_plot = zeros(1,SoBinhNhap); while (SoBinhNhap > 0) %tim vi tri nhap kho [x_input_end,y_input_end,z_input_end,empty] = find_input_position(x_area,y_area,work_area,x_input_begin,y_input_begin,x_output_ end,y_output_end,date_input); if (empty == 0) break; end %tinh so di chuyen trongso = TINHTRONGSO(x_input_begin,y_input_begin,x_input_end,y_input_end,trongso,work_area ,y_area,x_area); %tim duong di [move,buoc,x_plot,y_plot,z_plot] = TIM_DUONG (x_input_begin,y_input_begin,z_input_begin,x_input_end,y_input_end,z_input_end,mo ve,buoc,work_area,trongso,x_plot,y_plot,z_plot,SoBinhNhap); work_area(y_input_end,x_input_end,z_input_end) = 1; date_input(y_input_end,x_input_end,z_input_end) = date; date = date + 1; SoBinhNhap = SoBinhNhap - 1; if(SoBinhNhap == 3) SUCCESS = xlswrite('D:\LV_ngophongcuong_huteach\nhap30.12\nhap\trongso1.xls',trongso); elseif(SoBinhNhap == 2) SUCCESS = xlswrite('D:\LV_ngophongcuong_huteach\nhap30.12\nhap\trongso2.xls',trongso); elseif(SoBinhNhap == 1) SUCCESS = xlswrite('D:\LV_ngophongcuong_huteach\nhap30.12\nhap\trongso3.xls',trongso); elseif(SoBinhNhap == 0) SUCCESS = xlswrite('D:\LV_ngophongcuong_huteach\nhap30.12\nhap\trongso4.xls',trongso); end end length_plot = size(x_plot); doc = length_plot(1,1); ngang = length_plot(1,2); for i = 1:ngang for j = 1:doc if (x_plot(j,i) x_plot(j,i) end if (y_plot(j,i) y_plot(j,i) end if (z_plot(j,i) z_plot(j,i) end end end x_BaseRobot = [8 y_BaseRobot = [4 4 == 0) = x_plot(j-1,i); == 0) = y_plot(j-1,i); == 0) = z_plot(j-1,i); 8 8 4 8 4]; 4]; figure(1) plot3(x_plot(:,1),y_plot(:,1),z_plot(:,1),'LineWidth',5); hold on; plot(x_BaseRobot,y_BaseRobot,'r','LineWidth',2); xlabel('truc x'); ylabel('truc y'); zlabel('truc z'); grid on; figure(2) plot3(x_plot(:,2),y_plot(:,2),z_plot(:,2),'LineWidth',5); hold on; plot(x_BaseRobot,y_BaseRobot,'r','LineWidth',2); xlabel('truc x'); ylabel('truc y'); zlabel('truc z'); grid on; figure(3) plot3(x_plot(:,3),y_plot(:,3),z_plot(:,3),'LineWidth',5); hold on; plot(x_BaseRobot,y_BaseRobot,'r','LineWidth',2); xlabel('truc x'); ylabel('truc y'); zlabel('truc z'); grid on; figure(4) plot3(x_plot(:,4),y_plot(:,4),z_plot(:,4),'LineWidth',5); hold on; plot(x_BaseRobot,y_BaseRobot,'r','LineWidth',2); xlabel('truc x'); ylabel('truc y'); zlabel('truc z'); grid on; SUCCESS = xlswrite('D:\LV_ngophongcuong_huteach\nhap30.12\nhap\myworkbook.xls',move); Chương trình xác định vị trí nhập sản phẩm function [x_input_end,y_input_end,z_input_end,empty] = find_input_position(x_area,y_area,work_area,x_input_begin,y_input_begin,x_output_ end,y_output_end,date_input) empty = 0; tang1 = 0; trongso_input_end = 500; for x_input_end = 1:x_area for y_input_end = 5:y_area if(work_area(y_input_end,x_input_end,1) == 0) tang1 = 1; tam = abs(x_input_end - x_input_begin) + abs(y_input_end y_input_begin) + abs(x_input_end - x_output_end) + abs(y_input_end y_output_end); if (tam < trongso_input_end) tam_x_input_end = x_input_end; tam_y_input_end = y_input_end; trongso_input_end = tam; end end end end %tang1 = 0;%test %trongso_input_end = 100;%test if (tang1 == 1) x_input_end = tam_x_input_end; y_input_end = tam_y_input_end; z_input_end = 1; empty = 1; end if (tang1 == 0) for x_input_end = 1:x_area for y_input_end = 5:y_area if(work_area(y_input_end,x_input_end,2) == 0) tam = abs(x_input_end - x_input_begin) + abs(y_input_end y_input_begin) + abs(x_input_end - x_output_end) + abs(y_input_end y_output_end) + 0.9*date_input(y_input_end,x_input_end,1); if (tam < trongso_input_end) tam_x_input_end = x_input_end; tam_y_input_end = y_input_end; trongso_input_end = tam; empty = 1; end end end end if (empty == 1) x_input_end = tam_x_input_end; y_input_end = tam_y_input_end; z_input_end = 2; end end if (empty == 0) x_input_end = 0; y_input_end = 0; z_input_end = 0; end chương trình tính khoảng cách function ketqua = TINHTRONGSO(x_begin,y_begin,x_end,y_end,trongso,work_area,y_area,x_area) trongso = ones(y_area,x_area); trongso = trongso*100; if (x_end > x_begin) step_x = 1; elseif (x_end < x_begin) step_x = -1; elseif (x_end == x_begin) step_x = 0; end if (y_end > y_begin) step_y = 1; elseif (y_end < y_begin) step_y = -1; elseif (y_end == y_begin) step_y = 0; end if(x_begin ~= x_end) for x = x_begin:step_x:x_end for y = y_begin:step_y:y_end buoc_tam = 0; y_move = y; x_move = x; if(work_area(y_move,x_move) ~= 10) while (y_move ~= y_end) y_move = y_move + step_y; if(work_area(y_move,x_move) == 10) y_move = y_move - step_y; x_move = x_move + step_x; end buoc_tam = buoc_tam + 1; end while (x_move ~= x_end) if(x_move < x_end) step_x_tam = 1; x_move = x_move + step_x_tam; else step_x_tam = -1; x_move = x_move + step_x_tam; end if(work_area(y_move,x_move) == 10) x_move = x_move - step_x_tam; y_move = y_move + step_y; end buoc_tam = buoc_tam + 1; end trongso(y,x) = buoc_tam; end end end elseif (x_begin == x_end) for y = y_begin:step_y:y_end buoc_tam = 0; y_move = y; x_move = x_begin; if(work_area(y_move,x_move) ~= 10) while (y_move ~= y_end) y_move = y_move + step_y; if(work_area(y_move,x_move) == 10) y_move = y_move - step_y; x_move = x_move + step_x; end buoc_tam = buoc_tam + 1; end while (x_move ~= x_end) if(x_move < x_end) step_x_tam = 1; x_move = x_move + step_x_tam; else step_x_tam = -1; x_move = x_move + step_x_tam; end if(work_area(y_move,x_move) == 10) x_move = x_move - step_x_tam; y_move = y_move + step_y; end buoc_tam = buoc_tam + 1; end trongso(y,x_begin) = buoc_tam; end end end for i = 4:8 for j = 4:8 trongso(j,i) = 500; end end for i = 1:12 trongso(12,i) = 500; trongso(i,12) = 500; end ketqua = trongso; Chương trình tìm đường function [ketqua,buoc,x_plot,y_plot,z_plot] = TIM_DUONG (x_begin,y_begin,z_begin,x_end,y_end,z_end,move,buoc,work_area,trongso,x_plot,y_p lot,z_plot,SoBinhNhap) x_current = x_begin; y_current = y_begin; di_batdau = buoc; z_dichuyen = 2; buoc_ve = 1; move(buoc,1) = x_current; move(buoc,2) = y_current; move(buoc,3) = z_begin; x_plot(buoc_ve,5 - SoBinhNhap) = x_current; y_plot(buoc_ve,5 - SoBinhNhap) = y_current; z_plot(buoc_ve,5 - SoBinhNhap) = z_begin; buoc = buoc + 1; buoc_ve = buoc_ve + 1; move(buoc,1) = x_current; move(buoc,2) = y_current; x_plot(buoc_ve,5 - SoBinhNhap) = x_current; y_plot(buoc_ve,5 - SoBinhNhap) = y_current; buoc = buoc + 1; buoc_ve = buoc_ve + 1; if (x_end > x_begin) step_x = 1; elseif (x_end < x_begin) step_x = -1; elseif (x_end == x_begin) step_x = 0; end if (y_end > y_begin) step_y = 1; elseif (y_end < y_begin) step_y = -1; elseif (y_end == y_begin) step_y = 0; end while (x_current ~= x_end || y_current ~= y_end) if (x_current + step_x > 0) if ((trongso(y_current,x_current + step_x) y_begin) step_y = 1; elseif (y_end < y_begin) step_y = -1; elseif (y_end == y_begin) step_y = 0; end while (x_current ~= x_end || y_current ~= y_end) if (x_current + step_x > 0) if ((trongso(y_current,x_current + step_x)