国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種讀取Ansys rst文件中節(jié)點(diǎn)力信息的方法

2022-10-20 06:27:42馬斌谷翠軍徐先偉黃艷麗
計(jì)算機(jī)輔助工程 2022年3期
關(guān)鍵詞:字節(jié)坐標(biāo)系焊縫

馬斌,谷翠軍,徐先偉,黃艷麗

(中車青島四方機(jī)車車輛研究所 重慶研發(fā)中心,重慶 401133)

0 引 言

近年來,隨著國(guó)民經(jīng)濟(jì)的發(fā)展,鐵路車輛的速度越來越快、運(yùn)量越來越多,這對(duì)列車結(jié)構(gòu)提出更高要求。列車結(jié)構(gòu)的損壞大多在焊接結(jié)構(gòu)上,其破壞形式一般為疲勞斷裂,故迫切需要找到一種準(zhǔn)確計(jì)算焊縫疲勞壽命的方法。

計(jì)算焊縫疲勞壽命時(shí),初始輸入值一般為靜強(qiáng)度計(jì)算中焊縫結(jié)構(gòu)的節(jié)點(diǎn)力。有限元計(jì)算分析軟件Ansys具有強(qiáng)大的強(qiáng)度分析能力,其輸出的靜強(qiáng)度計(jì)算的節(jié)點(diǎn)力信息包含在rst文件中。目前,對(duì)rst文件數(shù)據(jù)結(jié)構(gòu)的解析較少。本文對(duì)rst文件的數(shù)據(jù)結(jié)構(gòu)進(jìn)行解讀,指出關(guān)鍵焊縫節(jié)點(diǎn)力信息的讀取方法,為分析焊縫疲勞強(qiáng)度提供鋪墊。由于MATLAB的編程環(huán)境簡(jiǎn)單、完善,編程語言可操作性強(qiáng),數(shù)據(jù)處理能力強(qiáng)大,因此通過MATLAB讀取rst文件。

1 rst文件介紹

rst文件是Ansys對(duì)有限元模型進(jìn)行強(qiáng)度分析計(jì)算后自動(dòng)生成的擴(kuò)展名為.rst的數(shù)據(jù)文件,亦稱結(jié)果文件。rst文件包含有限元模型的數(shù)據(jù),還包含靜強(qiáng)度分析后各單元節(jié)點(diǎn)的應(yīng)力、應(yīng)變等信息。本文用MATLAB讀取rst文件,從中提取出單元節(jié)點(diǎn)的節(jié)點(diǎn)力數(shù)據(jù),方便后續(xù)采用主-曲線理論計(jì)算焊縫的疲勞壽命以及焊縫各節(jié)點(diǎn)位置處的應(yīng)力損傷比。

1.1 rst文件的生成

rst文件采用Fortran語言編寫,屬于二進(jìn)制文件。要讀取rst文件中包含的節(jié)點(diǎn)力數(shù)據(jù),首先需要知道整個(gè)rst文件的數(shù)據(jù)結(jié)構(gòu)形式。rst文件數(shù)據(jù)結(jié)構(gòu)的特殊性決定rst文件的特殊性,須將整個(gè)rst文件劃分成多個(gè)數(shù)據(jù)塊讀取。

1.2 rst文件的數(shù)據(jù)類型及結(jié)構(gòu)形式

rst文件包含很多信息,但組成每條完整信息的字節(jié)數(shù)不一定相同,字節(jié)類型也不盡相同。其中,字節(jié)類型包括int型、double型、char型、long int型等,long int型字節(jié)可以用2個(gè)int型字節(jié)表示。因此,用MATLAB讀取rst文件時(shí),必須以字節(jié)為單位進(jìn)行讀取,一次可以同時(shí)讀取幾個(gè)單位字節(jié),但需要確保一次讀取的字節(jié)所表達(dá)的意思是完整的。

