基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載

ABAQUS 的后處理功能不能完全提供我們?cè)诜治鲞^(guò)程中所需的數(shù)據(jù),為更好的擴(kuò)展后處理功能,查看和分析結(jié)果數(shù)據(jù),本文提出了使用Python 語(yǔ)言對(duì) ABAQUS 進(jìn)行二次開(kāi)發(fā)來(lái)達(dá)到這一目的的方法。文中討論了ABAQUS 的腳本接口和對(duì)象模型在 二次開(kāi)發(fā)中的作用和調(diào)用流程,以及文件的讀寫(xiě)與復(fù)制、數(shù)據(jù)讀取與處理、結(jié)果輸出與查看等關(guān)鍵技術(shù)。以共軌管錐面密封性的分析為例,使用Python 語(yǔ)言提取了分析結(jié)果數(shù)據(jù)并將結(jié)果作為初始條件加載于新的分析中,最終得到所需的分析數(shù)據(jù)。

引言
基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載的圖1
ABAQUS 是目前國(guó)際上最為先進(jìn)的通用非線(xiàn)性有限元分析軟件之一,軟件包括種類(lèi)豐富的材料庫(kù)和單元庫(kù),可以模擬絕大部分工程材料的線(xiàn)性和非線(xiàn)性行為,而且材料庫(kù)和單元庫(kù)分開(kāi),材料和單元之間的組合能力很強(qiáng),可以勝任復(fù)雜結(jié)構(gòu)的靜態(tài)與動(dòng)態(tài)分析。ABAQUS自帶的CAE 模塊是一個(gè)完整ABAQUS 環(huán)境,提供—個(gè)簡(jiǎn)單一致的接口,可以用于創(chuàng)建、提交、監(jiān)視和評(píng)價(jià)模擬所得到的結(jié)果。
Python 是一種簡(jiǎn)單易學(xué)、功能強(qiáng)大的編程語(yǔ)言,它有高效率的高級(jí)數(shù)據(jù)結(jié)構(gòu),可以簡(jiǎn)單而有效地實(shí)現(xiàn)面向?qū)ο缶幊?。ABAQUS 有限元程序就通過(guò)集成腳本語(yǔ)言Python 向 二次開(kāi)發(fā)者提供了很多庫(kù)函數(shù),通過(guò)Python 語(yǔ)言調(diào)用這些庫(kù)函數(shù)來(lái)增強(qiáng)ABAQUS 的交互式操作能力。本文通過(guò)Python 腳本語(yǔ)言來(lái)提取ABAQUS 的后處理結(jié)果,并對(duì)結(jié)果數(shù)據(jù)進(jìn)行相應(yīng)的計(jì)算和轉(zhuǎn)換,并將處理結(jié)果作為初始條件應(yīng)用于其后的開(kāi)發(fā)過(guò)程中。

1
ABAQUS、PYTHON接口程序

ABAQUS 的二次開(kāi)發(fā)可以通過(guò)Python 腳本語(yǔ)言控ABAQUS內(nèi)核實(shí)現(xiàn)前處理建模和后處理的計(jì)算分析。ABAQUS 腳本接口是Python 語(yǔ)言的一個(gè)擴(kuò)展,可以使用Python 語(yǔ)言編制腳本接口可以執(zhí)行的程序,從而實(shí)現(xiàn)自動(dòng)化重復(fù)性的工作、創(chuàng)建和修改模型數(shù)據(jù)庫(kù)、訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的功能。ABAQUS 腳本接口中的每個(gè)對(duì)象都擁有相應(yīng)的數(shù)據(jù)成(data)和函數(shù),對(duì)象中的函數(shù)專(zhuān)門(mén)用來(lái)處理對(duì)象中的數(shù)據(jù)成員,被稱(chēng)為相應(yīng)對(duì)象的方法,用來(lái)生成對(duì)象的方法被稱(chēng)為構(gòu)造函數(shù)(constructor)。在對(duì)象創(chuàng)建以后,可以使用該對(duì)象提供的方法來(lái)處理對(duì)象中的數(shù)據(jù)成員。ABAQUS 的對(duì)象模型是指ABAQUS 腳本接口中的各種對(duì)象類(lèi)型之間的層次關(guān)系。ABAQUS 腳本接口對(duì)Python 語(yǔ)言進(jìn)行了擴(kuò)展,額外提供了大約500 個(gè)對(duì)象模型,這些對(duì)象模型之間的關(guān)系比較復(fù)雜,大致將這寫(xiě)對(duì)象分為3 類(lèi),如圖1 所示。其中,session對(duì)象用來(lái)定義視圖、遠(yuǎn)程隊(duì)列、用戶(hù)定義的視圖等;mdb 對(duì)象包括計(jì)算模型對(duì)象和作業(yè)對(duì)象,其中odb 對(duì)象包括計(jì)算模型和計(jì)算結(jié)果數(shù)據(jù),每一類(lèi)對(duì)象下面又包括各類(lèi)子對(duì)象,比如mdb 對(duì)象下面的計(jì)算模型models 對(duì)象又包括很多子對(duì)象,如圖2 所示。

