最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

平面三角形單元有限元程序設(shè)計(python)

2023-06-21 18:27 作者:DJ2354  | 我要投稿

本文檔為有限元方法課程作業(yè),使用python編寫,可實現(xiàn)任意單元數(shù)量的結(jié)構(gòu)計算。鑒于搜索到這篇文章的一般都是選了這門課的同學(xué),所以基礎(chǔ)知識不多說直接開始:

1 ?程序設(shè)計

1.1 ?設(shè)計思路

有限元程序的基本功能為輸入結(jié)構(gòu)的幾何信息、材料參數(shù)、荷載和約束情況,輸出節(jié)點位移、單元應(yīng)力應(yīng)變等結(jié)果。程序采用python語言編寫,二維數(shù)據(jù)和一維數(shù)據(jù)均使用mumpy矩陣存放。

1)生成結(jié)構(gòu)剛度矩陣

結(jié)構(gòu)剛度矩陣是有限元計算的核心??梢允褂醚h(huán)結(jié)構(gòu),依次生成各單元的單元剛度矩陣并添加到結(jié)構(gòu)剛度矩陣中,每次循環(huán)生成一個單元剛度矩陣并立即添加到結(jié)構(gòu)剛度矩陣中,下一次循環(huán)時不保留上一個單元的單元剛度矩陣,以節(jié)約內(nèi)存。為節(jié)省時間,程序中的單元剛度矩陣直接按 1生成:

式1


分塊矩陣表示為:

? ?

?? 式2

? ? ??

其中:

式3

? ? ? ? ? ? ? ? ? ? ? ? ? ??

2)生成荷載向量

荷載向量可由輸入的荷載信息矩陣直接生成,維度為2n,n為節(jié)點數(shù)。

3)處理邊界條件

采用對角元素置1法,將剛度矩陣中與被固定節(jié)點對應(yīng)的對角元素置1,該行和列其余元素置0,同時將荷載向量對應(yīng)元素置0??稍谧映绦蛑猩昝魅肿兞浚苯有薷膭偠染仃嚭秃奢d向量。

4)求解大型稀疏矩陣方程

整體剛度矩陣是一個大型帶狀矩陣,對于這類矩陣產(chǎn)生的大型稀疏矩陣方程,可以調(diào)用scipy庫中的sparse.linalg.spsolve函數(shù)求解。

5)求單元應(yīng)變

根據(jù)得到的節(jié)點位移,可由 4~5得到單元應(yīng)變εx,εy,γxy。用循環(huán)結(jié)構(gòu)循環(huán)計算單元應(yīng)變并存入應(yīng)變信息矩陣輸出。

式4

? ? ? ? ? ??

式5

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

6)求單元應(yīng)力

根據(jù)得到的節(jié)點位移,可由6~7得到單σx,σy,τxy。用循環(huán)結(jié)構(gòu)循環(huán)計算單元應(yīng)力并存入應(yīng)力信息矩陣輸出。

? ? ? ? ?

? ? ? ? ? ? ? ?式6

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?式7

6)輸出結(jié)果

輸出結(jié)果包括節(jié)點位移、單元應(yīng)變和單元應(yīng)力。


1.2 ?程序展示

1)主要變量

EL:彈性模量

PO:泊松比

TK:厚度

NODE_SUM:節(jié)點數(shù)目

ELE_SUM:單元數(shù)目

NODE:節(jié)點坐標(biāo)矩陣,每行為節(jié)點坐標(biāo),列按節(jié)點號排列

ELE:單元節(jié)點號矩陣,每行為單元的三個節(jié)點號,列按單元號排列,單元內(nèi)節(jié)點號逆時針排列

P_inp:荷載信息矩陣,第一列為荷載作用的節(jié)點號,第二列為x方向荷載,第三列為y方向荷載

BC:約束信息矩陣,第一列為節(jié)點號,二~三列分別為xy向的約束情況,1為固定,0為自由

TYPE:平面問題類型,1為平面應(yīng)變問題,否則為平面應(yīng)力問題

2)子函數(shù)

create_K( EL, PO, TK, NODE_SUM,ELE_SUM, NODE, ELE):生成整體剛度矩陣