用MATLAB讀取rst文件時(shí),如果命令框中顯示的結(jié)果無意義,那么需要改變一次性讀取字節(jié)的長(zhǎng)度或者類型,有時(shí)需要多次改變才能使讀出的數(shù)據(jù)意義完整。Ansys自帶二進(jìn)制文件翻譯,可將rst文件的數(shù)據(jù)塊結(jié)構(gòu)以文本文檔的形式顯示出來,驗(yàn)證rst文件的讀取進(jìn)度。圖1為本文模型的rst文件翻譯后部分文檔的截圖,分析圖1可知rst文件的文件頭包含的字節(jié)數(shù)及其代表的意義等。

圖1 rst文件翻譯后部分文檔截圖

rst文件的數(shù)據(jù)結(jié)構(gòu)形式并非一成不變,不同的有限元模型使用的單元類型不同、材料屬性不同、加載條件不同,都會(huì)導(dǎo)致rst文件的數(shù)據(jù)結(jié)構(gòu)模塊發(fā)生變化。參照Ansys自帶的幫助文檔,本文介紹一般情況下rst文件的數(shù)據(jù)結(jié)構(gòu)形式。

初始模型為1塊長(zhǎng)方形板,在不考慮溫度影響下對(duì)其進(jìn)行有限元網(wǎng)格劃分,單元類型為三維線性4節(jié)點(diǎn)殼單元SHELL 181。利用Ansys進(jìn)行靜態(tài)強(qiáng)度分析,形成rst文件。材料屬性為單一線性材料,板厚單一。

1.3 rst文件的文件頭信息

每個(gè)rst文件包括1個(gè)標(biāo)準(zhǔn)的文件頭,文件頭包含100個(gè)整形數(shù)據(jù)的字節(jié),每個(gè)字節(jié)對(duì)應(yīng)相應(yīng)的Iterm。這個(gè)文件頭包含一些rst文件信息,在利用MATLAB讀取rst文件時(shí)可以知道字節(jié)所表達(dá)的意思是否完整。當(dāng)然,一些Iterm的內(nèi)容是字符或者字符串形式,而MATLAB在讀取二進(jìn)制文件時(shí)不能顯示類似數(shù)據(jù),讀取比較麻煩,需要切換讀取類型,由整形int型變?yōu)閏har型或其他類型。

文件頭中的信息如下:

Iterm1表示文件數(shù),MATLAB讀取值為12,默認(rèn)為12;

Iterm2表示文件形式,Iterm2有1和-1共2個(gè)值可選,MATLAB讀取值為-1,表示此模型為大數(shù)形式;

Iterm3表示時(shí)間,MATLAB讀取值為171659,對(duì)照翻譯文檔中的時(shí)間信息,可知讀取進(jìn)度正確;

Iterm4表示日期,MATLAB讀取值為1212013,可知讀取字節(jié)的意思表達(dá)完整;

Iterm5表示單位,MATLAB讀取值為0,代表選擇單位為用戶自定義,符合模型單位;

Iterm6~9在表中無顯示,MATLAB讀取的信息在翻譯文檔中找不到對(duì)應(yīng)信息;

Iterm10表示軟件的版本號(hào),MATLAB不能顯示;

Iterm11為版本發(fā)布日期,MATLAB讀取值為20111024;

Iterm12~14、15~16、17~18、19、20~22、23~25分別為機(jī)器識(shí)別符、工作名稱、Ansys產(chǎn)品名稱、用戶名以及機(jī)器識(shí)別符,這些都是字符串,MATLAB不能顯示;

Iterm26為系統(tǒng)記錄尺寸,MATLAB讀取值為16384,即此rst文件中包含16384條記錄;

Iterm27為最大文件長(zhǎng)度,MATLAB讀取值為312525;

Iterm28為最大記錄號(hào),MATLAB讀取值為20;

Iterm31~38為工作名稱、字符串類型;

Iterm41~60為分析主題、字符串類型;

Iterm61~80為第一子標(biāo)題、字符串類型;

Iterm95為文件切割點(diǎn),查看翻譯文檔為未知;

Iterm97~98為長(zhǎng)整形文件尺寸,MATLAB讀取值為3125250,占2個(gè)整形字節(jié);

Iterm99~100無明顯意義,MATLAB讀取值為0654321;

