Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 200 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
200
Dung lượng
9,47 MB
Nội dung
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 ÁN TIẾN SĨ NGUYỄN VĂN KHIỂN NGHIÊN CỨU NÂNG CAO ĐỘ CHÍNH XÁ CƠ CẤU ĂN DAO DÙNG CƠ CẤU ĐÀN HỒI NGÀNH: KỸ THUẬT CƠ KHÍ SKA0 0 Tp Hồ Chí Minh, tháng 2/2023 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 NGUYỄN VĂN KHIỂN NGHIÊN CỨU NÂNG CAO ĐỘ CHÍNH XÁC CƠ CẤU ĂN DAO DÙNG CƠ CẤU ĐÀN HỒI NGÀNH: KỸ THUẬT CƠ KHÍ – 9520103 Người hướng dẫn khoa học 1: PGS.TS PHẠM HUY HOÀNG Người hướng dẫn khoa học 2: PGS.TS PHẠM HUY TUÂN Phản biện 1: PGS.TS TRƯƠNG HOÀNH SƠN Phản biện 2: TS ĐÀO THANH PHONG Phản biện 3: PGS.TS NGUYỄN VĂN TƯỜNG Tp Hồ Chí Minh, tháng 02/2023 QUYẾT ĐỊNH GIAO ĐỀ TÀI i LÝ LỊCH KHOA HỌC (Dùng cho nghiên cứu sinh & học viên cao học) I LÝ LỊCH SƠ LƯỢC: Họ & tên: NGUYỄN VĂN KHIỂN Giới tính: Nam Ngày, tháng, năm sinh: 10/07/1983 Nơi sinh: Hà Nội Quê quán: Xã Tân Dân, Huyện Phú Xuyên, TP Hà Nội Dân tộc: Kinh Chức vụ, đơn vị công tác trước học tập, nghiên cứu: Giáo viên, Trường Trung Cấp Kỹ Thuật Nghiệp Vụ Nam Sài Gòn Chỗ riêng địa liên lạc: A28/26 DL5, Ấp 1, Quốc Lộ 50, Bình Hưng, Bình Chánh, TP Hồ Chí Minh Điện thoại quan: Điện thoại nhà riêng: 0977446847 Fax: E-mail: dongpho05@gmail.com II QUÁ TRÌNH ĐÀO TẠO: Trung học chuyên nghiệp: Hệ đào tạo: Thời gian đào tạo từ ……/…… đến ……/ Nơi học (trường, thành phố): Ngành học: Đại học: Hệ đào tạo: Chính qui Thời gian đào tạo từ 8/ 2005 đến 11/ 2009 Nơi học (trường, thành phố): Trường Đại Học Đồng Tháp, TP Cao Lãnh, Tỉnh Đồng Tháp Ngành học: Kỹ Thuật Công Nghiệp Tên đồ án, luận án môn thi tốt nghiệp: Ngày & nơi bảo vệ đồ án, luận án thi tốt nghiệp: Người hướng dẫn: ii Thạc sĩ: Hệ đào tạo: Chính qui Thời gian đào tạo từ 2011 đến 2013 Nơi học (trường, thành phố): Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh Ngành học: Kỹ Thuật Cơ Khí Tên luận văn: Nghiên cứu, thiết kế, chế tạo khớp mắt cá chân giả cấu mềm cho người khuyết tật Ngày & nơi bảo vệ luận văn: Năm 2013, Trường Đại Học Sư Phạm Kỹ Thuật TP HCM Người hướng dẫn: TS Phạm Huy Tuân Tiến sĩ: Hệ đào tạo: Thời gian đào tạo từ ……/…… đến ……/ …… Tại (trường, viện, nước): Tên luận án: Người hướng dẫn: Ngày & nơi bảo vệ: Trình độ ngoại ngữ (biết ngoại ngữ gì, mức độ): TOEFL iBT 74 Học vị, học hàm, chức vụ kỹ thuật thức cấp; số bằng, ngày & nơi cấp: Kỹ Sư Kỹ Thuật Công nghiệp, Số bằng: A313184, 09/11/2009, Đại Học Đồng Tháp Thạc Sĩ Kỹ Thuật Cơ Khí, Số bằng: A080700, 02/04/2014, Đại Học Sư Phạm Kỹ Thuật TP HCM III Q TRÌNH CƠNG TÁC CHUN 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 2009 - 2010 Tổng Công Ty Công nghiệp ÔTÔ Việt Nam Nhân viên iii 2010 - 2018 Trường Trung Cấp Kỹ Thuật Nghiệp Vụ Nam Sài Gòn 2018 đến Trường Cao Đẳng Bách Khoa Nam Sài Gịn Giáo viên Giảng viên IV CÁC CƠNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ: [1] Nguyen, V.-K., et al., Optimization design of a compliant linear guide for highprecision feed drive mechanisms, Mechanism and Machine Theory, 165 (2021)104442 [2] Huy-Tuan Pham, Van-Khien Nguyen, Khac-Huy Nguyen, Quang-Khoa Dang, TrungKien Hoang, Son-Minh Pham “Optimization Design of a 2-DOF Compliant Parallel Mechanism Using NSGA-II Algorithm for Vibration-Assisted Milling”, I A Parinov et al.(eds.), Advanced Materials, Springer Nature, Cham, Switzerland, 2020 ISBN: 978-3-030- 45119-6 pp 469-478 [3] Nguyen V.K., Pham H.H., Huy-Tuan Pham., 2018, “Multi-objective Optimization of a Linear Flexure-Based Mechanism Using Pseudo Rigid-Body Diagram Analysis and FEABased Response Surface Methodology,” Modern Environmental Science and Engineering, Volume 4, No 5, pp 469-475 (ISSN 2333-2581) [4] Van-Khien Nguyen, Duy-Luong Tuong, Huy-Tuan Pham, Huy-Hoang Pham, 2018, "Design and Optimization of a New Hollow Circular Flexure Hinge for Precision Mechanisms", Applied Mechanics and Materials, Vol 889, pp 337-345, (ISSN: 1662-7482) [5] Nguyễn Văn Khiển, Ngô Nam Phương, Phạm Huy Hoàng, Phạm Huy Tuân, 2017, “Thiết kế tối ưu mô cấu đàn hồi dùng làm khuếch đại cấu tạo vi chuyển động” Tạp chí Phát triển Khoa học & Cơng nghệ, (ISSN: 1859-0128), tập 20, số K5-2017, pp 5-12 [6] Van Khien Nguyen, Huy Tuan Pham and Huy Hoang Pham, 2017 “Optimal Design of Flexure Mechanism Using Gene Algorithm and Taguchi–Based Sensitivity iv Analysis”, IEEE International Conference on Systems Science and Engineering, July 21-23, HCM city, Vietnam, pp 412 – 417 [7] Nguyễn Văn Khiển, Phạm Huy Hoàng Phạm Huy Tuân, 2017 "Tối ưu hóa đa mục tiêu cấu ăn dao xác dùng kết hợp phương pháp Taguchi, giải thuật gene phương pháp đáp ứng bề mặt", Hội nghị Cơ học Toàn quốc lần thứ X, Hà Nội, 8-9/12/2017, trang 1062-1070, (ISBN: 978-604-913-719-8) [8] Nguyễn Văn Khiển, Phạm Huy Hoàng, Phạm Huy Tuân, 2015 "Cơ cấu đàn hồi hướng ứng dụng", Hội nghị Khoa học - Cơng nghệ Tồn quốc Cơ khí lần thứ IV, Đại học Sư Phạm Kỹ thuật Tp Hồ Chí Minh, 06/11/2015, tập 2, pp 778786 XÁC NHẬN CỦA CƠ QUAN CỬ ĐI HỌC (Ký tên, đóng dấu) Ngày tháng năm 202… Người khai ký tên v 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 án trung thực chưa công bố cơng trình khác Tp Hồ Chí Minh, ngày … tháng … năm 202… (Ký tên ghi rõ họ tên) vi LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn sâu sắc đến Thầy hướng dẫn: Thầy PGS.TS Phạm Huy Hoàng Thầy PGS.TS Phạm Huy Tuân, nhờ gợi ý nghiên cứu quý báu, dẫn cụ thể ý kiến phản biện Thầy giúp em hoàn thành luận án Một lần xin bày tỏ lòng cảm ơn sâu sắc đến Thầy Em xin gửi lời cảm ơn đến tất Thầy Cơ Khoa Cơ Khí Chế Tạo Máy, Đại học Sư phạm Kỹ thuật Tp.HCM truyền đạt kiến thức tảng quý báu từ học phần tiến sĩ, nhờ kiến thức tảng mà em thực cơng việc nghiên cứu Xin gửi lời cảm ơn đến Thầy Cô Hội đồng đánh giá chuyên đề Tiến sĩ, ý kiến phản biện góp ý thật giúp em nhiều việc chỉnh sửa hoàn chỉnh luận án Xin gửi lời cảm ơn đến lãnh đạo Trường Cao Đẳng Bách Khoa Nam Sài Gịn, Khoa Cơ Khí có sách hỗ trợ tốt cho nghiên cứu sinh học tập làm việc Xin cảm ơn TS Đặng Quang Khoa bạn bè đồng nghiệp động viên, giúp đỡ chia sẻ kinh nghiệm để em thực công việc nghiên cứu cách thuận lợi Cuối xin chân thành cảm ơn gia đình người thân ln chia sẻ khó khăn chỗ dựa vững vật chất tinh thần suốt thời gian thực hoàn thành luận án vii TĨM TẮT Tiện có độ xác cao nhằm mục đích thay ngun cơng gia cơng tinh lần cuối chi tiết hình trụ giúp giảm đáng kể chi phí sản xuất thời gian lặp lại Trong luận án trình bày phát triển cấu ăn dao với kích động PZT để tiện xác trục Đánh giá nghiên cứu thực lĩnh vực tiện xác, phát triển thiết bị truyền động PZT thiết kế hệ thống vi định vị trình bày Cơ cấu lắp vào máy tiện thông thường, cấu ăn dao xác khắc phục hạn chế truyền động máy tiện cách điều khiển xác chiều sâu cắt dao Theo cách dung sai kích thước đạt lần thiết lập máy mà không cần thực nguyên công gia cơng tinh máy mài Tóm tắt đóng góp lý luận học thuật luận án: Ý nghĩa khoa học: Lần đầu tiên, hệ thống dụng cụ cắt xác thiết bị cắt thử nghiệm phù hợp với điều kiện sản xuất trong nước xây dựng, tạo tiền đề cho nghiên cứu sau lĩnh vực Việt Nam Đã triển khai nghiên cứu đánh giá thực nghiệm ưu điểm cấu ăn dao dùng cấu đàn hồi (CCĐH) so với máy tiện NC máy tiện CNC thông thường tiêu độ xác cấu ăn dao, độ nhám bề mặt nhiệt độ cắt Nghiên cứu phát triển thiết kế xây dựng mơ hình tốn mới, mối quan hệ chuyển vị, độ cứng đầu vào đầu ra, động học động lực học cấu ăn dao Về mặt phương pháp tính toán thiết kế tối ưu, đề xuất giải thuật thiết kế tối ưu tổng quát từ việc tối ưu hóa cấu khâu cứng tương đương đến tối ưu hóa CCĐH phân tích độ tin cậy: (I) Giải thuật di truyền dùng TOPSIS cho khâu cứng tương đương CCĐH kết hợp Giải thuật thiết kế tối ưu hóa trải qua giai đoạn: (1) thiết kế tối ưu cấu viii %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% fprintf (plane_file , '/SOLU\n'); %! Giai bai toan \n'); fprintf (plane_file , 'ANTYPE,STATIC\n'); %!Chon kieu bai toan fprintf (plane_file , 'D,nset_anchor,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor1,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor2,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor3,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor4,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor5,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor6,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor7,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor8,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor9,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor10,ALL,0\n'); fprintf (plane_file , 'D,nset_anchor11,ALL,0\n'); fprintf (plane_file , 'D,nset_input,UX,-0.1\n'); fprintf (plane_file , 'SOLVE\n'); %! Giai \n'); % -fprintf (plane_file , '/POST1\n'); fprintf (plane_file , 'SET,1\n'); fprintf (plane_file , 'NSEL,S,NODE, ,nset_input\n'); fprintf (plane_file , '*GET,n_input,NODE, ,NUM,MIN\n'); fprintf (plane_file , '*GET,inputdisp,NODE,n_input,U,X\n'); fprintf (plane_file , 'NSEL,ALL\n'); fprintf (plane_file , 'NSEL,S,NODE, ,nset_tip\n'); fprintf (plane_file , '*GET,n_tip,NODE, ,NUM,MIN\n'); fprintf (plane_file , '*GET,tipdisp,NODE,n_tip,U,X\n'); fprintf (plane_file , 'NSEL,ALL\n'); fprintf (plane_file , '/OUTPUT, Dispx.txt\n'); fprintf (plane_file , '*VWRITE,inputdisp\n'); fprintf (plane_file , '(/E13.6)\n'); fprintf (plane_file , '*VWRITE,tipdisp\n'); fprintf (plane_file , '(/E13.6)\n'); fprintf (plane_file , '/OUTPUT\n'); fprintf (plane_file , 'FINISH\n'); fclose(plane_file); ! "C:\Program Files\ANSYS Inc\v150\ansys\bin\winx64\ANSYS150.exe" -b -i F:\Static24.txt -o F:\xuat.txt % ! abaqus job=jobname input=inputfilename load -ascii Dispx.txt A = Dispx; % A(:,1) = abs(A(:,1)); % Mode frequencys of all steps % max = 0; % pos = 0; % for i=1:length(A(:,1)) % search for the natural frequency based on Modes % if A(i,1) > A(i-1,1) && A(i,1) > max % max = A(i,1); % pos = i; % end % end % fo = A(pos,1); % natural frequency fo = A(2,1); HARM(1) = fo; % save natural frequency in HARM(1) % Plat_Plate function f = genetic_operator(parent_chromosome,M,V,mu,mum,l_limit,u_limit,E,PR,dens,aMESH,np,fext) %% function f = genetic_operator(parent_chromosome, M, V, mu, mum, l_limit, u_limit) % % This function is utilized to produce offsprings from parent chromosomes % The genetic operators corssover and mutation which are carried out with % slight modifications from the original design For more information read % the document enclosed % % parent_chromosome - the set of selected chromosomes % M - number of objective functions % V - number of decision varaiables % mu - distribution index for crossover (read the enlcosed pdf file) % mum - distribution index for mutation (read the enclosed pdf file) % l_limit - a vector of lower limit for the corresponding decsion variables % u_limit - a vector of upper limit for the corresponding decsion variables % % The genetic operation is performed only on the decision variables, that % is the first V elements in the chromosome vector % % % Copyright (C) 2009 Aravind Seshadri % % This program is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version of the License, or % (at your option) any later version % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the % GNU General Public License for more details % % You should have received a copy of the GNU General Public License % along with this program If not, see [N,m] = size(parent_chromosome); clear m p = 1; % Flags used to set if crossover and mutation were actually performed was_crossover = 0; was_mutation = 0; for i = : N fprintf('Offspring %d is produced \n', i) % With 90 % probability perform crossover % {1st if begin} if rand(1) < 0.9 % Pham _ there is a probability for crossover to happen here, it also may not occur % Initialize the children to be null vector child_1 = []; child_2 = []; % Select the first parent parent_1 = round(N*rand(1)); if parent_1 < % Pham _ make sure that the array starts from one parent_1 = 1; end % Select the second parent parent_2 = round(N*rand(1)); if parent_2 < parent_2 = 1; end % Make sure both the parents are not the same while isequal(parent_chromosome(parent_1,:),parent_chromosome(parent_2,:)) % Pham _ not need to check the chromosome, can replace by the index checking parent_2 = round(N*rand(1)); if parent_2 < parent_2 = 1; end end % Get the chromosome information for each randomnly selected % parents parent_1 = parent_chromosome(parent_1,:); parent_2 = parent_chromosome(parent_2,:); % Perform corssover for each decision variable in the chromosome for j = : V % SBX (Simulated Binary Crossover) % For more information about SBX refer the enclosed pdf file % Generate a random number u(j) = rand(1); if u(j) u_limit(j) % Pham _ Here is rectangular constraint, can be modified for linear constraint child_1(j) = u_limit(j); elseif child_1(j) < l_limit(j) child_1(j) = l_limit(j); end if child_2(j) > u_limit(j) child_2(j) = u_limit(j); elseif child_2(j) < l_limit(j) child_2(j) = l_limit(j); end end % Evaluate the objective function for the offsprings and as before % concatenate the offspring chromosome with objective value child_1(:,V + 1: M + V) = evaluate_objective(child_1,E,PR,dens,fext,aMESH,np); child_2(:,V + 1: M + V) = evaluate_objective(child_2,E,PR,dens,fext,aMESH,np); % Set the crossover flag When crossover is performed two children % are generate, while when mutation is performed only only child is % generated was_crossover = 1; was_mutation = 0; % With 10 % probability perform mutation Mutation is based on % polynomial mutation else % Select at random the parent parent_3 = round(N*rand(1)); if parent_3 < parent_3 = 1; end % Get the chromosome information for the randomnly selected parent child_3 = parent_chromosome(parent_3,:); % Perform mutation on each element of the selected parent for j = : V r(j) = rand(1); if r(j) < 0.5 delta(j) = (2*r(j))^(1/(mum+1)) - 1; else delta(j) = - (2*(1 - r(j)))^(1/(mum+1)); end % Generate the corresponding child element child_3(j) = child_3(j) + delta(j); % Make sure that the generated element is within the decision % space if child_3(j) > u_limit(j) % Pham _ Here is rectangular constraint, can be modified for linear constraint child_3(j) = u_limit(j); elseif child_3(j) < l_limit(j) child_3(j) = l_limit(j); end end % Evaluate the objective function for the offspring and as before % concatenate the offspring chromosome with objective value child_3(:,V + 1: M + V) = evaluate_objective(child_3,E,PR,dens,fext,aMESH,np); % Pham _ child_3(1,V + 1: M + V) ??? % Set the mutation flag was_mutation = 1; was_crossover = 0; end % {1st if end} % Keep proper count and appropriately fill the child variable with all % the generated children for the particular generation if was_crossover child(p,:) = child_1; child(p+1,:) = child_2; was_cossover = 0; p = p + 2; elseif was_mutation child(p,:) = child_3(1,1 : M + V); was_mutation = 0; p = p + 1; end end f = child; % Pham _ There is no certain for the total number of children, N pop % If so then find the number of individuals with in with current % rank i remaining = pop - previous_index; % Get information about the individuals in the current rank i temp_pop = sorted_chromosome(previous_index + : current_index, :); % Sort the individuals with rank i in the descending order based on % the crowding distance [temp_sort,temp_sort_index] = sort(temp_pop(:, M + V + 2),'descend'); % Start filling individuals into the population in descending order % until the population is filled for j = : remaining f(previous_index + j,:) = temp_pop(temp_sort_index(j),:); end return; elseif current_index < pop % Add all the individuals with rank i into the population f(previous_index + : current_index, :) = sorted_chromosome(previous_index + : current_index, :); else % Add all the individuals with rank i into the population f(previous_index + : current_index, :) = sorted_chromosome(previous_index + : current_index, :); return; end % Get the index for the last added individual previous_index = current_index; end function f = tournament_selection(chromosome, pool_size, tour_size) %% function tournament_selection(chromosome, pool_size, tour_size) % is the selection policy for selecting the individuals for the mating % pool The selection is based on tournament selection Argument % |chromosome| is the current generation population from which the % individuals are selected to form a mating pool of size |pool_size| after % performing tournament selection, with size of the tournament being % |tour_size| By varying the tournament size the selection pressure can be % adjusted But for NSGA-II the tour_size is fixed to two, but the user may % feel free to experiment with different tournament size Also it has been % observed that a tournament size of more than five has no significant % meaning % %% Tournament selection process % In a tournament selection process n individuals are selected at random, % where n is equal to |tour_size| From these individuals only one is selected % and is added to the mating pool, where size of the mating pool is % |pool_size| Selection is performed based on two criteria First and % foremost is the rank or the front in which the solutions reside % Individuals with lower rank are selected Secondly if the rank of two % individuals are the same then, the crowding distance is compared % Individuals with greater crowding distance is selcted % % % Copyright (C) 2009 Aravind Seshadri % % This program is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version of the License, or % (at your option) any later version % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the % GNU General Public License for more details % % You should have received a copy of the GNU General Public License % along with this program If not, see % Get the size of chromosome The number of chromosome is not important % while the number of elements in chromosome are important [pop, variables] = size(chromosome); % The peunltimate element contains the information about rank rank = variables - 1; % The last element contains information about crowding distance distance = variables; % Until the mating pool is filled, perform tournament selection for i = : pool_size % Select n individuals at random, where n = tour_size for j = : tour_size % Select an individual at random candidate(j) = round(pop*rand(1)); % Make sure that the array starts from one if candidate(j) == candidate(j) = 1; end if j > % Make sure that same candidate is not choosen while ~isempty(find(candidate(1 : j - 1) == candidate(j))) candidate(j) = round(pop*rand(1)); if candidate(j) == candidate(j) = 1; end end end end % Collect information about the selected candidates for j = : tour_size c_obj_rank(j) = chromosome(candidate(j),rank); c_obj_distance(j) = chromosome(candidate(j),distance); end % Find the candidate with the least rank min_candidate = find(c_obj_rank == min(c_obj_rank)); % If more than one candiate have the least rank then find the candidate % within that group having the maximum crowding distance if length(min_candidate) ~= max_candidate = find(c_obj_distance(min_candidate) == max(c_obj_distance(min_candidate))); % If a few individuals have the least rank and have maximum crowding % distance, select only one individual (not at random) if length(max_candidate) ~= max_candidate = max_candidate(1); end % Add the selected individual to the mating pool f(i,:) = chromosome(candidate(min_candidate(max_candidate)),:); else % Add the selected individual to the mating pool f(i,:) = chromosome(candidate(min_candidate(1)),:); end end