白潤(rùn)山 馬子彥 郝 勇 段君勝
(河北建筑工程學(xué)院 土木工程學(xué)院,河北 張家口 075000)
目前,ABAQUS軟件是國(guó)際上運(yùn)用最廣泛、功能最先進(jìn)的有限元分析軟件之一,其廣泛應(yīng)用在建筑、機(jī)械、信息、生物等領(lǐng)域。ABAQUS軟件有著強(qiáng)大的建模和計(jì)算功能,種類(lèi)豐富的材料庫(kù)和單元庫(kù),可以模擬絕大部分復(fù)雜的不規(guī)則模型的非線性有限元分析。此外,該軟件擁有專(zhuān)門(mén)為進(jìn)行二次開(kāi)發(fā)而設(shè)定的功能窗口,可以實(shí)現(xiàn)軟件中未開(kāi)發(fā)的、能提高前后處理效率的接口。
Python語(yǔ)言起源于荷蘭,是在ABC語(yǔ)言的基礎(chǔ)上,作為腳本開(kāi)發(fā)程序的編寫(xiě)。如今,伴隨著越來(lái)越多的功能加入,Python語(yǔ)言逐漸成為一門(mén)高效率、易操作的編程語(yǔ)言。它作為開(kāi)源軟件,可以根據(jù)持有者的意向植入到多個(gè)平臺(tái)中,加快運(yùn)行速度。ABAQUS中向Python語(yǔ)言提供了許多數(shù)據(jù)庫(kù),為繞過(guò)CAE處理器直接操控ABAQUS的內(nèi)核提供了有效便利的途徑。本文就利用Python語(yǔ)言編程實(shí)現(xiàn)對(duì)鋼框架結(jié)構(gòu)模型地震作用下的前處理自動(dòng)化建模和后處理參數(shù)的提取。
ABAQUS有限元軟件善于將實(shí)際工程問(wèn)題,尤其是非線性問(wèn)題,簡(jiǎn)化為有限元模型進(jìn)行仿真分析。例如,板、梁、桿、塊狀等,都能轉(zhuǎn)化為仿真模型進(jìn)行問(wèn)題。但其龐大的單元、節(jié)點(diǎn)數(shù)據(jù)并不利于對(duì)結(jié)構(gòu)建模及參數(shù)的提取整合。Python語(yǔ)言作為一門(mén)功能強(qiáng)大、面向?qū)ο笮缘木幊陶Z(yǔ)言,既能獨(dú)立運(yùn)行又可以作為腳本語(yǔ)言使用,往往只需要一小段的編碼就能實(shí)現(xiàn)在建模、分析、后處理多個(gè)過(guò)程的復(fù)雜流程簡(jiǎn)化。因此,在應(yīng)用程序開(kāi)發(fā)得到了廣泛應(yīng)用,Python語(yǔ)言運(yùn)用環(huán)境通信形式如圖1所示。
圖1 ABAQUS與Python語(yǔ)言腳本環(huán)境通信關(guān)系
因此,采用Python腳本語(yǔ)言與有限元軟件ABAQUS相結(jié)合的方式,開(kāi)發(fā)出一種能便捷、迅速建模及提取模型后處理參數(shù)的途徑是重大的突破。
ABAQUS是世界公認(rèn)的擁有強(qiáng)大建模、分析等功能的有限元軟件之一,但是其在前后處理方面與其他分析軟件類(lèi)似,均需要經(jīng)歷繁瑣的定義、裝配、數(shù)據(jù)分析過(guò)程。Python語(yǔ)言作為ABAQUS腳本的擴(kuò)展,可通過(guò)編程修改ABAQUS的內(nèi)核程序,實(shí)現(xiàn)自動(dòng)化重復(fù)操作、創(chuàng)建模型、篩選數(shù)據(jù)庫(kù)等,這都是通過(guò)操控對(duì)象模塊實(shí)現(xiàn)的。
對(duì)象類(lèi)型一般分為三種。其中,前處理有mdb對(duì)象模型,主要針對(duì)模型及作業(yè)對(duì)象;后處理為odb對(duì)象模型,主要針對(duì)模型和數(shù)據(jù)對(duì)象;session對(duì)象模型則主要控制視圖,它包括對(duì)用戶(hù)自定義、遠(yuǎn)程隊(duì)列等。本文運(yùn)用的以及常用的ABAQUS對(duì)象模塊如圖2所示。
圖2 ABAQUS對(duì)象模型
將寫(xiě)好的Python語(yǔ)言編碼導(dǎo)入ABAQUS軟件中的途徑有:(1)在ABAQUS/CAE 最下端的CLI 中直接將編碼復(fù)制進(jìn)去按回車(chē);或者直接編寫(xiě)讀取外部腳本的命令:execfile(‘文件名’)。(2)利用Run Script功能鍵導(dǎo)入外部腳本,在ABAQUS 剛啟動(dòng)時(shí)界面或者菜單欄中都可找到。(3)在啟動(dòng)ABAQUS/CAE時(shí)在命令窗口輸命令啟動(dòng)腳本:abaqus cae script=文件名。
鋼框架建模中需要多次操作相同或類(lèi)似的流程,其中對(duì)多個(gè)相同操作的構(gòu)件的截面、屬性可通過(guò)Python 語(yǔ)言編程腳本實(shí)現(xiàn),但大部分操作仍需通過(guò)ABAQUS/CAE 中建立模型。以九層鋼框架為例,梁、柱都為工字形鋼截面,樓板為混凝土板。各層梁截面尺寸皆相同,同層柱尺寸相同,具體尺寸見(jiàn)表1。柱之間的距離為6米,層高為4米,柱底部為鉸接并受到X軸方向的地震波作用,俯視圖如圖3所示。
表1 鋼框架結(jié)構(gòu)梁柱截面尺寸
圖3 鋼框架平面圖
由于本文都采用將編碼直接輸入CLI命令窗口的方法,故可直接導(dǎo)入應(yīng)用模塊即可。鋼框架不同層高下存在不同的梁柱截面,故將part模塊導(dǎo)入快速建立多種梁柱截面。
完成多梁、柱、板的建模后,需要對(duì)梁柱的界面進(jìn)行定義,根據(jù)表1編程不同樓層狀況下工字型梁柱截面。
1到5層柱:frameModel.IProfile(b1=0.55, b2=0.55, h=0.55, l=0.275, name='Z-1-5', t1=0.03, t2=0.03,t3=0.015)
6到7層柱:frameModel.IProfile(b1=0.45, b2=0.45, h=0.45, l=0.225, name='Z-6-7', t1=0.02, t2=0.02,t3=0.02)
8到9層柱:frameModel.IProfile(b1=0.3, b2=0.3,h=0.3, l=0.15, name='Z-8-9', t1=0.02, t2=0.02, t3=0.015)
梁截面尺寸:frameModel.IProfile(b1=0.35, b2=0.3, h=0.3, l=0.175, name='L', t1=0.03, t2=0.03, t3=0.03)
導(dǎo)入到Abaqus中得到截面分配如圖4所示。
圖4 層樓與梁柱剖面對(duì)應(yīng)圖
再經(jīng)過(guò)對(duì)材料定義、裝配、合并、畫(huà)網(wǎng)絡(luò)等一系列操作之后,得到的鋼框架模型如圖5所示。
圖5 9層鋼框架模型圖
模型提交作業(yè)后,進(jìn)入ODB界面就可查詢(xún)模型的位移分布如圖6所示。
圖6 9層鋼框架位移圖
但是我們僅能通過(guò)顏色來(lái)綜合辨別的位移大小,具體某個(gè)分析步中的位移最大值我們無(wú)法得知,為此可通過(guò)編輯腳本實(shí)現(xiàn):
上述程序跳出如圖7結(jié)果所示可知,模型在受力過(guò)程中magnitude位移最大值位于DZB分析步391針?biāo)矔r(shí)的時(shí)候,位移處于最大值為1.141145E+00米。
下述程序可實(shí)現(xiàn)地震完成瞬時(shí)節(jié)點(diǎn)的位移值,通過(guò)修改可提取出節(jié)點(diǎn)集中位移最大值,通過(guò)選擇較小區(qū)域使結(jié)果更直觀,且減少了刪選的繁瑣工作。
圖7 magnitude位移最大值位置
表2 鋼框架地震作用下最大節(jié)點(diǎn)位移
根據(jù)表2不難發(fā)現(xiàn),樓板最大位移量隨著層數(shù)越往上而增加,這與梁柱變形規(guī)律相契合,故可用樓板變形規(guī)律分析樓層的位移變化規(guī)律。由圖8樓板增長(zhǎng)率折線圖可知,在1層與2層和7層與8層樓板間位移的增長(zhǎng)率明顯較大,但1層和2層的變形較小,故框架僅在7層與8層間有明顯的變形,如圖6所示框架位移圖可知與結(jié)論相吻合。
圖8 不同樓層板位移增長(zhǎng)率分布
本文闡述了Python語(yǔ)言在ABAQUS有限元軟件中二次開(kāi)發(fā)方法,并以9層鋼框架為實(shí)例,對(duì)模型前后處理功能進(jìn)行了開(kāi)發(fā),體現(xiàn)了Python語(yǔ)言編程的靈活和高效率。最后指出分析步中位移最大值所在的時(shí)程并提取結(jié)構(gòu)地震完成后瞬時(shí)的樓層位移損傷參數(shù)。