至此,一個(gè)標(biāo)準(zhǔn)的100字節(jié)的文件頭表達(dá)完整。通過讀取此文件頭,可以知道此文件計(jì)算的時(shí)間、記錄長(zhǎng)度、軟件版本號(hào)等相關(guān)信息。這些信息是整個(gè)rst文件的概括特征,并沒有各節(jié)點(diǎn)的節(jié)點(diǎn)力等類似數(shù)據(jù),要想知道類似信息,還需要繼續(xù)往下讀取。讀取方法與上述類似,不再詳述。

在后續(xù)的rst文件讀取中,可以知道單元號(hào)、節(jié)點(diǎn)號(hào)、節(jié)點(diǎn)坐標(biāo)、材料屬性、實(shí)常數(shù)等有限元模型的基本信息,還可以知道各單元節(jié)點(diǎn)的應(yīng)力、應(yīng)變以及節(jié)點(diǎn)自由度等相關(guān)信息,所求的節(jié)點(diǎn)力信息就包含在其中。讀取完整個(gè)rst文件,就可以知道節(jié)點(diǎn)力信息具體在哪里。注意:這些節(jié)點(diǎn)力信息屬于所有節(jié)點(diǎn),后文會(huì)介紹怎樣提取焊縫節(jié)點(diǎn)的節(jié)點(diǎn)力。

2 有限元模型的建立

2.1 研究對(duì)象

本文的有限元模型基于有限元前處理軟件HyperMesh建立,其有限元網(wǎng)格劃分前處理功能強(qiáng)大,且軟件用戶界面良好,便于操作。HyperMesh支持多種求解器對(duì)應(yīng)文件的輸入、輸出格式,在使用HyperMesh劃分完三維幾何模型的有限元網(wǎng)格后,可以直接把建好的有限元模型轉(zhuǎn)化為不同求解器對(duì)應(yīng)的文件格式,利用相應(yīng)的求解器進(jìn)行后續(xù)的分析計(jì)算。HyperMesh中求解器為Ansys的cdb文件和Abaqus的inp文件,其中包含焊縫信息。由于讀取inp文件為焊縫信息,不涉及節(jié)點(diǎn)力,因此此處不展開。

不同的rst文件具有不同的數(shù)據(jù)結(jié)構(gòu),為便于解析,本文取1塊100 mm×100 mm×10 mm的鋼板,其彈性模量=2.1×10MPa,泊松比=0.3,密度=7.85×10g/mm。其幾何模型見圖2。

圖2 幾何模型

2.2 有限元模型建立及工況加載

劃分有限元模型,網(wǎng)格尺寸為5 mm。有限元模型見圖3,單元數(shù)為400個(gè),節(jié)點(diǎn)數(shù)為441個(gè),采用三維4節(jié)點(diǎn)殼單元SHELL 181劃分。

圖3 有限元網(wǎng)格模型

疲勞加載工況為:鋼板在長(zhǎng)度方向上受最大拉力為2 100 N的脈動(dòng)循環(huán)載荷,循環(huán)次數(shù)為1×10次。工況說明:設(shè)置最大拉力為2 100 N主要是為加載方便,鋼板沿寬度方向正好有21個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)上可加載整100 N的拉力。

脈動(dòng)循環(huán)是一種典型循環(huán)方式,在一定的條件下,脈動(dòng)循環(huán)方式可以與對(duì)稱循環(huán)方式相互轉(zhuǎn)化。在后續(xù)的程序準(zhǔn)確性驗(yàn)證中,可以把每個(gè)節(jié)點(diǎn)上的載荷調(diào)整為50 N,循環(huán)方式改為對(duì)稱循環(huán),循環(huán)次數(shù)不變。查看得到的焊縫應(yīng)力損傷比結(jié)果,是否與100 N脈動(dòng)循環(huán)情況下的計(jì)算結(jié)果一致。建立完整的有限元模型后,將cdb文件導(dǎo)入到Ansys中進(jìn)行計(jì)算,即可得到rst文件,此文件包含程序計(jì)算所需的節(jié)點(diǎn)力信息數(shù)據(jù)。

2.3 焊縫單元及焊縫節(jié)點(diǎn)建立

