曹 萌,仲梁維,陳 粵
(上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
基于VB的ANSYS二次開發(fā)及其在管道外自然對流換熱系數(shù)確定中的應(yīng)用
曹 萌,仲梁維,陳 粵
(上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
介紹一種以ANSYS有限元分析軟件為基礎(chǔ),結(jié)合VB開發(fā)語言共同解決管道外自然對流換熱系數(shù)確定的方法。利用VB語言開發(fā)可視化界面,完成對管道溫度場分布及管道外自然對流換熱系數(shù)的確定,降低ANSYS軟件的使用難度,方便、快捷地計(jì)算出管道外自然對流換熱系數(shù),避免了大量迭代分析過程,提高了效率。
ANSYS;VB開發(fā)語言;自然對流換熱系數(shù)
輸油管道在輸油過程中,由于管內(nèi)高溫流體與管外低溫環(huán)境形成較大溫差,根據(jù)材料受熱膨脹遇冷收縮的原理,輸油管將會產(chǎn)生軸向相應(yīng)的熱應(yīng)力和熱變形[1,2],因而前期輸油管道的安全性能模擬尤為重要。采用ANSYS仿真模擬輸油管道的溫度場分布和熱應(yīng)力大小時,自然對流換熱系數(shù)是溫度場分析邊界條件的必要參數(shù)之一。自然對流是指參與熱交換的流體內(nèi)部的溫度分布不均,從而形成密度差,使得高溫流體的密度變小,低溫流體的密度變大,進(jìn)而在某些力場作用下產(chǎn)生內(nèi)部流體流動的現(xiàn)象。這種沒有外部驅(qū)動力,只通過流體內(nèi)的溫度差或者流體內(nèi)的濃度差使流體存在運(yùn)動而產(chǎn)生熱交換的現(xiàn)象稱為自然對流換熱[3-5]。
能夠準(zhǔn)確計(jì)算出空氣的自然對流換熱系數(shù)才能更精確進(jìn)行溫度場分析及熱應(yīng)力計(jì)算,目前已提出通過ANSYS模擬空氣自然對流的方法[6]??紤]到計(jì)算自然對流換熱系數(shù)迭代的繁瑣性問題,本文采用較為廣泛的VB語言,融合ANSYS強(qiáng)大的有限元分析,開發(fā)VB可視化界面[7-9]。首先假設(shè)初始自然對流換熱系數(shù),然后通過輸入輸油管道相關(guān)參數(shù),分析管道溫度場分布,提取溫差計(jì)算真實(shí)自然對流換熱系數(shù),最后返回誤差小于0.05%的自然對流換熱系數(shù)值。
為使分析系統(tǒng)能夠參數(shù)化運(yùn)行,方便用戶使用,將有限元分析所必需的參數(shù)進(jìn)行提取及分塊設(shè)計(jì)。具體如下:
(1)有限元分析界面。有限元分析界面主要包括假設(shè)自然對流換熱系數(shù)和溫度場分析相關(guān)數(shù)據(jù)參數(shù)。
(2)數(shù)據(jù)處理界面。數(shù)據(jù)處理界面主要包括對溫度場分析結(jié)果進(jìn)行數(shù)據(jù)計(jì)算,確定相關(guān)參數(shù)。
ANSYS軟件為滿足用戶需求提供了開放的二次開發(fā)接口,用戶可以通過VB語言調(diào)用ANSYS后臺運(yùn)行程序,通過對APDL語言編寫的命令流進(jìn)行封裝處理,從而實(shí)現(xiàn)整個分析過程[10-12]。整個過程ANSYS僅在后臺運(yùn)行,分析結(jié)束后,通過VB相應(yīng)命令實(shí)現(xiàn)對結(jié)果的保存處理,ANSYS軟件自動關(guān)閉。然后通過VB命令提取結(jié)果數(shù)據(jù),通過VB編寫的數(shù)據(jù)處理程序進(jìn)行數(shù)據(jù)分析,實(shí)現(xiàn)對數(shù)據(jù)分析的查看。具體分析流程如圖1所示。
圖1 分析流程
根據(jù)系統(tǒng)設(shè)計(jì)與分析流程,用戶界面開發(fā)既要考慮用戶操作便利,又要滿足ANSYS計(jì)算所需要的相關(guān)參數(shù)。本文開發(fā)一種管道自然對流換熱系數(shù)確定的系統(tǒng),該計(jì)算所需要的相關(guān)參數(shù)輸入均設(shè)置為可視化界面。VB具有清晰簡潔的設(shè)計(jì)、界面可視化的優(yōu)點(diǎn),用戶可以通過界面提示標(biāo)簽及文本框輸入相應(yīng)參數(shù),APDL就可以調(diào)用相關(guān)參數(shù)進(jìn)行計(jì)算。
本文界面設(shè)計(jì)主要為:①假設(shè)自然對流換熱系數(shù)計(jì)算溫度場的界面;②自然對流換熱系數(shù)誤差分析界面。
假設(shè)自然對流換熱系數(shù)計(jì)算溫度場的界面中,用戶可以根據(jù)所需要分析的管道尺寸、厚度、是否有保溫層、保溫層厚度、管道內(nèi)流體溫度、空氣溫度、材料物理性質(zhì)及假設(shè)空氣自然對流換熱系數(shù)值等參數(shù)進(jìn)行溫度場分析。
自然對流換熱系數(shù)誤差分析界面中,用戶可以根據(jù)假設(shè)的自然對流換熱系數(shù)計(jì)算出管道溫度場分布,提取管道外壁溫度,通過自然對流換熱系數(shù)公式,計(jì)算公式如下[13]:
(1)
其中,hn為自然對流換熱系數(shù);Gr為格拉曉夫數(shù),表示自然對流中的驅(qū)動力,為浮升力與粘性力之比;Pr為普朗特?cái)?shù),表示流體傳遞動量與傳遞熱量的能力之比;k為流體熱傳導(dǎo)率;d0為特征長度,水平特征尺寸為管道直徑m;g為重力加速度;α為流體的力膨脹系數(shù);υ為運(yùn)動粘度;ΔT為流體與管道外壁面的溫度差;K,C,n為常數(shù),依據(jù)Gr·Pr進(jìn)行取值。
根據(jù)管內(nèi)流體性質(zhì)輸入計(jì)算所需的運(yùn)動粘度、管道直徑等參數(shù)、力膨脹系數(shù),計(jì)算真實(shí)自然對流換熱系數(shù),并作相應(yīng)誤差分析。
VB對ANSYS的封裝調(diào)用是用VB作ANSYS二次開發(fā)的關(guān)鍵,主要是通過VB設(shè)計(jì)可視化界面及對相關(guān)參數(shù)輸入進(jìn)行編譯。另外,通過程序?qū)崿F(xiàn)自動生成APDL語言和啟動調(diào)用ANSYS軟件計(jì)算。
3.1 參數(shù)文件生成
為了實(shí)現(xiàn)自然對流換熱系數(shù)的參數(shù)化計(jì)算,必須將系統(tǒng)界面的輸入?yún)?shù)轉(zhuǎn)化為ANSYS計(jì)算可以識別的APDL語言,生成相應(yīng)的參數(shù)文件,VB語言提供的Print語句可以實(shí)現(xiàn)這一過程。對于假設(shè)自然對流換熱系數(shù)計(jì)算溫度場這個界面,可分為建模模塊、分析模塊。
建模主要程序語句如下:
Open"VB_ANSYS.text"ForOutputAs#1
……
print#1,*SET,CYLIND,text1.text+text2.text,text1.text0,0,text3.text,0,180
print#1,*SET,CYLIND,text4.text+text5.text,text4.text0,0,text6.text,0,180
……
該建模語句中先通過“Open”命令創(chuàng)建一個text文件用于存儲VB寫入的輸入?yún)?shù)(管道尺寸,厚度),語句中的“*SET”命令用來進(jìn)行變量定義與賦值。
*SET命令定義和賦值參數(shù)格式如下:
*SET,Par,VALUE,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9
其中,Par是參數(shù)名;VALUE是參數(shù)賦值(可以是數(shù)值或字符串);VAL2~VAL9也是參數(shù)的賦值(同樣可以是數(shù)值或字符串[n])。
語句中的“Print”命令用于打印text文件中的內(nèi)容。
分析模塊主要程序所用到的命令基本與建模模塊相同,其中,主要通過*SET命令定義變量和賦值及Print命令輸出語句,主要程序如下所示:
……
Print#1,*set,DENS,Text7.Text
Print#1,*set,C,Text5.Text
Print#1,*set,KXX,Text6.Text
……
Print#1,*set,SFA,P51X,1,CONV,Text12.Text,Text11.Text
Print#1,*set,SFA,P51X,1,CONV,Text13.Text,Text10.Text
……
由以上命令流語句,再通過ANSYS輸入命令,把相應(yīng)輸入?yún)?shù)賦值給ANSYS,從而實(shí)現(xiàn)ANSYS與VB之間的數(shù)據(jù)傳遞。
3.2 VB對ANSYS的調(diào)用
VB對ANSYS的調(diào)用是ANSYS封裝的關(guān)鍵技術(shù),主要通過VB中的shell函數(shù)實(shí)現(xiàn)對ANSYS的后臺調(diào)用[14-16],調(diào)用語句具體如下:
DimXAsInteger
X=Shell("D:ANSYSIncv160ansysinwinx64ANSYS160.exe-b-pansys-iVB_ANSYS.text-opaper.out")
其中 “D:ANSYSIncv160ansysinwinx64ANSYS160.exe”代表ANSYS的安裝路徑(不同用戶可能會有不同),ANSYS160.exe為ANSYS的版本(本文以ANSYS16.0為例);-b為ANSYS批量處理模式;-p代表在調(diào)用ANSYS后臺進(jìn)行計(jì)算時,只顯示小窗口,不顯示ANSYS界面窗口,調(diào)用成功后會直接生成結(jié)果文件;Ansys為產(chǎn)品特征代碼;-iVB_ANSYS.text代表輸入的參數(shù)文件;-opaper.out代表輸出的結(jié)果文件。另外,在使用shell函數(shù)時要特別注意空格,需要空格的位置必須設(shè)置空格,產(chǎn)品特征代碼要與所用版本配套。
為讓用戶清楚知道ANSYS的計(jì)算進(jìn)度,通常需要在VB中設(shè)置一個Timer時間控件來輔助判斷。在調(diào)用ANSYS并生成相應(yīng)的paper.err文件后被視為計(jì)算完成,時間空間被激活,并彈出對話框顯示“ANSYS后臺運(yùn)行結(jié)束!”。
PrivateSubTimer1_Timer()
IfDir(App.Path& "paper.err") <> ""Then
MsgBox("ANSYS后臺運(yùn)行結(jié)束!")
EndIf
Timer1.Enabled=False
EndSub
其中,App.Path為當(dāng)前目錄路徑,如果有paper.err文件產(chǎn)生,則說明VB的shell函數(shù)對ANSYS調(diào)用成功。
3.3 VB對ANSYS計(jì)算結(jié)果的讀取與顯示
ANSYS后臺運(yùn)行計(jì)算結(jié)束后,顯示ANSYS計(jì)算結(jié)果。首先通過VB調(diào)用APDL語言相應(yīng)后處理指令,將需要讀取的計(jì)算結(jié)果以“.txt”文件的形式存儲在工作目錄中或者直接將分析結(jié)果圖形存儲在工作目錄中,然后運(yùn)用VB的圖像處理函數(shù)將結(jié)果圖形在前臺顯示出來。VB調(diào)用ANSYS后臺提取分析結(jié)果圖形并顯示分析結(jié)果圖形的程序如下:
Print#1,"/SHOW,PNG,0"
Print#1,"PNGR,COMP,1,-1"
Print#1,"PNGR,ORIENT,HORIZ"
Print#1,"PNGR,COLOR,2"
Print#1,"PNGR,TMOD,1 "
Print#1,"/GFILE,800,"
Print#1,"/REPLOT"
Print#1,"/SHOW,CLOSE"
Picture1.Picture=LoadPicture("D:ANSYS16.0WORKvb_ansys000.png")
由于本次分析主要是為了提取管道外壁溫度數(shù)值,所以界面設(shè)計(jì)只需滿足管道外壁溫度查看,其完整分析文件將以“.db”格式自動保存到工作目錄。溫度場分析結(jié)果顯示界面如圖2所示。
圖2 溫度場結(jié)果顯示界面
3.4 VB對ANSYS計(jì)算結(jié)果的分析處理與顯示
通過VB對溫度場計(jì)算分析結(jié)果的提取,提取管道壁溫后,首先輸入計(jì)算自然對流換熱系數(shù)的相關(guān)參數(shù),運(yùn)用自然對流換熱系數(shù)公式計(jì)算出自然對流換熱系數(shù)真實(shí)值,然后對自然對流換熱系數(shù)的真實(shí)值進(jìn)行誤差分析,如果計(jì)算誤差大于0.05%,則誤差較大,系統(tǒng)自動返回第一個界面重新假設(shè)自然對流換熱系數(shù)計(jì)算,直到滿足誤差在0.05%之內(nèi),計(jì)算結(jié)束。數(shù)據(jù)處理主要程序如下所示:
……
Dim X As Integer
Dim Y As Integer
X = (9.8 * Text4.Text * (Form1.Text1.Text) ^ 3 * Text2.Text / Text5.Text ^ 2) ^ 0.4
Y = (Form1.Text11.Text - Text1.Text) ^ 0.4
Text6.Text = 0.75 * Text3.Text / Form1.Text1.Text * X * Y
……
Text7.Text = (Text6.Text - Form1.Text13.Text) / Text6.Text
If Text7.Text > 0.05 Then
Form1.Show
Me.Hide
End If
……
本文基于VB與ANSYS之間可以數(shù)據(jù)傳遞的原理開發(fā)出一套界面式的管道外自然對流換熱系數(shù)確定方法的分析軟件,用戶可以通過界面化操作,只需輸入相關(guān)計(jì)算參數(shù)(建模參數(shù)、材料參數(shù)及載荷參數(shù)),就可以輕松快速計(jì)算出不同管道及不同環(huán)境下的自然對流換熱系數(shù)。這樣不僅可以滿足普通用戶的要求,而且可以避免用戶先有限元分析再誤差計(jì)算的過程,大大提高效率。
[1] 楊世銘,陶文栓.傳熱學(xué)[M].北京:高等教育出版社,2006.
[2] 王世學(xué),張信榮等.傳熱學(xué)[M].北京:北京大學(xué)出版社,2011.
[3] 王寶國,劉淑艷,王新泉,朱俊強(qiáng).傳熱學(xué)[M].北京:機(jī)械工業(yè)出版社,2013.
[4] GARSLAW H S,JAEGER J C.Conduction of heat in solids[M].New York:Oxford University Press,1959.
[5] PATANKAR S V.Numerical heat transfer and fluid flow[M].New York:Hemisphere/McGraw-Hill,1980.
[6] 程宇,張巨偉.基于ANSYS的管道外自然對流換熱系數(shù)的確定[J].當(dāng)代化工,2015(11):2720-2722.
[7] 楊忠寶,康順哲.VB語言程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2010.
[8] 伍俊良.VB程序設(shè)計(jì)與系統(tǒng)開發(fā)案例[M].北京:清華大學(xué)出版社,2002.
[9] 石連栓,張濤,李立宗.VB程序設(shè)計(jì)實(shí)例[M].北京:清華大學(xué)出版社,2004.
[10] 龔曙光,謝桂蘭,黃云清.ANSYS參數(shù)化編程與命令手冊[M]. 北京:機(jī)械工業(yè)出版社,2009:547.
[11] 師訪.ANSYS二次開發(fā)及應(yīng)用實(shí)例詳解[M].北京:中國水利水電出版社,2012.
[12] 張濤.ANSYS APDL參數(shù)化有限元分析技術(shù)及其應(yīng)用實(shí)例[M].北京:中國水利水電出版社,2013.
[13] 趙震楠.傳熱學(xué)[M].北京:高等教育出版社,2002.
[14] 高榮慧,張巖,羅輝.基于VB和ANSYS的塔式起重機(jī)臂架參數(shù)化設(shè)計(jì)[J].機(jī)械工程與自動化,2008(1):12-13,16.
[15] 廖孟柯.基于VB的ANSYS二次開發(fā)與應(yīng)用[J].電腦知識與技術(shù),2012(19):4614-4617.
[16] 賈海洋,唐克倫,顏馨.基于VB調(diào)用ANSYS和FLUENT及其在攪拌器參數(shù)化中的應(yīng)用[J]四川理工學(xué)院學(xué)報(bào):自然科學(xué)版,2011(6):682-685.
(責(zé)任編輯:陳福時)
曹萌(1991-),男,山東菏澤人,上海理工大學(xué)機(jī)械工程學(xué)院碩士研究生,研究方向?yàn)橛?jì)算機(jī)輔助設(shè)計(jì);仲梁維(1962-),男,上海人,碩士,上海理工大學(xué)機(jī)械工程學(xué)院教授、碩士生導(dǎo)師,研究方向?yàn)橛?jì)算機(jī)輔助智能設(shè)計(jì)制造;陳粵(1992-),男,湖南祁東人,上海理工大學(xué)機(jī)械工程學(xué)院碩士研究生,研究方向?yàn)橛?jì)算機(jī)輔助設(shè)計(jì)。
10.11907/rjdk.162549
TP319
A
1672-7800(2017)003-0135-03