曹 萌,仲梁維,陳 粵
(上海理工大學 機械工程學院,上海 200093)
基于VB的ANSYS二次開發及其在管道外自然對流換熱系數確定中的應用
曹 萌,仲梁維,陳 粵
(上海理工大學 機械工程學院,上海 200093)
介紹一種以ANSYS有限元分析軟件為基礎,結合VB開發語言共同解決管道外自然對流換熱系數確定的方法。利用VB語言開發可視化界面,完成對管道溫度場分布及管道外自然對流換熱系數的確定,降低ANSYS軟件的使用難度,方便、快捷地計算出管道外自然對流換熱系數,避免了大量迭代分析過程,提高了效率。
ANSYS;VB開發語言;自然對流換熱系數
輸油管道在輸油過程中,由于管內高溫流體與管外低溫環境形成較大溫差,根據材料受熱膨脹遇冷收縮的原理,輸油管將會產生軸向相應的熱應力和熱變形[1,2],因而前期輸油管道的安全性能模擬尤為重要。采用ANSYS仿真模擬輸油管道的溫度場分布和熱應力大小時,自然對流換熱系數是溫度場分析邊界條件的必要參數之一。自然對流是指參與熱交換的流體內部的溫度分布不均,從而形成密度差,使得高溫流體的密度變小,低溫流體的密度變大,進而在某些力場作用下產生內部流體流動的現象。這種沒有外部驅動力,只通過流體內的溫度差或者流體內的濃度差使流體存在運動而產生熱交換的現象稱為自然對流換熱[3-5]。
能夠準確計算出空氣的自然對流換熱系數才能更精確進行溫度場分析及熱應力計算,目前已提出通過ANSYS模擬空氣自然對流的方法[6]。考慮到計算自然對流換熱系數迭代的繁瑣性問題,本文采用較為廣泛的VB語言,融合ANSYS強大的有限元分析,開發VB可視化界面[7-9]。首先假設初始自然對流換熱系數,然后通過輸入輸油管道相關參數,分析管道溫度場分布,提取溫差計算真實自然對流換熱系數,最后返回誤差小于0.05%的自然對流換熱系數值。
為使分析系統能夠參數化運行,方便用戶使用,將有限元分析所必需的參數進行提取及分塊設計。具體如下:
(1)有限元分析界面。有限元分析界面主要包括假設自然對流換熱系數和溫度場分析相關數據參數。
(2)數據處理界面。數據處理界面主要包括對溫度場分析結果進行數據計算,確定相關參數。
ANSYS軟件為滿足用戶需求提供了開放的二次開發接口,用戶可以通過VB語言調用ANSYS后臺運行程序,通過對APDL語言編寫的命令流進行封裝處理,從而實現整個分析過程[10-12]。整個過程ANSYS僅在后臺運行,分析結束后,通過VB相應命令實現對結果的保存處理,ANSYS軟件自動關閉。然后通過VB命令提取結果數據,通過VB編寫的數據處理程序進行數據分析,實現對數據分析的查看。具體分析流程如圖1所示。

圖1 分析流程
根據系統設計與分析流程,用戶界面開發既要考慮用戶操作便利,又要滿足ANSYS計算所需要的相關參數。本文開發一種管道自然對流換熱系數確定的系統,該計算所需要的相關參數輸入均設置為可視化界面。VB具有清晰簡潔的設計、界面可視化的優點,用戶可以通過界面提示標簽及文本框輸入相應參數,APDL就可以調用相關參數進行計算。
本文界面設計主要為:①假設自然對流換熱系數計算溫度場的界面;②自然對流換熱系數誤差分析界面。
假設自然對流換熱系數計算溫度場的界面中,用戶可以根據所需要分析的管道尺寸、厚度、是否有保溫層、保溫層厚度、管道內流體溫度、空氣溫度、材料物理性質及假設空氣自然對流換熱系數值等參數進行溫度場分析。
自然對流換熱系數誤差分析界面中,用戶可以根據假設的自然對流換熱系數計算出管道溫度場分布,提取管道外壁溫度,通過自然對流換熱系數公式,計算公式如下[13]:
(1)
其中,hn為自然對流換熱系數;Gr為格拉曉夫數,表示自然對流中的驅動力,為浮升力與粘性力之比;Pr為普朗特數,表示流體傳遞動量與傳遞熱量的能力之比;k為流體熱傳導率;d0為特征長度,水平特征尺寸為管道直徑m;g為重力加速度;α為流體的力膨脹系數;υ為運動粘度;ΔT為流體與管道外壁面的溫度差;K,C,n為常數,依據Gr·Pr進行取值。
根據管內流體性質輸入計算所需的運動粘度、管道直徑等參數、力膨脹系數,計算真實自然對流換熱系數,并作相應誤差分析。
VB對ANSYS的封裝調用是用VB作ANSYS二次開發的關鍵,主要是通過VB設計可視化界面及對相關參數輸入進行編譯。另外,通過程序實現自動生成APDL語言和啟動調用ANSYS軟件計算。
3.1 參數文件生成
為了實現自然對流換熱系數的參數化計算,必須將系統界面的輸入參數轉化為ANSYS計算可以識別的APDL語言,生成相應的參數文件,VB語言提供的Print語句可以實現這一過程。對于假設自然對流換熱系數計算溫度場這個界面,可分為建模模塊、分析模塊。
建模主要程序語句如下:
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”命令創建一個text文件用于存儲VB寫入的輸入參數(管道尺寸,厚度),語句中的“*SET”命令用來進行變量定義與賦值。
*SET命令定義和賦值參數格式如下:
*SET,Par,VALUE,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9
其中,Par是參數名;VALUE是參數賦值(可以是數值或字符串);VAL2~VAL9也是參數的賦值(同樣可以是數值或字符串[n])。
語句中的“Print”命令用于打印text文件中的內容。
分析模塊主要程序所用到的命令基本與建模模塊相同,其中,主要通過*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輸入命令,把相應輸入參數賦值給ANSYS,從而實現ANSYS與VB之間的數據傳遞。
3.2 VB對ANSYS的調用
VB對ANSYS的調用是ANSYS封裝的關鍵技術,主要通過VB中的shell函數實現對ANSYS的后臺調用[14-16],調用語句具體如下:
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代表在調用ANSYS后臺進行計算時,只顯示小窗口,不顯示ANSYS界面窗口,調用成功后會直接生成結果文件;Ansys為產品特征代碼;-iVB_ANSYS.text代表輸入的參數文件;-opaper.out代表輸出的結果文件。另外,在使用shell函數時要特別注意空格,需要空格的位置必須設置空格,產品特征代碼要與所用版本配套。
為讓用戶清楚知道ANSYS的計算進度,通常需要在VB中設置一個Timer時間控件來輔助判斷。在調用ANSYS并生成相應的paper.err文件后被視為計算完成,時間空間被激活,并彈出對話框顯示“ANSYS后臺運行結束!”。
PrivateSubTimer1_Timer()
IfDir(App.Path& "paper.err") <> ""Then
MsgBox("ANSYS后臺運行結束!")
EndIf
Timer1.Enabled=False
EndSub
其中,App.Path為當前目錄路徑,如果有paper.err文件產生,則說明VB的shell函數對ANSYS調用成功。
3.3 VB對ANSYS計算結果的讀取與顯示
ANSYS后臺運行計算結束后,顯示ANSYS計算結果。首先通過VB調用APDL語言相應后處理指令,將需要讀取的計算結果以“.txt”文件的形式存儲在工作目錄中或者直接將分析結果圖形存儲在工作目錄中,然后運用VB的圖像處理函數將結果圖形在前臺顯示出來。VB調用ANSYS后臺提取分析結果圖形并顯示分析結果圖形的程序如下:
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")
由于本次分析主要是為了提取管道外壁溫度數值,所以界面設計只需滿足管道外壁溫度查看,其完整分析文件將以“.db”格式自動保存到工作目錄。溫度場分析結果顯示界面如圖2所示。