1條完整的焊縫包含1排焊縫單元和1排焊縫節(jié)點(diǎn)。焊縫節(jié)點(diǎn)的位置即是真實(shí)模型中焊縫的焊趾或焊跟部位的位置,而焊縫單元的位置即是真實(shí)焊縫中緊鄰焊縫焊趾或焊跟部位的那一部分母材位置。用1排焊縫單元和1排焊縫節(jié)點(diǎn)才能表達(dá)1條完整焊縫的原因如下:

本文使用SHELL 181單元建立有限元模型,SHELL 181單元是三維4節(jié)點(diǎn)單元,每個(gè)單元包含4個(gè)節(jié)點(diǎn),單元中的節(jié)點(diǎn)會(huì)被相鄰單元共用。同一個(gè)節(jié)點(diǎn)對(duì)相鄰不同單元的節(jié)點(diǎn)力不一定相同,其與單元所處的位置、模型的形狀、載荷和約束有一定關(guān)系。僅憑節(jié)點(diǎn)編號(hào)提取出的節(jié)點(diǎn)力并不準(zhǔn)確,單用1排節(jié)點(diǎn)表示1條焊縫并不能準(zhǔn)確提供疲勞計(jì)算所需的節(jié)點(diǎn)力信息。從單元坐標(biāo)系的角度講,每個(gè)單元都有其對(duì)應(yīng)的單元坐標(biāo)系,而單元坐標(biāo)系的建立需要單元的3個(gè)節(jié)點(diǎn)才能確定,并且單元坐標(biāo)系可決定焊縫的走向以及計(jì)算時(shí)的先后順序,因此需要建立1排包含焊縫節(jié)點(diǎn)的焊縫單元,并且這些焊縫單元需要在對(duì)應(yīng)焊縫節(jié)點(diǎn)的同側(cè),確保計(jì)算和單元坐標(biāo)系的有序性。

在有限元模型中建立焊縫。為使實(shí)驗(yàn)數(shù)據(jù)更具有參考性,可建立2條焊縫。鋼板的左、右2邊各1條,2條焊縫走向一致,焊縫的節(jié)點(diǎn)數(shù)和焊縫單元數(shù)也相同。焊縫1的焊縫節(jié)點(diǎn)數(shù)為21,單元數(shù)為20;焊縫2的節(jié)點(diǎn)數(shù)為21,單元數(shù)為20。2條焊縫的節(jié)點(diǎn)編號(hào)和單元編號(hào)見表1。建立焊縫時(shí),單元和節(jié)點(diǎn)都按順序選擇,而單元編號(hào)和節(jié)點(diǎn)編號(hào)并非按照編號(hào)大小依次排列。

表 1 焊縫的單元編號(hào)和節(jié)點(diǎn)編號(hào)

在2條焊縫的建立過程中,焊縫單元和焊縫節(jié)點(diǎn)都按順序沿同一方向選取,便于后續(xù)計(jì)算,更省去有限元模型單元坐標(biāo)系建立過程中的麻煩。建立的焊縫模型見圖4。

圖4 有限元模型中焊縫

在建立焊縫時(shí),需要注意焊縫單元集名稱和焊縫節(jié)點(diǎn)集名稱的寫法。由于在讀取inp文件控件的回調(diào)函數(shù)中,對(duì)焊縫信息的提取是以程序需要識(shí)別特定的焊縫名稱為前提的,因此有限元模型中的焊縫名稱需要特定的寫法:焊縫單元需要寫成weld_1_e,焊縫節(jié)點(diǎn)需要寫成weld_1_n。名稱中間的數(shù)字可以隨著焊縫條數(shù)的增加而增大。1排焊縫單元對(duì)應(yīng)1排焊縫節(jié)點(diǎn),焊縫單元與焊縫節(jié)點(diǎn)依次建立。建立好焊縫模型后,導(dǎo)出對(duì)應(yīng)求解器為Abaqus的inp文件。

