導(dǎo)讀:大家好,我是SimPC博士,主要從事工程結(jié)構(gòu)抗震及減隔震研究,玻璃成型熱工設(shè)備流動及傳熱研究,玻璃材料力學(xué)性能研究。精通有限元等數(shù)值算法的實現(xiàn),有限元軟件二次開發(fā),數(shù)據(jù)處理,偏微分方程求解,優(yōu)化算法,GUI界面開發(fā)等。有多項科研成果,其中SCI論文4篇,EI3篇,專利2篇。
近日我注冊并認證了仿真秀專欄,將在仿真秀官網(wǎng)和App給平臺用戶帶來Matlab有限元編程、復(fù)雜函數(shù)擬合和matlab繪圖相關(guān)內(nèi)容。此外還會帶來隔震建筑Abaqus建模仿真分析等內(nèi)容。本次案例主要以受均布荷載和集中荷載的變截面懸臂梁為研究對象,通過matlab編制四節(jié)點和八節(jié)點四邊形單元有限元程序來對懸臂梁進行受力分析。
一、問題概述
如圖1-1 所示,某變截面懸臂梁長度為2m,截面面積由0.6m至0.2m線性變化,受作用在自由端節(jié)點的集中荷載2P=kN和豎直方向均布荷載q=1kN/m作用,按平面應(yīng)力問題分析,求解自由端節(jié)點撓度。變截面懸臂梁采用C30混凝土,彈性模量為E= 4 3 10 MPa,泊松比為。編制四節(jié)點和八節(jié)點四邊形單元有限元程序,最終得到梁的變形。
圖1-1 變截面懸臂梁
二、求解思路
對于本問題采用基于MATLAB 編制有限元分析程序進行求解,其基本組成部分包括前處理模塊、分析主程序模塊和后處理模塊。在前處理模塊中,實現(xiàn)節(jié)點坐標(biāo)輸入、單元節(jié)點編號、網(wǎng)絡(luò)劃分以及邊界條件輸入等工作;在分析主程序模塊中,求解整體剛度方程;在后處理模塊中,實現(xiàn)結(jié)果顯示、數(shù)據(jù)輸出等工作。本文主要針對四節(jié)點四邊形單元與八節(jié)點四邊形單元理論和對應(yīng)的計算程序進行講解。
有限元法的基本步驟:
-
幾何域離散,獲得標(biāo)準化的單元;
-
通過能量原理(虛功原理或最小勢能原理,獲得單元剛度方程;
-
單元的集成(裝配);
-
處理位移邊界條件;
-
計算支反力;
- 計算單元的其他物理量(應(yīng)力應(yīng)變)。
-
節(jié)點描述
-
場描述
- 單元剛度方程。
1、平面問題的平衡方程、幾何方程、物理方程
平面問題的彈性力學(xué)基礎(chǔ)理論是推導(dǎo)有限元方程的基礎(chǔ),所以先羅列出平面問題的平衡方程、幾何方程、物理方程,具體如公式(1)-(3)所示。至于這些方程的推導(dǎo)過程大家可以參考任意彈性力學(xué)課本,都會進行詳細的講解。
2、等參單元
在有限元方法中,若要離散邊界為曲線或曲面的求解域,需要建立將形狀規(guī)則的單元變換為邊界為曲線或曲面的單元的方法,在有限元法中對應(yīng)此問題所采用的變換方法是等參變換,即單元幾何形狀的變換和單元內(nèi)長函數(shù)采用相同數(shù)目的節(jié)點及相同的插值函數(shù)進行變換。同樣我們今天要講的四邊形單元也從其對應(yīng)的等參單元的基礎(chǔ)理論講起。四邊形單元可以由自然坐標(biāo)系中的矩形單元映射而成,映射關(guān)系如圖2-1所示。
圖2-1 平面四節(jié)點矩形單元的映射關(guān)系
在自然坐標(biāo)系下,矩形單元是規(guī)則化的,當(dāng)自然坐標(biāo)系中的單元取為雙線性單元時(也即為四節(jié)點四邊形單元),平面四節(jié)點矩形單元如圖2-2所示,單元有4個節(jié)點,8個自由度。單元的形函數(shù)定義如下:? ? ?(4)其中,和為自然坐標(biāo)系下的節(jié)點坐標(biāo)值。單元從自然坐標(biāo)系到物理坐標(biāo)系的映射為
在進行映射變換時候,要求單元兩個坐標(biāo)系下的節(jié)點編號要對應(yīng)。單元的節(jié)點變量用型函數(shù)進行插值,有? ? ? ? ? ? ? ? ? ?(7)
function N=ShapeFun(s,t)
N1=1/4*(1-s)*(1-t);
N2=1/4*(1+s)*(1-t);
N3=1/4*(1+s)*(1+t);
N4=1/4*(1-s)*(1+t);
N=[N1 0 N2 0 N3 0 N4 0;
0 N1 0 N2 0 N3 0 N4];
end
同理平面八節(jié)點矩形單元如圖2-3所示,單元共有8個節(jié)點,16個自由度。單元的形函數(shù)定義如下:
? (8)? ? ? ?(9)
? (10)
其中,和為自然坐標(biāo)系下的節(jié)點坐標(biāo)值。單元從自然坐標(biāo)系到物理坐標(biāo)系的映射為
? ? ?(11)
? ? ? ?(12)
在進行映射變換時候,要求單元兩個坐標(biāo)系下的節(jié)點編號要對應(yīng)。單元的節(jié)點變量用型函數(shù)進行插值,有
?? (13)
function N=ShapeFun(s,t)
%% 四邊形八結(jié)點等參單元形函數(shù)矩陣
% 角點
N1=1/4*(1-s)*(1+t)*(-s+t-1);
N2=1/4*(1-s)*(1-t)*(-s-t-1);
N3=1/4*(1+s)*(1-t)*(s-t-1);
N4=1/4*(1+s)*(1+t)*(s+t-1);
% 邊中點
N5=1/2*(1-t^2)*(1-s);
N7=1/2*(1-t^2)*(1+s);
N6=1/2*(1-s^2)*(1-t);
N8=1/2*(1-s^2)*(1+t);
N=[N1 0 N2 0 N3 0 N4 0 N5 0 N6 0 N7 0 N8 0;
0 N1 0 N2 0 N3 0 N4 0 N5 0 N6 0 N7 0 N8];
圖2-2 平面四節(jié)點矩形單元
圖2-3 平面四節(jié)點矩形單元等參單元中除了完成如公式(5)(6)(10)(11)的坐標(biāo)映射外,還需要完成坐標(biāo)偏導(dǎo)數(shù)的映射和面積/體積的映射,因為在最終推導(dǎo)出的單元剛度矩陣表達式,即一個積分函數(shù)中會包含坐標(biāo)的偏導(dǎo)項和坐標(biāo)的面積積分項,如公式(x)所示,所以接下來我們研究坐標(biāo)偏導(dǎo)項的映射關(guān)系。根據(jù)鏈式求導(dǎo)法則,形函數(shù)對自然坐標(biāo)系的導(dǎo)數(shù)為
(14)
寫成矩陣的形式就是
? ???(15)
其中,J被稱為Jacobi矩陣。反過來,形函數(shù)對物理坐標(biāo)的導(dǎo)數(shù)為 ? ? ? ? ?(16)
另外,對于二維平面單元還要完成面積的映射,為 ? ? ? ? ? ? ?(17)
可以看出Jacob矩陣在等參變化中扮演著至關(guān)重要的角色,Jacob矩陣具體的表達式如下所示, ? ? ? (18)
公式18對應(yīng)的八節(jié)點單元雅各比矩陣的求解代碼為:
公式18對應(yīng)的四節(jié)點單元雅各比矩陣的求解代碼為:function J=Jacobi(ie,s,t,Elements,Nodes)
ENodes = Elements(ie,:); %獲取單元結(jié)點
xe = Nodes(ENodes(:),:); %獲取節(jié)點坐標(biāo)
x1=xe(1,1);y1=xe(1,2);
x2=xe(2,1);y2=xe(2,2);
x3=xe(3,1);y3=xe(3,2);
x4=xe(4,1);y4=xe(4,2);
J=1/4*[-(1+t) -(1-t) 1-t 1+t;1-s -(1-s) -(1+s) 1+s]*[x1 y1;x2 y2;x3 y3;x4 y4];
end
3、剛度矩陣的推導(dǎo)function J=Jacobi(ie,kesi,yita,Elements,Nodes)
ENodes = Elements(ie,:); %獲取單元結(jié)點
xe = Nodes(ENodes(:),:); %獲取結(jié)點坐標(biāo)
x1=xe(1,1);y1=xe(1,2);
x2=xe(2,1);y2=xe(2,2);
x3=xe(3,1);y3=xe(3,2);
x4=xe(4,1);y4=xe(4,2);
J=1/4*[-(1-yita),(1-yita),(1+yita),-(1+yita);-(1-kesi),-(1+kesi),(1+kesi),(1-kesi)]*[x1 y1;x2 y2;x3 y3;x4 y4];
end
為了求出上述平面四節(jié)點和八節(jié)點單元的單元剛度矩陣,需要借助能量原理(虛功原理、最小勢能原理)進行推導(dǎo),能量原理的推導(dǎo)過程大家可以參考任意一本有限元理論書籍,都會有詳細的推導(dǎo)過程,這里就不做進一步推導(dǎo)講解,直接給出物理坐標(biāo)和幾何坐標(biāo)系下的剛度矩陣的公式
? ?(19)
? ?(20)
其中B矩陣為應(yīng)變矩陣,如下式;D矩陣為材料剛度矩陣,如公式(1)所示,是物理方程中表征應(yīng)力應(yīng)變關(guān)系的矩陣。從上述剛度矩陣的表達式可以看出,自然坐標(biāo)和物理坐標(biāo)間要完成坐標(biāo)映射、偏導(dǎo)映射、面積隱射三個部分,具體映射公式已在上一節(jié)的等參單元講解中詳細給出。
? ? ? ?(21)
4、高斯積分
公式(20)中的單元剛度矩陣通過數(shù)值積分求得,本案例中的四節(jié)點和八節(jié)點四邊形等參單元均采用2*2個積分點的高斯積分即可求得精確結(jié)果。高斯積分點的坐標(biāo)具體如圖所示。
4-1 Gauss積分點示意圖
公式(20)寫成數(shù)值積分的形式為
? ? ? ? (22)
對于8節(jié)點單元實現(xiàn)上述數(shù)值積分的代碼如下所示:
r = [-sqrt(1/3) sqrt(1/3)]; % 2*2 高斯積分點
s = [r(1) r(1) r(2) r(2)];
t = [r(2) r(1) r(1) r(2)]; % 高斯積分點坐標(biāo)
for i=1:4
J = Jacobi(E_ID,s(i),t(i),Elements,Nodes); % 雅可比矩陣
Nst = DiffShapeFun(s(i),t(i)); % 形函數(shù)關(guān)于自然坐標(biāo)s,t求導(dǎo)
Nxy = zeros(8,2);
for j=1:8
) = (JNst(j,:)')'; % 形函數(shù)關(guān)于 x,y 求導(dǎo)=inv(J)*Nst :
end
Bm = [Nxy(1,1) 0 Nxy(2,1) 0 Nxy(3,1) 0 Nxy(4,1) 0 Nxy(5,1) 0 Nxy(6,1) 0 Nxy(7,1) 0 Nxy(8,1) 0;
0 Nxy(1,2) 0 Nxy(2,2) 0 Nxy(3,2) 0 Nxy(4,2) 0 Nxy(5,2) 0 Nxy(6,2) 0 Nxy(7,2) 0 Nxy(8,2);
Nxy(1,1) Nxy(2,2) Nxy(2,1) Nxy(3,2) Nxy(3,1) Nxy(4,2) Nxy(4,1) Nxy(5,2) Nxy(5,1) Nxy(6,2) Nxy(6,1) Nxy(7,2) Nxy(7,1) Nxy(8,2) Nxy(8,1)];
ke = ke+det(J)*Bm'*D*Bm*Width; %數(shù)值積分
end
5、均布荷載的施加
在有限元中分布力要轉(zhuǎn)為等效節(jié)點荷載,而確定等效節(jié)點荷載的方法也是通過能量原理推導(dǎo)得到
? ? ? ?(22)
上式中,第一項代表體積力的等效荷載,第二項代表面積力的等效荷載,這個案例我們只考慮面力荷載。實現(xiàn)公式22的代碼為
function Pe=UniLoad(ie,N_ID_p1,q0,Nodes,Elements)
k=-0.625e-3; % 均布荷載值 N/mm
s = [-sqrt(1/3) sqrt(1/3)]; % 2*2 高斯積分點
ENodes = N_ID_p1(ie,:); %獲取單元結(jié)點號
Pe=zeros(16,1); %生成臨時單元節(jié)點力零列向量
x1=Nodes(ENodes(1),1);
x6=Nodes(ENodes(4),1);
L16=abs(x6-x1); %單元長度
for i=1:2 %用于高斯積分的求和循環(huán)
N_q=ShapeFun(s(i),1); % 4級子程序:ShapeFun(s(i),1)
q_x=q0;
Pe=Pe+N_q'*q_x*[0;L16/2];
end
end
三、Matlab有限元編程精品課
網(wǎng)格劃分及變形結(jié)果如圖3-1所示。本案例的詳細視頻教程和對應(yīng)的matlab源碼,請關(guān)注我的仿真秀官網(wǎng)和APP精品課程《Matlab有限元編程從入門到精通10講》。
圖3-1 梁變形結(jié)果
-
matlab
+關(guān)注
關(guān)注
185文章
2974瀏覽量
230378 -
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93685
原文標(biāo)題:教你Matlab有限元編程對懸臂梁進行受力分析-附源碼及教程
文章出處:【微信號:sim_ol,微信公眾號:模擬在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論