有限元基礎(chǔ)編程——桿單元(附Matlab源碼)

引言
”有限的單元,無(wú)限的能力“這句話來自清華大學(xué)有限元分析公開課曾攀老師的開課語(yǔ)。想要學(xué)好有限元這門課,不光要理解理論公式的由來及簡(jiǎn)單手酸,更要結(jié)合實(shí)際應(yīng)用。本欄目將帶著大家Step-By-Step基于Matlab語(yǔ)言實(shí)現(xiàn)有限元的基礎(chǔ)操作,課程代碼來自《有限元分析基礎(chǔ)教程》——曾攀,并附贈(zèng)ANSYS命令流文件進(jìn)行驗(yàn)證Matlab代碼正確性。
有限元“流水線套路”:
??求解單元?jiǎng)偠?/p>
??組裝整體剛度
??未知位移求解
??本質(zhì)是線性方程組求解,求解方法有很多,基于Fortran編寫的可以采用JCG開源程序包,基于Matlab編寫的可以采用
\
,默認(rèn)高斯消去法,也可以使用**PCG(預(yù)處理共軛梯度法)**等等,總之求解線性方程組的方法很多,我們初學(xué)者可以先使用最簡(jiǎn)單的\
,進(jìn)行求解。??對(duì)于位移邊界的處理,有限元有很多方法:直接消去法、置1法、拉格朗日乘子法、罰函數(shù)法等,對(duì)于初學(xué)者可以先概念最簡(jiǎn)單的直接消去法入手,等熟悉了有限元基本過程再使用更加進(jìn)階的操作。
??節(jié)點(diǎn)力、應(yīng)力、應(yīng)變等求解
1D桿單元
這大概是最簡(jiǎn)單的有限元分析吧,簡(jiǎn)直每本有限元教材里面都會(huì)將之作為入門案例,操作雖然簡(jiǎn)單,但也是包含了有限元分析的基礎(chǔ)步驟。
案例

函數(shù)
主程序
結(jié)果所得位移與手算結(jié)果一致,可自行驗(yàn)證。
2D桿單元
坐標(biāo)變換
2D桿單元在編寫的時(shí)候涉及到由局部坐標(biāo)系向整體坐標(biāo)系變換的過程。坐標(biāo)轉(zhuǎn)換矩陣$T$為:
?剛度矩陣、節(jié)點(diǎn)位移由局部坐標(biāo)系、
轉(zhuǎn)換到整體坐標(biāo)系
、
:
進(jìn)行應(yīng)力、節(jié)點(diǎn)力計(jì)算時(shí),位移也應(yīng)該由局部坐標(biāo)系轉(zhuǎn)換到整體坐標(biāo)系中,由彈性力學(xué)中的物理方程,有 1D 問題的應(yīng)力:?
案例

函數(shù)
主程序
ANSYS命令流