Phân tích tĩnh và dao động tự do kết cấu tấm composite lớp có chứa lớp áp điện bằng phương pháp phần tử hữu hạn trơn dựa trên cạnh es fem

206 26 0
Phân tích tĩnh và dao động tự do kết cấu tấm composite lớp có chứa lớp áp điện bằng phương pháp phần tử hữu hạn trơn dựa trên cạnh es fem

Đ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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA  PHAN ĐÀO HOÀNG HIỆP PHÂN TÍCH TĨNH VÀ DAO ĐỘNG TỰ DO KẾT CẤU TẤM COMPOSITE LỚP CÓ CHỨA LỚP ÁP ĐIỆN BẰNG PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN TRƠN DỰA TRÊN CẠNH ES-FEM CHUYÊN NGÀNH: XÂY DỰNG DÂN DỤNG VÀ CÔNG NGHIỆP MÃ SỐ NGÀNH: 60.58.20 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, THÁNG 12 NĂM 2010 TRƯỜNG ĐH BÁCH KHOA TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM PHÒNG ĐÀO TẠO SĐH Độc lập – Tự – Hạnh phúc TPHCM, ngày 05 tháng 07 năm 2010 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Phan Đào Hoàng Hiệp Phái: Nam Ngày, tháng, năm sinh: 14/07/1985 Nơi sinh: Phú Yên Chuyên ngành: Xây dựng dân dụng công nghiệp MSHV: 09210196 I - TÊN ĐỀ TÀI: PHÂN TÍCH TĨNH VÀ DAO ĐỘNG TỰ DO TẤM COMPOSITE LỚP CÓ CHỨA LỚP ÁP ĐIỆN BẰNG PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN TRƠN DỰA TRÊN CẠNH ES-FEM II - NHIỆM VỤ VÀ NỘI DUNG: Phát triển áp dụng phương pháp phần tử hữu hạn trơn dựa cạnh ES-FEM kết hợp với lý thuyết Reissner-Mindlin có kể đến biến dạng trượt bậc FSDT cho: Phân tích tĩnh composite lớp composite lớp có chứa lớp áp điện Phân tích dao động tự composite lớp composite lớp có chứa lớp áp điện III - NGÀY GIAO NHIỆM VỤ: 05/07/2010 IV - NGÀY HOÀN THÀNH NHIỆM VỤ: 06/12/2010 V - CÁN BỘ HƯỚNG DẪN: TS NGUYỄN XUÂN HÙNG CÁN BỘ HƯỚNG DẪN TS NGUYỄN XUÂN HÙNG CN BỘ MÔN QL CHUYÊN NGÀNH 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 THÀNH PHỐ HỒ CHÍ MINH Cán hướng dẫn khoa học : TS NGUYỄN XUÂN HÙNG Cán chấm nhận xét 1: PGS.TS NGUYỄN THỊ HIỀN LƯƠNG Cán chấm nhận xét 2: TS NGUYỄN TRỌNG PHƯỚC Luận văn Thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG TPHCM ngày 26 tháng 02 năm 2011 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: PGS.TS Bùi Công Thành PGS.TS Nguyễn Thị Hiền Lương TS Nguyễn Xuân Hùng TS Nguyễn Trọng Phước TS Nguyễn Sỹ Lâm Xác nhận Chủ tịch Hội đồng đánh giá Luận văn Bộ môn quản lý chuyên ngành sau Luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV Trưởng ban quản lý chuyên ngành LỜI CẢM ƠN LỜI CẢM ƠN Tôi xin chân thành bày tỏ lịng biết ơn đến Thầy hướng dẫn khoa học TS.Nguyễn Xuân Hùng NCS.Thái Hoàng Chiến, người đã đưa gợi ý để hình thành nên ý tưởng đề tài, khuyên bảo nhiều cách nhận định đắn vấn đề nghiên cứu, tiếp cận nghiên cứu hiệu nguồn tài liệu quý báu Với hướng dẫn tận tình, ln động viên tơi suốt q trình thực luận văn Thầy hướng dẫn giúp Tôi đạt đến kết nghiên cứu cuối Tôi xin gửi lời cảm ơn đến PGS.TS Bùi Công Thành (Cơ kết cấu nâng cao), PGS.TS Nguyễn Thị Hiền Lương (Cơ học vật rắn biến dạng Ổn định cơng trình), PGS.TS Chu Quốc Thắng (Phương pháp phần tử hữu hạn Kết cấu Tấm vỏ), PGS.TS Đỗ Kiến Quốc (Động lực học cơng trình), TS Lê Đình Hồng (Phương pháp phần tử hữu hạn), TS Nguyễn Trọng Phước (Động lực học cơng trình), TS Hồ Hữu Chỉnh (Kết cấu Bê tông cốt thép nâng cao), TS Ngô Hữu Cường (Phân tích phi tuyến kết cấu), TS Nguyễn Minh Long (Cơ học rạn nứt) thầy cô trực tiếp giảng dạy, truyền đạt cho kiến thức phương pháp học tập, nghiên cứu Tôi xin gửi lời cảm ơn đến Thầy người bạn Phịng Cơ học Tính tốn (Division of Computational Mechanics) – Đại học Tôn Đức Thắng TPHCM động viên, chia sẻ giúp đỡ thời gian làm việc Phịng Và cuối tơi muốn gửi lời cảm ơn chân thành đến gia đình, cha mẹ em gái bên cạnh động viên tạo điều kiện thuận lợi để tơi hồn thành tốt luận văn Tôi xin chân thành cảm ơn! TP.Hồ Chí Minh, tháng 12 năm 2010 -i- TĨM TẮT TĨM TẮT Phân tích tĩnh dao động tự kết cấu composite lớp có chứa lớp áp điện phương pháp phần tử hữu hạn trơn dựa cạnh ES-FEM Phan Đào Hoàng Hiệp Trong đề tài luận văn thạc sỹ này, phương pháp phần tử hữu hạn trơn dựa cạnh ES-FEM (the edge-based smoothed finite element method) phát triển cho tốn phân tích tĩnh dao động tự kết cấu composite lớp composite lớp có chứa lớp áp điện Biến dạng trượt lực cắt kể tới theo lý thuyết Reissner-Mindlin, sở lý thuyết dựa lý thuyết biến dạng trượt bậc FSDT Miền hình học rời rạc thành lưới phần tử tam giác ba nút với năm bậc tự cho nút bậc tự điện cho lớp áp điện Trong phương pháp ES-FEM, ma trận độ cứng tính tốn kỹ thuật trơn hóa biến dạng miền trơn (smoothing domains) dựa cạnh phần tử Để giải tượng “shear locking” có chiều dày mỏng dần, công thức phương pháp ES-FEM thiết lập kết hợp với phương pháp “rời rạc lệch trượt” DSG3 (discrete shear gap method) gọi phương pháp PTHH ổn định khe cắt miền trơn dựa cạnh phần tử ES-DSG3 Tính hiệu độ xác phương pháp ES-DSG3 kiểm chứng thơng qua ví dụ số phân tích cho toán tĩnh dao động tự kết cấu composite lớp composite lớp có chứa lớp áp điện Ngơn ngữ lập trình MATLAB sử dụng để xây dựng tính tốn ví dụ số Kết phương pháp ES-DSG3 tác giả lập bảng so sánh với lời giải giải tích số lời giải phương pháp số khác công bố trước - ii - MỤC LỤC MỤC LỤC LỜI CẢM ƠN i TÓM TẮT ii MỤC LỤC iii DANH MỤC HÌNH VẼ vii DANH MỤC BẢNG BIỂU x CHƯƠNG TỔNG QUAN .1 1.1 Giới thiệu chung 1.1.1 Tổng quan vật liệu composite 1.1.2 Vật liệu composite nhiều lớp 1.1.2.1 Vật liệu composite nhiều lớp 1.1.2.2 Vật liệu composite gia công phương pháp trát lớp 1.1.3 Vật liệu áp điện piezoelectric 1.1.4 Phương pháp PTHH “trơn” dựa cạnh ES-FEM .7 1.2 Tình hình nghiên cứu đề tài 10 1.2.1 Trên giới 10 1.2.2 Trong nước 11 1.3 Tính cấp thiết, ý nghĩa khoa học thực tiễn đề tài luận văn 12 CHƯƠNG CƠ SỞ LÝ THUYẾT 15 2.1 Giới thiệu kết cấu 15 2.2 Lý thuyết có kể đến biến dạng trượt Mindlin hay Reissner-Mindlin 16 2.3 Lý thuyết tấm Reissner-Mindlin áp dụng cho lớp lamina 16 2.3.1 Định luật Hooke 16 2.3.2 Lớp lamina gia cường cốt sợi phương 17 2.4 Quan hệ ứng suất – biến dạng .18 2.4.1 Quan hệ ứng suất – biến dạng hệ trục tọa độ vật liệu 18 2.4.2 Quan hệ ứng suất – biến dạng hệ trục tọa độ tổng thể 19 2.5 Lý thuyết biến dạng trượt bậc – FSDT .20 2.6 Phương trình chủ đạo 25 - iii - MỤC LỤC 2.7 Phương pháp số (phương pháp PTHH truyền thống) 28 2.8 Phương pháp “rời rạc lệch trượt” – Discrete Shear Gap (DSG3) .33 2.9 Phương pháp phần tử hữu hạn trơn dựa cạnh (ES-DSG3) 37 2.10 Điều kiện biên .41 2.10.1 Điều kiện biên học cho kết cấu composite lớp 41 2.10.2 Điều kiện biên điện cho lớp áp điện 42 2.11 Sơ đồ khối giải toán phân tích tĩnh dao động tự kết cấu composite lớp composite lớp có chứa lớp áp điện phương pháp PTHH trơn dựa cạnh ES-DSG3: 44 CHƯƠNG CÁC VÍ DỤ SỐ 45 3.1 Phân tích kết cấu composite lớp 46 3.1.1 Bài tốn phân tích tĩnh 46 3.1.1.1 Bài toán 01: Ảnh hưởng việc chia lưới phần tử đến hội tụ độ võng tâm composite lớp 46 3.1.1.2 Bài toán 02: Ảnh hưởng số lượng lớp lamina đến độ võng tâm composite lớp 56 3.1.1.3 Bài tốn 03: Phân tích kết cấu vuông sandwich lớp Srinivas 63 3.1.1.4 Bài tốn 04: Phân tích kết cấu vng composite phản xứng lớp góc sợi xiên 450, biên tựa đơn cạnh 68 3.1.2 Bài tốn phân tích dao động tự 71 3.1.2.1 Bài toán 01: Ảnh hưởng tỷ lệ mô-đun đàn hồi đến hội tụ tần số dao động tự nhiên không thứ nguyên composite lớp 72 3.1.2.2 Bài toán 02: Ảnh hưởng tỷ lệ chiều dài cạnh độ dày đến hội tụ tần số dao động tự nhiên không thứ nguyên composite lớp 74 3.1.2.3 Bài toán 03: Ảnh hưởng số điều kiện biên khác đến tần số dao động tự nhiên không thứ nguyên composite lớp 77 3.1.2.4 Bài tốn 04: Ảnh hưởng góc sợi thay đổi đến tần số dao động tự nhiên khơng thứ ngun trịn composite lớp 81 3.2 Phân tích kết cấu composite lớp có chứa lớp áp điện 84 3.2.1 Bài tốn phân tích tĩnh 84 3.2.1.1 Bài toán 01: Ảnh hưởng cơ-điện kết cấu composite lớp áp điện 85 3.2.1.2 Bài toán 02: Ảnh hưởng cơ-điện, trật tự xếp lớp phương góc sợi đến độ võng tâm kết cấu composite lớp có chứa lớp áp điện 88 3.2.2 Bài tốn phân tích dao động tự 93 - iv - MỤC LỤC 3.2.2.1 Bài toán 01: Ảnh hưởng cơ-điện kết cấu composite lớp áp điện 94 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 98 4.1 Tóm tắt công việc đạt 98 4.2 Kết luận kiến nghị 99 4.3 Hướng phát triển .101 TÀI LIỆU THAM KHẢO 102 PHỤ LỤC CODE MATLAB V7.8.0 108 CHƯƠNG CHƯƠNG TRÌNH CHÍNH 108 5.1 KẾT CẤU TẤM COMPOSITE LỚP .108 5.1.1 Bài tốn phân tích tĩnh 108 5.1.1.1 Bài toán 01: Ảnh hưởng việc chia lưới phần tử đến hội tụ độ võng tâm composite lớp 108 5.1.1.2 Bài toán 02: Ảnh hưởng số lượng lớp lamina đến độ võng tâm composite lớp 113 5.1.1.3 Bài tốn 03: Phân tích kết cấu vng sandwich lớp Srinivas 114 5.1.1.4 Bài toán 04: Phân tích kết cấu vng composite phản xứng lớp góc sợi xiên 450, biên tựa đơn cạnh 119 5.1.2 Bài toán phân tích dao động tự 123 5.1.2.1 Bài toán 01: Ảnh hưởng tỷ lệ mô-đun đàn hồi đến hội tụ tần số dao động tự nhiên không thứ nguyên composite lớp 123 5.1.2.2 Bài toán 02: Ảnh hưởng tỷ lệ chiều dài cạnh độ dày đến hội tụ tần số dao động tự nhiên không thứ nguyên composite lớp 128 5.1.2.3 Bài toán 03: Ảnh hưởng số điều kiện biên khác đến tần số dao động tự nhiên không thứ nguyên composite lớp 132 5.1.2.4 Bài toán 04: Ảnh hưởng góc sợi thay đổi đến tần số dao động tự nhiên không thứ nguyên tròn composite lớp 142 5.2 KẾT CẤU TẤM COMPOSITE LỚP CÓ CHỨA LỚP ÁP ĐIỆN 148 5.2.1 Bài tốn phân tích tĩnh 148 5.2.1.1 Bài toán 01: Ảnh hưởng cơ-điện kết cấu composite lớp áp điện 148 5.2.1.2 Bài toán 02: Ảnh hưởng cơ-điện, trật tự xếp lớp phương góc sợi đến độ võng tâm kết cấu composite lớp có chứa lớp áp điện 154 -v- MỤC LỤC 5.2.2 Bài tốn phân tích dao động tự 160 5.2.2.1 Bài toán 01: Ảnh hưởng cơ-điện kết cấu composite lớp áp điện 160 CHƯƠNG CHƯƠNG TRÌNH CON 167 6.1 mesh2_triang .167 6.2 plot_mesh 168 6.3 connect_edge .169 6.4 CALCQ .172 6.5 CALCQBAR .172 6.6 CALCQBARS 172 6.7 cal_area .173 6.8 cal_side 174 6.9 ESFEM_Bmat_T3 .174 6.10 FEELDOF 176 6.11 FEASMBL1 176 6.12 ForceVectorMindlinQ45dof_sinusoidal 177 6.13 ForceVectorMindlinQ45dof 178 6.14 bcdof_SSSS_composite 179 6.15 bcdof_SSSS2_piezo 179 6.16 bcdof_CCCC_composite 180 6.17 bcdof_CFFF_composite 180 6.18 feaplyc2 .181 6.19 FEAPLYCS_mass .181 6.20 SrinivasMaterial 182 6.21 MassMatrixMindlinQ4laminated5dof 185 6.22 MAT_TYPE_PIEZO_PVDF 186 6.23 ES_CALCQ .186 6.24 ES_CALCQBAR 186 6.25 ES_CALCQBARS 186 6.26 ES_CALCED_PIEZO_PVDF 187 6.27 MAT_TYPE_COMPOSITE .187 6.28 triangulation_order3_neighbor_triangles 188 - vi - DANH MỤC HÌNH VẼ DANH MỤC HÌNH VẼ Hình 1.1 Phương cốt gia cường Hình 1.2 Kết cấu composite nhiều lớp Hình 1.3 Tấm sandwich composite lớp .3 Hình 1.4 Kết cấu sandwich composite sử dụng xây dựng .4 Hình 1.5 Vật liệu áp điện piezoelectric Hình 2.1 Kết cấu composite gia cường sợi phương hệ trục vật liệu  x1 , x2 , x3  với trục x1 dọc theo phương cốt sợi 17 Hình 2.2 Kết cấu composite gia cường sợi phương hệ trục vật liệu  x1 , x2 , x3  hệ trục tọa độ tổng thể  x, y, z  19 Hình 2.3 Hình học ban đầu hình học bị biến dạng cạnh với giả thuyết CLPT, FSDT, HSDT (TSDT) 21 Hình 2.4 Phương chiều thành phần hợp lực tổng mômen tổng phần tử phẳng 26 Hình 2.5 Phần tử tam giác ba nút 28 Hình 2.6 Thành phần lệch trượt (shear gap) 33 Hình 2.7 Phân chia miền trơn Ω(k) , Ω(m) 38 Hình 2.8 Điều kiện biên học cho kết cấu composite lớp 41 Hình 3.1 Tấm vng composite lớp đối xứng góc sợi chéo [0/90/0] chịu tải trọng hình sin (SSL) tải trọng phân bố (UDL) 47 Hình 3.2 Tấm vng composite lớp đối xứng góc sợi chéo [0/90/90/0] chịu tải trọng hình sin (SSL) tải trọng phân bố (UDL) 47 Hình 3.3 Tấm vuông composite lớp [0/90/0] chịu tải trọng hình sin (SSL), điều kiện biên tựa đơn SS-1: hội tụ độ võng tâm 50 - vii - PHỤ LỤC CODE MATLAB 7.8.0 6.12 ForceVectorMindlinQ45dof_sinusoidal %% ==========VECTOR TAI TRONG PHAN BO HINH SIN========== function [force]=ForceVectorMindlinQ45dof_sinusoidal(GDof,numberElements,elementNo des,numberNodes,nodeCoordinates,P,elemType,L) % computation of force vector for Mindlin plate element % force : force vector force=zeros(GDof,1); switch elemType % define quadrature case 'Q16' [W,Q]=quadrature( 4, 'GAUSS', ); case 'Q9' [W,Q]=quadrature( 3, 'GAUSS', ); case 'Q4' [W,Q]=quadrature( 2, 'GAUSS', ); otherwise [W,Q]=quadrature( 1, 'TRIANGULAR', end rule % 4x4 Gaussian quadrature % 4x4 Gaussian quadrature % 2x2 Gaussian quadrature ); % point triangural quadrature for e=1:numberElements % indice : nodal connectivities for each element sctr=elementNodes(e,:); % element scatter vector nn=length(sctr); % sctrBs(1:5:5*nn-4) = 5.*sctr-4 ; % sctrBs(2:5:5*nn-3) = 5.*sctr-3 ; sctrF = 5.*sctr-2 ; % sctrBs(4:5:5*nn-1) = 5.*sctr-1 ; % sctrBs(5:5:5*nn) = 5.*sctr ; % cycle for Gauss point for q=1:size(W,1) % quadrature loop pt=Q(q,:) ; % quadrature point pt1=pt(:,1); pt2=pt(:,2); wt=W(q); % quadrature weight [N,dNdxi]=lagrange_basis(elemType,pt); % element shape functions J0=nodeCoordinates(sctr,:)'*dNdxi; % element Jacobian matrix invJ0=inv(J0); dNdx=dNdxi*invJ0; % force vector sinusoidal x=nodeCoordinates(sctr,1)'*N; y=nodeCoordinates(sctr,2)'*N; S1=sin(pi*x/L); S2=sin(pi*y/L); force(sctrF)=force(sctrF)+N*P*S2*S1*W(q)*det(J0); % force uniform vector %force(sctrF)=force(sctrF)+N*P*W(q)*det(J0); end % Gauss point end % element0 - 177 - PHỤ LỤC CODE MATLAB 7.8.0 6.13 ForceVectorMindlinQ45dof %% ==========VECTOR TAI TRONG PHAN BO DEU========== function [force]=ForceVectorMindlinQ45dof(GDof,numberElements,elementNodes,numberN odes,nodeCoordinates,P,elemType) % computation of force vector for Mindlin plate element % force : force vector global L force=zeros(GDof,1); switch elemType % define quadrature rule case 'Q16' [W,Q]=quadrature( 4, 'GAUSS', ); % 4x4 Gaussian quadrature case 'Q9' [W,Q]=quadrature( 3, 'GAUSS', ); % 4x4 Gaussian quadrature case 'Q4' [W,Q]=quadrature( 2, 'GAUSS', ); % 2x2 Gaussian quadrature otherwise [W,Q]=quadrature( 1, 'TRIANGULAR', ); % point triangural quadrature end for e=1:numberElements % indice : nodal connectivities for each element sctr=elementNodes(e,:); % element scatter vector nn=length(sctr); % sctrBs(1:5:5*nn-4) = 5.*sctr-4 ; % sctrBs(2:5:5*nn-3) = 5.*sctr-3 ; sctrF = 5.*sctr-2 ; % sctrBs(4:5:5*nn-1) = 5.*sctr-1 ; % sctrBs(5:5:5*nn) = 5.*sctr ; % cycle for Gauss point for q=1:size(W,1) % quadrature loop pt=Q(q,:) ; % quadrature point pt1=pt(:,1); pt2=pt(:,2); wt=W(q); % quadrature weight [N,dNdxi]=lagrange_basis(elemType,pt); % element shape functions J0=nodeCoordinates(sctr,:)'*dNdxi; % element Jacobian matrix invJ0=inv(J0); dNdx=dNdxi*invJ0; % force vector force(sctrF)=force(sctrF)+N*P*W(q)*det(J0); end % Gauss point end % element0 - 178 - PHỤ LỤC CODE MATLAB 7.8.0 6.14 bcdof_SSSS_composite %% ==========DIEU KIEN BIEN TUA DON CANH SS1========== function [bcdof, bcval]=bcdof_SSSS_composite(ndof,Mesh_space_x,Mesh_space_y) bcdof=[];bcval=[]; for i=1:Mesh_space_x+1 bcdof=[bcdof ndof*(i-1)+1 ndof*(i-1)+3 ndof*(i-1)+5]; % bcval=[bcval 0 0]; end lower for i=1:Mesh_space_y+1 bcdof=[bcdof ndof*(i-1)*(Mesh_space_x+1)+2 ndof*(i1)*(Mesh_space_x+1)+3 ndof*(i-1)*(Mesh_space_x+1)+4]; %left bcval=[bcval 0 0]; end for i=1:Mesh_space_y+1 bcdof=[bcdof ndof*i*(Mesh_space_x+1)-3 ndof*i*(Mesh_space_x+1)-2 ndof*i*(Mesh_space_x+1)-1]; %right bcval=[bcval 0 0]; end for i=1:Mesh_space_x+1 bcdof=[bcdof ndof*(Mesh_space_y*(Mesh_space_x+1)+i)-4 ndof*(Mesh_space_y*(Mesh_space_x+1)+i)-2 ndof*(Mesh_space_y*(Mesh_space_x+1)+i)]; % upper boundary bcval=[bcval 0 0]; end 6.15 bcdof_SSSS2_piezo %% ==========DIEU KIEN BIEN TUA DON CANH SS2========== function [bcdof, bcval]=bcdof_SSSS2_piezo(ndof,Mesh_space_x,Mesh_space_y) bcdof=[];bcval=[]; for i=1:Mesh_space_x+1 bcdof=[bcdof ndof*(i-1)+2 ndof*(i-1)+3 ndof*(i-1)+5]; % lower dof of node: 2,3,5 bcval=[bcval 0 0]; end for i=1:Mesh_space_y+1 bcdof=[bcdof ndof*(i-1)*(Mesh_space_x+1)+1 ndof*(i1)*(Mesh_space_x+1)+3 ndof*(i-1)*(Mesh_space_x+1)+4]; %left dof of node: 1,3,4 bcval=[bcval 0 0]; end for i=1:Mesh_space_y+1 bcdof=[bcdof ndof*i*(Mesh_space_x+1)-4 ndof*i*(Mesh_space_x+1)-2 ndof*i*(Mesh_space_x+1)-1]; %right dof of node: 1,3,4 bcval=[bcval 0 0]; end for i=1:Mesh_space_x+1 bcdof=[bcdof ndof*(Mesh_space_y*(Mesh_space_x+1)+i)-3 ndof*(Mesh_space_y*(Mesh_space_x+1)+i)-2 ndof*(Mesh_space_y*(Mesh_space_x+1)+i)]; % upper boundary dof of node: 2,3,5 bcval=[bcval 0 0]; end - 179 - PHỤ LỤC CODE MATLAB 7.8.0 6.16 bcdof_CCCC_composite %% ==========DIEU KIEN BIEN NGAM CANH========== function [bcdof, bcval]=bcdof_CCCC_composite(ndof,Mesh_space_x,Mesh_space_y) bcdof=[];bcval=[]; for i=1:Mesh_space_x+1 bcdof=[bcdof (ndof*(i-1)+1):(ndof*(i-1)+5)]; % bcval=[bcval 0 0 0]; end lower for i=1:Mesh_space_y+1 bcdof=[bcdof (ndof*(i-1)*(Mesh_space_x+1)+1):(ndof*(i1)*(Mesh_space_x+1)+5) ]; % Left bcval=[bcval 0 0 0]; end for i=1:Mesh_space_y+1 bcdof=[bcdof (ndof*i*(Mesh_space_x+1)-4) : (ndof*i*(Mesh_space_x+1))]; % Right bcval=[bcval 0 0 0]; end for i=1:Mesh_space_x+1 bcdof=[bcdof (ndof*(Mesh_space_y*(Mesh_space_x+1)+i)4):(ndof*(Mesh_space_y*(Mesh_space_x+1)+i))]; % upper boundary bcval=[bcval 0 0 0]; end 6.17 bcdof_CFFF_composite %% ==========DIEU KIEN BIEN NGAM CANH, CANH TU DO========== function [bcdof, bcval]=bcdof_CFFF_composite(ndof,Mesh_space_x,Mesh_space_y) bcdof=[];bcval=[]; for i=1:Mesh_space_y+1 bcdof=[bcdof (ndof*(i-1)*(Mesh_space_x+1)+1):(ndof*(i1)*(Mesh_space_x+1)+5) ]; % Left bcval=[bcval 0 0 0]; end - 180 - PHỤ LỤC CODE MATLAB 7.8.0 6.18 feaplyc2 %% ==========GAN DIEU KIEN BIEN DE GIAI BAI TOAN TINH========== function [kk,ff]=feaplyc2(kk,ff,bcdof,bcvall) % -% Purpose: % Apply constraints to matrix equation [kk]{x}={ff} % % Synopsis: % [kk,ff]=feaplybc(kk,ff,bcdof,bcval) % % Variable Description: % kk - system matrix before applying constraints % ff - system vector before applying constraints % bcdof - a vector containging constrained d.o.f % bcval - a vector containing contained value % % For example, there are constraints at d.o.f=2 and 10 % and their constrained values are 0.0 and 2.5, % respectively Then, bcdof(1)=2 and bcdof(2)=10; and % bcval(1)=1.0 and bcval(2)=2.5 % n=size(bcdof,2); sdof=size(kk); for i=1:n c=bcdof(i); for j=1:sdof kk(c,j)=0; end kk(c,c)=1; ff(c,1)=bcvall(i); end 6.19 FEAPLYCS_mass %% ==========GAN DIEU KIEN BIEN DE GIAI BAI TOAN TRI RIENG========== function [kk,mm]=FEAPLYCS_mass(kk,mm,bcdof) % -% Purpose: % Apply constraints to eigenvalue matrix equation % [kk]{x}=lamda[mm]{x} % % Synopsis: % [kk,mm]=feaplycs(kk,mm,bcdof) % % Variable Description: % kk - system stiffness matrix before applying constraints % mm - system mass matrix before applying constraints % bcdof - a vector containging constrained d.o.f % n=length(bcdof); sdof=size(kk); for i=1:n c=bcdof(i); for j=1:sdof kk(c,j)=0; kk(j,c)=0; - 181 - PHỤ LỤC CODE MATLAB 7.8.0 mm(c,j)=0; mm(j,c)=0; end kk(c,c)=1; mm(c,c)=1; end 6.20 SrinivasMaterial %% ==========HE SO VAT LIEU TAM SRINIVAS========== function [AMatrix,BMatrix,DMatrix,SMatrix,qbarra]=SrinivasMaterial(thickness) % SRINIVAS EXAMPLE dd=zeros(2); d=zeros(3); % Multiplying factor for skins (Q_skin = rf * Q_core), rf = [5,10,15] rf=5; % Plate thickness h=thickness; % Matrix [D] (material matrix) % In-plane dmat=[0.999781 0.231192 0; 0.231192 0.524886 0; 0 0.262931]; % Shear dm = [0.26681 0; 0.159914]; % nc: number of layers nc=3; % Layers angles ttt=0; ttt1=0; th(1)=ttt; th(2)=ttt1; th(3)=ttt1; % Coordinates - z1 (upper) and - z2 (lower) for each layer z1=[-2*h/5 2*h/5 h/2]; z2=[-h/2 -2*h/5 2*h/5;]; % Thickness for each layer thick(1:nc)=z1(1:nc)-z2(1:nc); % coefe: shear correction factors (k1 and k2) coefe(1:2)=0.0; gbarf(1:2)=0.0; rfact(1:2)=0.0; sumla(1:2)=0.0; trlow(1:2)=0.0; upter(1:2)=0.0; % Middle axis position (bending) dsumm=0.0; for ilayr=1:nc dzeta=z1(ilayr)-z2(ilayr); - 182 - PHỤ LỤC CODE MATLAB 7.8.0 zheig=dsumm+dzeta/2.0; dindx(1)=rf*dmat(1,1); dindx(2)=dmat(2,2); upter(1:2)=upter(1:2)+dindx(1:2)*zheig*dzeta; trlow(1:2)=trlow(1:2)+dindx(1:2)*dzeta; dsumm = dsumm+dzeta; end zeta2(1:2)=-upter(1:2)./trlow(1:2); % Shear correction factors for ilayr=1:nc diff1=z1(ilayr)-z2(ilayr); d1=rf*dmat(1,1); d2=rf*dmat(2,2); d3=rf*dm(1,1); d4=rf*dm(2,2); if(ilayr==2) d1=dmat(1,1); d3=dm(1,1); d4=dm(2,2); d2=dmat(2,2); end index=10; for i=1:2 zeta1(i)=zeta2(i); zeta2(i)=zeta1(i)+diff1; diff2(i)=zeta2(i)^2-zeta1(i)^2; diff3(i)=zeta2(i)^3-zeta1(i)^3; diff5(i)=zeta2(i)^5-zeta1(i)^5; dindx=[d1;d2]; gindx=[d3;d4]; gbarf(i)=gbarf(i)+gindx(i)*diff1/2.0; rfact(i)=rfact(i)+dindx(i)*diff3(i)/3.0; term1 term2 term3 term4 term5 term6 = sumla(i)*sumla(i)*diff1; = dindx(i)*(zeta1(i)^4)*diff1/4.0; = dindx(i)*diff5(i)/20.0; =-dindx(i)*zeta1(i)*zeta1(i)*diff3(i)/6.0; = sumla(i)*zeta1(i)*zeta1(i)*diff1; =-sumla(i)*diff3(i)/3.0; coefe(i)= coefe(i)+(term1+dindx(i)* (term2+term3+term4+term5+term6))/gindx(i); index = index+1; sumla(i)= sumla(i)-dindx(i)*diff2(i)/2.0; end end coefe(1:2)=rfact(1:2).*rfact(1:2)./(2.0*gbarf(1:2).*coefe(1:2)); kapa=coefe(1); % Constitutive matrice, membrane, bending and shear a11=0; a22=0; a12=0; a33=0; for i=1:nc theta=th(i); - 183 - PHỤ LỤC CODE MATLAB 7.8.0 q11=rf*dmat(1,1); q12=rf*dmat(1,2); q22=rf*dmat(2,2); q33=rf*dmat(3,3); cs=cos(theta); ss=sin(theta); ss11=rf*dm(1,1)*kapa; ss22=rf*dm(2,2)*kapa; if i==2 q11=dmat(1,1); q12=dmat(1,2); q22=dmat(2,2); q33=dmat(3,3); cs=cos(theta); ss=sin(theta); ss11=dm(1,1)*kapa; ss22=dm(2,2)*kapa; end dd(1,1)=dd(1,1)+(ss11*cos(theta)^2+ss22*sin(theta)^2)*(z1(i)-z2(i)); dd(2,2)=dd(2,2)+(ss11*sin(theta)^2+ss22*cos(theta)^2)*(z1(i)-z2(i)); d(1,1)=d(1,1)+(q11*cs^4+2*(q12+2*q33)*ss*ss*cs*cs+ q22*ss^4)*(z1(i)^3-z2(i)^3)/3; d(2,2)=d(2,2)+(q11*ss^4+2*(q12+2*q33)*ss*ss*cs*cs+ q22*cs^4)*(z1(i)^3-z2(i)^3)/3; d(1,2)=d(1,2)+((q11+q22-4*q33)*ss*ss*cs*cs+ q12*(ss^4+cs^4))*(z1(i)^3-z2(i)^3)/3; d(3,3)=d(3,3)+((q11+q22-2*q12-2*q33)*ss*ss*cs*cs+ q33*(ss^4+cs^4))*(z1(i)^3-z2(i)^3)/3; a11=a11+q11*thick(i); a22=a22+q22*thick(i); a33=a22+q33*thick(i); a12=a12+q12*thick(i); qbarra(1,1,i)=q11; qbarra(1,2,i)=q12; qbarra(2,2,i)=q22; qbarra(3,3,i)=q33; qbarra(4,4,i)=ss11; qbarra(5,5,i)=ss22; end %nc A44=dd(2,2); A55=dd(1,1); D11=d(1,1); D12=d(1,2); D22=d(2,2); D66=d(3,3); A11=a11; A12=a12; A66=a33; A22=a22; - 184 - PHỤ LỤC CODE MATLAB 7.8.0 AMatrix=[A11, A12, 0; A12, A22, 0; 0, 0, A66]; % Srinivas case (symmetric) BMatrix=zeros(3); %BMatrix=[B11,B12,0;B12,B22,0;0,0,B66] DMatrix=[D11, D12, 0; D12, D22, 0; 0, 0, D66]; SMatrix=[A44, 0; 0, A55]; 6.21 MassMatrixMindlinQ4laminated5dof %% ==========TINH TOAN MA TRAN KHOI LUONG PHAN TU========== function [M]=MassMatrixMindlinQ4laminated5dof(GDof,numberElements,elementNodes,num berNodes,nodeCoordinates,rho,thickness,elemType) % computation of mass matrix for Mindlin plate element M=zeros(GDof); % Gauss quadrature for bending part switch elemType % define quadrature rule case 'Q16' [W,Q]=quadrature( 4, 'GAUSS', ); % 4x4 Gaussian quadrature case 'Q9' [W,Q]=quadrature( 3, 'GAUSS', ); % 4x4 Gaussian quadrature case 'Q4' [W,Q]=quadrature( 2, 'GAUSS', ); % 2x2 Gaussian quadrature otherwise [W,Q]=quadrature( 1, 'TRIANGULAR', ); % point triangural quadrature end for e=1:numberElements sctr=elementNodes(e,:); % element scatter vector nn=length(sctr); sctrBm(1:5:5*nn-4) = 5.*sctr-4 ; sctrBm(2:5:5*nn-3) = 5.*sctr-3 ; sctrBm(3:5:5*nn-2) = 5.*sctr-2 ; sctrBm(4:5:5*nn-1) = 5.*sctr-1 ; sctrBm(5:5:5*nn) = 5.*sctr ; % cycle for Gauss point for q=1:size(W,1) % quadrature loop pt=Q(q,:) ; % quadrature point pt1=pt(:,1); pt2=pt(:,2); wt=W(q); % quadrature weight [N,dNdxi]=lagrange_basis(elemType,pt); % element shape functions J0=nodeCoordinates(sctr,:)'*dNdxi; % element Jacobian matrix invJ0=inv(J0); dNdx=dNdxi*invJ0; % [B] matrix bending N_shape=Mass_matrix_composite(N,nn); m=I_matrix_composite(rho,thickness); M(sctrBm,sctrBm)= M(sctrBm,sctrBm)+N_shape'*m*N_shape*W(q)*det(J0); end % Gauss point end % element - 185 - PHỤ LỤC CODE MATLAB 7.8.0 6.22 MAT_TYPE_PIEZO_PVDF %% ==========VAT LIEU PIEZO PVDF========== function [E1,E2,G12,G13,G23,NU12,NU21,RHO,E31,E32,E33,P11,P22,P33]=MAT_TYPE_PIEZO_ PVDF %Materials for PVDF E1=2e9; E2=2e9; E3=2e9; % 1GPa = 1e9 Pa = 1e9 N/m2 NU12=0; NU13=NU12; N23=NU13; NU21=NU12*E2/E1; RHO=1; G12=1e9; G13=G12; G23=1e9; %1GPa = 1e9 Pa = 1e9 N/m2 %G23=0.5*E2; E31=0.046; E32=E31; E33=0; %C/m^2 P11=0; P22=P11; P33=0.1062e-9; %F/m 6.23 ES_CALCQ %% ==========MA TRAN HE SO VAT LIEU TRONG HE TOA DO DIA PHUONG========== function [Q,Qs]=ES_CALCQ(ik,E1,E2,G12,G13,G23,NU12,NU21) Q11=E1(ik)/(1-NU12(ik)*NU21(ik)); Q12=E2(ik)*NU12(ik)/(1-NU12(ik)*NU21(ik)); Q22=E2(ik)/(1-NU12(ik)*NU21(ik)); Q66=G12(ik);Q44=G23(ik);Q55=G13(ik); Q=[Q11 Q12 0; Q12 Q22 0; 0 Q66]; Qs=[Q44 Q55]; 6.24 ES_CALCQBAR %% ==========MA TRAN HE SO VAT LIEU TRONG HE TOA DO TONG THE========== function [Q_Bar]=ES_CALCQBAR(THETA,Q) Q11_bar=Q(1,1)*cos(THETA)^4+2*(Q(1,2)+2*Q(3,3))*sin(THETA)^2*cos(THETA)^2 +Q(2,2)*sin(THETA)^4; Q12_bar=(Q(1,1)+Q(2,2)4*Q(3,3))*sin(THETA)^2*cos(THETA)^2+Q(1,2)*(sin(THETA)^4+cos(THETA)^4); Q22_bar=Q(1,1)*sin(THETA)^4+2*(Q(1,2)+2*Q(3,3))*sin(THETA)^2*cos(THETA)^2 +Q(2,2)*cos(THETA)^4; Q16_bar=(Q(1,1)-Q(1,2)-2*Q(3,3))*sin(THETA)*cos(THETA)^3+(Q(1,2)Q(2,2)+2*Q(3,3))*sin(THETA)^3*cos(THETA); Q26_bar=(Q(1,1)-Q(1,2)-2*Q(3,3))*sin(THETA)^3*cos(THETA)+(Q(1,2)Q(2,2)+2*Q(3,3))*sin(THETA)*cos(THETA)^3; Q66_bar=(Q(1,1)+Q(2,2)-2*Q(1,2)2*Q(3,3))*sin(THETA)^2*cos(THETA)^2+Q(3,3)*(sin(THETA)^4+cos(THETA)^4); Q_Bar=[Q11_bar Q12_bar Q16_bar; Q12_bar Q22_baSer Q26_bar; Q16_bar Q26_bar Q66_bar]; 6.25 ES_CALCQBARS %% ==========MA TRAN HE SO VAT LIEU TRONG HE TOA DO TONG THE========== function [QBARS]=ES_CALCQBARS(THETA,Qs) Q44_bar=Qs(1,1)*cos(THETA)^2+Qs(1,2)*sin(THETA)^2; Q45_bar=(Qs(1,2)-Qs(1,1))*cos(THETA)*sin(THETA); Q55_bar=Qs(1,1)*sin(THETA)^2+Qs(1,2)*cos(THETA)^2; QBARS=[ Q55_bar Q45_bar; Q45_bar Q44_bar]; - 186 - PHỤ LỤC CODE MATLAB 7.8.0 6.26 ES_CALCED_PIEZO_PVDF %% =====MA TRAN HE SO VAT LIEU PIEZO TRONG HE TOA DO TONG THE===== function [EC,EG]=ES_CALCED_PIEZO_PVDF(h_piezo,THETA,E31,E32,E33,P11,P22,P33) %for FSDT CN=cos(THETA); SN=sin(THETA); SN2=SN*SN; CN2=CN*CN; %EC=zeros(3,5); EC(3,1)=E31*CN2+E32*SN2; EC(3,2)=E31*SN2+E32*CN2; EC(3,3)=(E31-E32)*SN*CN; EG(1,1)=P11*CN2+P22*SN2; EG(2,2)=P22*CN2+P11*SN2; EG(1,2)=(P11-P22)*SN*CN; EG(2,1)=EG(1,2); EG(3,3)=P33; 6.27 MAT_TYPE_COMPOSITE %% ==========MA TRAN HE SO VAT LIEU TRONG HE TOA DO DIA PHUONG========== function [E1, E2, G12, G13, G23, NU12, NU21, RHO]=MAT_TYPE_COMPOSITE %if ITYPE==1 %Materials for Composite E2=1; E1=25*E2; NU12=0.25; NU21=NU12*E2/E1; RHO=1; G12=0.5*E2; G13=G12; G23=0.2*E2; %end - 187 - PHỤ LỤC CODE MATLAB 7.8.0 6.28 triangulation_order3_neighbor_triangles %% ==========TIM PHAN TU TAM GIAC LAN CAN========== %% ==========SU DUNG MODULE CUA TAC GIA JOHN BURKARDT========== function triangle_neighbor = triangulation_order3_neighbor_triangles ( triangle_num, triangle_node ) %% TRIANGULATION_ORDER3_NEIGHBOR_TRIANGLES determines triangle neighbors % % Discussion: % % A triangulation of a set of nodes can be completely described by % the coordinates of the nodes, and the list of nodes that make up % each triangle However, in some cases, it is necessary to know % triangle adjacency information, that is, which triangle, if any, % is adjacent to a given triangle on a particular side % % This routine creates a data structure recording this information % % The primary amount of work occurs in sorting a list of * TRIANGLE_NUM % data items % % Example: % % The input information from TRIANGLE_NODE: % % Triangle Nodes % -% % % 3 % % 13 % 13 % % 13 % 9 13 % 10 13 % 11 % 12 % 13 10 % 14 12 % 15 11 12 % 16 10 11 % % The output information in TRIANGLE_NEIGHBOR: % % Triangle Neighboring Triangles % % % -1 -1 % % % -1 % % % -1 % 10 % 10 12 % 10 11 - 188 - PHỤ LỤC CODE MATLAB 7.8.0 % 11 12 10 14 % 12 11 13 % 13 -1 12 16 % 14 11 -1 15 % 15 16 14 -1 % 16 13 15 -1 % % Modified: % % 07 March 2005 % % Author: % % John Burkardt % % Parameters: % % Input, integer TRIANGLE_NUM, the number of triangles % % Input, integer TRIANGLE_NODE(3,TRIANGLE_NUM), the nodes that make up each triangle % % Output, integer TRIANGLE_NEIGHBOR(3,TRIANGLE_NUM), the three triangles that are direct % neighbors of a given triangle TRIANGLE_NEIGHBOR(1,I) is the index of the triangle % which touches side 1, defined by nodes and 3, and so on TRIANGLE_NEIGHBOR(1,I) % is negative if there is no neighbor on that side In this case, that % side of the triangle lies on the boundary of the triangulation % % % % % % % % % % % % Step From the list of nodes for triangle T, of the form: (I,J,K) construct the three neighbor relations: (I,J,1,T) or (J,I,1,T), (J,K,2,T) or (K,J,2,T), (K,I,3,T) or (I,K,3,T) where we choose (I,J,1,T) if I < J, or else (J,I,1,T) for tri = : triangle_num i = triangle_node(1,tri); j = triangle_node(2,tri); k = triangle_node(3,tri); if ( i < j ) row(3*(tri-1)+1,1:4) = [ i, j, 1, tri ]; else row(3*(tri-1)+1,1:4) = [ j, i, 1, tri ]; end if ( j < k ) row(3*(tri-1)+2,1:4) = [ j, k, 2, tri ]; else row(3*(tri-1)+2,1:4) = [ k, j, 2, tri ]; end - 189 - PHỤ LỤC CODE MATLAB 7.8.0 if ( k < i ) row(3*(tri-1)+3,1:4) = [ k, i, 3, tri ]; else row(3*(tri-1)+3,1:4) = [ i, k, 3, tri ]; end end % % Step Perform an ascending dictionary sort on the neighbor relations % We only intend to sort on columns and 2; the routine we call here % sorts on columns through but that won't hurt us % % What we need is to find cases where two triangles share an edge % Say they share an edge defined by the nodes I and J Then there are % two rows of ROW that start out ( I, J, ?, ? ) By sorting ROW, % we make sure that these two rows occur consecutively That will % make it easy to notice that the triangles are neighbors % row = i4row_sort_a ( 3*triangle_num, 4, row ); % % Step Neighboring triangles show up as consecutive rows with % identical first two entries Whenever you spot this happening, % make the appropriate entries in TRIANGLE_NEIGHBOR % triangle_neighbor(1:3,1:triangle_num) = -1; irow = 1; while ( ) if ( * triangle_num

Ngày đăng: 15/02/2021, 07:37

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan