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

?

焊接溫度場計(jì)算方法及軟件程序設(shè)計(jì)

2019-04-20 11:26仇舒凡魏艷紅
機(jī)械制造文摘·焊接分冊 2019年6期

仇舒凡 魏艷紅

摘要: ?對焊接溫度場的計(jì)算模擬進(jìn)行了研究,開發(fā)了一個具有友好的人機(jī)交互界面以及良好的計(jì)算能力的應(yīng)用軟件程序。通過對焊接溫度場有限元模型的求解研究,自行編制Fortran程序?qū)崿F(xiàn)了不同接頭形式的模型建立以及節(jié)點(diǎn)溫度的求解。采用C+ +/MFC實(shí)現(xiàn)了具有菜單區(qū)、對話區(qū)和圖形區(qū)的操作界面的搭建,并通過動態(tài)鏈接庫(DLL)的方法實(shí)現(xiàn)了兩種程序的混合編程。結(jié)果表明,該系統(tǒng)軟件具有智能化和流程化的有限元建模功能,用戶在操作界面根據(jù)提示輸入構(gòu)件相關(guān)參數(shù)即可完成焊接接頭溫度場模型的建立及計(jì)算,并可以根據(jù)需求查看溫度結(jié)果。對比該系統(tǒng)軟件和商業(yè)有限元軟件的計(jì)算結(jié)果,驗(yàn)證了程序的可行性。

關(guān)鍵詞: ?焊接溫度場;有限元模擬;混合編程;交互界面

中圖分類號: TG 409

Numerical simulation method of welding temperature field and its software program design

Qiu Shufan, Wei Yanhong

(College of Material Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China)

Abstract: ?In this paper, the numerical simulationmethod of welding temperature field was studied. An application software program with friendly interactive interface and good calculation ability was developed. Based on the research about the solving method of the finite element model of the welding temperature field, the seld-designed Fortran program was developed to realize the modeling and solving of different types of joints. C+ +/MFC was used to build the operation interface with menu area, dialog area and graphic area, and the method of dynamic link library (DLL) was used to realize the mixed programming of the two programs. The results showed that the software had the ability to build finite element model intelligently. The users could build the temperature field model by entering the relevant parameters of the welded joint according to the prompts on the interface. The calculation results of this program were compared with those of one commercial finite element software, which verified the feasibility of this program.

Key words: ?welding temperature field; finite element simulation; mixed programming; interactive interface

0 前言

焊接溫度場的有限元計(jì)算在焊接結(jié)構(gòu)質(zhì)量分析方面得到越來越廣泛的應(yīng)用。從20世紀(jì)60年代開始,國內(nèi)外學(xué)者對各種維度的有限元模型進(jìn)行研究 [1-2]。A. A. Reddy等人 [ 3]開發(fā)了可計(jì)算直流鎢極氬弧焊溫度場分布的三維瞬態(tài)非線性有限元程序,并驗(yàn)證了計(jì)算熱循環(huán)曲線和焊縫尺寸的正確性。汪建華等人 [ 4]對三維非線性瞬態(tài)焊接溫度場進(jìn)行了有限元計(jì)算,并提出了提高計(jì)算精度的幾個方法。目前三維瞬態(tài)熱傳導(dǎo)模型可以較為準(zhǔn)確地描述焊接溫度場的變化過程。

現(xiàn)在市面上已有許多國外的商業(yè)軟件可以實(shí)現(xiàn)溫度場的計(jì)算,如MSC.MARC,ANSYS,ABAQUS,SYSWELD等,具有強(qiáng)大的分析功能,可適用于各領(lǐng)域的模擬計(jì)算,但其價格昂貴,且操作復(fù)雜,對用戶的要求較高。國內(nèi)的梁陳劍 [5]建立了遠(yuǎn)程焊接數(shù)值模擬系統(tǒng),可實(shí)現(xiàn)典型接頭智能化二維有限元建模。高嘉爽等人 [6]開發(fā)系統(tǒng)將復(fù)雜的前處理替換為逼真的虛擬世界操作,可以更好地確定焊接順序。大多數(shù)研究以已有的有限元軟件為基礎(chǔ),對其進(jìn)行二次開發(fā),使其適用于實(shí)際問題。國內(nèi)還很少有應(yīng)用廣泛的、具有自主知識產(chǎn)權(quán)的有限元軟件,因此,有限元軟件的自主開發(fā)是中國在焊接模擬領(lǐng)域研究發(fā)展的必然趨勢。對焊接過程核心求解程序的研究,以及對軟件界面實(shí)現(xiàn)程序的研究,具有十分重要的應(yīng)用價值。