圖2 溫度場結果顯示界面
3.4 VB對ANSYS計算結果的分析處理與顯示
通過VB對溫度場計算分析結果的提取,提取管道壁溫后,首先輸入計算自然對流換熱系數的相關參數,運用自然對流換熱系數公式計算出自然對流換熱系數真實值,然后對自然對流換熱系數的真實值進行誤差分析,如果計算誤差大于0.05%,則誤差較大,系統自動返回第一個界面重新假設自然對流換熱系數計算,直到滿足誤差在0.05%之內,計算結束。數據處理主要程序如下所示:
……
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之間可以數據傳遞的原理開發出一套界面式的管道外自然對流換熱系數確定方法的分析軟件,用戶可以通過界面化操作,只需輸入相關計算參數(建模參數、材料參數及載荷參數),就可以輕松快速計算出不同管道及不同環境下的自然對流換熱系數。這樣不僅可以滿足普通用戶的要求,而且可以避免用戶先有限元分析再誤差計算的過程,大大提高效率。
[1] 楊世銘,陶文栓.傳熱學[M].北京:高等教育出版社,2006.
[2] 王世學,張信榮等.傳熱學[M].北京:北京大學出版社,2011.
[3] 王寶國,劉淑艷,王新泉,朱俊強.傳熱學[M].北京:機械工業出版社,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的管道外自然對流換熱系數的確定[J].當代化工,2015(11):2720-2722.
[7] 楊忠寶,康順哲.VB語言程序設計教程[M].北京:人民郵電出版社,2010.
[8] 伍俊良.VB程序設計與系統開發案例[M].北京:清華大學出版社,2002.
[9] 石連栓,張濤,李立宗.VB程序設計實例[M].北京:清華大學出版社,2004.
[10] 龔曙光,謝桂蘭,黃云清.ANSYS參數化編程與命令手冊[M]. 北京:機械工業出版社,2009:547.
[11] 師訪.ANSYS二次開發及應用實例詳解[M].北京:中國水利水電出版社,2012.
[12] 張濤.ANSYS APDL參數化有限元分析技術及其應用實例[M].北京:中國水利水電出版社,2013.
[13] 趙震楠.傳熱學[M].北京:高等教育出版社,2002.
[14] 高榮慧,張巖,羅輝.基于VB和ANSYS的塔式起重機臂架參數化設計[J].機械工程與自動化,2008(1):12-13,16.
[15] 廖孟柯.基于VB的ANSYS二次開發與應用[J].電腦知識與技術,2012(19):4614-4617.
[16] 賈海洋,唐克倫,顏馨.基于VB調用ANSYS和FLUENT及其在攪拌器參數化中的應用[J]四川理工學院學報:自然科學版,2011(6):682-685.
(責任編輯:陳福時)
曹萌(1991-),男,山東菏澤人,上海理工大學機械工程學院碩士研究生,研究方向為計算機輔助設計;仲梁維(1962-),男,上海人,碩士,上海理工大學機械工程學院教授、碩士生導師,研究方向為計算機輔助智能設計制造;陳粵(1992-),男,湖南祁東人,上海理工大學機械工程學院碩士研究生,研究方向為計算機輔助設計。
10.11907/rjdk.162549
TP319
A
1672-7800(2017)003-0135-03