MÔN PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN TRONG TÍNH TOÁN XÂY DỰNG Bài 1 Cho kết cấu dàn phẳng như Hình vẽ 1. Đặc trưng vật liệu, diện tích mặt cắt ngang và các kích thước hình học cho trong Bảng 1. a. Dùng ngôn ngữ Matlab viết chương trình tìm chuyển vị, phản lực và nội lực trong các thanh dàn của kết cấu dàn phẳng cho ở Hình vẽ 1. b. Dùng phần mềm ETABS tìm chuyển vị, phản lực và nội lực trong các thanh dàn của kết cấu dàn phẳng. c. So sánh kết quả câu a, b và nhận xét kết quả so sánh. Bảng 1: Dữ liệu tính toán STT L (m) H (m) E (kNm2) A Thanh cánh dưới (cm2) A Thanh cánh trên (cm2) A Thanh cánh bụng (cm2) P (kN) Phần mềm 13 5,4 1,8 2,3x107 48 36 28 37 ETABS
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH - BÀI TẬP LỚN MÔN PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN TRONG TÍNH TỐN XÂY DỰNG LỚP: CAO HỌC ĐỒNG THÁP 2019 GIÁO VIÊN HƯỚNG DẪN: TS CHÂU ĐÌNH THÀNH HỌC VIÊN: Đỗ Anh Vũ (STT: 13) ĐỒNG THÁP - 2019 Bài Cho kết cấu dàn phẳng Hình vẽ Đặc trưng vật liệu, diện tích mặt cắt ngang kích thước hình học cho Bảng a Dùng ngôn ngữ Matlab viết chương trình tìm chuyển vị, phản lực nội lực dàn kết cấu dàn phẳng cho Hình vẽ b Dùng phần mềm ETABS tìm chuyển vị, phản lực nội lực dàn kết cấu dàn phẳng c So sánh kết câu a, b nhận xét kết so sánh Bảng 1: Dữ liệu tính tốn STT 13 L (m) H (m) E (kN/m2) 5,4 1,8 2,3x107 A Thanh cánh (cm2) A Thanh cánh (cm2) A Thanh cánh bụng (cm2) P (kN) Phần mềm 48 36 28 37 ETABS BÀI LÀM a Dùng ngôn ngữ Matlab viết chương trình tìm chuyển vị, phản lực nội lực dàn clear clc disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'); disp(' BAI TAP SO - Dan phang'); disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'); L = 5.4; H = 1.8; E = 2.3e+7; Acanhduoi = 48; Acanhtren = 36; Athanhbung = 28; P = -37; Acanhduoi = Acanhduoi*10^-4; Acanhtren = Acanhtren*10^-4; Athanhbung = Athanhbung*10^-4; %Dinh nghia nut nn = 8; Node_Name = zeros(1, nn); Node_x = zeros(1, nn); Node_y = zeros(1, nn); Node_Name(1) = 1; Node_x(1) = 0; Node_y(1) = 0; Node_Name(2) = 2; Node_x(2) = L; Node_y(2) = 0; Node_Name(3) = 3; Node_x(3) = 2*L; Node_y(3) = 0; Node_Name(4) = 4; Node_x(4) = 3*L; Node_y(4) = 0; Node_Name(5) = 5; Node_x(5) = 4*L; Node_y(5) = 0; Node_Name(6) = 6; Node_x(6) = L; Node_y(6) = H; Node_Name(7) = 7; Node_x(7) = 3*L; Node_y(7) = H; Node_Name(8) = 8; Node_x(8) = 2*L; Node_y(8) = 2*H; Node_Force = zeros(3*nn, 1); Node_Force((6-1)*3+2,1) = P; Node_Force((7-1)*3+2,1) = P; Node_Force((8-1)*3+2,1) = P; %Dinh nghia phan tu iID < jID npt = 13; FrameName = zeros(1, npt); FrameiID = zeros(1, npt); FramejID = zeros(1, npt); FrameEA = zeros(1, npt); FrameEI = zeros(1, npt); FrameName(1) = 1; FrameiID(1) = 1; FramejID(1) = 2; FrameEA(1) = E*Acanhduoi; FrameName(2) = 2; FrameiID(2) = 2; FramejID(2) = 3; FrameEA(2) = E*Acanhduoi; FrameName(3) = 3; FrameiID(3) = 3; FramejID(3) = 4; FrameEA(3) = E*Acanhduoi; FrameName(4) = 4; FrameiID(4) = 4; FramejID(4) = 5; FrameEA(4) = E*Acanhduoi; FrameName(5) = 5; FrameiID(5) = 1; FramejID(5) = 6; FrameEA(5) = E*Acanhtren; FrameName(6) = 6; FrameiID(6) = 2; FramejID(6) = 6; FrameEA(6) = E*Athanhbung; FrameName(7) = 7; FrameiID(7) = 3; FramejID(7) = 6; FrameEA(7) = E*Athanhbung; FrameName(8) = 8; FrameiID(8) = 3; FramejID(8) = 8; FrameEA(8) = E*Athanhbung; FrameName(9) = 9; FrameiID(9) = 3; FramejID(9) = 7; FrameEA(9) = E*Athanhbung; FrameName(10) = 10; FrameiID(10) = 4; FramejID(10) = 7; FrameEA(10) = E*Athanhbung; FrameName(11) = 11; FrameiID(11) = 5; FramejID(11) = 7; FrameEA(11) = E*Acanhtren; FrameName(12) = 12; FrameiID(12) = 6; FramejID(12) = 8; FrameEA(12) = E*Acanhtren; FrameName(13) = 13; FrameiID(13) = 7; FramejID(13) = 8; FrameEA(13) = E*Acanhtren; %Tai luc nut tong the NodeP = Node_Force; %Lap ma tran cung ket cau KeAll = zeros(3*nn, 3*nn); for ipt = 1:npt ni = FrameiID(ipt); nj = FramejID(ipt); x1 y1 x2 y2 Le = = = = = Node_x(ni); Node_y(ni); Node_x(nj); Node_y(nj); sqrt((x2 - x1)^2 +(y2 - y1)^2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Do cung phan tu dau khop Ke = zeros(6, 6); Ke(1, 1) = FrameEA(ipt) / Le; Ke(1, 4) = -FrameEA(ipt) / Le; Ke(4, 1) = -FrameEA(ipt) / Le; Ke(4, 4) = FrameEA(ipt) / Le; KeT = T' * Ke * T; %Node i-i for ii=1:3 for jj=1:3 KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) = KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) + KeT(ii,jj); end end %Node i-j for ii=1:3 for jj=1:3 KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) = KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) + KeT(ii,jj+3); end end %Node j-i for ii=1:3 for jj=1:3 KeAll(3*(FramejID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) = KeAll(3*(FramejID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) + KeT(ii+3,jj); end end %Node j-j for ii=1:3 for jj=1:3 KeAll(3*(FramejID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) = KeAll(3*(FramejID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) + KeT(ii+3,jj+3); end end end %Luu tru lai dung de tinh phan luc goi toan he KeOrigin = KeAll; %Lap ma tran luc nut luc cac phan tu qui doi ve nut Frameq = zeros(npt, 6); %Ma tran luc nut phan tu he toa dia phuong, dung de tinh noi luc phan tu %Bai toan khong co tai phan tu qui doi ve nut %Luu lai vecto luc nut tong the de tinh phan luc goi NodeP_Origin = NodeP; %Gan dieu kien bien cho Node NodeLK = 1; LinkID = 1; for ii=1:3*nn KeAll(ii,3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; %Xoa hang %Xoa cot end KeAll(3*(NodeLK-1)+LinkID,3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; LinkID = 2; for ii=1:3*nn KeAll(ii,3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID,3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; %Gan dieu kien bien cho Node NodeLK = 5; LinkID = 2; for ii=1:3*nn KeAll(ii,3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID,3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; %Xu ly cac hang co gia tri phan tu bang khong co cung xoay for ii=1:3*nn LinkID = 0; for jj=1:3*nn if KeAll(ii,jj) ~= LinkID = 1; end end if LinkID == KeAll(ii,ii) = 1; end end %Chuyen vi tong the cac nut disp('>>> Ket qua chuyen vi nut'); CvNode = KeAll \ NodeP; format short e for ii=1:nn KQStr = [int2str(ii),sprintf('\t'),num2str(CvNode(3*(ii1)+1)),sprintf('\t'),num2str(CvNode(3*(ii1)+2)),sprintf('\t'),num2str(CvNode(3*(ii-1)+3))]; disp(KQStr) end %Noi luc phan tu disp('>>> Ket qua phan tu noi luc'); for ipt=1:npt %Vecto chuyen vi cua phan tu he tong the Dis = zeros(6,1); ni = FrameiID(ipt); Dis(1,1) = CvNode(3*(ni-1) + 1,1); Dis(2,1) = CvNode(3*(ni-1) + 2,1); Dis(3,1) = CvNode(3*(ni-1) + 3,1); nj = FramejID(ipt); Dis(4,1) = CvNode(3*(nj-1) + 1,1); Dis(5,1) = CvNode(3*(nj-1) + 2,1); Dis(6,1) = CvNode(3*(nj-1) + 3,1); %Vecto chuyen toa x1 = Node_x(ni); y1 = Node_y(ni); x2 = Node_x(nj); y2 = Node_y(nj); Le = sqrt((x2 - x1)^2 +(y2 - y1)^2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Ma tran cung phan tu dau khop Ke = zeros(6, 6); Ke(1, 1) = FrameEA(ipt) / Le; Ke(1, 4) = -FrameEA(ipt) / Le; Ke(4, 1) = -FrameEA(ipt) / Le; Ke(4, 4) = FrameEA(ipt) / Le; KeT = T' * Ke * T; %Vecto luc nut chuyen vi he tong the: FeT = KeT * Dis; %Vecto luc nut chuyen vi va luc phan tu qui doi ve nut he tong the: qe = transpose(Frameq(ipt, :)); Fe = T * FeT - qe; %Vecto luc %Fe(1,1) = %Fe(3,1) = %Fe(5,1) = theo qui uoc Gauge: -Fe(1,1); -Fe(3,1); -Fe(5,1); KQStr = [int2str(ipt),sprintf('\t'),num2str(Fe(1,1)),sprintf('\t'),num2str(Fe(2,1)),spri ntf('\t'),num2str(Fe(3,1))]; disp(KQStr) KQStr = [sprintf('\t'),num2str(Fe(4,1)),sprintf('\t'),num2str(Fe(5,1)),sprintf('\t'),num 2str(Fe(6,1))]; disp(KQStr) end %Phan luc tai cac nut disp('>>> Ket qua phan luc nut'); Reaction = (KeOrigin*CvNode) - NodeP_Origin; for ipt=1:nn if (abs(Reaction(3*(ipt-1)+1, 1)) > 1.0e-10) || (abs(Reaction(3*(ipt-1)+2, 1)) > 1.0e-10) || (abs(Reaction(3*(ipt-1)+3, 1)) > 1.0e-10) KQStr = [int2str(ipt),sprintf('\t'),num2str(Reaction(3*(ipt-1)+1, 1)),sprintf('\t'),num2str(Reaction(3*(ipt-1)+2, 1)),sprintf('\t'),num2str(Reaction(3*(ipt-1)+3, 1))]; disp(KQStr) end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BAI TAP SO - Dan phang %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>> Ket qua chuyen vi nut 0 0.008144 -0.10895 0.016288 -0.11452 0.024432 -0.10895 0.032576 0 0.023597 -0.10895 0.0089788 -0.10895 0.016288 -0.11245 >>> Ket qua phan tu noi luc -166.5 0 166.5 0 -166.5 0 166.5 0 -166.5 0 166.5 0 -166.5 0 166.5 0 175.5064 8.7448e-15 -175.5064 -8.7448e-15 1.4498e-13 0 -1.4498e-13 0 58.5021 -7.1017e-15 -58.5021 7.1017e-15 -37 0 37 0 58.5021 2.139e-15 -58.5021 -2.139e-15 10 -5.9153e-14 0 5.9153e-14 0 11 175.5064 5.6532e-15 -175.5064 -5.6532e-15 12 117.0043 1.4213e-14 -117.0043 -1.4213e-14 13 117.0043 4.0892e-15 -117.0043 -4.0892e-15 >>> Ket qua phan luc nut -3.5438e-13 55.5 1.0626e-13 55.5 >> b Dùng phần mềm ETABS tìm chuyển vị, phản lực nội lực dàn - Khai báo E, A1, A2, , gán tải trọng: 10 BÀI LÀM a Dùng ngơn ngữ Matlab tìm chuyển vị phản lực khung phẳng clear clc disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'); disp(' BAI TAP SO 3'); disp(''); disp(' -'); disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'); %Truc x - nam ngang, truc y - thang dung, truc xoay - theo chieu luong giac %Nhap du lieu %P1 = input('Tai tap trung (chieu duong huong sang phai) P1 (kN/m): '); %P2 = input('Tai tap trung (chieu duong huong sang phai) P2 (kN/m): '); %P3 = input('Tai tap trung (chieu duong huong sang phai) P3 (kN/m): '); %P4 = input('Tai tap trung (chieu duong huong sang phai) P4 (kN/m): '); %w1 = input('Tai phan bo (chieu duong huong len tren), w1(kN/m): '); %w2 = input('Tai phan bo (chieu duong huong len tren), w2(kN/m): '); %w3 = input('Tai phan bo (chieu duong huong len tren), w3(kN/m): '); %w4 = input('Tai phan bo (chieu duong huong len tren), w4(kN/m): '); %L = input('Chieu dai khau do, L (m): '); %H1 = input('Chieu cao tang tret, H1(m): '); %H2 = input('Chieu cao tang 1,2,3, H2(m): '); P1= 24; P2 = 27; P3 = 34; P4 = 37; w1 = -6.9; w2 = 0; w3 = -6.4; w4 = 0; L = 4.5; H1 = 4.1; H2 = 3.7; E = 3.0e+07; Ac = 0.2*0.2; Ic = 0.2*0.2^3/12; Ab = 0.2*0.35; Ib = 0.2*0.35^3/12; %Dinh nghia nut nn = 10; Node_Name = zeros(1, nn); Node_x = zeros(1, nn); Node_y = zeros(1, nn); Node_Name(1) = 1; Node_x(1) = 0; Node_y(1) = 0; Node_Name(2) = 2; Node_x(2) = L; 31 Node_y(2) = 0; Node_Name(3) = 3; Node_x(3) = 0; Node_y(3) = H1; Node_Name(4) = 4; Node_x(4) = L; Node_y(4) = H1; Node_Name(5) = 5; Node_x(5) = 0; Node_y(5) = H1 + H2; Node_Name(6) = 6; Node_x(6) = L; Node_y(6) = H1 + H2; Node_Name(7) = 7; Node_x(7) = 0; Node_y(7) = H1 + * H2; Node_Name(8) = 8; Node_x(8) = L; Node_y(8) = H1 + * H2; Node_Name(9) = 9; Node_x(9) = 0; Node_y(9) = H1 + * H2; Node_Name(10) = 10; Node_x(10) = L; Node_y(10) = H1 + * H2; Node_Force = zeros(3*nn, 1); Node_Force((3-1)*3+1,1) = P1; Node_Force((5-1)*3+1,1) = P2; Node_Force((7-1)*3+1,1) = P3; Node_Force((9-1)*3+1,1) = P4; %Tai %Tai %Tai %Tai %Tai trong trong luc dat tai nut ngang dat tai nut ngang dat tai nut ngang dat tai nut ngang dat tai nut %Dinh nghia phan tu iID < jID npt = 12; FrameName = zeros(1, npt); FrameiID = zeros(1, npt); FramejID = zeros(1, npt); FrameEA = zeros(1, npt); FrameEI = zeros(1, npt); FrameName(1) = 1; FrameiID(1) = 1; FramejID(1) = 3; FrameEA(1) = E*Ac; FrameEI(1) = E*Ic; FrameName(2) = 2; FrameiID(2) = 2; FramejID(2) = 4; FrameEA(2) = E*Ac; 32 FrameEI(2) = E*Ic; FrameName(3) = 3; FrameiID(3) = 3; FramejID(3) = 4; FrameEA(3) = E*Ab; FrameEI(3) = E*Ib; FrameName(4) = 4; FrameiID(4) = 3; FramejID(4) = 5; FrameEA(4) = E*Ac; FrameEI(4) = E*Ic; FrameName(5) = 5; FrameiID(5) = 4; FramejID(5) = 6; FrameEA(5) = E*Ac; FrameEI(5) = E*Ic; FrameName(6) = 6; FrameiID(6) = 5; FramejID(6) = 6; FrameEA(6) = E*Ab; FrameEI(6) = E*Ib; FrameName(7) = 7; FrameiID(7) = 5; FramejID(7) = 7; FrameEA(7) = E*Ac; FrameEI(7) = E*Ic; FrameName(8) = 8; FrameiID(8) = 6; FramejID(8) = 8; FrameEA(8) = E*Ac; FrameEI(8) = E*Ic; FrameName(9) = 9; FrameiID(9) = 7; FramejID(9) = 8; FrameEA(9) = E*Ab; FrameEI(9) = E*Ib; FrameName(10) = 10; FrameiID(10) = 7; FramejID(10) = 9; FrameEA(10) = E*Ac; FrameEI(10) = E*Ic; FrameName(11) = 11; FrameiID(11) = 8; FramejID(11) = 10; FrameEA(11) = E*Ac; FrameEI(11) = E*Ic; FrameName(12) = 12; FrameiID(12) = 9; 33 FramejID(12) = 10; FrameEA(12) = E*Ab; FrameEI(12) = E*Ib; %Tai luc nut tong the NodeP = Node_Force; %Lap ma tran cung ket cau KeAll = zeros(3*nn, 3*nn); for ipt = 1:npt ni = FrameiID(ipt); nj = FramejID(ipt); x1 y1 x2 y2 Le = = = = = Node_x(ni); Node_y(ni); Node_x(nj); Node_y(nj); sqrt((x2 - x1)^2 +(y2 - y1)^2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Do cung phan tu dau ngam Ke = zeros(6, 6); Ke(1, 1) = FrameEA(ipt) / Le; Ke(1, 4) = -FrameEA(ipt) / Le; Ke(2, Ke(2, Ke(2, Ke(2, 2) 3) 5) 6) = = = = 12 * FrameEI(ipt) / Le ^ 3; * FrameEI(ipt) / Le ^ 2; -12 * FrameEI(ipt) / Le ^ 3; * FrameEI(ipt) / Le ^ 2; Ke(3, Ke(3, Ke(3, Ke(3, 2) 3) 5) 6) = = = = * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; -6 * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; Ke(4, 1) = -FrameEA(ipt) / Le; Ke(4, 4) = FrameEA(ipt) / Le; Ke(5, Ke(5, Ke(5, Ke(5, 2) 3) 5) 6) = = = = -12 * FrameEI(ipt) / Le ^ 3; -6 * FrameEI(ipt) / Le ^ 2; 12 * FrameEI(ipt) / Le ^ 3; -6 * FrameEI(ipt) / Le ^ 2; 34 Ke(6, Ke(6, Ke(6, Ke(6, 2) 3) 5) 6) = = = = * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; -6 * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; KeT = T' * Ke * T; %Node i-i for ii=1:3 for jj=1:3 KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) = KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) + KeT(ii,jj); end end %Node i-j for ii=1:3 for jj=1:3 KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) = KeAll(3*(FrameiID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) + KeT(ii,jj+3); end end %Node j-i for ii=1:3 for jj=1:3 KeAll(3*(FramejID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) = KeAll(3*(FramejID(ipt)-1)+ii, 3*(FrameiID(ipt)-1)+jj) + KeT(ii+3,jj); end end %Node j-j for ii=1:3 for jj=1:3 KeAll(3*(FramejID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) = KeAll(3*(FramejID(ipt)-1)+ii, 3*(FramejID(ipt)-1)+jj) + KeT(ii+3,jj+3); end end end %Luu tru lai dung de tinh phan luc goi toan he KeOrigin = KeAll; %Lap ma tran luc nut luc cac phan tu qui doi ve nut Frameq = zeros(npt, 6); %Ma tran luc nut phan tu he toa dia phuong, dung de tinh noi luc phan tu %Luc phan tu qui doi ve nut ipt = 3; ni = FrameiID(ipt); nj = FramejID(ipt); x1 y1 x2 y2 Le = = = = = Node_x(ni); Node_y(ni); Node_x(nj); Node_y(nj); sqrt((x2 - x1) ^ + (y2 - y1) ^ 2); CosA = (x2 - x1) / Le; 35 SinA = (y2 - y1) / Le; qe = zeros(6,1); qe(2, 1) = w1 * Le / 2; qe(3, 1) = w1 * Le ^ / 12; qe(5, 1) = w1 * Le / 2; qe(6, 1) = -w1 * Le ^ / 12; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Vecto luc nut cua phan tu he tong the qeT = T' * qe; %Luu lai ma tran luc phan tu qui ve nut he toa dia phuong va tong the Frameq(ipt, :) = Frameq(ipt, :) + qe(:, 1)'; %Cong vao ma tran NodeP(3*(ni-1)+1, NodeP(3*(ni-1)+2, NodeP(3*(ni-1)+3, luc nut he tong the 1) = NodeP(3*(ni-1)+1, 1) + qeT(1,1); 1) = NodeP(3*(ni-1)+2, 1) + qeT(2,1); 1) = NodeP(3*(ni-1)+3, 1) + qeT(3,1); NodeP(3*(nj-1)+1, 1) = NodeP(3*(nj-1)+1, 1) + qeT(4,1); NodeP(3*(nj-1)+2, 1) = NodeP(3*(nj-1)+2, 1) + qeT(5,1); NodeP(3*(nj-1)+3, 1) = NodeP(3*(nj-1)+3, 1) + qeT(6,1); %Luc phan tu qui doi ve nut ipt = 6; ni = FrameiID(ipt); nj = FramejID(ipt); x1 y1 x2 y2 Le = = = = = Node_x(ni); Node_y(ni); Node_x(nj); Node_y(nj); sqrt((x2 - x1) ^ + (y2 - y1) ^ 2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; qe = zeros(6,1); qe(2, 1) = w2 * Le / 2; qe(3, 1) = w2 * Le ^ / 12; qe(5, 1) = w2 * Le / 2; qe(6, 1) = -w2 * Le ^ / 12; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; 36 T(2, T(2, T(3, T(4, T(4, T(5, T(5, T(6, 1) 2) 3) 4) 5) 4) 5) 6) = = = = = = = = -SinA; CosA; 1; CosA; SinA; -SinA; CosA; 1; %Vecto luc nut cua phan tu he tong the qeT = T' * qe; %Luu lai ma tran luc phan tu qui ve nut he toa dia phuong va tong the Frameq(ipt, :) = Frameq(ipt, :) + qe(:, 1)'; %Cong vao ma tran NodeP(3*(ni-1)+1, NodeP(3*(ni-1)+2, NodeP(3*(ni-1)+3, luc nut he tong the 1) = NodeP(3*(ni-1)+1, 1) + qeT(1,1); 1) = NodeP(3*(ni-1)+2, 1) + qeT(2,1); 1) = NodeP(3*(ni-1)+3, 1) + qeT(3,1); NodeP(3*(nj-1)+1, 1) = NodeP(3*(nj-1)+1, 1) + qeT(4,1); NodeP(3*(nj-1)+2, 1) = NodeP(3*(nj-1)+2, 1) + qeT(5,1); NodeP(3*(nj-1)+3, 1) = NodeP(3*(nj-1)+3, 1) + qeT(6,1); %Luc phan tu qui doi ve nut ipt = 9; ni = FrameiID(ipt); nj = FramejID(ipt); x1 y1 x2 y2 Le = = = = = Node_x(ni); Node_y(ni); Node_x(nj); Node_y(nj); sqrt((x2 - x1) ^ + (y2 - y1) ^ 2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; qe = zeros(6,1); qe(2, 1) = w3 * Le / 2; qe(3, 1) = w3 * Le ^ / 12; qe(5, 1) = w3 * Le / 2; qe(6, 1) = -w3 * Le ^ / 12; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Vecto luc nut cua phan tu he tong the qeT = T' * qe; 37 %Luu lai ma tran luc phan tu qui ve nut he toa dia phuong va tong the Frameq(ipt, :) = Frameq(ipt, :) + qe(:, 1)'; %Cong vao ma tran NodeP(3*(ni-1)+1, NodeP(3*(ni-1)+2, NodeP(3*(ni-1)+3, luc nut he tong the 1) = NodeP(3*(ni-1)+1, 1) + qeT(1,1); 1) = NodeP(3*(ni-1)+2, 1) + qeT(2,1); 1) = NodeP(3*(ni-1)+3, 1) + qeT(3,1); NodeP(3*(nj-1)+1, 1) = NodeP(3*(nj-1)+1, 1) + qeT(4,1); NodeP(3*(nj-1)+2, 1) = NodeP(3*(nj-1)+2, 1) + qeT(5,1); NodeP(3*(nj-1)+3, 1) = NodeP(3*(nj-1)+3, 1) + qeT(6,1); %Luc phan tu 12 qui doi ve nut ipt = 12; ni = FrameiID(ipt); nj = FramejID(ipt); x1 y1 x2 y2 Le = = = = = Node_x(ni); Node_y(ni); Node_x(nj); Node_y(nj); sqrt((x2 - x1) ^ + (y2 - y1) ^ 2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; qe = zeros(6,1); qe(2, 1) = w4 * Le / 2; qe(3, 1) = w4 * Le ^ / 12; qe(5, 1) = w4 * Le / 2; qe(6, 1) = -w4 * Le ^ / 12; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Vecto luc nut cua phan tu 12 he tong the qeT = T' * qe; %Luu lai ma tran luc phan tu 12 qui ve nut he toa tong the va dia phuong Frameq(ipt, :) = Frameq(ipt, :) + qe(:, 1)'; %Cong vao ma tran NodeP(3*(ni-1)+1, NodeP(3*(ni-1)+2, NodeP(3*(ni-1)+3, luc nut he tong the 1) = NodeP(3*(ni-1)+1, 1) + qeT(1,1); 1) = NodeP(3*(ni-1)+2, 1) + qeT(2,1); 1) = NodeP(3*(ni-1)+3, 1) + qeT(3,1); NodeP(3*(nj-1)+1, 1) = NodeP(3*(nj-1)+1, 1) + qeT(4,1); NodeP(3*(nj-1)+2, 1) = NodeP(3*(nj-1)+2, 1) + qeT(5,1); 38 NodeP(3*(nj-1)+3, 1) = NodeP(3*(nj-1)+3, 1) + qeT(6,1); %Luu lai vecto luc nut tong the de tinh phan luc goi NodeP_Origin = NodeP; %Gan dieu kien bien cho Node 1: NodeLK = 1; LinkID = 1; for ii=1:3*nn KeAll(ii, 3*(NodeLK-1)+LinkID) = 0; %Xoa hang KeAll(3*(NodeLK-1)+LinkID, ii) = 0; %Xoa cot end KeAll(3*(NodeLK-1)+LinkID, 3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; LinkID = 2; for ii=1:3*nn KeAll(ii, 3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID, 3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; LinkID = 3; for ii=1:3*nn KeAll(ii, 3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID, 3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; %Gan dieu kien bien cho Node NodeLK = 2; LinkID = 1; for ii=1:3*nn KeAll(ii, 3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID, 3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; LinkID = 2; for ii=1:3*nn KeAll(ii, 3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID, 3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; LinkID = 3; for ii=1:3*nn KeAll(ii, 3*(NodeLK-1)+LinkID) = 0; KeAll(3*(NodeLK-1)+LinkID, ii) = 0; end KeAll(3*(NodeLK-1)+LinkID, 3*(NodeLK-1)+LinkID) = 1; NodeP(3*(NodeLK-1)+LinkID, 1) = 0; %Chuyen vi tong the cac nut 39 disp('>>> Ket qua chuyen vi nut'); CvNode = KeAll \ NodeP; format short e for ii=1:nn KQStr = [int2str(ii),sprintf('\t'),num2str(CvNode(3*(ii1)+1)),sprintf('\t'),num2str(CvNode(3*(ii1)+2)),sprintf('\t'),num2str(CvNode(3*(ii-1)+3))]; disp(KQStr) end %Noi luc phan tu disp('>>> Ket qua phan tu noi luc'); for ipt=1:npt %Vecto chuyen vi cua phan tu he tong the Dis = zeros(6,1); ni = FrameiID(ipt); Dis(1,1) = CvNode(3*(ni-1) + 1,1); Dis(2,1) = CvNode(3*(ni-1) + 2,1); Dis(3,1) = CvNode(3*(ni-1) + 3,1); nj = FramejID(ipt); Dis(4,1) = CvNode(3*(nj-1) + 1,1); Dis(5,1) = CvNode(3*(nj-1) + 2,1); Dis(6,1) = CvNode(3*(nj-1) + 3,1); %Vecto chuyen toa x1 = Node_x(ni); y1 = Node_y(ni); x2 = Node_x(nj); y2 = Node_y(nj); Le = sqrt((x2 - x1)^2 +(y2 - y1)^2); CosA = (x2 - x1) / Le; SinA = (y2 - y1) / Le; T = zeros(6,6); T(1, 1) = CosA; T(1, 2) = SinA; T(2, 1) = -SinA; T(2, 2) = CosA; T(3, 3) = 1; T(4, 4) = CosA; T(4, 5) = SinA; T(5, 4) = -SinA; T(5, 5) = CosA; T(6, 6) = 1; %Ma tran cung phan tu dau ngam Ke = zeros(6, 6); Ke(1, 1) = FrameEA(ipt)/Le; Ke(1, 4) = -FrameEA(ipt) / Le; Ke(2, Ke(2, Ke(2, Ke(2, 2) 3) 5) 6) = = = = 12 * FrameEI(ipt) / Le ^ 3; * FrameEI(ipt) / Le ^ 2; -12 * FrameEI(ipt) / Le ^ 3; * FrameEI(ipt) / Le ^ 2; 40 Ke(3, Ke(3, Ke(3, Ke(3, 2) 3) 5) 6) = = = = * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; -6 * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; Ke(4, 1) = -FrameEA(ipt) / Le; Ke(4, 4) = FrameEA(ipt) / Le; Ke(5, Ke(5, Ke(5, Ke(5, 2) 3) 5) 6) = = = = -12 * FrameEI(ipt) / Le ^ 3; -6 * FrameEI(ipt) / Le ^ 2; 12 * FrameEI(ipt) / Le ^ 3; -6 * FrameEI(ipt) / Le ^ 2; Ke(6, Ke(6, Ke(6, Ke(6, 2) 3) 5) 6) = = = = * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; -6 * FrameEI(ipt) / Le ^ 2; * FrameEI(ipt) / Le; KeT = T' * Ke * T; %Vecto luc nut chuyen vi he tong the: FeT = KeT * Dis; %Vecto luc nut chuyen vi va luc phan tu qui doi ve nut he tong the: qe = transpose(Frameq(ipt, :)); Fe = T * FeT - qe; %Vecto luc %Fe(1,1) = %Fe(3,1) = %Fe(5,1) = theo qui uoc Gauge: -Fe(1,1); -Fe(3,1); -Fe(5,1); KQStr = [int2str(ipt),sprintf('\t'),num2str(Fe(1,1)),sprintf('\t'),num2str(Fe(2,1)),spri ntf('\t'),num2str(Fe(3,1))]; disp(KQStr) KQStr = [sprintf('\t'),num2str(Fe(4,1)),sprintf('\t'),num2str(Fe(5,1)),sprintf('\t'),num 2str(Fe(6,1))]; disp(KQStr) end %Phan luc tai cac nut disp('>>> Ket qua phan luc nut'); Reaction = (KeOrigin*CvNode) - NodeP_Origin; for ipt=1:nn if (abs(Reaction(3*(ipt-1)+1, 1)) > 1.0e-10) || (abs(Reaction(3*(ipt-1)+2, 1)) > 1.0e-10) || (abs(Reaction(3*(ipt-1)+3, 1)) > 1.0e-10) KQStr = [int2str(ipt),sprintf('\t'),num2str(Reaction(3*(ipt-1)+1, 1)),sprintf('\t'),num2str(Reaction(3*(ipt-1)+2, 1)),sprintf('\t'),num2str(Reaction(3*(ipt-1)+3, 1))]; disp(KQStr) end end 41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BAI TAP SO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>> Ket qua chuyen vi nut 0 0 0.10311 0.00065515 -0.0082404 0.10308 -0.00085964 -0.0068888 0.17986 0.0010111 -0.0058182 0.17983 -0.0013044 -0.0061266 0.23593 0.0011533 -0.0047062 0.23589 -0.0015354 -0.0034569 0.26652 0.0012035 -0.0018025 10 0.26647 -0.0015856 -0.0019968 >>> Ket qua phan tu noi luc -191.7505 60.0441 131.1299 191.7505 -60.0441 115.0511 251.6005 61.9559 133.7303 -251.6005 -61.9559 120.2888 12.043 -76.2966 -201.3938 -12.043 107.3466 -211.8036 -115.4539 48.0871 86.3426 115.4539 -48.0871 91.5798 144.2539 49.9129 91.5148 -144.2539 -49.9129 93.1628 13.5914 -69.3343 -154.533 -13.5914 69.3343 -157.4713 -46.1196 34.6786 62.9532 46.1196 -34.6786 65.3574 74.9196 36.3214 64.3085 -74.9196 -36.3214 70.0808 16.8992 -29.8602 -94.7372 -16.8992 58.6602 -104.4336 10 -16.2595 17.5778 29.3797 16.2595 -17.5778 35.658 11 16.2595 19.4222 34.3527 -16.2595 -19.4222 37.5095 12 19.4222 -16.2595 -35.658 -19.4222 16.2595 -37.5095 >>> Ket qua phan luc nut -60.0441 -191.7505 131.1299 -61.9559 251.6005 133.7303 >> 42 c) Dùng phần mềm ETABS tìm chuyển vị, góc xoay phản lực kết cấu - Khai báo tiết diện, E, sơ đồ tính, tải trọng: 43 - Kết tính toán: Story Story4 Story4 Story3 Story3 Story2 Story2 Story1 Story1 Base Base Story Base Base Unique Name 10 TABLE: Joint Displacements Load UX UY UZ Case/Combo m m m Dead 0,269 -0,002 Dead 0,269 0,001 Dead 0,238 -0,002 Dead 0,238 0,001 Dead 0,181 -0,001 Dead 0,181 0,001 Dead 0,104 -0,001 Dead 0,104 0,001 Dead 0 Dead 0 TABLE: Joint Reactions Load Unique Name FX FY FZ Case/Combo kN kN kN Dead -60,0479 -191,7069 Dead -61,9521 251,5569 RX rad 0 0 0 0 0 RY rad 0,002016 0,001823 0,003506 0,004758 0,006205 0,005898 0,006988 0,008342 0 RZ rad 0 0 0 0 0 MX MY MZ kN-m 0 kN-m -131,2368 -133,8195 kN-m 0 44 c) So sánh kết câu a, b nhận xét kết quả: PHẢN LỰC MATLAB Nút ETABS ultimate F1 F3 M2 F1 F3 M2 KN KN KN-m KN KN KN-m -60.0441 -191.7505 131.1299 -60,0479 -191,7069 -131,2368 -61.9559 251.6005 133.7303 -61,9521 251,5569 -133,8195 *Nhận xét: Giá trị phản lực phương pháp tính tốn gần nhau, chênh lệch khơng đáng kể CHUYỂN VỊ, GĨC XOAY MATLAB Nút ETABS ultimate UX UZ RY UX UZ RY m m rad m m rad 10 0.26647 -0.0015856 -0.0019968 0,269 -0,002 0,002016 0.26652 0.0012035 -0.0018025 0,269 0,001 0,001823 0.23589 -0.0015354 -0.0034569 0,238 -0,002 0,003506 0.23593 0.0011533 -0.0047062 0,238 0,001 0,004758 0.17983 -0.0013044 -0.0061266 0,181 -0,001 0,006205 0.17986 0.0010111 -0.0058182 0,181 0,001 0,005898 0.10308 -0.00085964 -0.0068888 0,104 -0,001 0,006988 0.10311 0.00065515 -0.0082404 0,104 0,001 0,008342 0 0 0 0 0 0 *Nhận xét: Giá trị chuyển vị, góc xoay phương pháp tính tốn gần nhau, chênh lệch khơng đáng kể 45 ... = 5.4; H = 1.8; E = 2.3e+7; Acanhduoi = 48; Acanhtren = 36; Athanhbung = 28; P = -37; Acanhduoi = Acanhduoi*10^-4; Acanhtren = Acanhtren*10^-4; Athanhbung = Athanhbung*10^-4; %Dinh nghia nut... E*Athanhbung; FrameName(11) = 11; FrameiID(11) = 5; FramejID(11) = 7; FrameEA(11) = E*Acanhtren; FrameName(12) = 12; FrameiID(12) = 6; FramejID(12) = 8; FrameEA(12) = E*Acanhtren; FrameName (13). .. FramejID(12) = 8; FrameEA(12) = E*Acanhtren; FrameName (13) = 13; FrameiID (13) = 7; FramejID (13) = 8; FrameEA (13) = E*Acanhtren; %Tai luc nut tong the NodeP = Node_Force; %Lap ma tran cung ket