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

Nghiên cứu tính toán chi tiết máy bằng phương pháp số

153 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

Thông tin cơ bản

Định dạng
Số trang 153
Dung lượng 3,47 MB

Nội dung

Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA HỒNG THIÊN SƠN NGHIÊN CỨU TÍNH TOÁN CHI TIẾT MÁY BẰNG PHƯƠNG PHÁP SỐ Chuyên ngành : Cơ khí chế tạo máy Mã số ngành: 2.01.00 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 12 năm 2006 CƠNG TRÌNH ĐƯỢC HỒ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 PHAN ĐÌNH HUẤN Cán chấm nhận xét : PGS TS NGUYỄN HỮU LỘC Cán chấm nhận xét : TS NGUYỄN TUẤN KIỆ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 HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP – TỰ DO – HẠNH PHÚC Tp HCM, ngày 16 tháng 01 năm 2006 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Hoàng Thiên Sơn Phái: Nam Ngày, tháng, năm sinh: 01 - 10 - 1979 Nơi sinh: Bình Thuận Chun ngành: Cơ khí chế tạo máy MSHV: 00404086 I- TÊN ĐỀ TÀI: Nghiên cứu tính tốn chi tiết máy phương pháp số II- NHIỆM VỤ VÀ NỘI DUNG: - Nghiên cứu lý thuyết phương pháp không lưới toán học vật rắn biến dạng - Áp dụng phương pháp Galerkin không lưới với nhân tử Lagrange cho toán dầm, - Thảo chương tính kết cấu dầm Kiểm chứng kết tính Thảo chương tính chuyển vị ứng suất cho chi tiết khóa vòng Kiểm chứng kết tính III- NGÀY GIAO NHIỆM VỤ : 16-01-2006 IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 03-12-2006 V- CÁN BỘ HƯỚNG DẪN: PGS TS Phan Đình Huấn - CÁN BỘ HƯỚNG DẪN CN BỘ MÔN QL CHUYÊN NGÀNH Nội dung đề cương luận văn thạc sĩ Hội đồng chuyên ngành thông qua TRƯỞNG PHÒNG ĐT – SĐH Ngày tháng năm TRƯỞNG KHOA QL NGÀNH LỜI CẢM ƠN Luận văn hoàn thành nhờ vào nỗ lực thân tác giả mà nhờ vào hướng dẫn tận tình quý thầy cô, động viên giúp đỡ gia đình, đồng nghiệp bạn bè thân hữu Trước tiên xin bày tỏ lòng biết ơn chân thành đến thầy PGS TS Phan Đình Huấn giúp đỡ, dẫn cặn kẽ thời gian thực luận văn, giúp cho tác giả có phương pháp luận kiến thức quý báu làm tảng cho việc học tập, tiếp tục nghiên cứu phát triển sau Xin chân thành cảm ơn Ban Giám Đốc Trung tâm Đào tạo Bảo dưỡng công nghiệp – Trường Đại học Bách Khoa TpHCM tạo điều kiện thuận lợi cho tác giả suốt thời gian qua Và cuối cùng, xin cảm ơn gia đình, anh, chị, bạn bè thân hữu động viên, giúp đỡ, nguồn lực tinh thần quý báu giúp tác giả có thêm nghị lực để hoàn thành luận văn Xin chân thành cảm ơn Tp Hồ Chí Minh, ngày 22 tháng 10 năm 2006 Tác giả Hoàng Thiên Sơn TÓM TẮT LUẬN VĂN THẠC SĨ Hiện có nhiều phương pháp số sai phân hữu hạn, phần tử hữu hạn, phần tử biên… Chúng phương pháp truyền thống sử dụng rộng rãi, đặc biệt phương pháp phần tử hữu hạn (PP PTHH) Phương pháp phát triển mạnh mẽ chuyên sâu cho toán tónh, động, phân tích ứng suất tuyến tính phi tuyến, với đối tượng kết cấu, khối rắn dòng lưu chất Nền tảng PP PTHH sử dụng phần tử tạo thành hệ lưới liên tục để xấp xỉ miền tính Tuy nhiên, hệ lưới phần tử mà PP PTHH có số hạn chế định Do đó, việc nghiên cứu phương pháp với ý tưởng loại bỏ phần tử hệ lưới nhằm khắc phục hạn chế, làm phong phú thêm phương pháp tính cần thiết Phương pháp có tên phương pháp không lưới (PPKL) Với phương pháp này, miền toán đặc trưng tập hợp nút với phân bố Trên giới có nhiều nghiên cứu PPKL, mặt học thuật áp dụng thực tế Tuy nhiên, Việt Nam, việc nghiên cứu ứng dụng phương pháp tính toán kỹ thuật Do đó, đề tài thực với nội dung “Nghiên cứu tính toán chi tiết máy phương pháp số”, với phạm vi nghiên cứu là: - Nghiên cứu lý thuyết phương pháp không lưới toán học vật rắn biến dạng - Áp dụng phương pháp Galerkin không lưới với nhân tử Lagrange cho toán dầm, - Thảo chương tính kết cấu dầm Kiểm chứng kết tính - Thảo chương tính chuyển vị ứng suất cho chi tiết khóa vòng Kiểm chứng kết tính ABSTRACT Nowadays, there are a lot of numerical methods such as finite difference method, finite element method, boundary element method… They are traditional methods and popularly used, especially, the finite element method (FEM) This method was effectly developed and specialized for many problems such as statics, dynamics, analyzing linear and non-linear stress for structures, solids anf flows FEM is based on elements which create a continuous mesh to approximate problem domain However, FEM has certains disadvantages because of this mesh So, researching a new methods with ideas of eliminating the elements and the mesh to overcome the disadvantages, and enrich numerical methods is necessary This new method is Meshless Methods or MeshFree Methods With this method, problem domain is represented by a set of arbitrarily distributed nodes There are a lot of researches about Meshless Methods, both in academic ones and in real applications However, in Viet Nam, there are few researches and applications in technical fields So, this dissertation is done with the tittle “Researching and calculating machined elements by numerical methods”, and its content is: - Researching theories of meshless methods for mechanical deformable solid problems - Applying Element Free Galerkin Method with Lagrange Multipliers for beam, plate structures - Writing programs for calculating beam, plate structures Veryfying the results - Writing a program for calculating displacements and stress of a lock element Veryfying the results MUÏC LUÏC W X -Lời cảm ơn Tóm tắt luận văn Mục lục Trang CHƯƠNG I: TỔNG QUAN - 10 I Giới thiệu phương pháp số - 11 Các phương pháp không máy tính (Noncomputer Methods) 11 Caùc phương pháp số vấn đề kỹ thuật thực teá - 14 II Noäi dung phạm vi nghiên cứu đề tài 16 III Phương pháp không lưới - 17 Lịch sử phát triển - 17 Sự cần thiết PPKL - 18 Ý tưởng PPKL 20 Các điểm tương đồng – không tương đồng so với PP PTHH - 21 Xây dựng mô hình hình học - 24 Các bước thực toán PPKL - 26 Xác định kích thước miền hỗ trợ 31 Xác định khoảng cách trung bình nút 31 Khái niệm miền ảnh hưởng - 33 CHƯƠNG II: CƠ SỞ LÝ THUYEÁT - 35 I Các phương trình toán vật rắn hai chieàu (2D) - 36 Ứng suất - biến dạng - 36 Các phương trình 38 Các phương trình cân 38 II Phương trình Galerkin dạng yếu với nhân tử Lagrange - 39 Nguyên lý Hamilton - 39 Phương trình Galerkin dạng yếu 40 Phương trình Galerkin dạng yếu với nhân tử Lagrange 43 III Phương pháp xấp xỉ bình phương cực tiểu (PP XXBPCT) - 43 IV Phương pháp Galerkin không lưới 48 Các công thức - 48 Löu đồ giải thuật - 58 CHƯƠNG III: TÍNH TOÁN MỘT SỐ KẾT CẤU DẦM VÀ TẤM 59 A Bài toán dầm Timoshenko 60 I Phát biểu toán - 60 II Các lưu đồ giải thuật - 61 Lưu đồ giải thuật cho ma trận độ cứng K 62 Lưu đồ giải thuật cho ma trận lực nút tương đương F 63 Lưu đồ giải thuật cho ma trận q 64 Lưu đồ giải thuaät cho ma traän G - 65 Lưu đồ giải thuật tính chuyển vị thật nút - 66 III Minh họa bước tính toán với lưới thô - 67 Tính ma trận độ cứng K - 68 Tính ma trận lực nút tương đương F - 76 Tính ma trận q G - 79 Tính chuyển vị thật nút - 84 IV Các kết tính so với kết giải tích - 84 IIV Chương trình TMB - 89 B Bài toán có lỗ 93 I Phaùt biểu toán - 93 II Các kết tính so với kết giải tích 94 CHƯƠNG IV: TÍNH CHUYỂNVỊ VÀ ỨNG SUẤT CHO KHÓA VÒNG - 103 I Phát biểu toán 104 II Mô hình tính phần mềm ANSYS 105 III Mô hình tính PP GKL - 106 IV Kết tính phầm mềm ANSYS vaø PP GKL - 110 Với mô hình tính 335 nút, 272 phần tử - 110 Với mô hình tính 1197 nút, 1072 phần tử - 115 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI - 121 I Kết luận đề tài 122 II Hướng phát triển đề tài 123 TÀI LIỆU THAM KHẢO - 124 PHUÏ LUÏC - 127 CHƯƠNG I : TỔNG QUAN Nghiên cứu tính toán chi tiết máy phương pháp số ratio_y = 2; nG = 4; anpha = 2; Type_Of_Weight_Function2 = 'Cubic_Spline_Weight_Function'; Type_Of_Weight_Function1 = 'Quartic_Spline_Weight_Function'; % Generation of nodes ABCDE = [a b b 0; 0 b b a]; node = zeros(2*nAB*nBC-nAB,2); % Generation of nodes on the AB edge node_temp = Node_CSC(nAB, b-a, ratio_x, a); node(1:nAB,1) = node_temp; % Generation of nodes on the BC edge node_temp = Node_CSC(nBC, b, ratio_y, 0); dem = nAB; Nodes_on_BC = []; for i=2:nBC dem = dem + nAB; Nodes_on_BC = [Nodes_on_BC dem]; node(dem,1) = b; node(dem,2) = node_temp(i); end % Generation of nodes on the CD edge node_temp = Node_CSC(nBC, b, ratio_y, 0); dem = size(node,1) - nAB; Nodes_on_CD = []; for i=2:nBC-1 Nodes_on_CD = [dem Nodes_on_CD]; node(dem,1) = node_temp(i); node(dem,2) = b; dem = dem - nAB; end % Generation of nodes on the DE edge node_temp = Node_CSC(nAB, b-a, ratio_x, a); temp = size(node,1) - nAB + 1; node(temp:size(node,1),2) = node_temp; % Generation of nodes on the AE edge phi = linspace(0,pi/2,2*nBC-1); x_temp = a*cos(phi); y_temp = a*sin(phi); dem = 1; Nodes_on_AE = []; for i=2:(2*nBC-2) dem = dem + nAB; Nodes_on_AE = [Nodes_on_AE dem ]; node(dem,1) = x_temp(1,i); node(dem,2) = y_temp(1,i); end % Generation of oblique nodes Nodes_on_BCD = [Nodes_on_BC Nodes_on_CD]; for i=2:(2*nBC-2) HVTH: Hoàng Thiên Sơn Trang 139 Nghiên cứu tính toán chi tiết máy phương pháp số deltaX = [node(Nodes_on_BCD,1) - node(Nodes_on_AE,1)]; deltaY = [node(Nodes_on_BCD,2) - node(Nodes_on_AE,2)]; end for i=2:(2*nBC-2) node_temp_x = Node_CSC(nAB, deltaX(i-1), ratio_x, x_temp(i)); node_temp_y = Node_CSC(nAB, deltaY(i-1), ratio_x, y_temp(i)); dem1 = Nodes_on_AE(1,i-1) + 1; dem2 = dem1 + nAB - 3; dem3 = 2; for j=dem1:dem2 node(j,1) = node_temp_x(dem3); node(j,2) = node_temp_y(dem3); dem3 = dem3 + 1; end end % Generation of elements element = zeros(2*(nBC-1)*(nAB-1),4); count = 1; delta = zeros(1,4); for i=1:(2*nBC-2) for j=1:(nAB-1) element(count,:) = [1 nAB+2 nAB+1] + delta; count = count + 1; delta = delta + 1; end delta = nAB*i; end % Generation of Gaussian Points in relative elements [Reference_Gauss_Points, Reference_Gauss_Weights] = Gauss_Points(nG,2); % Generation of Gaussian Points in real elements and calculate Jacobian Matrix Real_Gauss_Points = []; Real_Gauss_Weights = []; Jacobian_Gauss_Matrix = []; for i=1:size(element,1) for j=1:size(Reference_Gauss_Points,1) [Reference_N,Reference_dNdxi_eta] = Lagrange_Function(2,Reference_Gauss_Points(j,:)); Real_Gauss_Points = [Real_Gauss_Points; Reference_N'*node(element(i,:),:)]; Real_Gauss_Weights = [Real_Gauss_Weights; Reference_Gauss_Weights(j)]; J_temp = node(element(i,:),:)'*Reference_dNdxi_eta; Jacobian_Gauss_Matrix = [Jacobian_Gauss_Matrix; det(J_temp)]; end end clear Reference_Gauss_Points, Reference_Gauss_Weights; % Plot nodes, elements and Gauss points -figure; hold on; axis square; axis([0 b+0.05 b+0.05]) plate = plot(ABCDE(1,:),ABCDE(2,:),'b'); set(plate,'LineWidth',3); HVTH: Hoàng Thiên Sơn Trang 140 Nghiên cứu tính toán chi tiết máy phương pháp số x = linspace(0,a,100); y = sqrt((a^2)-(x.^2)); hole = plot(x,y,'b'); set(hole,'LineWidth',3); nodeplot = plot(node(:,1),node(:,2),'bo'); set(nodeplot,'LineWidth',1.5,'MarkerSize',10); for i=1:size(element,1) plot(node(element(i,:),1),node(element(i,:),2),'b:'); end GaussPlot = plot(Real_Gauss_Points(:,1),Real_Gauss_Points(:,2),'r*'); %set(GaussPlot,'MarkerSize',7); % - Caculating radius of support domain radius = zeros(1,size(node,1)); for i=1:size(element,1) temp1 = node(element(i,1),:); temp2 = node(element(i,3),:); dist = norm(temp1-temp2); radius(1,element(i,:)) = dist*anpha; end % - Calculating Stiffness Matrix K -K = zeros(2*size(node,1),2*size(node,1)); C = (E/(1-nu*nu))*[1 nu ; nu 0; 0 0.5*(1-nu)]; for i=1:size(Real_Gauss_Points,1) [Nodes_In_Support_Domain] = Support_Domain(node,Real_Gauss_Points(i,:),radius); B = zeros(3,2*size(Nodes_In_Support_Domain,2)); count = zeros(1,2*size(Nodes_In_Support_Domain,2)); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points(i,:),Nodes_In_Support_Domain, node,radius,Type_Of_Weight_Function2); for j=1:size(Nodes_In_Support_Domain,2) B(1:3,2*j-1:2*j) = [dphidxG(j) 0; dphidyG(j); dphidyG(j) dphidxG(j)]; count(2*j-1) = 2*Nodes_In_Support_Domain(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain(j); end K(count,count) = K(count,count) + B'*C*B*Real_Gauss_Weights(i)*Jacobian_Gauss_Matrix(i); end clear Real_Gauss_Weights; % Generation of Gaussian Points on the bounderies of force Nodes_On_Force_Egde = find(node(:,1)==b); [Reference_Gauss_Points_Force, Reference_Gauss_Weights_Force] = Gauss_Points(nG,1); % Real Gaussian Points and Jacobian Matrix on the bounderies of force Real_Gauss_Points_Force = []; Real_Gauss_Weights_Force = []; Jacobian_Gauss_Matrix_Force = []; for i=1:(size(Nodes_On_Force_Egde,1)-1) for j=1:size(Reference_Gauss_Points_Force,1) [Reference_N_Force,Reference_dNdxi_Force] = Lagrange_Function(1,Reference_Gauss_Points_Force(j)); Real_Gauss_Points_Force = [Real_Gauss_Points_Force; Reference_N_Force' *[node(Nodes_On_Force_Egde(i),:); node(Nodes_On_Force_Egde(i+1),:)]]; HVTH: Hoaøng Thiên Sơn Trang 141 Nghiên cứu tính toán chi tiết máy phương pháp số Real_Gauss_Weights_Force = [Real_Gauss_Weights_Force; Reference_Gauss_Weights_Force(j)]; J_temp = [node(Nodes_On_Force_Egde(i),2) node(Nodes_On_Force_Egde(i+1),2)] *Reference_dNdxi_Force; Jacobian_Gauss_Matrix_Force = [Jacobian_Gauss_Matrix_Force; det(J_temp)]; end end % - Calculating Force Matrix F -F = zeros(2*size(node,1),1); for i=1:size(Real_Gauss_Points_Force,1) [Nodes_In_Support_Domain_Force] = Support_Domain(node,Real_Gauss_Points_Force(i,:),radius); count = zeros(1,2*size(Nodes_In_Support_Domain_Force,2)); Force_temp = zeros(1,2*size(Nodes_In_Support_Domain_Force,2)); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points_Force(i,:), Nodes_In_Support_Domain_Force,node, radius,Type_Of_Weight_Function2); x = Real_Gauss_Points_Force(i,1); y = Real_Gauss_Points_Force(i,2); r = sqrt(x*x + y*y); theta = atan(y/x); sigma_x = 1-((a/r)^2)*(1.5*cos(2*theta)+cos(4*theta))+1.5*((a/r)^4)*cos(4*theta); sigma_xy = -((a/r)^2)*(0.5*sin(2*theta)+sin(4*theta))+1.5*((a/r)^4)*sin(4*theta); tx = sigma_x; ty = sigma_xy; for j=1:size(Nodes_In_Support_Domain_Force,2) count(2*j-1) = 2*Nodes_In_Support_Domain_Force(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain_Force(j); Force_temp(2*j-1) = tx*phi(j); Force_temp(2*j ) = ty*phi(j); end F(count) = F(count) + Jacobian_Gauss_Matrix_Force(i)*Real_Gauss_Weights_Force(i)*Force_temp'; end % Generation of Gaussian Points on the TOP bounderies of force Nodes_On_Force_Egde = find(node(:,2)==b); [Reference_Gauss_Points_Force, Reference_Gauss_Weights_Force] = Gauss_Points(nG,1); % Real Gaussian Points and Jacobian Matrix on the bounderies of force Real_Gauss_Points_Force = []; Real_Gauss_Weights_Force = []; Jacobian_Gauss_Matrix_Force = []; for i=1:(size(Nodes_On_Force_Egde,1)-1) for j=1:size(Reference_Gauss_Points_Force,1) [Reference_N_Force,Reference_dNdxi_Force] = Lagrange_Function(1,Reference_Gauss_Points_Force(j)); Real_Gauss_Points_Force = [Real_Gauss_Points_Force; Reference_N_Force'* [node(Nodes_On_Force_Egde(i),:); node(Nodes_On_Force_Egde(i+1),:)]]; Real_Gauss_Weights_Force = [Real_Gauss_Weights_Force; Reference_Gauss_Weights_Force(j)]; J_temp = [node(Nodes_On_Force_Egde(i),2) node(Nodes_On_Force_Egde(i+1),2)]* Reference_dNdxi_Force; Jacobian_Gauss_Matrix_Force = [Jacobian_Gauss_Matrix_Force; det(J_temp)]; HVTH: Hoàng Thiên Sơn Trang 142 Nghiên cứu tính toán chi tiết máy phương pháp số end end % - Calculating Force Matrix F -for i=1:size(Real_Gauss_Points_Force,1) [Nodes_In_Support_Domain_Force] = Support_Domain(node,Real_Gauss_Points_Force(i,:),radius); count = zeros(1,2*size(Nodes_In_Support_Domain_Force,2)); Force_temp = zeros(1,2*size(Nodes_In_Support_Domain_Force,2)); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points_Force(i,:),Nodes_In_Support_Domain_Force,node, radius,Type_Of_Weight_Function2); x = Real_Gauss_Points_Force(i,1); y = Real_Gauss_Points_Force(i,2); r = sqrt(x*x + y*y); theta = atan(y/x); sigma_y = -((a/r)^2)*(0.5*cos(2*theta)-cos(4*theta)-1.5*((a/r)^4)*cos(4*theta)); sigma_xy = -((a/r)^2)*(0.5*sin(2*theta)+sin(4*theta))+1.5*((a/r)^4)*sin(4*theta); tx = sigma_xy; ty = sigma_y; for j=1:size(Nodes_In_Support_Domain_Force,2) count(2*j-1) = 2*Nodes_In_Support_Domain_Force(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain_Force(j); Force_temp(2*j-1) = tx*phi(j); Force_temp(2*j ) = ty*phi(j); end F(count) = F(count) + Jacobian_Gauss_Matrix_Force(i)*Real_Gauss_Weights_Force(i)*Force_temp'; end % Generation of Gaussian Points on the bounderies of displacement Nodes_On_Displacement_Bottom_Egde = find(node(:,2)==0); Nodes_On_Displacement_Left_Egde = find(node(:,1)==0); [Reference_Gauss_Points_Displacement, Reference_Gauss_Weights_Displacement] = Gauss_Points(nG,1); % Real Gaussian Points and Jacobian Matrix on the BOTTOM EGDE of displacement -Real_Gauss_Points_Displacement_Bottom_Egde = []; Real_Gauss_Weights_Displacement_Bottom_Egde = []; Jacobian_Gauss_Matrix_Displacement_Bottom_Egde = []; for i=1:(size(Nodes_On_Displacement_Bottom_Egde,1)-1) for j=1:size(Reference_Gauss_Points_Displacement,1) [Reference_N_Displacement,Reference_dNdxi_Displacement] = Lagrange_Function(1,Reference_Gauss_Points_Displacement(j)); Real_Gauss_Points_Displacement_Bottom_Egde = [Real_Gauss_Points_Displacement_Bottom_Egde; Reference_N_Displacement'* [node(Nodes_On_Displacement_Bottom_Egde(i),:); node(Nodes_On_Displacement_Bottom_Egde(i+1),:)]]; Real_Gauss_Weights_Displacement_Bottom_Egde = [Real_Gauss_Weights_Displacement_Bottom_Egde; Reference_Gauss_Weights_Displacement(j)]; J_temp = [node(Nodes_On_Displacement_Bottom_Egde(i),1) node (Nodes_On_Displacement_Bottom_Egde(i+1),1)]* HVTH: Hoàng Thiên Sơn Trang 143 Nghiên cứu tính toán chi tiết máy phương pháp số Reference_dNdxi_Displacement;Jacobian_Gauss_Matrix_Displacement_Bottom_Egde = [Jacobian_Gauss_Matrix_Displacement_Bottom_Egde; det(J_temp)]; end end % Real Gaussian Points and Jacobian Matrix on the LEFT EGDE of displacement Real_Gauss_Points_Displacement_Left_Egde = []; Real_Gauss_Weights_Displacement_Left_Egde = []; Jacobian_Gauss_Matrix_Displacement_Left_Egde = []; for i=1:(size(Nodes_On_Displacement_Left_Egde,1)-1) for j=1:size(Reference_Gauss_Points_Displacement,1) [Reference_N_Displacement,Reference_dNdxi_Displacement] = Lagrange_Function(1,Reference_Gauss_Points_Displacement(j)); Real_Gauss_Points_Displacement_Left_Egde = [Real_Gauss_Points_Displacement_Left_Egde; Reference_N_Displacement'* [node(Nodes_On_Displacement_Left_Egde(i),:); node(Nodes_On_Displacement_Left_Egde(i+1),:)]]; Real_Gauss_Weights_Displacement_Left_Egde = [Real_Gauss_Weights_Displacement_Left_Egde; Reference_Gauss_Weights_Displacement(j)]; J_temp = [node(Nodes_On_Displacement_Left_Egde(i),2) node(Nodes_On_Displacement_Left_Egde(i+1),2)]* Reference_dNdxi_Displacement; Jacobian_Gauss_Matrix_Displacement_Left_Egde = [Jacobian_Gauss_Matrix_Displacement_Left_Egde; det(J_temp)]; end end % - Calculating G and qk Matrix -temp = 2*(size(Nodes_On_Displacement_Bottom_Egde,1) + size(Nodes_On_Displacement_Left_Egde,1)); G = zeros(2*size(node,1),temp); q = zeros(1,temp); % For the bottom egde count1 = 0; count3 = 1; for i=1:(size(Nodes_On_Displacement_Bottom_Egde,1)-1) % for each 1D element count1 = count1 + 1; count2 = count1 + 1; element_length = abs(node(Nodes_On_Displacement_Bottom_Egde(i),1)node(Nodes_On_Displacement_Bottom_Egde(i+1),1)); for j=1:size(Reference_Gauss_Points_Displacement,1) % we calculate for the real Gauss points on each element % - Calculating G Matrix -x = Real_Gauss_Points_Displacement_Bottom_Egde(count3,1); y = Real_Gauss_Points_Displacement_Bottom_Egde(count3,2); N1 = 1-(x/element_length); N2 = x/element_length; [Nodes_In_Support_Domain_Displacement] = Support_Domain(node, Real_Gauss_Points_Displacement_Bottom_Egde(count3,:),radius); HVTH: Hoàng Thiên Sơn Trang 144 Nghiên cứu tính toán chi tiết máy phương pháp số [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss _Points_Displacement_Bottom_Egde(count3,:) Nodes_In_Support_Domain_Displacement, node,radius,Type_Of_Weight_Function2); for k=1:size(Nodes_In_Support_Domain_Displacement,2) row1_G = 2*Nodes_In_Support_Domain_Displacement(k)-1; row2_G = 2*Nodes_In_Support_Domain_Displacement(k); G1_temp = - [0 ; N1]*phi(k)*Real_Gauss_Weights_Displacement_Bottom_Egde(count3)* Jacobian_Gauss_Matrix_Displacement_Bottom_Egde(count3); G2_temp = - [0 ; N2]*phi(k)*Real_Gauss_Weights_Displacement_Bottom_Egde(count3)* Jacobian_Gauss_Matrix_Displacement_Bottom_Egde(count3); G(row1_G:row2_G,2*count1-1:2*count1) = G(row1_G:row2_G,2*count1-1:2*count1) + G1_temp; G(row1_G:row2_G,2*count2-1:2*count2) = G(row1_G:row2_G,2*count2-1:2*count2) + G2_temp; end count3 = count3 + 1; end end % For the left egde count1 = count1+1; count3 = 1; for i=1:(size(Nodes_On_Displacement_Left_Egde,1)-1) % for each 1D element count1 = count1 + 1; count2 = count1 + 1; element_length = abs(node(Nodes_On_Displacement_Left_Egde(i),2)node(Nodes_On_Displacement_Left_Egde(i+1),2)); for j=1:size(Reference_Gauss_Points_Displacement,1) % we calculate for the real Gauss points on each element % - Calculating G Matrix -x = Real_Gauss_Points_Displacement_Left_Egde(count3,1); y = Real_Gauss_Points_Displacement_Left_Egde(count3,2); N1 = 1-(y/element_length); N2 = y/element_length; [Nodes_In_Support_Domain_Displacement] = Support_Domain(node, Real_Gauss_Points_Displacement_Left_Egde(count3,:),radius); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points_Displacement_Left_Egde(count3,:), Nodes_In_Support_Domain_Displacement, node,radius,Type_Of_Weight_Function2); for k=1:size(Nodes_In_Support_Domain_Displacement,2) row1_G = 2*Nodes_In_Support_Domain_Displacement(k)-1; row2_G = 2*Nodes_In_Support_Domain_Displacement(k); G1_temp = - [N1 ; 0]*phi(k)*Real_Gauss_Weights_Displacement_Bottom_Egde(count3)* Jacobian_Gauss_Matrix_Displacement_Bottom_Egde(count3); G2_temp = - [N2 ; 0]*phi(k)*Real_Gauss_Weights_Displacement_Bottom_Egde(count3)* Jacobian_Gauss_Matrix_Displacement_Bottom_Egde(count3); G(row1_G:row2_G,2*count1-1:2*count1) = G(row1_G:row2_G,2*count1-1:2*count1) + G1_temp; G(row1_G:row2_G,2*count2-1:2*count2) = G(row1_G:row2_G,2*count2-1:2*count2) + G2_temp; end count3 = count3 + 1; end end HVTH: Hoàng Thiên Sơn Trang 145 Nghiên cứu tính toán chi tiết máy phương pháp soá % - Solution for nodal displacement parameters -F = [F;q']; KK = [K G; G' zeros(temp)]; del = any(KK); dem = 0; for i=1:size(del,2) dem = dem+1; if del(i)==0 KK(:,dem)=[]; KK(dem,:)=[]; F(dem,:)=[]; dem = dem - 1; end end U_Lamda = KK\F; U_Nodal_Parameters = U_Lamda(1:(size(node,1)*2)); %clear F K G q KK U_Lamda; U_True = zeros(2*size(node,1),1); for i=1:size(node,1) [Nodes_In_Support_Domain_True_Displacement] = Support_Domain(node,node(i,:),radius); [phi_node,dphidx_node,dphidy_node] = MLS_Shape_Function(node(i,:), Nodes_In_Support_Domain_True_Displacement, node,radius,Type_Of_Weight_Function2); U_True(2*i-1) = phi_node* U_Nodal_Parameters(2*Nodes_In_Support_Domain_True_Displacement-1); U_True(2*i) = phi_node*U_Nodal_Parameters(2*Nodes_In_Support_Domain_True_Displacement); end % - Solution for Stress at Nodes (or Gauss Points) -col = 0; %for i=1:size(Real_Gauss_Points,1) for i=1:size(node,1) [Nodes_In_Support_Domain] = Support_Domain(node,node(i,:),radius); B = zeros(3,2*size(Nodes_In_Support_Domain,2)); count = zeros(1,2*size(Nodes_In_Support_Domain,2)); % [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points(i,:) ,Nodes_In_Support_Domain,node,radius,Type_Of_Weight_Function2); [phi,dphidxG,dphidyG] = MLS_Shape_Function(node(i,:),Nodes_In_Support_Domain, node,radius,Type_Of_Weight_Function2); for j=1:size(Nodes_In_Support_Domain,2) B(1:3,2*j-1:2*j) = [dphidxG(j) 0; dphidyG(j); dphidyG(j) dphidxG(j)]; count(2*j-1) = 2*Nodes_In_Support_Domain(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain(j); end col = col + 1; Stress(1:3,col) = C*B*U_Nodal_Parameters(count); end % - Graphs -y = linspace(a,b,50); x = 0; % - SigmaXX along x = HVTH: Hoàng Thiên Sơn Trang 146 Nghiên cứu tính toán chi tiết máy phương pháp số SigmaXX = 1-(a^2)./(y.^2)*(3/2*cos(pi)+cos(2*pi))+3*(a^4)./(2*y.^4)*cos(2*pi); figure; graph1 = plot(y,SigmaXX,'b'); hold on; set(graph1,'LineWidth',2); grid on; Nodes_Plots = find(node(:,1)==0); graph2 = plot(node(Nodes_Plots,2),Stress(1,Nodes_Plots),'r*'); set(graph2,'MarkerSize',15); lg = legend('PP GIẢI TÍCH','PP GKL'); set(lg,'FontName','Vni-Times','fontsize',15); set(lg,'fontsize',15); xlabel('Y','FontName','Vni-Times','fontsize',15,'color','b'); ylabel('ỨNG SUẤT SIGMA-XX','FontName','Vni-Times','fontsize',15,'color','b'); title('ỨNG SUẤT SIGMA-XX CỦA CÁC NÚT CÓ X = 0','FontName','Vni-Times','fontsize',20,'color','r'); CHƯƠNG TRÌNH TÍNH CHO BÀI TOÁN KHÓA VÒNG clc; clear; R = 12.5; L = 120; p = 1; nG = 4; anpha = 3; E = 2e5; nu = 0.3; nut = 335; %nut = 1197; phantu = 272; %phantu = 1072; Type_Of_Weight_Function2 = 'Cubic_Spline_Weight_Function'; Type_Of_Weight_Function1 = 'Quartic_Spline_Weight_Function'; % - Tao nut -fid = fopen('node335.txt','rt'); %fid = fopen('node1197.txt','rt'); for i=1:nut tline = fgetl(fid); a = str2num(tline); node(a(1),1) = a(2); node(a(1),2) = a(3); end fclose(fid); % - Tao phan tu fid = fopen('element272.txt','rt'); %fid = fopen('element1072.txt','rt'); for i=1:phantu tline = fgetl(fid); a = str2num(tline); element(a(1),1) = a(6); HVTH: Hoàng Thiên Sơn Trang 147 Nghiên cứu tính toán chi tiết máy phương pháp số element(a(1),2) = a(7); element(a(1),3) = a(8); element(a(1),4) = a(9); end fclose(fid); % - Tao diem Gauss [Reference_Gauss_Points, Reference_Gauss_Weights] = Gauss_Points(nG,2); Real_Gauss_Points = []; Real_Gauss_Weights = []; Jacobian_Gauss_Matrix = []; for i=1:size(element,1) for j=1:size(Reference_Gauss_Points,1) [Reference_N,Reference_dNdxi_eta] = Lagrange_Function(2,Reference_Gauss_Points(j,:)); Real_Gauss_Points = [Real_Gauss_Points; Reference_N'*node(element(i,:),:)]; Real_Gauss_Weights = [Real_Gauss_Weights; Reference_Gauss_Weights(j)]; J_temp = node(element(i,:),:)'*Reference_dNdxi_eta; Jacobian_Gauss_Matrix = [Jacobian_Gauss_Matrix; det(J_temp)]; end end clear Reference_Gauss_Points, Reference_Gauss_Weights; % - Ve nut, phan tu va diem Gauss -figure; hold on; axis square; axis([-R-2 L -L/2-R-2 L/2]); nodeplot = plot(node(:,1),node(:,2),'bo'); set(nodeplot,'LineWidth',0.1,'MarkerSize',1.5); for i=1:size(element,1) tam = [element(i,:) element(i,1)]; plot(node(tam,1),node(tam,2),'b:'); end GaussPlot = plot(Real_Gauss_Points(:,1),Real_Gauss_Points(:,2),'r*'); % - Tinh ban kinh mien ho tro radius = zeros(1,size(node,1)); for i=1:size(element,1) temp1 = node(element(i,1),:); temp2 = node(element(i,3),:); dist = norm(temp1-temp2); radius(1,element(i,:)) = dist*anpha; end % - Calculating Stiffness Matrix K -K = sparse(2*size(node,1),2*size(node,1)); C = (E/(1-nu*nu))*[1 nu ; nu 0; 0 0.5*(1-nu)]; for i=1:size(Real_Gauss_Points,1) [Nodes_In_Support_Domain] = Support_Domain(node,Real_Gauss_Points(i,:),radius); B = zeros(3,2*size(Nodes_In_Support_Domain,2)); count = zeros(1,2*size(Nodes_In_Support_Domain,2)); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points(i,:),Nodes_In_Support_Domain,node,radius,Type_Of_Weight _Function2); HVTH: Hoàng Thiên Sơn Trang 148 Nghiên cứu tính toán chi tiết máy phương pháp số for j=1:size(Nodes_In_Support_Domain,2) B(1:3,2*j-1:2*j) = [dphidxG(j) 0; dphidyG(j); dphidyG(j) dphidxG(j)]; count(2*j-1) = 2*Nodes_In_Support_Domain(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain(j); end K(count,count) = K(count,count) + B'*C*B*Real_Gauss_Weights(i)*Jacobian_Gauss_Matrix(i); end clear Real_Gauss_Weights; % Generation of Gaussian Points on the bounderies of force if nut==335 Nodes_On_Force_Egde = [276 307 308 309 310 311 306 168]; else Nodes_On_Force_Egde = [982 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1090 590]; end [Reference_Gauss_Points_Force, Reference_Gauss_Weights_Force] = Gauss_Points(nG,1); % Real Gaussian Points and Jacobian Matrix on the bounderies of force Real_Gauss_Points_Force = []; Real_Gauss_Weights_Force = []; Jacobian_Gauss_Matrix_Force = []; for i=1:(size(Nodes_On_Force_Egde,2)-1) for j=1:size(Reference_Gauss_Points_Force,1) [Reference_N_Force,Reference_dNdxi_Force] = Lagrange_Function(1,Reference_Gauss_Points_Force(j)); Real_Gauss_Points_Force = [Real_Gauss_Points_Force; Reference_N_Force'*[node(Nodes_On_Force_Egde(i),:); node(Nodes_On_Force_Egde(i+1),:)]]; Real_Gauss_Weights_Force = [Real_Gauss_Weights_Force; Reference_Gauss_Weights_Force(j)]; J_temp = [node(Nodes_On_Force_Egde(i),1) node(Nodes_On_Force_Egde(i+1),1)]*Reference_dNdxi_Force; Jacobian_Gauss_Matrix_Force = [Jacobian_Gauss_Matrix_Force; det(J_temp)]; end end % - Calculating Force Matrix F -F = zeros(2*size(node,1),1); for i=1:size(Real_Gauss_Points_Force,1) [Nodes_In_Support_Domain_Force] = Support_Domain(node,Real_Gauss_Points_Force(i,:),radius); count = zeros(1,2*size(Nodes_In_Support_Domain_Force,2)); Force_temp = zeros(1,2*size(Nodes_In_Support_Domain_Force,2)); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points_Force(i,:),Nodes_In_Support_Domain_Force,node, radius,Type_Of_Weight_Function2); tx = 0.0; ty = -p; for j=1:size(Nodes_In_Support_Domain_Force,2) count(2*j-1) = 2*Nodes_In_Support_Domain_Force(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain_Force(j); Force_temp(2*j-1) = tx*phi(j); Force_temp(2*j ) = ty*phi(j); end F(count) = F(count) + Jacobian_Gauss_Matrix_Force(i)*Real_Gauss_Weights_Force(i)*Force_temp'; HVTH: Hoaøng Thiên Sơn Trang 149 Nghiên cứu tính toán chi tiết máy phương pháp số end % Generation of Gaussian Points on the bounderies of displacement if nut==335 Nodes_On_Displacement_Egde_1 = [30 36 35 34 18]; Nodes_On_Displacement_Egde_2 = [46 49 48 47 30]; Nodes_On_Displacement_Egde_3 = [46 67 68 69 66]; Nodes_On_Displacement_Egde_4 = [66 87 88 89 86]; Nodes_On_Displacement_Egde_5 = [86 107 106 116 1]; Nodes_On_Displacement_Egde_6 = [18 22 12 1]; else Nodes_On_Displacement_Egde_1 = [90 104 103 102 101 100 99 98 50]; Nodes_On_Displacement_Egde_4 = [226 299 300 301 302 303 304 305 298]; end [Reference_Gauss_Points_Displacement, Reference_Gauss_Weights_Displacement] = Gauss_Points(nG,1); % Real Gaussian Points and Jacobian Matrix on the EGDE of displacement Real_Gauss_Points_Displacement_Egde_1 = []; Real_Gauss_Weights_Displacement_Egde_1 = []; Jacobian_Gauss_Matrix_Displacement_Egde_1 = []; for i=1:(size(Nodes_On_Displacement_Egde_1,2)-1) for j=1:size(Reference_Gauss_Points_Displacement,1) [Reference_N_Displacement,Reference_dNdxi_Displacement] = Lagrange_Function(1,Reference_Gauss_Points_Displacement(j)); Real_Gauss_Points_Displacement_Egde_1 = [Real_Gauss_Points_Displacement_Egde_1; Reference_N_Displacement'* [node(Nodes_On_Displacement_Egde_1(i),:); node(Nodes_On_Displacement_Egde_1(i+1),:)]]; Real_Gauss_Weights_Displacement_Egde_1 = [Real_Gauss_Weights_Displacement_Egde_1; Reference_Gauss_Weights_Displacement(j)]; J_temp = [node(Nodes_On_Displacement_Egde_1(i),1) node(Nodes_On_Displacement_Egde_1(i+1),1)]* Reference_dNdxi_Displacement; Jacobian_Gauss_Matrix_Displacement_Egde_1 = [Jacobian_Gauss_Matrix_Displacement_Egde_1; det(J_temp)]; end end % Real Gaussian Points and Jacobian Matrix on the EGDE of displacement Real_Gauss_Points_Displacement_Egde_4 = []; Real_Gauss_Weights_Displacement_Egde_4 = []; Jacobian_Gauss_Matrix_Displacement_Egde_4 = []; for i=1:(size(Nodes_On_Displacement_Egde_4,2)-1) for j=1:size(Reference_Gauss_Points_Displacement,1) [Reference_N_Displacement,Reference_dNdxi_Displacement] = Lagrange_Function(1,Reference_Gauss_Points_Displacement(j)); Real_Gauss_Points_Displacement_Egde_4 = [Real_Gauss_Points_Displacement_Egde_4; Reference_N_Displacement'* [node(Nodes_On_Displacement_Egde_4(i),:); node(Nodes_On_Displacement_Egde_4(i+1),:)]]; HVTH: Hoaøng Thiên Sơn Trang 150 Nghiên cứu tính toán chi tiết máy phương pháp số Real_Gauss_Weights_Displacement_Egde_4 = [Real_Gauss_Weights_Displacement_Egde_4; Reference_Gauss_Weights_Displacement(j)]; J_temp = [node(Nodes_On_Displacement_Egde_4(i),1) node(Nodes_On_Displacement_Egde_4(i+1),1)]* Reference_dNdxi_Displacement; Jacobian_Gauss_Matrix_Displacement_Egde_4 = [Jacobian_Gauss_Matrix_Displacement_Egde_4; det(J_temp)]; end end % - Calculating G and qk Matrix -temp = 2*(size(Nodes_On_Displacement_Egde_1,2) + size(Nodes_On_Displacement_Egde_4,2)); G = zeros(2*size(node,1),temp); q = zeros(1,temp); % For the egde count1 = 0; count3 = 1; for i=1:(size(Nodes_On_Displacement_Egde_1,2)-1) % for each 1D element count1 = count1 + 1; count2 = count1 + 1; element_length = abs(node(Nodes_On_Displacement_Egde_1(i),1)node(Nodes_On_Displacement_Egde_1(i+1),1)); for j=1:size(Reference_Gauss_Points_Displacement,1) % we calculate for the real Gauss points on each element % - Calculating G Matrix -x = Real_Gauss_Points_Displacement_Egde_1(count3,1); y = Real_Gauss_Points_Displacement_Egde_1(count3,2); N1 = 1-(x/element_length); N2 = x/element_length; [Nodes_In_Support_Domain_Displacement] = Support_Domain(node,Real_Gauss_Points_Displacement_Egde_1(count3,:),radius); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points_Displacement_Egde_1(count3,:), Nodes_In_Support_Domain_Displacement, node,radius,Type_Of_Weight_Function2); for k=1:size(Nodes_In_Support_Domain_Displacement,2) row1_G = 2*Nodes_In_Support_Domain_Displacement(k)-1; row2_G = 2*Nodes_In_Support_Domain_Displacement(k); G1_temp = - [N1 ; N1]*phi(k)*Real_Gauss_Weights_Displacement_Egde_1(count3)* Jacobian_Gauss_Matrix_Displacement_Egde_1(count3); G2_temp = - [N2 ; N2]*phi(k)*Real_Gauss_Weights_Displacement_Egde_1(count3)* Jacobian_Gauss_Matrix_Displacement_Egde_1(count3); G(row1_G:row2_G,2*count1-1:2*count1) = G(row1_G:row2_G,2*count1-1:2*count1) + G1_temp; G(row1_G:row2_G,2*count2-1:2*count2) = G(row1_G:row2_G,2*count2-1:2*count2) + G2_temp; end count3 = count3 + 1; end end % For the egde - HVTH: Hoaøng Thiên Sơn Trang 151 Nghiên cứu tính toán chi tiết máy phương pháp số count1 = count1 + 1; count3 = 1; for i=1:(size(Nodes_On_Displacement_Egde_4,2)-1) % for each 1D element count1 = count1 + 1; count2 = count1 + 1; element_length = abs(node(Nodes_On_Displacement_Egde_4(i),1)node(Nodes_On_Displacement_Egde_4(i+1),1)); for j=1:size(Reference_Gauss_Points_Displacement,1) % we calculate for the real Gauss points on each element % - Calculating G Matrix -x = Real_Gauss_Points_Displacement_Egde_4(count3,1); y = Real_Gauss_Points_Displacement_Egde_4(count3,2); N1 = 1-(x/element_length); N2 = x/element_length; [Nodes_In_Support_Domain_Displacement] = Support_Domain(node,Real_Gauss_Points_Displacement_Egde_4(count3,:),radius); [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points_Displacement_Egde_4(count3,:), Nodes_In_Support_Domain_Displacement, node,radius,Type_Of_Weight_Function2); for k=1:size(Nodes_In_Support_Domain_Displacement,2) row1_G = 2*Nodes_In_Support_Domain_Displacement(k)-1; row2_G = 2*Nodes_In_Support_Domain_Displacement(k); G1_temp = - [N1 ; N1]*phi(k)*Real_Gauss_Weights_Displacement_Egde_4(count3)* Jacobian_Gauss_Matrix_Displacement_Egde_4(count3); G2_temp = - [N2 ; N2]*phi(k)*Real_Gauss_Weights_Displacement_Egde_4(count3)* Jacobian_Gauss_Matrix_Displacement_Egde_4(count3); G(row1_G:row2_G,2*count1-1:2*count1) = G(row1_G:row2_G,2*count1-1:2*count1) + G1_temp; G(row1_G:row2_G,2*count2-1:2*count2) = G(row1_G:row2_G,2*count2-1:2*count2) + G2_temp; end count3 = count3 + 1; end end % - Solution for nodal displacement parameters -F = [F;q']; KK = [K G; G' zeros(temp)]; del = any(KK); dem = 0; for i=1:size(del,2) dem = dem+1; if del(i)==0 KK(:,dem)=[]; KK(dem,:)=[]; F(dem,:)=[]; dem = dem - 1; end end U_Lamda = KK\F; U_Nodal_Parameters = U_Lamda(1:(size(node,1)*2)); HVTH: Hoàng Thiên Sơn Trang 152 Nghiên cứu tính toán chi tiết máy phương pháp số %clear F K G q KK U_Lamda; U_True = zeros(2*size(node,1),1); for i=1:size(node,1) [Nodes_In_Support_Domain_True_Displacement] = Support_Domain(node,node(i,:),radius); [phi_node,dphidx_node,dphidy_node] = MLS_Shape_Function(node(i,:),Nodes_In_Support_Domain_True_Displacement, node,radius,Type_Of_Weight_Function2); U_True(2*i-1) = phi_node*U_Nodal_Parameters(2*Nodes_In_Support_Domain_True_Displacement-1); ux(i) = U_True(2*i-1); U_True(2*i) = phi_node*U_Nodal_Parameters(2*Nodes_In_Support_Domain_True_Displacement); uy(i) = U_True(2*i); end % - Solution for Stress at Nodes (or Gauss Points) -col = 0; %for i=1:size(Real_Gauss_Points,1) for i=1:size(node,1) [Nodes_In_Support_Domain] = Support_Domain(node,node(i,:),radius); B = zeros(3,2*size(Nodes_In_Support_Domain,2)); count = zeros(1,2*size(Nodes_In_Support_Domain,2)); % [phi,dphidxG,dphidyG] = MLS_Shape_Function(Real_Gauss_Points(i,:),Nodes_In_Support_Domain,node,radius,Type_Of_Weight _Function2); [phi,dphidxG,dphidyG] = MLS_Shape_Function(node(i,:),Nodes_In_Support_Domain,node,radius,Type_Of_Weight_Function2); for j=1:size(Nodes_In_Support_Domain,2) B(1:3,2*j-1:2*j) = [dphidxG(j) 0; dphidyG(j); dphidyG(j) dphidxG(j)]; count(2*j-1) = 2*Nodes_In_Support_Domain(j)-1; count(2*j ) = 2*Nodes_In_Support_Domain(j); end col = col + 1; Stress(1:3,col) = C*B*U_Nodal_Parameters(count); end HVTH: Hoàng Thiên Sơn Trang 153 ... việc nghiên cứu ứng dụng phương pháp tính toán kỹ thuật Do đó, đề tài thực với nội dung ? ?Nghiên cứu tính toán chi tiết máy phương pháp số? ??, với phạm vi nghiên cứu là: - Nghiên cứu lý thuyết phương. .. I : TỔNG QUAN Nghiên cứu tính toán chi tiết máy phương pháp số I Giới thiệu phương pháp số Các phương pháp số kỹ thuật sử dụng để biến đổi toán kỹ thuật phức tạp thành toán đại số đơn giản để... với nội dung ? ?Nghiên cứu tính toán chi tiết máy phương pháp số? ??, với phạm vi nghiên cứu là: - Nghiên cứu lý thuyết phương pháp không lưới toán học vật rắn biến dạng - Áp dụng phương pháp Galerkin

Ngày đăng: 10/02/2021, 23:01

w