結(jié)果數(shù)據(jù)庫(kù)由ABAQUS 分析得到,其中包含了模型數(shù)(Modeldata)和結(jié)果數(shù)據(jù)(Result data)。模型數(shù)據(jù)描述了分析中使用的模型,包括零件、裝配信息等。結(jié)果數(shù)據(jù)描述了分析得到的結(jié)果,包括步(step)、幀(frame)、場(chǎng)變量輸出(field output)和歷史變量輸出(historyoutput)等。在后處理的二次開(kāi)發(fā)過(guò)程中,就是讀取odb 對(duì)象中的數(shù)據(jù),進(jìn)行計(jì)算等相應(yīng)的處理,然后輸出為相應(yīng)形式供用戶(hù)查看的。

基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載的圖2


2
實(shí)現(xiàn)的關(guān)鍵技術(shù)

后處理是將有限元計(jì)算后的數(shù)據(jù)形象的顯示出來(lái)供用戶(hù)對(duì)計(jì)算結(jié)果進(jìn)行查看和分析的。首先明確所要實(shí)現(xiàn)的功能,并設(shè)計(jì)功能實(shí)現(xiàn)的流程,使用Python 調(diào)用ABAQUS 提供的方法編寫(xiě)程序?qū)Y(jié)果數(shù)據(jù)庫(kù)進(jìn)行處理。其中關(guān)鍵技術(shù)有文件的讀寫(xiě)和控制、數(shù)據(jù)的讀取、數(shù)據(jù)的處理和結(jié)果的輸出與查看等。

基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載的圖3



2.1 文件的讀寫(xiě)和復(fù)制


通過(guò)Python 語(yǔ)言提取Odb 文件中提供的OdbAccess 文件,實(shí)現(xiàn)對(duì)計(jì)算結(jié)果數(shù)據(jù)庫(kù)文件的二次開(kāi)發(fā),有時(shí)這種開(kāi)發(fā)還需要對(duì).dat 文件和.fil 文件進(jìn)行數(shù)據(jù)的讀取。



2.2 數(shù)據(jù)的讀取


數(shù)據(jù)讀取即使用Python 語(yǔ)言通過(guò)ABAQUS的腳本接口讀取odb 文件中的數(shù)據(jù)。ABAQUS 計(jì)算得到的數(shù)據(jù)是以面向?qū)ο蟮男问酱鎯?chǔ)在結(jié)果數(shù)據(jù)庫(kù)Odb 文件中的,要讀取文件中的數(shù)據(jù)必須找到數(shù)據(jù)所在的路徑,直接引用其中的變量或者使用數(shù)據(jù)對(duì)象的方法得到數(shù)據(jù)。



2.3 數(shù)據(jù)的處理


將提取出來(lái)的數(shù)據(jù)按照設(shè)計(jì)算法進(jìn)行計(jì)算,得到所需要的結(jié)果文件。



2.4 數(shù)據(jù)的輸入


將計(jì)算后得到的數(shù)據(jù)作為初始條件加載入新模型中進(jìn)行計(jì)算和結(jié)果的顯示。


3
應(yīng)用舉例

以高壓共軌系統(tǒng)中出油孔錐形面密封有效性分析為例,通過(guò)對(duì)預(yù)警過(guò)程和加載油壓的工作過(guò)程進(jìn)行模擬,分析錐面密封的有效性。首先建立錐面密封的簡(jiǎn)化模型并對(duì)預(yù)緊過(guò)程進(jìn)行分析,通過(guò)計(jì)算錐形面同管接頭之間的分離力(式1,2)預(yù)定義一定的分布力作用于螺母同管接頭的接觸面,得到錐形面間的接觸應(yīng)力、應(yīng)變及更新后的管接頭節(jié)點(diǎn)坐標(biāo)。在螺母的預(yù)緊工作完成后,加載油壓的工作過(guò)程不再施加預(yù)緊力,而在第一步中產(chǎn)生的相對(duì)位移作為新的初始條件加載在模型中并保持不變,這種加載無(wú)法直接設(shè)置多步分析得到,因此需要將上步分析中得到的應(yīng)力、應(yīng)變及更新的節(jié)點(diǎn)坐標(biāo)寫(xiě)入新的分析文件中進(jìn)行下一步的計(jì)算。使用Python 語(yǔ)言訪(fǎng)問(wèn)結(jié)果數(shù)據(jù)odbAccess,指定數(shù)據(jù)所在的路徑即相應(yīng)的步(step)和幀(frame),直接引用其中的使用數(shù)據(jù)對(duì)象(fieldOutput),將提取出來(lái)的數(shù)據(jù)寫(xiě)入文本文件中,作為初始條件加載入下一步的工作模型中進(jìn)行計(jì)算。