Fortran語言在科學(xué)計(jì)算方面具有優(yōu)勢,是應(yīng)用廣泛的數(shù)值計(jì)算編程語言,標(biāo)準(zhǔn)化程度高,有著高精度的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算結(jié)構(gòu),且易與其它編程語言交互 [7]。采用Fortran語言實(shí)現(xiàn)溫度場有限元模型的建立和求解計(jì)算,但Fortran語言是面向過程的,在實(shí)現(xiàn)人機(jī)交互方面不如面向?qū)ο蟮恼Z言方便。

C+ +具有較強(qiáng)的圖形處理功能,是Windows系統(tǒng)上常用的圖形界面程序開發(fā)平臺之一。借助于微軟基礎(chǔ)類庫(MFC)在Visual C+ +環(huán)境下開發(fā)Windows程序,它封裝了Windows API(應(yīng)用程序編程接口)的數(shù)據(jù)結(jié)構(gòu)和功能,還提供了一個應(yīng)用程序框架,大大提高了軟件開發(fā)效率 [8]。將Fortran與C+ +程序進(jìn)行混合編程,從而充分發(fā)揮兩種語言的優(yōu)勢,開發(fā)出具有良好的計(jì)算能力和友好的人機(jī)交互界面的應(yīng)用程序。

文中介紹了采用Fortran和C+ +程序的混合編程,該程序采用Fortran語言實(shí)現(xiàn)焊接溫度場有限元模型的建立以及求解計(jì)算,基于C+ +/MFC開發(fā)人機(jī)交互界面,實(shí)現(xiàn)流程化建模。

1 溫度場計(jì)算Fortran程序設(shè)計(jì)

1.1 溫度場有限元方程

1.1 溫度場有限元方程

采用目前應(yīng)用廣泛的三維非線性瞬態(tài)熱傳導(dǎo)模型描述焊接接頭溫度場,其導(dǎo)熱微分方程 [4]如式(1)所示。 ??ρc T t = ?x? kx T x? + ?y? ky T y? + ?z? kz T z? +Q? (1)

式中:T為與坐標(biāo)x,y,z及時間t相關(guān)的溫度場函數(shù);ρ為密度;c為比熱容;kx,ky,kz分別為沿著x,y,z軸的熱導(dǎo)率;Q為內(nèi)部熱源強(qiáng)度。對方程進(jìn)行簡化,在焊接過程中不存在內(nèi)部熱源,因此Q=0,假設(shè)焊接材料是各向同性的,則有kx,ky,kz是相等的。求解導(dǎo)熱微分方程需要考慮邊界條件,即焊接時的初始條件和邊界條件,可將方程寫成式(2)的剛度矩陣和外載荷的形式 [4]。

C t T+KT=P

(2) 式中:C為熱容矩陣,和材料熱物理性能參數(shù)有關(guān);t為時間;T為溫度矩陣;K為熱傳導(dǎo)矩陣;P為溫度載荷矩陣。

對空間和時間進(jìn)行離散后采用有限元法中常用的伽遼金法對該微分方程進(jìn)行化簡,將非線性微分方程組化成非線性代數(shù)方程組,最后采用高斯消去法進(jìn)行求解。

1.2 程序流程設(shè)計(jì)

有限元法用統(tǒng)一的觀點(diǎn)對節(jié)點(diǎn)列出計(jì)算格式,并以矩陣的形式保存,有利于采用計(jì)算機(jī)進(jìn)行求解。采用Fortran程序?qū)崿F(xiàn)計(jì)算的流程,如圖1所示。

在輸入幾何模型參數(shù)時,首先定義一個變量MeshType,用以區(qū)分焊接模型的接頭形式,若MeshType=1,則為平板對接接頭,焊接的兩塊板材關(guān)于焊接對稱,為減小計(jì)算量,采用建立1/2模型的方法進(jìn)行模擬計(jì)算;若MeshType=3,則為T形接頭,建立完整的接頭模型。

而后對幾何模型進(jìn)行單元劃分和節(jié)點(diǎn)編號,將每個單元的8個節(jié)點(diǎn)編號和6個面編號分別存入相應(yīng)數(shù)組供后續(xù)使用。

在焊接過程中初始條件一般為焊接件的初始溫度,即為室溫。在焊接過程中熱量以不同的方式傳遞, 在單元相接觸的面之間為熱傳導(dǎo),而在單元邊界表面 和環(huán)境之間則為對流換熱。因此需要判斷每個單元的6個面是否為構(gòu)件表面,若是邊界表面,則為其加載邊界條件,即環(huán)境溫度和換熱系數(shù)。在焊接模擬時,最重要的是選擇合適的熱源模型模擬焊接過程的熱作用,該程序提供了高斯表面熱源和雙橢球體熱源模型,可選擇合適的熱源模型并輸入相應(yīng)的模型參數(shù)。

