báo cáo pp pthh
DESCRIPTION
tinh toanTRANSCRIPT
BỘ GIÁO DỤC & ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA CƠ KHÍ CHẾ TẠO MÁY
BÁO CÁO MÔN HỌC
PHƯƠNG PHÁP PHẦN TỬ HỮU HẠN
GVHD: PGS. TS NGUYỄN HOÀI SƠN
HVTH: ĐỖ THẾ MẠNH - 10085204021
HVTH: NGUYỄN THỊ THANH HẢI – 007
LỚP: CAO HỌC CN-CTM 2010B
NỘI DUNG BÁO CÁO
II. PHƯƠNG PHÁP THỰC HIỆN
1. Cơ sở lý thuyết
2. Thực hiện tính toán
3. Kết quả tính toán
I. GIỚI THIỆU
III. CHƯƠNG TRÌNH MATLAB
IV. SO SÁNH VỚI KẾT QUẢ TÍNH BẰNG MATLAB
1. GIỚI THIỆU
BÀI 28:
1. Tính chuyển vị tại các nút.
2. Tính nội lực trong các phần tử.
3. Tính ứng suất trong các phần tử.
2. PHƯƠNG PHÁP THỰC HIỆN
Ứng dụng phương pháp phần tử hữu hạn để giải bài toán
Viết chương trình Matlab
So sánh kết quả với phần mềm Matlab
2. CƠ SỞ LÝ THUYẾT
)x(vpdxvqdx
dx
vdIE
2
1WU ii
x
x
x
x
2
2
2 l
0
l
0
Thế năng biến dạng đàn hồi của dầm chịu uốn:
0 0
2 2( ) 2 2
2 2
1 1 1. . . . . . . . .
2 2 2
l lx xe
x
A x A x
d v d vU E dAdx E y dAdx E I dx
dx dx
Năng lượng biến dạng trong một phân tử:
Công thực hiện biến dạng phần tử (e)
)x(vpdxvqW ii
x
x
l
0
Áp dụng phương pháp Rayleigh-Ritz ta có:
2. CƠ SỞ LÝ THUYẾT
22221111
x
x
x
x
2
2
2
MvFMvFdxvqdxdx
vdIE
2
1WU
2
1
2
1
Với v(x) = {N}.{d}
Sử dụng hàm nội suy Hermite cho phần tử 2 nút ta tìm được các hàm dạng:
( ) 2 30 1 2 3( )e x a a x a x a x ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
1 1 2 2 3 3 4 4. . . .e e e e e e e eN U N U N U N U v =
3 2 3 2 2 3 3 2
3 2 2 2 3 2
2 3 2 3 21, , ,
x x x x x x x xx
L L L L L L L L
{N}
2. CƠ SỞ LÝ THUYẾT
v’(x) = {B} .{d}
2'( ) '( ) '( )
TT T T T Tv x v x v x B d B d d B B d
0 0
1 1 1. . .
2 2 2
l lx xT T T T T
x xU E I d B B d dx d E I B B dx d d k d
là ma trận độ cứng của phần tử. 0
lx T
xk EI B B dxVới
2
60
2 2
350 0
2
36( 2 )
12 6 12 6
4 6 212(2 3 )( 2 )12 6
4
L
L LT
L sds
L L L
L L LEIL s L sk EI B B ds EI dsLLL
sym L
2. THỰC HIỆN TÍNH TOÁN
Bảng Index:
Node Dof Giátrị
2 3 -6
4 7 -10
Thành lập các ma trận độ cứng cho từng phần tử, dựa vào ma trận mã
hoá lắp ghép ma trận [k]
Bậc tự doPhần tử
1 2 3 4
1 1 2 3 42 3 4 5 63 5 6 7 84 7 8 9 105 9 10 11 12
Định nghĩa tải trọng nút
2. THỰC HIỆN TÍNH TOÁN
19200 4800 19200 4800 0 0 0 0 0 0 0 0
4800 1600 4800 800 0 0 0 0 0 0 0 0
19200 4800 38400 0 19200 4800 0 0 0 0 0 0
4800 800 0 3200 4800 800 0 0 0 0 0 0
0 0 19200 4800 38400 0 19200 4800 0 0 0 0
0 0 4800 800 0 3200 4800 800 0 0 0 0[ ]
0 0 0 0 19200 4800 38400 0 19200k
4800 0 0
0 0 0 0 4800 800 0 3200 4800 800 0 0
0 0 0 0 0 0 19200 4800 21600 3600 2400 1200
0 0 0 0 0 0 4800 800 3600 2400 1200 400
0 0 0 0 0 0 0 0 2400 1200 2400 1200
0 0 0 0 0 0 0 0 1200 400 1200 800
Ma trận độ cứng k sau khi lắp ghép 5 phần tử
3. KẾT QUẢ TÍNH TOÁN
Chuyển vị toàn cục sau khi tính toán:
0.0001 0.0001 0.0003 0.0003 0.0001 0.0001 0.0013
Node Dof Phảnlực (kN)
11 2.6538
2 0.6346
3 5 7.8846
5 9 6.9038
6 11 -1.4423
Phản lực tại các gối
3. KẾT QUẢ TÍNH TOÁN
Phầntử
Moment uốn Ứng suất uốn Lực cut Ứng suất cắt
1 2400x+400 600*10 x+100*10 2400 0.012.Q/tw
2 2880x-880 720*10 x -220*10 2880 0.0144.Q/tw
3 4320x-5384 1080*10 x -1346*10 4320 0.0216.Q/tw
4 -5760x+10000 -1440*10 x +2500*10 -5760 0.0288.Q/tw
5 1440x-3320 720*10 x -1660*10 1440 0.0072.Q/tw
6666666666
Phần tử Vị trí Giá trị chuyển vị
1 0 < x < 0.5 0.002x³+0.001x²
2 0.5 < x < 1.0 0.0024x³-0.0022x²+1.4987x-0.1248
3 1.0 < x < 1.5 0.0036x³-0.01346x²+0.0158x-0.0059
4 1.5 < x < 2.0 -0.0048x³+0.025x²-0.0425x+0.0234
5 2.0 < x < 3.0 0.0012x³-0.0083x²+0.0187x-0.0138
III. CHƯƠNG TRÌNH MATLAB• % Exercise 28• % ---------------------------------------------------------• % Variables descriptions• % k: element matrix• % kk: system matrix• % f: element vector• % ff: system vector• % uu: system displacements• % rr: system reactions• % nel: number of elements in system• % nnel: number nodes of element• % ndof: number of dofs per node• % nnode: total number of nodes in system• % sdof: total system dofs
III. CHƯƠNG TRÌNH MATLAB
• % edof: total number of dofs per element
• % gcoord(i,j): coordinate values of each node
• % where i: node number; j: x or y
• % index: a system dofs vector associated with each element i-th
• % bcdof: a vector containing dofs associated with boundary conditions
• % bcval: a vector containing boundary condition values associated with the dofs in
bcdof
• % nodes(iel,j): nodal connectivity for each elementwhere iel: i-th element; j:
connected nodes
• % eleng: element length (chieu dai phan tu)
III. CHƯƠNG TRÌNH MATLAB
• % Nhap du lieu cho cac tham so dieu khien
• clearall; clc; close all; format long;
• nel=input('Nhap so phan tu cua he:')
• nnel=input('Nhap so nut tren moi phan tu:')
• ndof=input('Nhap so bac tu do tai moi nut:')
• nnode=input('Nhap so tong so nut cua he:')
• sdof=nnode*ndof;
• edof=nnel*ndof;
• eleng1=0.5; eleng2=1; E=2*10^8; I=10^-6; EI=E*I;
III. CHƯƠNG TRÌNH MATLAB
• % --------------------------------------
• % Nhap gia tri toa do node
• gcoord(1)=0; gcoord(2)=0.5; gcoord(3)=1; gcoord(4)=1.5; gcoord(5)=2;
• gcoord(6)=3;
• % --------------------------------------
•
• % Nhap du lieu su ket noi nut cho moi phan tu
• for iel=1:nel;
• nodes(iel,1)=iel;
• nodes(iel,2)=iel+1;
• end
• % ---------------------------------------------
III. CHƯƠNG TRÌNH MATLAB
• % Nhap du lieu dieu kien bien (input data for boundary conditions)
• bcdof(1)=1; % bac tu do thu 1 bi rang buoc (chuyen vi)
• bcval(1)=0;
• bcdof(2)=2; % bac tu do thu 2 bi rang buoc (goc xoay)
• bcval(2)=0;
• bcdof(3)=5; % bac tu do thu 5 bi rang buoc (chuyen vi)
• bcval(3)=0;
• bcdof(4)=9; % bac tu do thu 9 bi rang buoc (chuyen vi)
• bcval(4)=0;
• bcdof(5)=11; % bac tu do thu 11 bi rang buoc (chuyen vi)
• bcval(5)=0;
III. CHƯƠNG TRÌNH MATLAB
• % khoi tao cac ma tran va vec to• ff=zeros(sdof,1);• kk=zeros(sdof,sdof);• uu=zeros(sdof,1);• index=zeros(edof,1);• % -------------------------------------------------------------- • % Nhap tai phan bo va tai tap tru tai moi nut• f(3)=-6; • f(7)=-10;• f(9)=-6;• f(10)=-1;• f(11)=-6;• f(12)=1;
III. CHƯƠNG TRÌNH MATLAB
• % Tinh toan ma tran, vector phan tu va lap rap chung vao ma tran toan cuc
• for iel=1:nel;
• nl=nodes(iel,1); % Toa do nut ben trai cua phan tu i-th
• nr=nodes(iel,2); % Toa do nut ben phai cua phan tu i-th
• xl=gcoord(nl); % Toa do ben trai truc x cua phan tu i-th
• xr=gcoord(nr); % Toa do ben phai truc x cua phan tu i-th
• eleng=xr-xl; % chieu dai phan tu
• if iel==5
• eleng=eleng2;
• else
• eleng=eleng1;
• end
• index=bangmahoa_1D(iel,nnel,ndof); % chuong trinh con bang ma hoa
• k=(EI/(eleng^3))*[12 6*eleng -12 6*eleng; 6*eleng 4*eleng^2 -6*eleng 2*eleng^2; -12 -6*eleng 12 -6*eleng; 6*eleng 2*eleng^2 -6*eleng 4*eleng^2];
• [kk,ff]=lapghepmatran_vector(kk,ff,f,k,index);
• K=kk % Ma tran do cung cua he
• F=ff % Vector luc cua he
• end
• % Khu dieu kien bien
• [kk,ff]=khu_dkb(kk,ff,bcdof,bcval);
• % ----------------------------------------------------------------
III. CHƯƠNG TRÌNH MATLAB
III. CHƯƠNG TRÌNH MATLAB
• % Tim chuyen vi cua he• uu=inv(kk)*ff;• displacements=uu;• jj=1:sdof; format• displacements=[jj' displacements]• %-----------------------------------------------------------------
• % Tim phan luc tai cac goi• prescribedDof=[1;2;5;9;11]; % Bac tu do bi rang buoc• rr=K*uu;• reactions=rr(prescribedDof);• disp('reactions')• [prescribedDof reactions]
CÁC CHƯƠNG TRÌNH CON:
• Chương trình con bảng mã hoá• function index=bangmahoa_1D(iel,nnel,ndof)• % Muc dich: • % Tinh toan bac tu do cua he tuong ung voi moi phan tu trong bai
toan 1-D• edof=nnel*ndof;• start=(iel-1)*(nnel-1)*ndof;• for iel=1:edof;• index(iel)=start+iel;• end
CÁC CHƯƠNG TRÌNH CON:
• Chương trình con lắp ghép ma trận, vector phần tử vào hệ• function [kk,ff]=lapghepmatran_vector(kk,ff,f,k,index)• % Muc dich:• % Lap ghep ma tran phan tu vao vao tran he va• % Lap ghep vector luc phan tu vao vector luc cua he• edof=length(index);• for ir=1:edof;• ii=index(ir);• ff(ii)=f(ii);• for ic=1:edof;• jj=index(ic);• kk(ii,jj)=kk(ii,jj)+k(ir,ic);• end• end
CÁC CHƯƠNG TRÌNH CON:• Chương trình con khử điều kiện biên
• function [kk,ff]=khu_dkb(kk,ff,bcdof,bcval)
• % Muc dich:
• % Ap dung dieu kien bien vao phuong trinh [kk]*{uu}={ff}
• n=length(bcdof);
• sdof=size(kk);
• for ic=1:n;
• id=bcdof(ic);
• val=bcval(ic);
• for i=1:sdof;
• ff(i)=ff(i)-val*kk(i,id);
• kk(id,i)=0;
• kk(i,id)=0;
• end
• kk(id,id)=1;
• ff(id)=val;
• end