1. Trang chủ
  2. » Tất cả

Luận văn nghiên cứu giải pháp dùng tay máy cho bài toán lưu trữ, trích xuất bình gas trong hệ thống phân phối

73 6 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

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 2,46 MB

Nội dung

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 ngồi 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 tồ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 vii DANH MỤC CÁC TỪ VIẾT TẮT Ký hiệu zi-1 Giải thích nghĩa : : Vector đơn vị theo trục z khớp thứ i Vector xác định từ gốc hệ trục tọa độ khớp thứ i – đến gốc tọa độ khâu tác động cuối G : Vector trọng lực Ii : Ma trận quán tính khâu i tâm khối lƣợng, viết hệ tọa độ tuyệt đối : Ma trận quán tính khâu i hệ tọa độ khâu i `Ji : Ma trận Jacobi vận tốc trọng tâm khâu i Jvi : Ma trận Jacobi liên hệ với vận tốc tuyến tính tâm khối lƣợng khâu i Jωi : Ma trận Jacobi liên hệ với vận tốc góc tâm khối lƣợng khâu i K : Động hệ thống học VCi : Vận tốc tịnh tiến tuyệt đối khối tâm ωi : Vận tốc quay tuyệt đối khâu i U : Thế hệ thống học L : Hàm Lagrange M : Ma trận quán tính cấu chấp hành Mij : Phần tử (ij) M n : Số lƣợng tọa độ tổng quát : Vector vị trí tâm khối lƣợng Ci khâu i theo hệ tọa độ khâu k đƣợc tính trọng hệ tọa độ tuyệt đối : Vector vị trí nối từ gốc hệ trục j –1 đến tâm khối lƣợng Ci khâu i Qi : Lực suy rộng ứng với tọa độ suy rộng thứ i viii Q [ ] : Vector lực suy rộng , : Vector momen khớp thiết bị dẫn động động tạo Fe : Vector hợp lực moment tác dụng phận tác động cuối FIFO : First-In-First-Out ix DANH MỤC CÁC BẢNG Bảng Thông số bình gas………………………………………………… 11 Bảng 2 Thơng số kỹ thuật………………………………………………… 14 Bảng 2.3 Robot khớp lể cố định………………………………………… 15 Bảng Bảng thông số Denavit Hartenberg……………………………… 19 Bảng 5.1 Cấu hình robot…………………………………………………… 43 x DANH MỤC CÁC BIỂU ĐỒ, ĐỒ THỊ, SƠ ĐỒ, HÌNH ẢNH Hình 1.1 Biểu đồ tiêu thụ LPG Việt Nam [1] Hình 1.2 Hệ thống AS/RS cỉa hãng Efacec Hình Xe tự hành hãng JBT Hình carousel dạng ngang Hình Carousel dạng đứng Hình Bình gas 12 kg Hình 2 Sơ đồ xếp bình gas 10 Hình Sơ đồ bố trí nhà kho 11 Hình Robot khớp lề hãng Kuka sản xuất 12 Hình Robot tọa độ vng góc (Gantry robot) hãng Elettric80 12 Hình Robot công nghiệp IRB 460 13 Hình Sơ đồ tải trọng robot IRB460 hãng ABB 14 Hình Sơ đồ bậc tự robot gắp bình gas 15 Hình Sơ đồ đơn giản robot gắp bình gas 16 Hình 10 Lƣợc đồ khâu 16 Hình 11 Vị trí bình gas gần xa nhà kho 17 Hình Các hệ trục tọa độ robot 18 Hình Sơ đồ vị trí bình gas 25 Hình Giải thuật xác định vị trí nhập sản phẩm 28 Hình Giải thuật tính khoảng cách 29 Hình 4 Giải thuật xuất sản phẩm 30 Hình Giải thuật tìm vị trí dời sản phẩm 31 Hình Quỹ đạo đƣờng robot (sản phẩm) 32 Hình Trọng số khoảng cách từ ( 3,1,1) sang (9,5,2) 32 Hình Quỹ đạo đƣờng robot (sản phẩm) 33 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)

Ngày đăng: 16/01/2023, 13:12

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

TÀI LIỆU LIÊN QUAN

w