數(shù)據(jù)讀入完成,則將初始條件、邊界條件、材料參數(shù)、熱源加載到相應(yīng)的單元節(jié)點(diǎn)上,即為每個單元定義信息,并建立單元剛度矩陣,然后將其組裝成總體剛度矩陣并求解,就可以得到在每個計(jì)算時間步下每個節(jié)點(diǎn)的溫度。

2 C+ +界面程序設(shè)計(jì)

程序界面分為3個區(qū)域:菜單區(qū)、對話區(qū)和圖形區(qū),如圖2所示。菜單區(qū)是各個模塊的功能入口,包含整個接頭溫度場模擬的流程,用戶可依次點(diǎn)擊菜單項(xiàng),進(jìn)入相應(yīng)流程的對話框。對話區(qū)則用于顯示與菜單項(xiàng)相關(guān)的對話框,用戶在此區(qū)域輸入模型相關(guān)的參數(shù)。圖形區(qū)可顯示三維模型。

在菜單區(qū)采用樹形控件(tree control)實(shí)現(xiàn)有限元建模流程的建立,根據(jù)如下步驟創(chuàng)建樹形控件:①首先創(chuàng)建一個CTreeCtrl類的成員變量m_TreeCtrl,將其與樹形控件資源相關(guān)聯(lián);②然后為樹形控件的每一個分支節(jié)點(diǎn)創(chuàng)建一個HTREEITEM類型的句柄,便于對該控件進(jìn)行訪問和操作;③最后在OnInitialUpdate函數(shù)中對樹形控件進(jìn)行初始化,首先調(diào)用SetImageList函數(shù)設(shè)置圖標(biāo)序列,再調(diào)用InsertItem函數(shù),傳入圖標(biāo)序列的索引,為樹形控件的分支節(jié)點(diǎn)添加圖標(biāo),同時為其添加標(biāo)題。最終建立如圖3所示的樹狀流程。

用戶使用該系統(tǒng)軟件時,程序?qū)⑼ㄟ^OnTvnSelchangedTree函數(shù)響應(yīng)鼠標(biāo)單擊消息,并定義一個變量nView存儲用戶選擇的分支節(jié)點(diǎn)信息,該變量傳入對話區(qū)控制程序,根據(jù)nView的值即可顯示相應(yīng)的對話框,從而進(jìn)行模型參數(shù)的輸入操作。

輸入?yún)?shù)后單擊確定按鈕,參數(shù)將按照一定的格式存至“.txt”文件中,供Fortran求解程序調(diào)用。圖4為輸入網(wǎng)格劃分參數(shù)的對話框,首先選擇接頭形式,若為T形接頭,則在下方輸入框中輸入構(gòu)件一和構(gòu)件二的參數(shù),即在x,y,z各方向的節(jié)點(diǎn)數(shù)以及網(wǎng)格單元的長度;若為對接接頭,則只需要輸入構(gòu)件一的參數(shù)即可。

根據(jù)流程依次完成各分支的參數(shù)輸入,并在焊接工況對話框下完成焊接時間等的設(shè)置,確定參數(shù)輸入完畢,則單擊“計(jì)算”按鈕即可調(diào)用Fortran程序進(jìn)行有限元計(jì)算。在計(jì)算結(jié)果中可將程序計(jì)算得到的節(jié)點(diǎn)溫度進(jìn)行可視化顯示,查看其溫度場云圖分布結(jié)果。

3 Fortran與C+ +程序的混合編程

3.1 關(guān)于混合編程

Fortran和C+ +程序的混合編程有多種方法:源碼、可執(zhí)行文件EXE、動態(tài)鏈接庫(dynamic link library, DLL)、COM組件。文中采用動態(tài)鏈接庫DLL的方法實(shí)現(xiàn)混合編程。動態(tài)鏈接庫DLL是一種基于Windows的編程規(guī)范,只要遵守DLL的規(guī)范和策略,有正確調(diào)用接口,不管是采用何種編程語言或編譯器編制的DLL都有通用性。

Fortran和C+ +程序在例程命名、參數(shù)傳遞等方面的規(guī)則,即為調(diào)用約定,是不相同的,因此在要實(shí)現(xiàn)兩者的混合編譯,需要協(xié)調(diào)兩種語言的調(diào)用約定。Fortran程序的調(diào)用約定有缺省約定、C,STDCALL;C+ +程序的調(diào)用約定有_cdecl,_stdcall。兩者可匹配的調(diào)用約定,如表1所示 [ 9]。

