Matlab有限元計算

2017-08-25  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

對于開始學(xué)習(xí)有限元的人來說,簡單了解下有限元計算的基本思路是很有必要的,因此這篇文章僅僅以一個簡單的一維線性彈簧單元為例,簡述一下有限元計算的基本思想,主要參考書目《有限元方法基礎(chǔ)教程》-Daryl L. Logan和《matlab有限元分析與應(yīng)用》-P.I. Kattan。前者有詳細(xì)的剛度矩陣等推導(dǎo),主要從理論上對有限元方法進(jìn)行說明,后者主要是結(jié)合著名的矩陣實驗室matlab對結(jié)構(gòu)有限元進(jìn)行分析與計算,兩者可以結(jié)合來看。


下面我就《有限元方法基礎(chǔ)教程》一書中的習(xí)題2.17為例,使用matlab來說明一下如何對其進(jìn)行計算。

習(xí)題2.17

如圖所示的五個彈簧組裝,確定節(jié)點2和節(jié)點3的位移、節(jié)點1和節(jié)點4的反力。假設(shè)節(jié)點2和節(jié)點3處連接彈簧的剛性垂直桿一直保持水平,但是自由滑動、向左或者向右移動。在節(jié)點向右施加外力1000N。令k1=500N/mm,k2=k3=300N/mm,k4=k5=400N/mm。

Matlab有限元計算MatLab分析案例圖片1

眾所周知,有限元計算的基本流程主要包含六個部分:

①離散化域

②寫出單元剛度矩陣

③集成整體剛度矩陣

④引入邊界條件

⑤解方程

⑥后處理

①離散化域

有限元模型的建立有兩種方法,一種是直接建立,另一種是網(wǎng)格劃分,對于像桿單元,彈簧單元質(zhì)量單元等直接建立有限元模型比較方便,但是像梁單元,實體單元等人為建立就很復(fù)雜,一般就是先建立好幾何模型再進(jìn)行網(wǎng)格劃分,以此得到有限元模型。

對于此題,使用直接建立法即可。由圖中可以看出可以離散成五個彈簧單元,各彈簧單元以及對應(yīng)節(jié)點如下:

Matlab有限元計算MatLab分析案例圖片2

②寫出單元剛度矩陣

對于靜力結(jié)構(gòu)分析來說,最大的難點就在單元剛度矩陣的得出。簡單的單元剛度矩陣像本題中的彈簧單元使用直接平衡法就能得到,復(fù)雜的可能就要用到能量法或者加權(quán)殘余法等。

本例中直接給出彈簧單元的剛度矩陣形式,這樣,根據(jù)該矩陣形式,我們可以構(gòu)造一個函數(shù)SpringElementStiffness專門用于得到彈簧單元的剛度矩陣,下面是《matlab有限元分析與應(yīng)用》配套給出的彈簧單元剛度矩陣生成函數(shù)(以下函數(shù)均為書中給出):

Matlab有限元計算MatLab分析案例圖片3

這樣,通過調(diào)用該函數(shù)能夠方便的生成上述5個單元的剛度矩陣:

Matlab有限元計算MatLab分析案例圖片4

③集成整體剛度矩陣(直接剛度法)

得到單元剛度矩陣之后,可以直接利用疊加法得到整體剛度矩陣。由于每個節(jié)點的力是由分擔(dān)該節(jié)點的單元節(jié)點相加而成,因此能夠直接通過將各單元對應(yīng)節(jié)點疊加,得到總體剛度矩陣,這個也叫直接剛度法,對應(yīng)的matlab程序如下:

Matlab有限元計算MatLab應(yīng)用技術(shù)圖片5

將單元矩陣k的對應(yīng)元素疊加到總體剛度矩陣對應(yīng)的節(jié)點位置,由于這里總共有五個單元,因此需要調(diào)用該函數(shù)五次得到總體剛度矩陣:

Matlab有限元計算MatLab應(yīng)用技術(shù)圖片6

④引入邊界條件

對于上圖中,邊界條件屬于混合型,既有位移型也有力型,具體有:

u1=0 u4=0 f2=0 f3=1000N

其中

u3 u4 f1 f4是未知的,需要我們求出。引入上述邊界條件得到以下總體方程:

Matlab有限元計算MatLab應(yīng)用技術(shù)圖片7

⑤解方程

上述方程組可以直接提取第三行和第二行先進(jìn)行求解得到u2和u3的值,即求下面方程:

Matlab有限元計算MatLab應(yīng)用技術(shù)圖片8

直接使用矩陣反除求出u2與u3的值,再將位移值帶入總體位移矩陣,得到力值。由于后面會多次使用力值計算程序,因此將該程序也編寫為m文件進(jìn)行調(diào)用,如下:

Matlab有限元計算MatLab應(yīng)用技術(shù)圖片9

然后計算得到總位移與總力矩陣

Matlab有限元計算MatLab培訓(xùn)教程圖片10

⑥后處理

所有求解完畢之后,可以返回來從新得到各個單元內(nèi)力,具體計算程序如下:

Matlab有限元計算MatLab培訓(xùn)教程圖片11

通過上述求解結(jié)果可以得到各節(jié)點的位移以及單元受力情況。當(dāng)然這只是對于最簡單的一維線性彈簧單元,如果要擴(kuò)展到二維,三維,單元更換為桿,梁,面等,單元剛度矩陣顯然會更加復(fù)雜,對于具體的邊界可能還要對剛度矩陣進(jìn)行修正,但是整體的求解思路類似。


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:Matlab有限元計算 MatLab培訓(xùn) MatLab培訓(xùn)課程 MatLab在線視頻教程 MatLab技術(shù)學(xué)習(xí)教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎(chǔ)知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com