基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載的圖4



3.1 共軌管密封組件的安裝預(yù)緊力計(jì)算


針對(duì)實(shí)際密封錐面加工精度和質(zhì)量情況建立相應(yīng)的共軌管密封錐面部分的幾何模型,將計(jì)算所得預(yù)緊力使用分布載荷形式作用于螺母的預(yù)緊結(jié)合面上,使得管接頭外表面同共軌管錐面緊密貼合,保證油路密封。由于預(yù)緊螺母的形狀對(duì)于預(yù)緊力的施加沒(méi)有太大的影響,因此將六角螺母的形狀簡(jiǎn)化為圓柱形;為了盡量減小有限元計(jì)算中出現(xiàn)的不收斂現(xiàn)象,預(yù)緊螺紋部分也簡(jiǎn)化為內(nèi)圓柱面,預(yù)緊力則由作用在螺紋螺旋面上的摩擦力轉(zhuǎn)變?yōu)樽饔迷趦?nèi)圓柱面上的軸向力。密封面組件具有軸對(duì)稱(chēng)性,為了減少計(jì)算時(shí)間,在三維建模中只對(duì)一半的結(jié)構(gòu)進(jìn)行建模分析,在剖分面上通過(guò)邊界約束的施加來(lái)限定其軸對(duì)稱(chēng)性。管壁內(nèi)暫不施加油壓作用,進(jìn)行預(yù)緊力作用下的三體應(yīng)力- 位移分析,分析結(jié)果應(yīng)力分布如圖3 所示。

基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載的圖5



3.2 更新節(jié)點(diǎn)坐標(biāo)及相應(yīng)物理量


由上一步中得到的分析結(jié)果文件中,使用開(kāi)發(fā)的python 后處理程序,提取預(yù)緊過(guò)程達(dá)到變形穩(wěn)定后的三體組件各節(jié)點(diǎn)的位置文件,更新第二步中的節(jié)點(diǎn)的坐標(biāo)文件,以及相應(yīng)的應(yīng)力分布等場(chǎng)變量文件。導(dǎo)入更新后的節(jié)點(diǎn)坐標(biāo)文件,在這一預(yù)緊穩(wěn)態(tài)位置將預(yù)緊螺母和共軌管出油孔的預(yù)緊結(jié)合面“TIE”在一起模擬螺母預(yù)緊后的狀態(tài);同時(shí)將應(yīng)力分布作為初始條件增加到模型中,模擬螺紋預(yù)緊后錐形接觸面的狀態(tài),這一步可以看作是模擬管接頭的預(yù)緊安裝。此時(shí)共軌管錐面同管接頭之間存在了初始的接觸壓力,保證油路的密封性。

Python 的開(kāi)發(fā)文件首先需要導(dǎo)入odbAccess,使openOdb打開(kāi)指定的數(shù)據(jù)庫(kù),并指定需要提取數(shù)據(jù)的step 及frame,在這些數(shù)據(jù)中使用fieldOutputs 讀取需要的結(jié)果數(shù)據(jù),如位移、應(yīng)力及溫度等參數(shù),存入新建inp 文件中。在新的分析中,使用*initial conditions語(yǔ)句引用變量文件進(jìn)行計(jì)算。最終的分析結(jié)果如圖4 所示:

基于PYTHON的ABAQUS后處理開(kāi)發(fā) 附Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載的圖6


4
總結(jié)

使用ABAQUS 腳本接口及Python 語(yǔ)言,對(duì)ABAQUS 計(jì)算結(jié)果進(jìn)行處理,實(shí)現(xiàn)后處理所未提供功能,便于后續(xù)的分析過(guò)程。

使用Python 進(jìn)行二次開(kāi)發(fā),可以有效的查看并處理分析過(guò)程中所關(guān)心的數(shù)據(jù),并根據(jù)使用者要求進(jìn)行各種數(shù)據(jù)處理,提高了分析能力。

下載地址:Python語(yǔ)言在Abaqus中的應(yīng)用文檔下載

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

5
3
14