Tải bản đầy đủ (.pdf) (45 trang)

MÔN PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN TRONG TÍNH TOÁN XÂY DỰNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.24 MB, 45 trang )

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


×