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 TOÁ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
1
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
13
L
(m)
H
(m)
E
(kN/m2)
5,4
1,8
2,3x107
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
48
36
28
37
ETABS
2
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 và nội lực
trong các thanh dàn
clear
clc
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
disp('
BAI TAP SO 1 - 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;
3
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;
4
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 trong luc nut tong the
NodeP = Node_Force;
%Lap ma tran do 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 2 dau khop
Ke = zeros(6, 6);
5
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 do luc cac phan tu qui doi ve nut
Frameq = zeros(npt, 6); %Ma tran luc nut phan tu trong he toa do dia phuong,
dung de tinh noi luc phan tu
%Bai toan khong co tai trong 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 1
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
6
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 5
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 0 do khong co do cung xoay
for ii=1:3*nn
LinkID = 0;
for jj=1:3*nn
if KeAll(ii,jj) ~= 0
LinkID = 1;
end
end
if LinkID == 0
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 trong 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);
7
Dis(5,1) = CvNode(3*(nj-1) + 2,1);
Dis(6,1) = CvNode(3*(nj-1) + 3,1);
%Vecto chuyen toa do
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 do cung phan tu 2 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 do chuyen vi trong he tong the:
FeT = KeT * Dis;
%Vecto luc nut do chuyen vi va luc phan tu qui doi ve nut trong 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
8
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 1 - Dan phang
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>>> Ket qua chuyen vi nut
1
0
0
0
2
0.008144
-0.10895
0
3
0.016288
-0.11452
0
4
0.024432
-0.10895
0
5
0.032576
0
0
6
0.023597
-0.10895
0
7
0.0089788
-0.10895
0
8
0.016288
-0.11245
0
>>> Ket qua phan tu noi luc
1
-166.5
0
0
166.5 0
0
2
-166.5
0
0
166.5 0
0
3
-166.5
0
0
166.5 0
0
4
-166.5
0
0
166.5 0
0
5
175.5064
8.7448e-15 0
-175.5064
-8.7448e-15 0
6
1.4498e-13 0
0
-1.4498e-13 0
0
7
58.5021
-7.1017e-15 0
-58.5021
7.1017e-15 0
8
-37
0
0
37
0
0
9
58.5021
2.139e-15
0
-58.5021
-2.139e-15 0
10
-5.9153e-14 0
0
5.9153e-14 0
0
11
175.5064
5.6532e-15 0
-175.5064
-5.6532e-15 0
12
117.0043
1.4213e-14 0
-117.0043
-1.4213e-14 0
13
117.0043
4.0892e-15 0
-117.0043
-4.0892e-15 0
>>> Ket qua phan luc nut
1
-3.5438e-13 55.5 0
5
1.0626e-13 55.5 0
>>
9
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
- Khai báo E, A1, A2, , gán tải trọng:
10
- Kết quả tính toán:
+ Chuyển vị tại các nút dàn:
Story
Unique Name
BASE
BASE
BASE
BASE
BASE
STORY1
STORY1
Story2
1
2
3
4
5
6
7
8
TABLE: Joint Displacements
Load Case/Combo
UX
m
DEAD
0
DEAD
0,008
DEAD
0,016
DEAD
0,024
DEAD
0,033
DEAD
0,024
DEAD
0,009
DEAD
0,016
UY
m
0
0
0
0
0
0
0
0
UZ
m
0
-0,109
-0,115
-0,109
0
-0,109
-0,109
-0,112
RX
rad
0
0
0
0
0
0
0
0
RY
rad
0
0
0
0
0
0
0
0
RZ
rad
0
0
0
0
0
0
0
0
+ Phản lực các gối tựa:
Story
BASE
BASE
TABLE: Joint Reactions
Unique Name
Load Case/Combo
FX FY
kN kN
1 DEAD
0
0
5 DEAD
0
0
FZ
kN
55,5
55,5
MX
kN-m
0
0
MY
kN-m
0
0
MZ
kN-m
0
0
11
+ Nội lực trong các thanh dàn:
Story
Unique Name
BASE
BASE
BASE
BASE
STORY1
STORY1
STORY1
Story2
STORY1
STORY1
STORY1
Story2
Story2
1
2
3
4
5
6
7
8
9
10
11
12
13
Load Case/Combo
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
DEAD
Station
m
5,4
5,4
5,4
5,4
5,68
0
0
0
0
0
0
0,0121
0,0121
P
kN
166,5
166,5
166,5
166,5
-175,5064
0
-58,5021
37
-58,5021
0
-175,5064
-117,0043
-117,0043
V2
kN
0
0
0
0
0
0
0
0
0
0
0
0
0
V3
kN
0
0
0
0
0
0
0
0
0
0
0
0
0
T
kN-m
0
0
0
0
0
0
0
0
0
0
0
0
0
M2
kN-m
0
0
0
0
0
0
0
0
0
0
0
0
0
M3
kN-m
0
0
0
0
0
0
0
0
0
0
0
0
0
c. So sánh kết quả câu a, b và nhận xét kết quả so sánh.
PHẢN LỰC
MATLAB
Nút
ETABS ultimate
FX
FY
FZ
FX
FY
FZ
KN
KN
KN-m
KN
KN
KN-m
1
3.5438e-13
55.5
0
0
55,5
5
.0626e-13
55.5
0
0
55,5
*Nhận xét: Giá trị phản lực ở các phương pháp tính toán là bằng
nhau.
12
CHUYỂN VỊ NÚT
MATLAB
Nút
ETABS ultimate
UX
UY
UZ
UX
UY
UZ
m
m
rad
m
m
rad
1
0
0
0
0
0
0
2
0.008144
0
-0.10895
0,008
0
-0,109
3
0.016288
0
-0.11452
0,016
0
-0,115
4
0.024432
0
-0.10895
0,024
0
-0,109
5
0.032576
0
0
0,033
0
0
6
0.023597
0
-0.10895
0,024
0
-0,109
7
0.0089788
0
-0.10895
0,009
0
-0,109
8
0.016288
0
-0.11245
0,016
0
-0,112
*Nhận xét: Giá trị chuyển vị nút ở các phương pháp tính toán là
bằng nhau.
NỘI LỰC TRONG CÁC THANH DÀN
MATLAB
>>> Ket qua phan tu noi luc
1
-166.5 0
0
166.5 0
0
2
-166.5 0
0
166.5 0
0
3
-166.5 0
0
166.5 0
0
4
-166.5 0
0
166.5 0
0
5
175.5064
8.7448e-15
-175.5064
-8.7448e-15
6
1.4498e-13
0
0
-1.4498e-13
0
0
7
58.5021 -7.1017e-15
0
-58.5021
7.1017e-15
8
-37
0
0
37
0
0
9
58.5021 2.139e-15
0
-58.5021
-2.139e-15
10
-5.9153e-14
0
0
5.9153e-14
0
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
ETABS ultimate
P
V2
V3
1
kN
166,5
kN
0
kN
0
2
166,5
0
0
3
166,5
0
0
4
166,5
0
0
5
-175,5064
0
0
6
0
0
0
7
-58,5021
0
0
8
37
0
0
9
-58,5021
0
0
10
0
0
0
11
-175,5064
0
0
12
-117,0043
0
0
13
-117,0043
0
0
Nút
0
0
0
0
0
0
0
0
0
0
*Nhận xét: Giá trị nội lực trong các thanh dàn ở các phương
pháp tính toán là bằng nhau.
13
Bài 2
Cho kết cấu được rời rạc hóa thành các phần tử dầm (có kể đến biến dạng dọc trục)
bằng cách đánh số nút và số phần tử như Hình vẽ 2.
Biết E = 2,7x106 kN/m2, A1 = 0,05 m2, I1 = 1,5x10-4 m4, A2 = 0,04 m2, I2 = 3,5x104 m4.
Các giá trị w, L1, L2 cho trong Bảng 2.
Bảng 2
STT
W (kN/m)
L1 (m)
L2 (m)
Phần mềm
13
15,4
4,3
5,7
ETABS
a. Trình bày từng bước tính toán cách xác định các chuyển vị, góc xoay và các phản lực
chưa biết bằng Phương pháp phần tử hữu hạn của kết cấu cho ở Hình 2?
b. Dùng ngôn ngữ Matlab viết chương trình tìm chuyển vị, góc xoay, và phản lực của
kết cấu.
c. Dùng phần mềm (ETABS, SAP, STAAB.PRO, ABAQUS, ANSYS, MIDAS, …),
tìm chuyển vị, góc xoay và phản lực của kết cấu.
d. So sánh kết quả câu a, b, c và nhận xét kết quả.
14
BÀI LÀM
a) Trình bày từng bước tính toán cách xác định các chuyển vị, góc xoay và các
phản lực chưa biết bằng Phương pháp phần tử hữu hạn của kết cấu:
- Ma trận độ cứng của từng phần tử dầm (có kể đến biến dạng dọc trục) có dạng như
sau:
- Rời rạc kết cấu và chọn loại phần tử:
+ Phần tử 1: Cos = 0; Sin = 1
Ma trận độ cứng cho phần tử 1:
d 1x
d1x d1y 1 d2x d2y 2
d1y
1
d 2x
K (1)
d 2 y
2
𝐾 (1) =
12 I
L2
E
=
L
0
A
−
6I
L
0
4I
sym
12 I
L2
0
6I
L
12 I
L2
−
0
6I
L
0
2I
6I
L
0
4 I
^
y y(1)
−
−A
0
0
A
d1x
d1y
1
d2x
d2y
61,13
0
-131,42
-61,13
0
-131,42
0
31395,35
0
0
-31395,35
0
-131,42
0
376,74
131,42
0
188,37
-61,13
0
131,42
61,13
0
131,42
0
-31395,35
0
0
31395,35
0
-131,42
0
188,37
131,42
0
376,74
2
1
= x ^
1
x(1)
d1x
d1y
1
d2x
d2y
15
^
y y(2)
+ Phần tử 2: Cos = 1; Sin = 0
=
2
Ma trận độ cứng cho phần tử 2:
𝐾 (2) =
K (2)
3
2
A 0
12 I
L2
E
=
L
sym
x ^
x(2)
0
6I
L
−A
4I
0
0
A
0
6 I
−
L
2I
0
6I
−
L
4 I
0
12 I
− 2
L
6I
−
L
0
12 I
L2
d2x
d2y
d3x
d3y
18947,37
0
0
-18947,37
0
0
0
61,23
174,52
0
-61,23
174,52
0
174,52
663,16
0
-174,52
331,58
-18947,37
0
0
18947,37
0
0
0
-61,23
-174,52
0
61,23
-174,52
0
174,52
331,58
0
-174,52
663,16
d2x
d2y
d3x
d3y
- Ma trận độ cứng kết cấu:
K=
d1x
61,13
0
-131,42
-61,13
0
-131,42
0
0
0
- Véc tơ lực:
d1y
0
31395,35
0
0
-31395,35
0
0
0
0
1
-131,42
0
376,74
131,42
0,00
188,37
0
0
0
d2x
-61,13
0
131,42
19008,50
0,00
131,42
-18947,37
0
0
d2y
0
-31395,35
0
0
31456,58
174,52
0
-61,23
174,52
-131,42
0
188,37
131,42
174,52
1039,90
0
-174,52
331,58
d3x
d3y
0
0
0
-18947,37
0
0
18947,37
0
0
0
0
0
0
-61,23
-174,52
0
61,23
-174,52
0
0
0
0
174,52
331,58
0
-174,52
663,16
𝐹1𝑥
𝐹1𝑥
𝐹1𝑦
𝐹1𝑦
𝑀1
𝑀1
𝐹2𝑥
0
𝐹 = 𝐹2𝑦 = −43,89
𝑀2
−41,6955
𝐹3𝑥
0
𝐹3𝑦
−43,89
[
]
41,6955
[ 𝑀3 ]
16
d1x
d1y
d2x
d2y
d3x
d3y
- Véc – tơ chuyển vị, góc xoay và điều kiện biên: tại nút 1 và 3 liên kết ngàm nên không
có chuyển vị và góc xoay:
0
0
0
𝑑2𝑥
=> 𝑑 = 𝑑2𝑦
𝛷2
0
0
[ 0 ]
- Giải hệ phương trình:
𝐹1𝑥
61,13
0
−131,42
−61,13
0
−131,42
0
0
0
0
𝐹1𝑦
0
31395,35
0
0
−31395,35
0
0
0
0
0
−131,42
0
376,74
131,42
0
188,37
0
0
0
0
𝑀1
−61,13
0
131,42
19008,50
0
131,42 −18947,37
0
0
𝑑2𝑥
0
0
−31395,35
0
0
31456,58
174,52
0
−61,23
174,52 × 𝑑2𝑦
⇔ −43,89 =
−131,42
0
188,37
131,42
174,52
1039,90
0
−174,52 331,58
𝛷2
−41,6955
0
0
0
−18947,37
0
0
18947,37
0
0
0
0
0
0
0
0
−61,23
−174,52
0
61,23
−174,52
0
−43,89
0
0
0
0
174,52
331,58
0
−174,52 663,16 ] [ 0 ]
[ 41,6955 ] [
Chuyển vị, góc xoay tại nút 2:
Phản lực tại nút 1:
𝑑2𝑥 = 0,0002761
𝑑2 = [𝑑2𝑦 = −0,0011737]
𝛷2 = −0,0399335
𝐹1𝑥 = 5,2313
𝐹1 = [𝐹1𝑦 = 36,8491]
𝑀1 = −7,4861
Phản lực tại nút 3:
𝐹3𝑥 = −5,2313
𝐹3 = [ 𝐹3𝑦 = 50,9309 ]
𝑀3 = −55,1414
17
b) Dùng ngôn ngữ Matlab viết chương trình tìm chuyển vị, góc xoay và phản lực
của kết cấu
clear
clc
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
disp('
BAI TAP SO 2 - THANH');
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
w = -15.4;
L1 = 4.3;
L2 = 5.7;
E = 2.7e+06;
A1 = 0.05;
I1 = 1.5e-04;
A2 = 0.04;
I2 = 3.5e-04;
%Dinh nghia nut
nn = 3;
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) = 0;
Node_y(2) = L1;
Node_Name(3) = 3;
Node_x(3) = L2;
Node_y(3) = L1;
Node_Force = zeros(3*nn, 1);
%Tai trong luc dat tai nut
%Dinh nghia phan tu iID < jID
npt = 2;
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*A1;
FrameEI(1) = E*I1;
FrameName(2) = 2;
18
FrameiID(2) = 2;
FramejID(2) = 3;
FrameEA(2) = E*A2;
FrameEI(2) = E*I2;
%Tai trong luc nut tong the
NodeP = Node_Force;
%Lap ma tran do 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 2 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;
6 * FrameEI(ipt) / Le ^ 2;
-12 * FrameEI(ipt) / Le ^ 3;
6 * FrameEI(ipt) / Le ^ 2;
Ke(3,
Ke(3,
Ke(3,
Ke(3,
2)
3)
5)
6)
=
=
=
=
6 * FrameEI(ipt) / Le ^ 2;
4 * FrameEI(ipt) / Le;
-6 * FrameEI(ipt) / Le ^ 2;
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;
19
Ke(6,
Ke(6,
Ke(6,
Ke(6,
2)
3)
5)
6)
=
=
=
=
6 * FrameEI(ipt) / Le ^ 2;
2 * FrameEI(ipt) / Le;
-6 * FrameEI(ipt) / Le ^ 2;
4 * 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 do luc cac phan tu qui doi ve nut
Frameq = zeros(npt, 6); %Ma tran luc nut phan tu trong he toa do dia phuong,
dung de tinh noi luc phan tu
%Luc phan tu 2 qui doi ve nut
ipt = 2;
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);
20
CosA = (x2 - x1) / Le;
SinA = (y2 - y1) / Le;
qe = zeros(6,1);
qe(2, 1) = w * Le / 2;
qe(3, 1) = w * Le ^ 2 / 12;
qe(5, 1) = w * Le / 2;
qe(6, 1) = -w * Le ^ 2 / 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 trong he tong the
qeT = T' * qe;
%Luu lai ma tran luc phan tu qui ve nut he toa do 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);
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;
21
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 3
NodeLK = 3;
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
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 trong 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);
22
%Vecto chuyen toa do
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 do cung phan tu 2 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;
6 * FrameEI(ipt) / Le ^ 2;
-12 * FrameEI(ipt) / Le ^ 3;
6 * FrameEI(ipt) / Le ^ 2;
Ke(3,
Ke(3,
Ke(3,
Ke(3,
2)
3)
5)
6)
=
=
=
=
6 * FrameEI(ipt) / Le ^ 2;
4 * FrameEI(ipt) / Le;
-6 * FrameEI(ipt) / Le ^ 2;
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)
=
=
=
=
6 * FrameEI(ipt) / Le ^ 2;
2 * FrameEI(ipt) / Le;
-6 * FrameEI(ipt) / Le ^ 2;
4 * FrameEI(ipt) / Le;
KeT = T' * Ke * T;
%Vecto luc nut do chuyen vi trong he tong the:
FeT = KeT * Dis;
%Vecto luc nut do chuyen vi va luc phan tu qui doi ve nut trong he tong the:
qe = transpose(Frameq(ipt, :));
23
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
Kết quả tính toán:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BAI TAP SO 2 - THANH
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>>> Ket qua chuyen vi nut
1
0
0
0
2
0.0002761
-0.0011737 -0.039934
3
0
0
0
>>> Ket qua phan tu noi luc
1
36.8491
-5.2313
-7.4861
-36.8491
5.2313
-15.0084
2
5.2313
36.8491
15.0084
-5.2313
50.9309
-55.1414
>>> Ket qua phan luc nut
1
5.2313
36.8491
-7.4861
3
-5.2313
50.9309
-55.1414
>>
24
c) Dùng phần mềm ETABS tìm chuyển vị, góc xoay và phản lực của kết cấu
- Khai báo E, A1, A2, I1, I2, sơ đồ tính, tải trọng:
25