以上完成有限元模型的建立,在Ansys模板下生成對(duì)應(yīng)的cdb文件,在Abaqus模板下生成對(duì)應(yīng)的inp文件。先把cdb文件導(dǎo)入Ansys中進(jìn)行靜強(qiáng)度計(jì)算,得到的結(jié)果是模型在疲勞工況作用下所受的應(yīng)力范圍,或稱應(yīng)力幅值,其生成的rst文件中包含節(jié)點(diǎn)力信息,也稱節(jié)點(diǎn)力幅值。得到rst文件后,即可進(jìn)行文件的讀入和計(jì)算。

3 rst文件中節(jié)點(diǎn)力信息的讀取

為掌握rst文件的路徑和文件名,在讀取rst文件時(shí)還需要用到uigetfile命令和fopen命令,且以只讀方式打開rst文件。rst文件屬于二進(jìn)制數(shù)據(jù)文件,不同的模型對(duì)應(yīng)的rst文件的字節(jié)長(zhǎng)度不一樣,在讀取rst文件時(shí)需按順序存儲(chǔ)每個(gè)字節(jié)的信息。rst文件模型單元的節(jié)點(diǎn)力信息并不是完全按照節(jié)點(diǎn)編號(hào)從小到大依次排列的,其排列方式與單元的節(jié)點(diǎn)順序有一定關(guān)系。每個(gè)單元包含4個(gè)節(jié)點(diǎn),這4個(gè)節(jié)點(diǎn)按照一定的順序(或順時(shí)針或逆時(shí)針)排列,每個(gè)節(jié)點(diǎn)可以有1種或多種節(jié)點(diǎn)力,若其相鄰的單元數(shù)是4個(gè),則此節(jié)點(diǎn)會(huì)有4種不同的節(jié)點(diǎn)力,見圖5。表2為節(jié)點(diǎn)的不同節(jié)點(diǎn)力,表中、表示沿整體坐標(biāo)系、和這3個(gè)方向的節(jié)點(diǎn)力,表示3個(gè)方向的節(jié)點(diǎn)力矩。

圖5 與4個(gè)單元相鄰的節(jié)點(diǎn)示意

表 2 節(jié)點(diǎn)的不同節(jié)點(diǎn)力

因此,在讀取節(jié)點(diǎn)力時(shí)需要甄別哪些是焊縫節(jié)點(diǎn)的節(jié)點(diǎn)力信息。單純按照節(jié)點(diǎn)編號(hào)的順序讀取焊縫的節(jié)點(diǎn)力信息,不能得到想要的節(jié)點(diǎn)力信息。焊縫信息包含單元編號(hào)和節(jié)點(diǎn)編號(hào),其中單元編號(hào)尤為重要,其決定所要讀取的節(jié)點(diǎn)力信息。

知道節(jié)點(diǎn)力信息的排列方式后,就不難提取出焊縫節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)力信息。為便于后續(xù)使用數(shù)據(jù)方便,按照焊縫信息將節(jié)點(diǎn)力信息也放進(jìn)元胞矩陣中,并且節(jié)點(diǎn)力信息的排列順序與相應(yīng)焊縫的節(jié)點(diǎn)編號(hào)順序?qū)?yīng)。在提取并存放完所有的焊縫節(jié)點(diǎn)力數(shù)據(jù)后,需要對(duì)節(jié)點(diǎn)力進(jìn)行轉(zhuǎn)化。

后續(xù)結(jié)構(gòu)應(yīng)力計(jì)算所使用的節(jié)點(diǎn)力是單元坐標(biāo)系(見圖6)下的節(jié)點(diǎn)力,而存放好的節(jié)點(diǎn)力是整體坐標(biāo)系下的節(jié)點(diǎn)力,需要將整體坐標(biāo)系下的節(jié)點(diǎn)力轉(zhuǎn)化為單元坐標(biāo)系下的節(jié)點(diǎn)力。使用for循環(huán)語句對(duì)節(jié)點(diǎn)力數(shù)據(jù)逐個(gè)進(jìn)行轉(zhuǎn)化,轉(zhuǎn)化時(shí)使用方向余弦向量。單元坐標(biāo)系需要3個(gè)點(diǎn)才能確定,而焊縫單元包含2個(gè)焊縫節(jié)點(diǎn),需要再提取出此單元包含的另外一個(gè)節(jié)點(diǎn)的單元坐標(biāo)系,同時(shí)確定單元節(jié)點(diǎn)之間的距離,即單元寬度。這些功能可以在讀取節(jié)點(diǎn)力文件時(shí)完成,從而得到單元坐標(biāo)系下的節(jié)點(diǎn)力。

