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à P100kN
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)
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
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
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
% 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
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
% 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---