白潤山 馬子彥 郝 勇 段君勝
(河北建筑工程學院 土木工程學院,河北 張家口 075000)
目前,ABAQUS軟件是國際上運用最廣泛、功能最先進的有限元分析軟件之一,其廣泛應用在建筑、機械、信息、生物等領域。ABAQUS軟件有著強大的建模和計算功能,種類豐富的材料庫和單元庫,可以模擬絕大部分復雜的不規則模型的非線性有限元分析。此外,該軟件擁有專門為進行二次開發而設定的功能窗口,可以實現軟件中未開發的、能提高前后處理效率的接口。
Python語言起源于荷蘭,是在ABC語言的基礎上,作為腳本開發程序的編寫。如今,伴隨著越來越多的功能加入,Python語言逐漸成為一門高效率、易操作的編程語言。它作為開源軟件,可以根據持有者的意向植入到多個平臺中,加快運行速度。ABAQUS中向Python語言提供了許多數據庫,為繞過CAE處理器直接操控ABAQUS的內核提供了有效便利的途徑。本文就利用Python語言編程實現對鋼框架結構模型地震作用下的前處理自動化建模和后處理參數的提取。
ABAQUS有限元軟件善于將實際工程問題,尤其是非線性問題,簡化為有限元模型進行仿真分析。例如,板、梁、桿、塊狀等,都能轉化為仿真模型進行問題。但其龐大的單元、節點數據并不利于對結構建模及參數的提取整合。Python語言作為一門功能強大、面向對象性的編程語言,既能獨立運行又可以作為腳本語言使用,往往只需要一小段的編碼就能實現在建模、分析、后處理多個過程的復雜流程簡化。因此,在應用程序開發得到了廣泛應用,Python語言運用環境通信形式如圖1所示。

圖1 ABAQUS與Python語言腳本環境通信關系
因此,采用Python腳本語言與有限元軟件ABAQUS相結合的方式,開發出一種能便捷、迅速建模及提取模型后處理參數的途徑是重大的突破。
ABAQUS是世界公認的擁有強大建模、分析等功能的有限元軟件之一,但是其在前后處理方面與其他分析軟件類似,均需要經歷繁瑣的定義、裝配、數據分析過程。Python語言作為ABAQUS腳本的擴展,可通過編程修改ABAQUS的內核程序,實現自動化重復操作、創建模型、篩選數據庫等,這都是通過操控對象模塊實現的。
對象類型一般分為三種。其中,前處理有mdb對象模型,主要針對模型及作業對象;后處理為odb對象模型,主要針對模型和數據對象;session對象模型則主要控制視圖,它包括對用戶自定義、遠程隊列等。本文運用的以及常用的ABAQUS對象模塊如圖2所示。


圖2 ABAQUS對象模型
將寫好的Python語言編碼導入ABAQUS軟件中的途徑有:(1)在ABAQUS/CAE 最下端的CLI 中直接將編碼復制進去按回車;或者直接編寫讀取外部腳本的命令:execfile(‘文件名’)。(2)利用Run Script功能鍵導入外部腳本,在ABAQUS 剛啟動時界面或者菜單欄中都可找到。(3)在啟動ABAQUS/CAE時在命令窗口輸命令啟動腳本:abaqus cae script=文件名。
鋼框架建模中需要多次操作相同或類似的流程,其中對多個相同操作的構件的截面、屬性可通過Python 語言編程腳本實現,但大部分操作仍需通過ABAQUS/CAE 中建立模型。以九層鋼框架為例,梁、柱都為工字形鋼截面,樓板為混凝土板。各層梁截面尺寸皆相同,同層柱尺寸相同,具體尺寸見表1。柱之間的距離為6米,層高為4米,柱底部為鉸接并受到X軸方向的地震波作用,俯視圖如圖3所示。

表1 鋼框架結構梁柱截面尺寸

圖3 鋼框架平面圖
由于本文都采用將編碼直接輸入CLI命令窗口的方法,故可直接導入應用模塊即可。鋼框架不同層高下存在不同的梁柱截面,故將part模塊導入快速建立多種梁柱截面。


完成多梁、柱、板的建模后,需要對梁柱的界面進行定義,根據表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)
導入到Abaqus中得到截面分配如圖4所示。

圖4 層樓與梁柱剖面對應圖
再經過對材料定義、裝配、合并、畫網絡等一系列操作之后,得到的鋼框架模型如圖5所示。

圖5 9層鋼框架模型圖
模型提交作業后,進入ODB界面就可查詢模型的位移分布如圖6所示。

圖6 9層鋼框架位移圖
但是我們僅能通過顏色來綜合辨別的位移大小,具體某個分析步中的位移最大值我們無法得知,為此可通過編輯腳本實現:


上述程序跳出如圖7結果所示可知,模型在受力過程中magnitude位移最大值位于DZB分析步391針瞬時的時候,位移處于最大值為1.141145E+00米。
下述程序可實現地震完成瞬時節點的位移值,通過修改可提取出節點集中位移最大值,通過選擇較小區域使結果更直觀,且減少了刪選的繁瑣工作。



圖7 magnitude位移最大值位置

表2 鋼框架地震作用下最大節點位移
根據表2不難發現,樓板最大位移量隨著層數越往上而增加,這與梁柱變形規律相契合,故可用樓板變形規律分析樓層的位移變化規律。由圖8樓板增長率折線圖可知,在1層與2層和7層與8層樓板間位移的增長率明顯較大,但1層和2層的變形較小,故框架僅在7層與8層間有明顯的變形,如圖6所示框架位移圖可知與結論相吻合。

圖8 不同樓層板位移增長率分布
本文闡述了Python語言在ABAQUS有限元軟件中二次開發方法,并以9層鋼框架為實例,對模型前后處理功能進行了開發,體現了Python語言編程的靈活和高效率。最后指出分析步中位移最大值所在的時程并提取結構地震完成后瞬時的樓層位移損傷參數。