3.2 生成DLL文件

將焊接溫度場Fortran求解程序改編成DLL文件,首先由于DLL中不存在主程序,需要將Fortran程序中的主程序改為子程序,即將PROGRAM WTEMP改寫為SUBROUTINE WTEMP(),括號中為參數(shù)項(xiàng);

其次,對于在Fortran程序中需要讀入的數(shù)據(jù),可以通過C+ +程序中的變量或者數(shù)組將用戶輸入的參數(shù)傳入Fortran程序中進(jìn)行計(jì)算,也可以采用從文件讀入數(shù)據(jù)的方法。由于焊接溫度場計(jì)算過程中涉及構(gòu)件尺寸、材料參數(shù)、熱源參數(shù)等數(shù)據(jù),且涉及到實(shí)型、整型、數(shù)組等數(shù)據(jù)類型,若采用參數(shù)傳遞的方式,則需要對Fortran程序相應(yīng)的語句進(jìn)行修改,容易出現(xiàn)錯誤。因此,F(xiàn)ortran和C+ +程序的數(shù)據(jù)讀入和輸出都采用打開文件讀取和寫入的方式,以實(shí)現(xiàn)數(shù)據(jù)的傳遞。

Fortran語言不區(qū)分大小寫,但DLL函數(shù)入口點(diǎn)對字符大小寫要求嚴(yán)格,在生成DLL時,例程名將被轉(zhuǎn)換成全部大寫或小寫。Fortran程序的調(diào)用約定選用C約定 [ 10-11]。

Fortran程序中參數(shù)傳遞有引用參數(shù)傳遞和值參數(shù)傳遞兩種方式,分別傳遞參數(shù)地址和參數(shù)值。文中Fortran程序選用了C約定,則參數(shù)傳遞應(yīng)為值傳遞。在程序外部例程中添加如下聲明:

!DEC$ ATTRIBUTES DLLEXPORT :: WTEMP

!DEC$ ATTRIBUTES C, ALIAS: Wtemp :: ?WTEMP

!DEC$ ATTRIBUTES VALUE :: temp

首行為導(dǎo)出聲明,第二行表示調(diào)用約定為C約定,第三行表示規(guī)定參數(shù)temp為值傳遞。

3.3 調(diào)用DLL文件

首先在C+ +界面程序最開始聲明與Fortran程序匹配的調(diào)用約定:

typedef void(_cdecl * WTEMP)(int temp);

然后在求解按鈕對應(yīng)的程序處調(diào)用Fortran程序生成的DLL文件,文中采用顯式調(diào)用的方法,代碼如下所示。

HMODULE hDLL;

hDLL=::LoadLibrary(_T("Wtemp.dll"));

if(! hDLL)

{AfxMessageBox(_T("調(diào)用DLL失敗"));

FreeLibrary(hDLL);

return;}

WTEMP Wtemp=(WTEMP)GetProcAddress (hDLL, ?"Wtemp");

if (! Wtemp)

{AfxMessageBox(_T("找不到函數(shù)文件"));

FreeLibrary(hDLL);

return;}

Wtemp(temp);

FreeLibrary(hDLL);

通過LoadLibrary函數(shù)裝載DLL,再通過GetProcAddress函數(shù)獲得Fortran函數(shù)的地址,即可調(diào)用該函數(shù),最后通過FreeLibrary函數(shù)釋放DLL。這樣通過單擊求解按鈕,即可實(shí)現(xiàn)調(diào)用Fortran程序根據(jù)用戶在界面輸入的參數(shù)建立模型并求解。

4 實(shí)例

采用鎢極氬弧焊對TA15鈦合金對接接頭進(jìn)行焊接,并采用此程序?qū)ζ溥M(jìn)行溫度場計(jì)算。焊接構(gòu)件為100 mm×50 mm×2 mm的鈦合金板材, 在程序界面輸入?yún)?shù)將其幾何模型劃分為1.25 mm×1.25 mm×1 mm的六面體單元。依次單擊樹狀分支完成模型的建立,TA15材料參數(shù)在材料庫中選擇已有材料牌號,如圖5所示。在圖6的焊接工藝庫中選擇電弧電壓、焊接電 流等參數(shù),選擇雙橢球熱源模型對鎢極氬弧焊的熱作用進(jìn)行模擬,輸入熱源模型參數(shù)即可,如圖7所示。全部設(shè)置完成后單擊計(jì)算按鈕進(jìn)行計(jì)算。