create_P(P_inp,NODE_SUM):由輸入的節(jié)點荷載信息生成荷載向量P

do_BC(BC):處理邊界條件,置1法對角元素

solve_Uout(U,NODE_SUM):根據(jù)位移向量得到節(jié)點位移信息矩陣

solve_B(U,NODE,ELE,ELE_SUM):根據(jù)位移向量U得到結(jié)構(gòu)應(yīng)變信息矩陣

solve_S(U, NODE, ELE, ELE_SUM, EL, PO):根據(jù)位移向量U得到結(jié)構(gòu)應(yīng)力信息矩陣

有限元程序完整代碼如下:

2 ?算例驗證

建立有限元算例如 1所示。本文所有數(shù)值均使用國際單位制,即長度:m;時間:s,力:N,應(yīng)力:Pa。后續(xù)數(shù)值出現(xiàn)時不帶單位。

圖1 有限元算例結(jié)構(gòu)

本代碼不包含前處理部分,通過更改主程序中第一部分關(guān)鍵參數(shù)的形式輸入?yún)?shù),按照注釋行要求輸入關(guān)鍵參數(shù)即可實現(xiàn)任意單元數(shù)量結(jié)構(gòu)的計算。彈性模量設(shè)置為20,泊松比為0.2。以2點為坐標(biāo)原點,1號單元長直角邊為x軸,短直角邊為y軸,約束1,2點x向和y向位移。荷載數(shù)值為1,作用于5號節(jié)點,方向豎直向下。主程序第一部分輸入?yún)?shù)為:


程序運行后會在當(dāng)前文件夾產(chǎn)生一個名為“result.txt”的結(jié)果文本,文本內(nèi)容如下:


——————###結(jié)果文件###——————

##節(jié)點位移##

節(jié)點號 x y

——————————————————

1.00000000 0.00000000 0.00000000

2.00000000 0.00000000 0.00000000

3.00000000 -0.21617469 -0.63980590

4.00000000 0.22453700 -0.68161747

5.00000000 0.23289931 -2.00304084

##單元應(yīng)變##

單元號 εx εy γxy

——————————————————

1.00000000 -0.10808734 0.00000000 -0.31990295

2.00000000 0.11226850 -0.04181156 0.09990295

3.00000000 0.00418116 -0.04181156 -0.22000000

##單元應(yīng)力##

單元號 σx σy τxy

——————————————————

1.00000000 -2.18358269 -0.21835827 -2.90820865

2.00000000 2.18358269 -0.61787303 0.90820865

3.00000000 -0.00000000 -0.83623130 -2.00000000

文本中數(shù)據(jù)間使用制表位隔開,可直接復(fù)制到execl中進(jìn)一步操作。

為驗證上述程序的正確性,使用ABQUS自帶的CPS3單元建模驗證,CPS3單元三結(jié)點平面應(yīng)力三角形單元,屬于常應(yīng)變單元。

圖2 ABQUS模型


位移x向和y向位移如圖 3~圖 4所示,節(jié)點位移數(shù)值和自編程序完全相符。1號單元直觀的體現(xiàn)出一階單元內(nèi)部位移線性分布的特征。

圖3 x方向位移


圖4 y方向位移


應(yīng)變?nèi)?/span> 5~ 6所示,結(jié)果和自編有限元程序一致, 5~ 6值觀反應(yīng)了常應(yīng)變單元的應(yīng)變分布特征。

圖5 εx


圖6 εy

有用的話請給個三連吧,祝各位同學(xué)高分通過


平面三角形單元有限元程序設(shè)計(python)的評論 (共 條)

分享到微博請遵守國家法律
拜泉县| 芮城县| 荆州市| 扬中市| 衡水市| 祁门县| 乌兰浩特市| 理塘县| 乃东县| 五指山市| 永吉县| 遂川县| 淮阳县| 普兰县| 潼南县| 北流市| 田林县| 竹山县| 大石桥市| 交城县| 小金县| 孝感市| 北碚区| 盱眙县| 曲周县| 上蔡县| 潜江市| 正宁县| 和田市| 崇仁县| 开江县| 土默特左旗| 方山县| 阿拉善右旗| 航空| 嘉鱼县| 六枝特区| 靖西县| 安义县| 云龙县| 仁怀市|