Dầm công-xôn d-ới tác dụng của lực tập trung

Một phần của tài liệu Công thức phần tử, thuật toán và chương trình số trong phân tích dầm đàn-dẻo bằng phương pháp phần tử hữu hạn (Trang 54)

Trong ví dụ này ta phân tích dầm công-xôn có độ dài LT=1,2m chịu tác dụng của lực tập trung P ở đầu tự do. Giả sử dầm có thiết diện ngang và các tham số vật liệu giống nh- ở ví dụ trong phần 3.3.1. Dầm đ-ợc phân tích bằng 10 phần tử có độ dài bằng nhau L=0,12m với các l-ới lực là P100kN

Hình 3.6: Dầm công-xôn d-ới tác động của lực tập trung ở đầu tự do P

Hình 3.7: Quan hệ giữa lực ngoài P và độ uốn w tại đầu tự do của dầm công-xôn với các giá trị khác nhau của mô-đun tiếp tuyến Et.

) kN ( P 400 500 600 700 800 900  - 0,00095 - 0.0012 - 0.0015 - 0.0021 - 0.0026 - 0,0033 ) mm kN ( 2  - 0,2011 - 0.2505 - 0.2705 - 0.3050 - 0.339 - 0,3853

Bảng 3.2: Các giá trị ứng suất biến dạng tại điểm Gauss đầu tiên của phần tử thứ nhất của dầm ứng với các giá trị khác nhau của lực ngoài (Et 0.3E )

3.3.3 Dầm công-xôn d-ới tác động của mômen

Trong ví dụ này ta phân tích dầm công-xôn d-ới tác động của mô-men

M ở đầu tự do. Giả sử kích th-ớc của dầm giống nh- ở ví dụ 3.3.2. Dầm đ-ợc phân tích bằng 10 phần tử có độ dài bằng nhau L=0,12m với các l-ới lực là

kNm 100 M

Hình 3.8: Dầm công-xôn d-ới tác động của mô-men ở đầu tự do

Hình 3.9: Quan hệ giữa lực mô-men M và độ uốn w tại đầu tự do của dầm công-xôn với các giá trị khác nhau của mô-đun tiếp tuyến Et.

) kNm ( M 500 600 700 800 900  -0,0010 -0,0012 -0,0015 -0,0019 -0,0024 ) mm / kN ( 2  -0,2109 -0,2512 -0,2680 -0,2950 -0,3243 M w

Bảng 3.3: Giá trị của ứng suất biến dạng tại điểm Gauss đầu tiên của phần tử thứ nhất của dầm công-xôn ứng với các giá trị khác nhau của mô-men M

) E 3 . 0 E ( t  3.4 Kết luận ch-ơng 3

Ch-ơng 3 trình bày quy trình phân tích dầm đàn-dẻo bằng ph-ơng pháp phần tử hữu hạn. Thuật toán cập nhật ứng suất tại các điểm Gauss đ-ợc trình bày chi tiết. Dựa trên thuật toán đề ra đã phát triển Matlab function để tính gia số ứng suất và cập nhật ứng suất tại các điểm Gauss sau mỗi b-ớc lặp. Function cũng cập nhật giá trị ứng suất chảy tại các điểm Gauss cho hiệu ứng tái bền. Trên cơ sở lý thuyết trình bày đã phát triển ch-ơng trình tính viết trên ngôn ngữ Matlab. đã tiến hành phân tích 3 ví dụ số nhằm minh họa cho lý thuyết và thuật toán trình bày trong luận văn.

Kết luận

Dựa trên nguyên lý công ảo luận văn đã xây dựng công thức phần tử hữu hạn cho phần tử dầm đàn-dẻo trên cơ sở các hàm dạng Hermite. Dựa trên cơ sở của ph-ơng pháp lặp đã trình bày quy trình tính toán, thuật toán cho

phân tích dầm khi có biến dạng dẻo. Một số kết quả chính của luận văn có thể tóm l-ợc nh- sau :

1. Xây dựng đ-ợc vec-tơ nội lực tại các nút và ma trận độ cứng tiếp tuyến cho phần tử dầm Bernoulli có tính tới ảnh h-ởng của biến dạng dẻo. Trong tr-ờng hợp dầm có thiết diện ngang là hình chữ nhật vec-tơ nội lực đ-ợc cho bởi công thức (2.40) và ma trận độ cứng tiếp tuyến cho bởi công thức (2.44).

2. Sử dụng phép cầu ph-ơng Gauss đã tiến hành tính số cho vec-tơ nội lực nút và ma trận độ cứng tiếp tuyến

3. Đã xây dựng thuật toán để cập nhật ứng suất tại các điểm Gauss và phát triển ch-ơng trình tính để cập nhật ứng suất cũng nh- tính đến hiệu ứng tái bền.

4. Trên cơ sở các công thức và thuật toán xây dựng đã phát triển ch-ơng trình tính viết trên ngôn ngữ Matlab.

5. Sử dụng ch-ơng trình phát triển đã tiến hành phân tích ba ví dụ cụ thể cho bài toán dầm có biến dạng dẻo.

Các kết quả trình bày trong luận văn cho dầm đàn-dẻo, tuy nhiên với việc đ-a vào các bậc tự do là chuyển vị dọc trục tại các nút, công thức phần tử và ch-ơng trình số trình bày trong luận văn dễ dàng phát triển cho phân tích kết cấu khung phẳng đàn-dẻo.

h-ớng phát triển tiếp theo của luận văn

Các kết quả trình bày trong luận văn là b-ớc đi đầu tiên của tác giả trong phân tích kết cấu phi tuyến bằng ph-ơng pháp phần tử hữu hạn. Trên cơ

sở các kết quả nhận đ-ợc tác giả kiến nghị một số vấn đề nghiên cứu tiếp theo nh- sau :

1. Xây dựng công thức PTHH và ch-ơng trình số để phân tích dầm đàn- dẻo khi có ảnh h-ởng của biến dạng tr-ợt ( dầm Timoshenko) (adsbygoogle = window.adsbygoogle || []).push({});

2. Phát triển các kết quả trong luận văn cho bài toán kết cấu khung không gian.

Tài liệu tham khảo Tiếng Việt

[1] Đào Huy Bích (2000), Lý thuyết đàn hồi, Nhà xuất bản Đại học Quốc gia Hà Nội.

Tiếng Anh

[2] Crisfield M.A (1991), Nonlinear finite element analysis of solids and structures, John Willey & Sons, Chichester.

[3] Callister W.D. (1994), Materials Science and Engineering, An Introduction, Third edition, John Wiley & Sons, New York.

[4] ElNaschie M.S. (1990), Stress, Stability, and Chaos in Structural

Engineering: an energy approach, McGraw-Hill Book Company, London. [5] Gere J.S., Timoshenko S. (1992), Mechanics of Materials, Third SI

edition, Chapman & Hall, London.

[6] Mendelson A. (1968), Plasticity:Theory and Application, The Macmillan Company, New York.

[7] Owen D.R.J (1980), Hilton E. “ Finite Elements in Plasticity : Theory and practice ” Pineridge Press Ltd, Swansea.

[8] Young Y.C. (2001), Pin Tong, Classical and Computational Solid Mechanics, World Scientific, Singapore.

[9] Zienkiewicz O. taylor R. (1991) , “ The finite element method ”, volume1: Basic formulations and linear problems, edition Mc.Graw-Hill, London.

Phụ lục

Matlab functions

1.1 Ch-ơng trình cho ví dụ 3.3.1

% Elasto-plastic analysis of simply supported beam % under concentrated load at the middle

% below goemetray and material data LT=3000; % total beam length b=150; % section width h=300; % section height E=210; % elastic modulus Et=0.05*E; % tangent modulus s0=0.25; % initial yielding stress

% below mesh definitionm

nELE=10; % total number of element nNOD=nELE+1; % total nodes

nDOF=2*nNOD; % total d.o.f LE=LT/nELE; % element length

X=[0 LE 2*LE 3*LE 4*LE 5*LE 6*LE 7*LE 8*LE 9*LE 10*LE]'; % x co-ordinate of nodes Z=[0 0 0 0 0 0 0 0 0 0 0]'; % z co-ordinates of nodes ELE(1,1)=1; ELE(1,2)=2; ELE(2,1)=2; ELE(2,2)=3; ELE(3,1)=3; ELE(3,2)=4; ELE(4,1)=4; ELE(4,2)=5; ELE(5,1)=5; ELE(5,2)=6; ELE(6,1)=6; ELE(6,2)=7; ELE(7,1)=7; ELE(7,2)=8; ELE(8,1)=8; ELE(8,2)=9; ELE(9,1)=9; ELE(9,2)=10; ELE(10,1)=10; ELE(10,2)=11;

% below boundary condition act=[2:(nDOF-2) nDOF];

% below effective load fe=zeros(nDOF,1);

fe(nDOF/2,1)=-200; % concentrated load at midle

% below initial yield stress at Gauss point

nGX=4; % number of Gauss points along x nGZ=7; % number of Gauss points along z nG=nGX*nGZ; % total Gauss points per element

SIGy=zeros(nG,nELE); for i=1:nG for j=1:nELE SIGy(i,j)=s0; end end

% below initial data for iterative procedure D=zeros(nDOF,1); % initial displacement Dela=zeros(nDOF,1); % elastic case (adsbygoogle = window.adsbygoogle || []).push({});

EPS=zeros(nG,nELE); % initial strain at Gauss points SIG=zeros(nG,nELE); % initial stress at Gauss points BeTok=0.0001; % tolerance number

plotX=[0]; % initial deflection used for plotting graph plotZ=[0]; % initial force used for plotting graph nINM=10; % total number of iteration

nINC=8; % desired number of increments

for inc=1:nINC % starting load increment Dold=D; % LAMold=LAM; EPSo=EPS; SIGo=SIG; SIGyo=SIGy;

% bellow computing the predictor

Qef=inc*fe; % total external load

[Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy);

% tangent stiffness matrix

Kt=Kt(act,act); % apply boundary condition to Kt c1=det(Kt);

dD=inv(Kt)*fe(act,1); % tangent displacement vector D(act,1)=D(act,1)+dD;

for ite=1:nINM % loop to equilibrium D; EPSo; [EPS,SIG,SIGy]=Lstress(X,Z,ELE,nELE,h,E,Et,D,nGX,nGZ,EPSo,SIGo,SIGyo); if inc==nINC Load=-Qef(11,1) Strain=EPS(22,5) Stress=SIG(22,5) end [Fi] = LforceStr(X,Z,ELE,nELE,nDOF,b,h,SIG);

G=Fi-Qef; % residual vector

G=G(act,1); % apply bond.cond. to G

if norm(G)<BeTok*norm(Qef) % convergency check break;

end % end if

[Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy); Kt=Kt(act,act); % apply boundary condition to Kt

dDi=-inv(Kt)*G; D(act,1)=D(act,1)+dDi; end % end iteration procedure

plotX=[plotX;-D(nDOF/2,1)]; plotZ=[plotZ;-Qef(nDOF/2,1)]; end % end of load increment plot(plotX,plotZ);

hold on;

xlabel('w, (mm)'); ylabel('P, (kN)');

1.2 Ch-ơng trình cho ví dụ 3.3.2

% Elasto-plastic analysis of cantilever beam % under concentrated load at the free end

% below goemetray and material data

LT=1200; % total beam length b=150; % section width h=300; % section height E=210; % elastic modulus Et=0.3*E; % tangent modulus s0=0.25; % initial yielding stress

% below mesh definitionm

nELE=10; % total number of element nNOD=nELE+1; % total nodes

nDOF=2*nNOD; % total d.o.f LE=LT/nELE; % element length (adsbygoogle = window.adsbygoogle || []).push({});

X=[0 LE 2*LE 3*LE 4*LE 5*LE 6*LE 7*LE 8*LE 9*LE 10*LE]'; % x co-ordinate of nodes Z=[0 0 0 0 0 0 0 0 0 0 0]'; % z co-ordinates of nodes ELE(1,1)=1; ELE(1,2)=2; ELE(2,1)=2; ELE(2,2)=3; ELE(3,1)=3; ELE(3,2)=4; ELE(4,1)=4; ELE(4,2)=5; ELE(5,1)=5; ELE(5,2)=6; ELE(6,1)=6; ELE(6,2)=7;

ELE(7,1)=7; ELE(7,2)=8; ELE(8,1)=8; ELE(8,2)=9; ELE(9,1)=9; ELE(9,2)=10; ELE(10,1)=10; ELE(10,2)=11;

% below boundary condition act=[3:nDOF];

% below effective load fe=zeros(nDOF,1);

fe(nDOF-1,1)=-100; % concentrated load at midle

% below initial yield stress at Gauss point

nGX=4; % number of Gauss points along x nGZ=7; % number of Gauss points along z nG=nGX*nGZ; % total Gauss points per element

SIGy=zeros(nG,nELE); for i=1:nG for j=1:nELE SIGy(i,j)=s0; end end

% below initial data for iterative procedure D=zeros(nDOF,1); % initial displacement Dela=zeros(nDOF,1); % elastic case

EPS=zeros(nG,nELE); % initial strain at Gauss points SIG=zeros(nG,nELE); % initial stress at Gauss points BeTok=0.0001; % tolerance number

plotX=[0]; % initial deflection used for plotting graph plotZ=[0]; % initial force used for plotting graph

nINM=10; % total number of iteration nINC=9; % desired number of increments

for inc=1:nINC % starting load increment Dold=D; % LAMold=LAM; EPSo=EPS; SIGo=SIG; SIGyo=SIGy;

% bellow computing the predictor Qef=inc*fe; % total external load

[Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy);

% tangent stiffness matrix

Kt=Kt(act,act); % apply boundary condition to Kt dD=inv(Kt)*fe(act,1); % tangent displacement vector D(act,1)=D(act,1)+dD;

for ite=1:nINM % loop to equilibrium D; EPSo; [EPS,SIG,SIGy]=Lstress(X,Z,ELE,nELE,h,E,Et,D,nGX,nGZ,EPSo,SIGo,SIGyo); if inc==nINC Load=-Qef(11,1); Strain=EPS(22,5); Stress=SIG(22,5); end [Fi] = LforceStr(X,Z,ELE,nELE,nDOF,b,h,SIG);

G=Fi-Qef; % residual vector

G=G(act,1); % apply bond.cond. to G

if norm(G)<BeTok*norm(Qef) % convergency check break;

[Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy); Kt=Kt(act,act); % apply boundary condition to Kt

dDi=-inv(Kt)*G; D(act,1)=D(act,1)+dDi; end % end iteration procedure

ite;

plotX=[plotX;-D(nDOF-1,1)]; plotZ=[plotZ;-Qef(nDOF-1,1)]; end % end of load increment plot(plotX,plotZ);

hold on;

1.3 Ch-ơng trình cho ví dụ 3.3.3

% Elasto-plastic analysis of cantilever beam % under concentrated moment at free end (adsbygoogle = window.adsbygoogle || []).push({});

% below goemetray and material data LT=1200; % total beam length b=150; % section width h=300; % section height E=210; % elastic modulus Et=0.3*E; % tangent modulus s0=0.25; % initial yielding stress

% below mesh definitionm

nELE=10; % total number of element nNOD=nELE+1; % total nodes

nDOF=2*nNOD; % total d.o.f LE=LT/nELE; % element length

X=[0 LE 2*LE 3*LE 4*LE 5*LE 6*LE 7*LE 8*LE 9*LE 10*LE]'; % x co-ordinate of nodes

Z=[0 0 0 0 0 0 0 0 0 0 0]'; % z co-ordinates of nodes ELE(1,1)=1; ELE(1,2)=2;

ELE(2,1)=2; ELE(2,2)=3; ELE(3,1)=3; ELE(3,2)=4; ELE(4,1)=4; ELE(4,2)=5; ELE(5,1)=5; ELE(5,2)=6; ELE(6,1)=6; ELE(6,2)=7; ELE(7,1)=7; ELE(7,2)=8; ELE(8,1)=8; ELE(8,2)=9; ELE(9,1)=9; ELE(9,2)=10; ELE(10,1)=10; ELE(10,2)=11;

% below boundary condition act=[3:nDOF];

% below effective load fe=zeros(nDOF,1);

fe(nDOF,1)=-50000; % concentrated load at midle

% below initial yield stress at Gauss point

nGX=4; % number of Gauss points along x nGZ=7; % number of Gauss points along z nG=nGX*nGZ; % total Gauss points per element

SIGy=zeros(nG,nELE); for i=1:nG for j=1:nELE SIGy(i,j)=s0; end end

% below initial data for iterative procedure D=zeros(nDOF,1); % initial displacement Dela=zeros(nDOF,1); % elastic case

EPS=zeros(nG,nELE); % initial strain at Gauss points SIG=zeros(nG,nELE); % initial stress at Gauss points BeTok=0.0001; % tolerance number

plotX=[0]; % initial deflection used for plotting graph plotZ=[0]; % initial force used for plotting graph

nINM=10; % total number of iteration nINC=18; % desired number of increments

for inc=1:nINC % starting load increment Dold=D; % LAMold=LAM; EPSo=EPS; SIGo=SIG; SIGyo=SIGy;

% bellow computing the predictor

Qef=inc*fe; % total external load

[Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy);

% tangent stiffness matrix

Kt=Kt(act,act); % apply boundary condition to Kt dD=inv(Kt)*fe(act,1); % tangent displacement vector D(act,1)=D(act,1)+dD;

for ite=1:nINM % loop to equilibrium D; EPSo; [EPS,SIG,SIGy]=Lstress(X,Z,ELE,nELE,h,E,Et,D,nGX,nGZ,EPSo,SIGo,SIGyo); if inc==nINC Load=-Qef(11,1); Strain=EPS(22,5); Stress=SIG(22,5); end [Fi] = LforceStr(X,Z,ELE,nELE,nDOF,b,h,SIG);

G=Fi-Qef; % residual vector

G=G(act,1); % apply bond.cond. to G

if norm(G)<BeTok*norm(Qef) % convergency check break;

end % end if

[Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy); Kt=Kt(act,act); % apply boundary condition to Kt (adsbygoogle = window.adsbygoogle || []).push({});

dDi=-inv(Kt)*G; D(act,1)=D(act,1)+dDi; end % end iteration procedure

ite;

plotX=[plotX;-D(nDOF-1,1)]; plotZ=[plotZ;-Qef(nDOF,1)]; end % end of load increment sigA=SIG(1,1) epsA=EPS(1,1) plot(plotX,plotZ); hold on; 2. Các hàm sử dụng trong ch-ơng trình 2.1 Hàm tangPL Function [Kt]=tangPL(X,Z,ELE,nELE,nDOF,b,h,E,Et,nGX,nGZ,SIG,SIGy); % struc. stiff.mat for elasto-plastic analysis, Bernoulli element

Kt=zeros(nDOF,nDOF); for eNUM=1:nELE nod1=ELE(eNUM,1); nod2=ELE(eNUM,2); x1=X(nod1,1); x2=X(nod2,1); z1=Z(nod1,1); z2=Z(nod2,1);

Lx=x2-x1; Lz=z2-z1; L=sqrt(Lx^2+Lz^2); sig=SIG(:,eNUM); sigY=SIGy(:,eNUM); [keL]=tangkeLP(x1,x2,z1,z2,b,h,nGX,nGZ,E,Et,sig,sigY); c=(x2-x1)/L; s=(z2-z1)/L; T=[c s 0 0; -s c 0 0; 0 0 c s;0 0 -s c]; ke=T'*keL*T; r1=2*nod1-1; r2=2*nod2-1; Kt(r1:r1+1,r1:r1+1)=Kt(r1:r1+1,r1:r1+1)+ke(1:2,1:2); Kt(r2:r2+1,r2:r2+1)=Kt(r2:r2+1,r2:r2+1)+ke(3:4,3:4); Kt(r1:r1+1,r2:r2+1)=Kt(r1:r1+1,r2:r2+1)+ke(1:2,3:4); Kt(r2:r2+1,r1:r1+1)=Kt(r2:r2+1,r1:r1+1)+ke(3:4,1:2); end 2.2 Hàm tangkePL function [keL]=tangkeLP(x1,x2,z1,z2,b,h,nGX,nGZ,E,Et,sig,sigY); % local stiff.mat for elasto-plastic Bernoulli element

Lx=x2-x1; Lz=z2-z1; L=sqrt(Lx^2+Lz^2); [point2,weight2]=ptwt2(nGX,nGZ); keL=zeros(4,4); for inX=1:nGX xi=point2(inX,1); wtX=weight2(inX,1);

for inZ=1:nGZ ze=point2(inZ,2); wtZ=weight2(inZ,2);

ipG=nGZ*(inX-1)+inZ;

siG=sig(ipG,1); % stress at Gauss point

if abs(siG)<sigY(ipG) % elasto-plastic modulus Eep=E;

else Eep=Et; end

keL(1,1) = keL(1,1) + 9*b*h^3*wtX*wtZ*xi^2*ze^2*Eep/4/(L^3); keL(1,2)=keL(1,2) + 3*b*h^3*wtX*wtZ*xi*(3*xi-1)*ze^2*Eep/8/(L^2); keL(1,4)=keL(1,4) + 3*b*h^3*wtX*wtZ*xi*(1+3*xi)*ze^2*Eep/8/(L^2); keL(2,2) = keL(2,2) + b*h^3*wtX*wtZ*(1-3*xi)^2*ze^2*Eep/16/L; keL(2,4) = keL(2,4) + b*h^3*wtX*wtZ*(9*xi^2-1)*ze^2*Eep/16/L; keL(4,4) = keL(4,4) + b*h^3*wtX*wtZ*(1+3*xi)^2*ze^2*Eep/16/L; end end keL(2,1)=keL(1,2); keL(1,3)=-keL(1,1); keL(3,1)=keL(1,3); keL(2,3)=-keL(1,2); keL(3,2)=keL(2,3); keL(3,4)=-keL(1,4); keL(4,1)=keL(1,4); keL(4,2)=keL(2,4); keL(4,3)=keL(3,4); keL(1,3)=-keL(1,1); keL(3,3)=keL(1,1); 2.3 Hàm Lstress Function [EPS,SIG,SIGy]=Lstress(X,Z,ELE,nELE,h,E,Et,D,nGX,nGZ,EPSo,SIGo,SIGyo);

% computing new stress, new strain and accounting for hardening

nGX=4; % number of Gauss points along X direction nGZ=7; % number of Gauss points along Z direction

nG=nGX*nGZ; % total Gauss points for a elements (=28 for present)

EPS=zeros(nG,nELE);

% clear array for storring strain at alll Gauss points SIG=zeros(nG,nELE);

% clear array for storring stress at alll Gauss points SIGy=zeros(nG,nELE);

% clear array for storring yield stress at alll Gauss points

for eNUM=1:nELE eNUM; nod1=ELE(eNUM,1); nod2=ELE(eNUM,2); x1=X(nod1,1); x2=X(nod2,1); z1=Z(nod1,1); z2=Z(nod2,1); L=sqrt((x2-x1)^2+(z2-z1)^2); a1=2*nod1-1; a2=2*nod2-1; % dE=zeros(4,1); dE1=D(a1:a1+1,1); dE2=D(a2:a2+1,1); dE(1:2,1)=dE1; dE(3:4,1)=dE2; dE; eps0=EPSo(:,eNUM); sig0=SIGo(:,eNUM);

size(sig0); sigY0=SIGyo(:,eNUM); [epsN,sigN,sigYN]=LstressE(L,h,dE,E,Et,eps0,sig0,sigY0); EPS(:,eNUM)=epsN; SIG(:,eNUM)=sigN; SIGy(:,eNUM)=sigYN; end 2.4 Hàm LstressE function [epsN,sigN,sigYN]=LstressE(L,h,dE,E,Et,eps0,sig0,sigY0); % computing new strain, new stress and acounting

% for hardening at element level nGX=4; nGZ=7; w1=dE(1,1); r1=dE(2,1); w2=dE(3,1); r2=dE(4,1); nG=nGX*nGZ; [point2,weight2]=ptwt2(nGX,nGZ); % positions and weights for Gauss quadrature

epsN=zeros(nG,1); sigN=zeros(nG,1); sigYN=zeros(nG,1); for inX=1:nGX xi=point2(inX,1); for inZ=1:nGZ ze=point2(inZ,2);

ipG = nGZ*(inX-1)+inZ; % current Gauss point

sigG=sig0(ipG,1); % old stress at current Gauss point

sigYG=sigY0(ipG,1); % old yiled stress at current Gauss point

epsNG=h*ze*(-6*xi*w1/L/L+(1-3*xi)*r1/L+6*xi*w2/L/L-(1+3*xi)*r2/L)/2; % new strain

% if inX==1 % inZ,ze % end

deps = epsNG-epsG; % strain increment dsig = E*deps; % stress inc., assume elastic sigE = sigG + dsig; % elastic predictor

(adsbygoogle = window.adsbygoogle || []).push({});

% below yielding check and real stress inc.

fY = abs(sigG) - sigYG; % yield function before inc. if (fY==0) % yielding already before inc. dsig = Et*deps;

elseif (fY<0 & abs(sigE) > sigYG) % change from ela. to pla. ratio = (sigYG-abs(sigG))/(abs(dsig)); % ela. part proportion dsig = ratio*deps*E + (1.-ratio)*deps*Et;

end

epsN(ipG,1) = epsNG; sigN(ipG,1) = sigG + dsig;

% below account for hardening if abs(sigN(ipG,1)) > sigYG; sigYN(ipG,1) = abs(sigN(ipG,1)); else

sigYN(ipG,1) = sigY0(ipG,1); end

end % end for inZ end % end for inX epsN;

max(sigN);

2.5 Hàm LforceStr

function [Fi] = LforceStr(X,Z,ELE,nELE,nDOF,b,h,SIG); % computing structural nodal forces

Fi=zeros(nDOF,1); for eNUM=1:nELE nod1=ELE(eNUM,1); nod2=ELE(eNUM,2); x1=X(nod1,1); x2=X(nod2,1); z1=Z(nod1,1); z2=Z(nod2,1); L=sqrt((x2-x1)^2+(z2-z1)^2); a1=2*nod1-1; a2=2*nod2-1; sig=SIG(:,eNUM); [fe]=LforceEle(L,b,h,sig); Fi(a1:a1+1,1)=Fi(a1:a1+1,1)+fe(1:2,1); Fi(a2:a2+1,1)=Fi(a2:a2+1,1)+fe(3:4,1); End 2.6 Hàm LforceEle function [fe]=LforceEle(L,b,h,sig); % computing element forces

nGX=4; nGZ=7;

[point2,weight2]=ptwt2(nGX,nGZ); Q1=0;

M2=0; for inX=1:nGX xi=point2(inX,1); wtX=weight2(inX,1); for inZ=1:nGZ ze=point2(inZ,2); wtZ=weight2(inZ,2); ipG=nGZ*(inX-1)+inZ;

siG=sig(ipG,1); % stress at Gauss point Q1 = Q1-3*b*h^2*wtX*wtZ*xi*ze*siG/4/L; M1 = M1+b*h^2*wtX*wtZ*(1-3*xi)*ze*siG/8; M2 = M2-b*h^2*wtX*wtZ*(1+3*xi)*ze*siG/8; end end Q2=-Q1; fe=[Q1 M1 Q2 M2]'; % ---End---

Một phần của tài liệu Công thức phần tử, thuật toán và chương trình số trong phân tích dầm đàn-dẻo bằng phương pháp phần tử hữu hạn (Trang 54)