Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 152 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
152
Dung lượng
4,58 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẶNG NGỌC CẢNH PHÂN TÍCH VÙNG DẺO VÀ PHI TUYẾN HÌNH HỌC KHUNG THÉP KHƠNG GIAN BẰNG PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN 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 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 : TS NGÔ HỮU CƯỜNG Cán chấm nhận xét 1:…………………………………………… Cán chấm nhận xét 2: …………………………………………… 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 KHOA KỸ THUẬT XÂY DỰNG CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc -oOo Tp HCM, ngày 04 tháng 07 năm 2010 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: ĐẶNG NGỌC CẢNH Phái: Nam Ngày, tháng, năm sinh: 04/05/1986 Nơi sinh: Quảng Nam Chuyên ngành: Xây dựng Dân dụng Công nghiệp MSHV: 09210983 1- TÊN ĐỀ TÀI: PHÂN TÍCH VÙNG DẺO VÀ PHI TUYẾN HÌNH HỌC KHUNG THÉP KHƠNG GIAN BẰNG PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN 2- NHIỆM VỤ LUẬN VĂN: Áp dụng lý thuyết phần tử hữu hạn xây dựng phần tử hữu hạn có khả mơ ứng xử phi tuyến hình học, phi tuyến vật liệu, ảnh hưởng ứng suất dư, sai lệch hình học ban đầu, liên kết nửa cứng dầm-cột Xây dựng chương trình ứng dụng ngơn ngữ lập trình FORTRAN kết hợp với MATLAB để tự động hóa q trình phân tích máy tính So sánh kết đạt với nghiên cứu trước để kiểm tra độ tin cậy chương trình Rút kết luận cơng việc thực Nêu lên hướng phát triển đề tài tương lai 3- NGÀY GIAO NHIỆM VỤ: 04/07/2010 4- NGÀY HOÀN THÀNH NHIỆM VỤ: 04/12/2010 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS NGÔ HỮU CƯỜNG Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) TS NGÔ HỮU CƯỜNG TRƯỞNG BAN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) LỜI CẢM ƠN Tôi xin chân thành bày tỏ lòng biết ơn đến quý Thầy cơ, ban Giám hiệu, Phịng Đào tao Sau Đại học trường Đại học Bách Khoa Tp Hồ Chí truyền đạt cho kiến thức vô quý giá tạo điều kiện học tập tốt suốt năm rưỡi cao học trường Đặc biệt, xin gởi đến TS Ngô Hữu Cường lời biết ơn sâu sắc, người thầy trực tiếp hướng dẫn nhiệt tình lời khun q báu giúp tơi hồn thành luận văn Xin chân thành cảm ơn thầy Bơ mơn Cơng trình tạo điều kiện cho suốt thời gian học tập Tôi xin gởi lời cảm ơn đến tác giả hỗ trợ tài q báu giúp tơi hồn thành luận văn hạn Cuối tơi xin bày tỏ lịng biết ơn gia đình, bạn bè quan tâm động viên tơi suốt q trình thực luận văn Học viên Đặng Ngọc Cảnh i MỤC LỤC LỜI CẢM ƠN .i MỤC LỤC ii DANH MỤC HÌNH ẢNH v DANH MỤC BẢNG BIỂU ix KÝ HIỆU x CHƯƠNG I: TỔNG QUAN 1.1 Giới thiệu 1.1.1 Phi tuyến hình học 1.1.2 Phi tuyến vật liệu 1.1.3 Liên kết nửa cứng 1.2 Tình hình nghiên cứu đề tài 1.2.1 Tình hình nghiên cứu giới 1.2.2 Tình hình nghiên cứu Việt Nam 1.3 Mục tiêu luận án 11 CHƯƠNG 2: PHẦN TỬ DẦM – CỘT 13 2.1 Giới thiệu 13 2.2 Các giả thiết hệ trục tọa độ phần tử 13 2.3 Phần tử cột-dầm 14 2.3.1 Lý thuyết 15 2.3.2 Ma trận tính biến dạng [B] 19 2.3.3 Ma trận độ cứng phần tử Ke 22 2.3.4 Ma trận chuyển 25 2.4 Ứng suất dư sai lệch hình học 26 2.4.1 Mơ hình ứng suất dư 26 2.4.2 Sự sai lệch hình học 29 2.5 Phi tuyến vật liệu 29 2.5.1 Tổng quan 29 ii 2.5.2 Phân tích phi tuyến vật liệu 30 2.6 Thuật giải phi tuyến 32 2.6.1 Hiệu chỉnh thuật toán 34 2.6.2 Phương pháp chiều dài cung 34 2.6.3 Thuật toán tăng tải 37 2.7 Liên kết nửa cứng 38 2.7.1 Phần tử liên kết lò xo 38 2.7.2 Hiệu chỉnh ma trận độ cứng 39 2.8 Tóm tắt 40 CHƯƠNG 3: LIÊN KẾT NỬA CỨNG 42 3.1 Giới thiệu 42 3.2 Mơ hình tứ tuyến Foley 43 3.3 Mơ hình ba tham số Kishi-Chen 43 3.3.1 Liên kết loại TSA 45 3.3.2 Liên kết loại TSAW 46 3.3.3 Chương trình máy tính xác định ba thơng số (3PARA) 47 3.4 Kết luận 49 CHƯƠNG 4: CHƯƠNG TRÌNH TÍNH TỐN 50 4.1 Giới thiệu 50 4.2 Sơ đồ giải thuật 50 4.3 Giao diện chương trình cách sử dụng 52 4.3.1 Gán liệu đầu vào 52 4.3.2 Kiểm tra liệu tạo tập tin “Input” 55 4.3.3 Xuất liệu 55 4.4 Kết luận 56 CHƯƠNG 5: VÍ DỤ ÁP DỤNG 57 5.1 Các giả thiết 57 iii 5.1.1 Vật liệu 57 5.1.2 Ứng suất dư 57 5.1.3 Sự sai lệch mặt hình học 57 5.2 Ảnh hưởng việc chia phần tử số điểm tích phân 57 5.3 Khung có liên kết cứng 61 5.3.1 Khung cổng Vogel 61 5.3.2 Khung tầng 67 5.3.3 Khung không gian tầng 71 5.3.4 Khung Harison 76 5.3.5 Khung không gian hai tầng – (tiết diện chữ I) 80 5.3.6 Khung không gian hai tầng – (tiết diện chữ nhật) 83 5.3.7 Khung không gian tầng 87 5.3.8 Khung không gian 20 tầng 91 5.4 Khung có liên kết nửa cứng 95 5.4.1 Khung cổng Vogel 95 5.4.2 Khung không gian tầng 98 5.5 Nhận xét 102 CHƯƠNG 6: KẾT LUẬN 103 6.1 Tóm tắt luận văn 103 6.2 Kết luận .104 6.3 Hướng phát triển đề tài .105 Tài liệu tham khảo 108 Phụ lục Phụ lục 1: Ma trận tính biến dạng BNL 112 Phụ lục 2: Chương trình NASF 114 iv DANH MỤC HÌNH ẢNH CHƯƠNG 2: PHẦN TỬ DẦM - CỘT Hình 2.1 Hệ trục tọa độ phần tử .14 Hình 2.2 Mơ hình phân tích .15 Hình 2.3 Ứng suất chuyển vị 17 Hình Phần tử dầm-cột không gian 18 Hình 2.5 Hệ trục tọa độ địa phương phần tử .24 Hình 2.6 Số điểm tích phân dọc theo phần tử 24 Hình 2.7 Số điểm tích phân tiết diện chữ nhật 24 Hình 2.8 Số điểm tích phân tiết diện chữ I .25 Hình 2.9 Số điểm tích phân tiết diện chữ hình trịn 25 Hình 2.10 Ảnh hưởng ứng suất dư 27 Hình 2.11 Đưa mơ hình ứng suất dư vào phần tử thớ 27 Hình 2.12 Mơ hình Vogel 28 Hình 2.13 Mơ hình Galambos Ketter 28 Hình 2.14 Quan hệ ứng suất biến dạng có xét tái bền đằng hướng 30 Hình 2.15 Ứng xử tải trọng-chuyển vị khung cổng 32 Hình 2.16 Sơ đồ phương pháp sử dụng bước lặp đơn (Euler) 33 Hình 2.17 Sơ đồ phương pháp sử dụng bước lặp kép (Newton-Raphson) 33 Hình 2.18 Sơ đồ phương pháp lặp Newton-Raphson hiệu chỉnh 34 Hình 2.19 Sơ đồ phương pháp lặp Chiều dài dây cung .37 Hình 2.20 Mơ hình phân tích liên kết nửa cứng 38 Hình 2.21 Liên kết lò xo 38 Hình 2.22 Phần tử dầm-cột với liên kết lò xo 39 CHƯƠNG 3: LIÊN KẾT NỬA CỨNG Hình 3.1 Đường cong momen – góc xoay loại liên kết khác 42 Hình 3.2 Mơ hình tứ tuyến Foley (1997) 43 Hình 3.3 Ứng xử momen – góc xoay mơ hình ba tham số Kishi-Chen 44 v Hình 3.4 Liên kết TSA TSAW 47 Hình 3.5 Lưu đồ chương trình 3PARA 47 CHƯƠNG 4: CHƯƠNG TRÌNH TÍNH TỐN Hình 4.1 Lưu đồ chương trình NASF .50 Hình 4.2 Lưu đồ – Phân tích FORTRAN .51 Hình 4.3 Giao diện chương trình NASF 52 Hình 4.4 Nhập file liệu vào chương trình 52 Hình 4.5 Nhập thơng tin khung thép 53 Hình 4.6 Nhập thơng số 53 Hình 4.7 Các thơng số vòng lặp 54 Hình 4.8 Các thơng số phần tử .54 Hình 4.9 Tập tin chứa liệu kiểm tra xếp 55 Hình 4.10 Chọn nút cần xuất số liệu 55 Hình 4.11 Đồ thị “Hệ số gia tải-Chuyển vị”tại điểm khảo sát 56 CHƯƠNG 5: VÍ DỤ ÁP DỤNG Hình 5.1 Mơ hình phân tích cột 59 Hình 5.2 Số điểm tích phân điểm/bản cánh, điểm/bản bụng 59 Hình 5.3 Số điểm tích phân điểm/bản cánh, điểm/bản bụng 59 Hình 5.4 Số điểm tích phân điểm/bản cánh, điểm/bản bụng 59 Hình 5.5 Ảnh hưởng số điểm tích phân 60 Hình 5.6 Ảnh hưởng số lượng phần tử .60 Hình 5.7 Khung cổng Vogel (1985) 64 Hình 5.8 Biểu đồ quan hệ hệ số gia tải-chuyển vị 64 Hình 5.9 Ảnh hưởng ứng suất dư .65 Hình 5.10 Tỷ lệ chảy dẻo khung .66 Hình 5.11 Tỷ lệ chảy tiết diện mặt cắt P1 phân tích NASF 66 Hình 5.12 Tỷ lệ chảy tiết diện mặt cắt P1 phân tích NEFCAD .66 Hình 5.13 Sơ đồ khung tầng 69 vi Hình 5.14 Biểu đồ quan hệ lực-chuyển vị khung tầng 70 Hình 5.15 Ảnh hưởng ứng suất dư .70 Hình 5.16 Sơ đồ khung khơng gian tầng .73 Hình 5.17 Biểu đồ quan hệ lực-chuyển vị khung không gian tầng .73 Hình 5.18 Ảnh hưởng ứng suất dư .74 Hình 5.19 Tỷ lệ chảy dẻo khung .75 Hình 5.20 Tỷ lệ chảy dẻo tiết diện mặt cắt P1 75 Hình 5.21 Sơ đồ khung Harison 78 Hình 5.22 Biểu đồ quan hệ lực-chuyển vị khung Harison 78 Hình 5.23 Tỷ lệ chảy dẻo khung .79 Hình 5.24 Tỷ lệ chảy dẻo tiết diện mặt cắt P3 79 Hình 5.25 Khung không gian hai tầng -1 (tiết diện chữ I) 82 Hình 5.26 Biểu đồ quan hệ lực-chuyển vị 82 Hình 5.27 Khung khơng gian hai tầng -2 (tiết diện chữ nhật) 85 Hình 5.28 Biểu đồ quan hệ lực-chuyển vị 85 Hình 5.29 Tỷ lệ chảy dẻo khung .86 Hình 5.30 Tỷ lệ chảy dẻo tiết diện mặt cắt P1 86 Hình 5.31 Sơ đồ mặt khung không gian tầng Orbison 89 Hình 5.32 Sơ đồ khơng gian khung không gian tầng Orbison 89 Hình 5.33 Biểu đồ quan hệ hệ số gia tải-chuyển vị tương đối A 90 Hình 5.34 Ảnh hưởng ứng suất dư .90 Hình 5.35 Sơ đồ mặt khung không gian 20 tầng .93 Hình 5.36 Sơ đồ khơng gian khung 20 tầng .93 Hình 5.37 Biểu đồ quan hệ hệ số gia tải-chuyển vị tương đối A (phương Y) 94 Hình 5.38 Khung cổng Vogel (1985) 97 Hình 5.39 Biểu đồ quan hệ hệ số gia tải-chuyển vị 97 Hình 5.40 Sơ đồ mặt khung không gian tầng Orbison 100 Hình 5.41 Sơ đồ khơng gian khung khơng gian tầng Orbison 100 Hình 5.42 Biểu đồ quan hệ lực-chuyển vị (phương X) 101 Hình 5.43 Biểu đồ quan hệ lực-chuyển vị (phương Y) 101 vii %% BIEN BAN DAU (TRANH ERROR) if exist('NUMBER_OF_TIME_STEPS','var')==0; NUMBER_OF_TIME_STEPS=100; end if exist('TIME_STEP_INCREMENT','var')==0; TIME_STEP_INCREMENT=0.05; end if exist('RESIDUAL_STRESS','var')==0; RESIDUAL_STRESS=0.3; end %% CAC DAC TRUNG CUA KHUNG hh=225; frame_1=uipanel(X1frame, 'Position', [10,Coord.H-250,Coord.W-25,hh], 'Title', 'Main control'); % -text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-50 200 20], 'String', 'Number of nodes'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-75 200 20], 'String', 'Number of nonlinear element groups'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-100 200 20], 'String', 'Number of load incremental step'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-125 200 20], 'String', 'Load increment'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-150 200 20], 'String', 'Number of applied load'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-175 250 20], 'String', 'Number of fixed initial displacement'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-200 200 20], 'String', 'Residual stress parameter'); % -edit_NUMNP=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NUMBER_OF_NODAL_POINTS), 'Position', [330 hh-50 100 20], 'HorizontalAlignment','left'); edit_NEGNL=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NUMBER_OF_NONLINEAR_ELEMENT_GROUPS), 'Position', [330 hh-75 100 20], 'HorizontalAlignment','left'); edit_NSTE=uicontrol(X1edit, 'Parent', frame_1, 'String', '50', 'Position', [330 hh-100 100 20], 121 'HorizontalAlignment','left'); edit_DT=uicontrol(X1edit, 'Parent', frame_1, 'String', '5', 'Position', [330 hh-125 100 20], 'HorizontalAlignment','left'); edit_NLOAD=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NUMBER_OF_CONCENTRATED_LOAD_CARDS), 'Position', [330 hh-150 100 20], 'HorizontalAlignment','left'); edit_NDISP=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NUMBER_OF_FIXED_INITIAL_DISPLACEMENT), 'Position', [330 hh-175 100 20], 'HorizontalAlignment','left'); edit_RESID=uicontrol(X1edit, 'Parent', frame_1, 'String', '0.3', 'Position', [330 hh-200 100 20], 'HorizontalAlignment','left'); %% NUT BAM hh=50; frame_3=uipanel(X1frame, 'Position', [10 10 Coord.W-20 hh]); button_Ok=uicontrol(X2button, 'Parent', frame_3 , 'Position', [200 hh-40 100 25], 'String', 'OK', 'Callback', 'c_Input_Set2;close(fig.Input_Set2)'); %% HIEN THI CAC THONG SO DA THIET LAP if exist('NUMBER_OF_NODAL_POINTS','var')==1; set(edit_NSTE,'String',num2str(NUMBER_OF_TIME_STEPS)); end if exist('NUMBER_OF_NODAL_POINTS','var')==1; set(edit_DT,'String',num2str(TIME_STEP_INCREMENT)); end if exist('RESIDUAL_STRESS','var')==1; set(edit_RESID,'String',num2str(RESIDUAL_STRESS)); end A01_Input_Set3 Giao diện nhập thông số điều khiển %% TAO GIAO DIEN CHINH Screen = get(0,'screensize'); Coord.W=500; Coord.H=400; Coord.x=(Screen(3)-Coord.W)/2; Coord.y=(Screen(4)-Coord.H)/2; fig.Input_Set3=figure(X1fig, 'Name', '3 Incremental control', 'Position', [Coord.x,Coord.y,Coord.W,Coord.H]); %% CAC THONG SO MAC DINH METHOD = 4; %SPECIFY THE SOLUTION METHOD: % EQ.1, MODIFIED NEWTON ITERATION ; % EQ.2, BFGS MATRIX UPDATING; % EQ.3, NEWTON RAPHSON METHOD; % EQ.4, MODIFIED-ARC-LENGTH CONTROL METHOD; 122 ITEMAX = 0; %ALLOWABLE MAXIMUM EQUILIBRIUM ITERATIVE NUMBER % OR EMPTY % DEFAULT TO 15 FOR METHOD=1&2; % DEFAULT TO FOR METHOD=3&4; DTOL = 0; %ENERGY CONVERGENCE CRITERION % OR EMPTY % DEFAULT TO 1.E-03 RTOL = 0; %LOAD CONVERGENCE CRITERION % OR EMPTY % DEFAULT TO 1.E-03 STOL = 0; %RESIDUAL DISPLACEMENT CONVERGENCE CRITERION % OR EMPTY % DEFAULT TO 1.E-03 %% CAC DAC TRUNG CUA KHUNG hh=225; frame_1=uipanel(X1frame, 'Position', [10,Coord.H-250,Coord.W-25,hh], 'Title', 'Main control'); % -text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-50 300 20], 'String', 'Specify the solution method'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-75 300 20], 'String', 'Allowable maximum equilibrium iterative number'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-100 300 20], 'String', 'Energy convergence criterion'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-125 300 20], 'String', 'Load convergence criterion'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-150 300 20], 'String', 'Residual displacement convergence criterion'); % -edit_METHOD=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(METHOD), 'Position', [330 hh-50 100 20], 'HorizontalAlignment','left'); edit_ITEMAX=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(ITEMAX), 'Position', [330 hh-75 100 20], 'HorizontalAlignment','left'); edit_DTOL=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(DTOL), 'Position', [330 hh-100 100 20], 'HorizontalAlignment','left'); edit_RTOL=uicontrol(X2edit, 123 'Parent', frame_1, 'String', num2str(RTOL), 'Position', [330 hh-125 100 20], 'HorizontalAlignment','left'); edit_STOL=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(STOL), 'Position', [330 hh-150 100 20], 'HorizontalAlignment','left'); %% NUT BAM hh=50; frame_3=uipanel(X1frame, 'Position', [10 10 Coord.W-20 hh]); button_Ok=uicontrol(X2button, 'Parent', frame_3 , 'Position', [200 hh-40 100 25], 'String', 'OK', 'Callback', 'close(fig.Input_Set3)'); A01_Input_Set6 Giao diện nhập thông số điều khiển %% TAO GIAO DIEN CHINH Screen = get(0,'screensize'); Coord.W=500; Coord.H=400; Coord.x=(Screen(3)-Coord.W)/2; Coord.y=(Screen(4)-Coord.H)/2; fig.Input_Set6=figure(X1fig, 'Name', '6 Element main control', 'Position', [Coord.x,Coord.y,Coord.W,Coord.H]); %% CAC THONG SO MAC DINH if exist('NPAR','var')==0 NPAR(1:11) = 0; end NPAR(1) = 3; %REPRESENTS STEEL BEAM-COLUMN ELEMENT NPAR(2) = num.Ele; %TOTAL BEAM-COLUMN ELEMENT NUMBER NPAR(3) = 2; %NONLINEAR ANALYSIS TYPE; (2= UPDATED LAGRANGE FORMULATION) NPAR(4) = 1; %ELEMENT TYPE, (1= THREE DIMENSION) NPAR(6) = 5; %INTEGRATION ORDER IN R DIRECTION, OR EMPTY: DEFAULT TO NPAR(7) = 0; %INTEGRATION ORDER IN S DIRECTION, OR EMPTY: DEFAULT TO NPAR(8) = 0; %INTEGRATION ORDER IN T DIRECTION, OR EMPTY: DEFAULT TO NPAR(9) = 0; %MATERIAL MODEL, 2: ELASTIC-PLASTIC RELATIO %% CAC DAC TRUNG CUA KHUNG hh=350; frame_1=uipanel(X1frame, 'Position', [10,Coord.H-360,Coord.W-20,hh], 'Title', 'Structure'); % -text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-50 300 20], 'String', 'Represents steel beam-column element'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-75 300 20], 'String', 'Total beam-column element number'); 124 text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-100 300 20], 'String', 'Nonlinear analysis type'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-125 300 20], 'String', 'Element type'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-150 300 20], 'String', 'Section index'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-175 300 20], 'String', 'Integration order in r direction'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-200 300 20], 'String', 'Integration order in s direction'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-225 300 20], 'String', 'Integration order in s direction'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-250 300 20], 'String', 'Material model'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-275 300 20], 'String', 'Material group number'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-300 300 20], 'String', 'Stress output flag'); % -edit_NPAR1=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(1)), 'Position', [330 hh-50 100 20], 'HorizontalAlignment','left'); edit_NPAR2=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(2)), 'Position', [330 hh-75 100 20], 'HorizontalAlignment','left'); edit_NPAR3=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(3)), 'Position', [330 hh-100 100 20], 'HorizontalAlignment','left'); edit_NPAR4=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(4)), 'Position', [330 hh-125 100 20], 'HorizontalAlignment','left'); pop_NPAR5=uicontrol(Xpop, 'Parent', frame_1, 'Position',[330 hh-150 100 20], 125 'String', 'Rectangular section|Circular section|I-section'); edit_NPAR6=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(6)), 'Position', [330 hh-175 100 20], 'HorizontalAlignment','left'); edit_NPAR7=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(7)), 'Position', [330 hh-200 100 20], 'HorizontalAlignment','left'); edit_NPAR8=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(8)), 'Position', [330 hh-225 100 20], 'HorizontalAlignment','left'); edit_NPAR9=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NPAR(9)), 'Position', [330 hh-250 100 20], 'HorizontalAlignment','left'); edit_NPAR10=uicontrol(X1edit, 'Parent', frame_1, 'String', '0', 'Position', [330 hh-275 100 20], 'HorizontalAlignment','left'); pop_NPAR11=uicontrol(Xpop, 'Parent', frame_1, 'Position',[180 hh-300 250 20], 'String', 'Print and store nodal forces|Print and store stresses at all integration points'); %% NUT BAM hh=50; frame_3=uipanel(X1frame, 'Position', [10 10 Coord.W-20 hh]); button_Ok=uicontrol(X2button, 'Parent', frame_3 , 'Position', [200 hh-40 100 25], 'String', 'Ok', 'Callback', 'c_Input_Set6;close(fig.Input_Set6)'); %% HIEN THI CAC THONG SO DA THIET LAP if NPAR(5) ~= 0; set(pop_NPAR5,'Value',NPAR(5)); end if NPAR(10) ~= 0; set(edit_NPAR10,'String',num2str(NPAR(10))); end if NPAR(11) ~= 3; set(pop_NPAR11,'Value',NPAR(11)+2); end A02_Output_LoadDisp Giao diện xuất liệu đầu %% TAO GIAO DIEN CHINH Screen = get(0,'screensize'); Coord.W=500; Coord.H=400; Coord.x=(Screen(3)-Coord.W)/2; Coord.y=(Screen(4)-Coord.H)/2; fig.Output_LoadDisp=figure(X1fig, 126 'Name', '1 Load - Displacement curve', 'Position', [Coord.x,Coord.y,Coord.W,Coord.H]); %% CAC DAC TRUNG CUA KHUNG hh=250; frame_1=uipanel(X1frame, 'Position', [10,Coord.H-275,Coord.W-25,hh], 'Title', 'Structure Information'); % -text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-50 150 20], 'String', 'Number of nodes'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-75 200 20], 'String', 'Number of load incremental step'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-125 200 20], 'String', 'Output Joint'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-150 200 20], 'String', 'Direction'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-200 200 20], 'String', 'Hight of Frame'); text=uicontrol(Xtext, 'Parent', frame_1, 'Position', [10 hh-225 200 20], 'String', 'Alpha'); % -edit_NUMNP=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NUMBER_OF_NODAL_POINTS), 'Position', [330 hh-50 100 20], 'HorizontalAlignment','left'); edit_NSTE=uicontrol(X2edit, 'Parent', frame_1, 'String', num2str(NUMBER_OF_TIME_STEPS), 'Position', [330 hh-75 100 20], 'HorizontalAlignment','left'); edit_OutputJoint=uicontrol(X1edit, 'Parent', frame_1, 'Position', [330 hh-125 100 20], 'HorizontalAlignment','left'); pop_DirectionJoint=uicontrol(Xpop, 'Parent', frame_1, 'Position',[330 hh-150 100 20], 'String', 'X-Direct|Y-Direct|Z-Direct'); edit_HightFrame=uicontrol(X1edit, 'Parent', frame_1, 'String', '1', 'Position', [330 hh-200 100 20], 'HorizontalAlignment','left'); edit_Alpha=uicontrol(X1edit, 'Parent', frame_1, 'String', '-10', 'Position', [330 hh-225 100 20], 127 'HorizontalAlignment','left'); %% NUT BAM hh=50; frame_3=uipanel(X1frame, 'Position', [10 10 Coord.W-20 hh]); button_Ok=uicontrol(X2button, 'Parent', frame_3 , 'Position', [200 hh-40 100 25], 'String', 'Ok', 'Callback', 'c_Output_LoadDisp;close(fig.Output_LoadDisp)'); c_Input_File Xử lý số liệu tập đầu vào %% CAC THONG SO TU FILE DU LIEU % Nhan du lieu tu file Excel va file Text Trong cac file nay, co mot so % thong so duoc lay tu dong Cac set du lieu sau khong can gan lai %% Ket cau khung _[no] % 1: khung phang; % 2: khung khong gian Frame=get(pop_Frame,'Value'); %% Phuong luc tac dung _[no] % 1: Z+Y; % 2: Z+X; % 3: Z DirectForce=get(pop_Force,'Value'); %% File du lieu [no] xlsFile=strcat(path_Data,'/',file_Data); %Input excel file txtFile=strcat(get(edit_Output,'String'),'.txt'); %Output txt file fid = fopen(txtFile,'wt'); %Open output file %% Chuyen du lieu vao chuong trinh _[no] Ele=xlsread(xlsFile, 'Connectivity - Frame'); Node=xlsread(xlsFile, 'Joint Coordinates'); Force=xlsread(xlsFile, 'Joint Loads - Force'); Ele(:,4:9)=[]; Node(:,[2:3,7:10])=[]; if DirectForce ==1 Force(:,[3:4,7:9])=[]; %Luc phuong Z+Y; elseif DirectForce ==2 Force(:,[3,5,7:9])=[]; %Luc phuong Z+X; elseif DirectForce ==3 Force(:,[3:5,7:9])=[]; %Luc phuong Z; end Force = sortrows(Force,[1 length(Force(1,:))]); num.Ele = length(Ele(:,1)); num.Force= length(Force(:,1)); num.Node= length(Node(:,1)); %% Nut co dinh _[no] ConstPoint=[str2num(get(edit_ConstPoint,'String')),num.Node+6]'; %% Nut ngam [no] FixPoint=str2num(get(edit_FixPoint,'String')); c_Input_Set1 Xử lý thông số điều khiển %% NHAN DU LIEU: INPUT-SET1 Title=get(edit_Title,'String'); 10 c_Input_Set2 Xử lý thông số điều khiển %% NHAN DU LIEU: INPUT-SET2 NUMBER_OF_TIME_STEPS = str2double(get(edit_NSTE,'String')); 128 TIME_STEP_INCREMENT RESIDUAL_STRESS 13 c_Sec = = str2double(get(edit_DT,'String')); str2double(get(edit_RESID,'String')); Xử lý thông số tiết diện %% NHAN DU LIEU: INPUT-SET6 NPAR(5) = get(pop_NPAR5,'Value'); NPAR(10) = str2double(get(edit_NPAR10,'String')); NPAR(11) = get(pop_NPAR11,'Value')-2; %Ghi chu: NPAR(11) co gia tri: -1 va (ung voi 'Value' la va 2, do %phai tru di 2) 14 c_Trans Tạo tập tin liệu đầu vào cho chương trình FORTRAN %% GHI FILE DU LIEU % DATA SET 1: TITLE CARD ->>> fprintf(fid, '%s\n', Title); % DATA SET 2: MAIN CONTROL CARD >>> fprintf(fid, '%s', strcat(f_str(05length(num2str(NUMBER_OF_NODAL_POINTS))), num2str(NUMBER_OF_NODAL_POINTS))); fprintf(fid, '%s', strcat(f_str(05length(num2str(NUMBER_OF_NONLINEAR_ELEMENT_GROUPS))), num2str(NUMBER_OF_NONLINEAR_ELEMENT_GROUPS))); fprintf(fid, '%s', strcat(f_str(05length(num2str(NUMBER_OF_TIME_STEPS))), num2str(NUMBER_OF_TIME_STEPS))); fprintf(fid, '%s', strcat(f_str(10length(num2str(TIME_STEP_INCREMENT))), num2str(TIME_STEP_INCREMENT))); fprintf(fid, '%s', strcat(f_str(05length(num2str(NUMBER_OF_CONCENTRATED_LOAD_CARDS))), num2str(NUMBER_OF_CONCENTRATED_LOAD_CARDS))); fprintf(fid, '%s', strcat(f_str(05length(num2str(NUMBER_OF_FIXED_INITIAL_DISPLACEMENT))), num2str(NUMBER_OF_FIXED_INITIAL_DISPLACEMENT))); fprintf(fid, '%s\n', strcat(f_str(05-length(num2str(RESIDUAL_STRESS))), num2str(RESIDUAL_STRESS))); %DATA SET 3: INCREMENTAL CONTROL CARD >>> fprintf(fid, '%s', strcat(f_str(05-length(num2str(METHOD))), num2str(METHOD))); fprintf(fid, '%s', strcat(f_str(10-length(num2str(ITEMAX))), num2str(ITEMAX))); fprintf(fid, '%s', strcat(f_str(10-length(num2str(DTOL))), num2str(DTOL))); fprintf(fid, '%s', strcat(f_str(10-length(num2str(RTOL))), num2str(RTOL))); fprintf(fid, '%s\n', strcat(f_str(10-length(num2str(STOL))), num2str(STOL))); run c_Load % DATA SET 5: NODE DATA CARD ->>> %Ghi cac nut co dinh, dot for i = 1:3 fprintf(fid, '%s', strcat(f_str(5length(num2str(ConstPoint(i,1)))), num2str(ConstPoint(i,1)))); fprintf(fid, '%s', ' _1_1_1_1_1_1'); if i==1 fprintf(fid, '%s\n', ' _0 _0 _1.e+14 _0_0_0'); elseif i==2 129 fprintf(fid, '%s\n', ' _0 _-1.e+14 _0_0_0'); elseif i==3 fprintf(fid, '%s\n', ' _1.e+14 _0 _0 _0_0_0'); end end %Ghi cac nut ngam, dot for i = 1:num.Node if Node(i,1) < ConstPoint(4,1) str1=num2str(Node(i,1)); str2=' _1_1_1_1_1_1'; str3=num2str(Node(i,2)); str4=num2str(Node(i,3)); str5=num2str(Node(i,4)); str6=' _0_0_0'; fprintf(fid, fprintf(fid, fprintf(fid, fprintf(fid, fprintf(fid, fprintf(fid, else break end '%s', '%s', '%s', '%s', '%s', '%s\n', strcat(f_str(05-length(str1)),str1)); str2); strcat(f_str(10-length(str3)),str3)); strcat(f_str(10-length(str4)),str4)); strcat(f_str(10-length(str5)),str5)); str6); end %Ghi nut co dinh, dot for i = fprintf(fid, '%s', strcat(f_str(5length(num2str(ConstPoint(i,1)))), num2str(ConstPoint(i,1)))); fprintf(fid, '%s', ' _1_1_1_1_1_1'); fprintf(fid, '%s\n', ' 1.e+14 _0 _0_0_0'); end %Ghi cac nut ngam, dot for i = 1:num.Node if (ConstPoint(4,1) fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(1)))), num2str(NPAR(1)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(2)))), num2str(NPAR(2)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(3)))), num2str(NPAR(3)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(4)))), num2str(NPAR(4)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(5)))), num2str(NPAR(5)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(6)))), num2str(NPAR(6)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(7)))), num2str(NPAR(7)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(8)))), num2str(NPAR(8)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(9)))), num2str(NPAR(9)))); fprintf(fid, '%s', strcat(f_str(04-length(num2str(NPAR(10)))), num2str(NPAR(10)))); fprintf(fid, '%s\n', strcat(f_str(04-length(num2str(NPAR(11)))), num2str(NPAR(11)))); % DATA SET 6: MATERIAL CONTROL CARD >>> run c_Sec % DATA SET 8: ELE DATA CARD >>> for i = 1:length(Ele(:,1)) str1=num2str(Ele(i,1)); str2=num2str(Ele(i,2)); 131 str3=num2str(Ele(i,3)); str4=num2str(Ele(i,4)); str5=num2str(Ele(i,5)); str6=num2str(Ele(i,6)); str7=' _0 0'; fprintf(fid, '%s', strcat(f_str(05-length(str1)),str1)); fprintf(fid, '%s', strcat(f_str(05-length(str2)),str2)); fprintf(fid, '%s', strcat(f_str(05-length(str3)),str3)); fprintf(fid, '%s', strcat(f_str(05-length(str4)),str4)); fprintf(fid, '%s', strcat(f_str(05-length(str5)),str5)); fprintf(fid, '%s', strcat(f_str(05-length(str6)),str6)); fprintf(fid, '%s\n', str7); end % DATA SET 9: DATA OF NODAL LOAD >>> for i = 1:length(Force(:,1)) str1=num2str(Force(i,1)); str2=num2str(Force(i,2)); str3='1'; if Force(i,3)~=0 str4=num2str(Force(i,3)); else str4=num2str(Force(i,4)); end fprintf(fid, '%s', strcat(f_str(05-length(str1)),str1)); fprintf(fid, '%s', strcat(f_str(05-length(str2)),str2)); fprintf(fid, '%s', strcat(f_str(05-length(str3)),str3)); fprintf(fid, '%s\n', strcat(f_str(10-length(str4)),str4)); end %% winopen(txtFile) 15 c_Output_LoadDisp Xử lý số liệu đầu %% DOC DU LIEU TU FILE KET QUA SPS %% THONG SO DAU VAO %Thong tin khung numJoint = NUMBER_OF_NODAL_POINTS; numStep = NUMBER_OF_TIME_STEPS; %Nut ve thi Joint = str2double(get(edit_OutputJoint,'String')); Phuong = get(pop_DirectionJoint,'Value'); %Chieu cao nha H = str2double(get(edit_HightFrame,'String')); %File du lieu FileName_d= 'sps_d.txt'; %Displacement file FileName_out= 'sps_out.txt'; %Output file %Sai so doc gioi han % Thong so se thay doi theo thi va theo khung alpha0 = str2double(get(edit_Alpha,'String')); %% DOC DU LIEU FILE CHUYEN VI nc = 7; %Number of column RowRange = [1 numJoint]; %So hang can lay for i=1:numStep if i==1 nh = 15; %Number of header-1; di = f_txt2mat(strcat(strcat(cd,'\'),FileName_d),nh,nc,'ReadMode','block','RowRa nge',RowRange); else nh = numJoint*(i-1)+15+5*(i-1);%Number of header-1; 132 di = f_txt2mat(strcat(strcat(cd,'\'),FileName_d),nh,nc,'ReadMode','block','RowRa nge',RowRange); end X(i)=abs(di(Joint,Phuong+1)); clear di end clear nh nc cstr %% DOC FILE OUTPUT delimiter=' '; %12 space comment=''; quotes=''; options='textual'; R=f_readtext(FileName_out, delimiter, comment, quotes, options); I=0; for i=2:length(R(:,1)) if strcmp(R(i),'STIFFNESS REFORMED FOR THIS TIME STEP') I=I+1; r(I,1)=max(str2double(cell2mat(R(i-1,1))),str2double(cell2mat(R(i1,2)))); end end Y=r; clear delimiter comment quotes options %% VE DO THI %Loc du lieu for i=1:length(X)-1 %Do doc alpha deltaX=X(i+1)-X(i); deltaY=Y(i+1)-Y(i); alpha=deltaY/deltaX; %Xet dieu kien dung vong lap if alpha 0, thi dang tien ve diem toi han X1(1:I)=X(1:I); Y1(1:I)=Y(1:I); if I cm Khi thay doi he so 133 %thi phai thay doi ten don vi o "xlable" figure(1) p1=plot(X2*1e0,Y2,'-',X2*1e0,Y2); set(p1,'LineWidth',2) set(p1,'Color','red') grid on title('\bfLoad-horizontal sways curves','Color','r'); xlabel('\bfHorizontal drift of point A','Color','b'); ylabel('\bfApplied load factor','Color','b'); 134 LÝ LỊCH TRÍCH NGANG LÝ LỊCH SƠ LƯỢC Họ tên: ĐẶNG NGỌC CẢNH Ngày, tháng, năm sinh: 04/05/1986 Nơi sinh: Quảng Nam Địa liện hệ: Bộ mơn Cơng trình, 268 Lý Thường Kiệt, Phường 14, Quận 10, Tp HCM Điện thoại: 0935 095 899 QUÁ TRÌNH ĐÀO TẠO ĐẠI HỌC: Chế độ học: Chính quy Thời gian học: 2004-2009 Nơi học: Trường Đại học Bách Khoa Tp Hồ Chí Minh Ngành học: Xây dựng Dân dụng Công nghiệp CAO HỌC Thời gian học: 09/2009 – 12/2010 Tên luận văn: Phân tích vùng dẻo phi tuyến hình học khung thép không gian phương pháp phần tử hữu hạn Người hướng dẫn: TS NGƠ HỮU CƯỜNG Q TRÌNH CƠNG TÁC: Từ 2009 đến nay: Giảng viên Đại học Bách Khoa Tp Hồ Chí Minh ... TUYẾN HÌNH HỌC KHUNG THÉP KHƠNG GIAN BẰNG PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN 2- NHIỆM VỤ LUẬN VĂN: Áp dụng lý thuyết phần tử hữu hạn xây dựng phần tử hữu hạn có khả mơ ứng xử phi tuyến hình học, phi tuyến. .. cấu khung khơng gian có kể đến ứng xử phi tuyến liện kết theo phương pháp vùng dẻo Nội dung cụ thể là: - Áp dụng lý thuyết phần tử hữu hạn xây dựng phần tử hữu hạn có khả mơ ứng xử phi tuyến hình. .. khớp dẻo phương pháp vùng dẻo Sự khác biệt chúng cách mô chảy dẻo phần tử minh họa Bảng Trong phương pháp khớp dẻo phương pháp dễ sử dụng thông dụng Trong phương pháp khớp dẻo đơn giản, phần tử