在同一臺計(jì)算機(jī)中進(jìn)行計(jì)算,就求解時間而言,采用該系統(tǒng)的計(jì)算時間為360 s,而采用某商業(yè)有限元軟件的計(jì)算時間為550 s,可見該系統(tǒng)在計(jì)算效率上有一定的優(yōu)勢。

圖8a和圖8b分別為經(jīng)此程序和商業(yè)有限元軟件模擬計(jì)算以及后處理得到的同一時刻的溫度場云圖??梢钥吹剑瑑烧哂?jì)算得到的峰值溫度基本一致,但程序計(jì)算得到的云圖各溫度的邊界不夠清晰,因此繪制等溫線表示溫度分布。圖9為構(gòu)件上表面的溫度分布,兩者的溫度場形狀皆為拖尾的半橢圓狀,驗(yàn)證了此程序計(jì)算結(jié)果的準(zhǔn)確性。

5 結(jié)論

(1)采用Fortran語言編制程序?qū)崿F(xiàn)了不同接頭形式的有限元模型的建立和求解,可求得每個時間步下所有節(jié)點(diǎn)的溫度。

(2)基于C+ +/MFC在圖形處理方面的優(yōu)勢,建立了具有菜單區(qū)、對話區(qū)和圖形區(qū)的操作界面。界面包含了有限元建模的流程,用戶根據(jù)界面提示依次輸入模型參數(shù),即可實(shí)現(xiàn)模型的建立。

(3)采用動態(tài)鏈接庫的方法實(shí)現(xiàn)Fortran求解程序和C+ +界面程序混合編程,充分發(fā)揮了兩種語言的不同優(yōu)勢,形成了一個具有良好的計(jì)算能力和友好的操作界面的軟件程序。

(4)采用該系統(tǒng)和某商業(yè)有限元軟件對實(shí)例進(jìn)行計(jì)算,發(fā)現(xiàn)該系統(tǒng)的求解時間更短;對比兩者的計(jì)算結(jié)果,驗(yàn)證了此程序計(jì)算結(jié)果的準(zhǔn)確性。? [HT5H]參考文獻(xiàn)

[1] ?Wilson E L, Nickell R E. Application of the finite element method to heat conduction analysis[J]. Nuclear Engineering & Design, 1966, 4(3):276-286.

[2] Bag S, De A. Development of a three-dimensional heat-transfer model for the gas tungsten arc welding process using the finite element method coupled with a genetic algorithm-based identification of uncertain input parameters[J]. Metallurgical & Materials Transactions A, 2008, 39(11):2698-2710.

[3] Reddy A A, Guha B, Achar D R G. Finite element modeling of three-dimensional transient heat transfer in stainless ?steel (304) pulsed gta weldments [J]. Numerical Heat ???Transfer, Part A: Applications, 2002, 41(1):41-64.

[4] 汪建華, 戚新海, 鐘小敏. 三維瞬態(tài)焊接溫度場的有限元模擬[J]. 上海交通大學(xué)學(xué)報(bào), 1996, 30(3):120-125.

[5] 梁陳劍. 遠(yuǎn)程焊接數(shù)值模擬系統(tǒng)的研究[D]. 北京:清華大學(xué), 2002.

[6] 高嘉爽, 楊建國, 方洪淵, 等.基于VRML的焊接有限元分析前處理開發(fā)[J]. 焊接學(xué)報(bào), 2008, 29(4): 93-96.

[7] 韓英杰. 實(shí)現(xiàn)VC+ +和FORTRAN混合編程的幾個技術(shù)[J]. 安徽電氣工程職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2005, 10(1): 66-69.

[8] 王琦. 基于VC與Fortran混合編程的超大型冷卻塔熱力計(jì)算軟件編程[J]. 河南科技, 2015(1): 31-33.

[9] 陳江寧, 王和平. Fortran與VC+ +混合編程研究及其應(yīng)用[J]. 微計(jì)算機(jī)應(yīng)用, 2007, 28(6): 644-647.

[10] 趙震宇, 王喜臣. C/C+ +與FORTRAN混合編程技術(shù)及其應(yīng)用研究[J]. 吉林大學(xué)學(xué)報(bào), 2001, 31(2):197-200.

[11] 周謐. C/C+ +與FORTRAN混合編程技術(shù)及其應(yīng)用研究[J]. 科技創(chuàng)新與應(yīng)用, 2015(13): 76.

收稿日期: ?2019-09-19

仇舒凡簡介: ?1995年出生,碩士研究生;主要從事焊接過程數(shù)值模擬與仿真研究;qsf18851875891@163.com。