圖6 單元坐標(biāo)系示意

整個(gè)讀取過程可按照以下5個(gè)步驟進(jìn)行:

(1)通過HyperMesh建模及Ansys有限元計(jì)算,得到rst文件。

(2)建模時(shí)規(guī)定命名規(guī)則,即在Abaqus模板下生成對(duì)應(yīng)的inp文件。采用HyperMesh在Abaqus模板下生成對(duì)應(yīng)的inp文件,其中記錄單元編號(hào)及節(jié)點(diǎn)編號(hào)。

(3)使用MATLAB讀取文件,使用uigetfile命令和fopen命令打開文件。

(4)根據(jù)文件頭釋義,結(jié)合數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度讀取文件,并將整體坐標(biāo)系轉(zhuǎn)化為單元坐標(biāo)系。

(5)根據(jù)焊縫節(jié)點(diǎn)及焊縫單元的排列規(guī)則,進(jìn)一步讀取相應(yīng)的節(jié)點(diǎn)力信息。

4 結(jié)果對(duì)比

將上述方法得到的節(jié)點(diǎn)力信息轉(zhuǎn)化為等效結(jié)構(gòu)應(yīng)力,并選擇合適的-曲線,即可計(jì)算出焊縫的應(yīng)力損傷比。將該結(jié)果與疲勞仿真軟件FE-WELD的計(jì)算結(jié)果進(jìn)行對(duì)比,見表3。用本文所述方法得到的節(jié)點(diǎn)力有一定的準(zhǔn)確性,并且2種計(jì)算結(jié)果具有一定的相似性,見圖7。

表 3 焊縫1的應(yīng)力損傷比結(jié)果對(duì)比

圖7 2種計(jì)算結(jié)果對(duì)比

5 結(jié)束語

本文采用三維4節(jié)點(diǎn)殼單元建立典型方形鋼板的有限元模型,加載并計(jì)算后得到包含單元節(jié)點(diǎn)力信息的rst文件。重點(diǎn)介紹rst文件的數(shù)據(jù)結(jié)構(gòu)及節(jié)點(diǎn)力信息的排序規(guī)則,以及利用MATLAB讀取節(jié)點(diǎn)力信息的方法。將讀取的節(jié)點(diǎn)力轉(zhuǎn)化后得到的結(jié)果與專業(yè)疲勞仿真軟件的計(jì)算結(jié)果進(jìn)行對(duì)比,驗(yàn)證讀取信息的準(zhǔn)確性以及讀取方法的有效性,為焊縫節(jié)點(diǎn)力的獲得提供一種方法。

猜你喜歡
字節(jié)坐標(biāo)系焊縫
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
基于焊縫余高對(duì)超聲波探傷的影響分析
TP347制氫轉(zhuǎn)油線焊縫裂紋返修
No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
解密坐標(biāo)系中的平移變換
坐標(biāo)系背后的故事
簡(jiǎn)談MC7字節(jié)碼
基于重心坐標(biāo)系的平面幾何證明的探討
機(jī)器人在輪輞焊縫打磨工藝中的應(yīng)用
光譜分析在檢驗(yàn)焊縫缺陷中的應(yīng)用
根河市| 高邑县| 馆陶县| 奇台县| 大理市| 兰溪市| 婺源县| 铁岭市| 上思县| 连山| 江油市| 濉溪县| 新建县| 无棣县| 共和县| 上蔡县| 姚安县| 腾冲县| 延庆县| 江源县| 庆元县| 绥化市| 平陆县| 东丽区| 马公市| 札达县| 平潭县| 和政县| 深圳市| 临西县| 治县。| 奈曼旗| 濮阳县| 吐鲁番市| 东乡族自治县| 大渡口区| 清徐县| 登封市| 习水县| 江川县| 阳东县|