姚志國,菅鎖軍
(中鹽吉蘭泰鹽化集團(tuán)股份有限公司,內(nèi)蒙古 阿拉善 010051)
鋁電解工藝過程受到很多參數(shù)的影響,其中溫度就是一個重要的工藝指標(biāo)。由于電解槽內(nèi)高溫、強(qiáng)腐蝕熔體的限制,一直沒有能滿足工業(yè)電解鋁生產(chǎn)要求的測溫方法。目前電解槽溫度測量有儀器測溫和間接測溫兩種。間接測量方式是通過計(jì)算機(jī)或數(shù)學(xué)方法,分析與電解溫度相關(guān)的影響因素,通過不接觸測溫得出電解溫度,以達(dá)到監(jiān)測電解質(zhì)溫度的目的。本文采用VB匯編語言和ANSYS軟件進(jìn)行鋁電解溫度監(jiān)測系統(tǒng)的開發(fā),利用計(jì)算機(jī)軟件技術(shù)實(shí)現(xiàn)對電解溫度的監(jiān)測。
ANSYS有限元軟件是進(jìn)行熱、結(jié)構(gòu)等方面分析的工程應(yīng)用軟件,為滿足各類用戶的要求,ANSYS軟件為用戶提供了二次開發(fā)工具,其中APDL(參數(shù)化設(shè)計(jì)語言)是最常用的開發(fā)語言。參數(shù)化設(shè)計(jì)是將模型的尺寸、條件等用參數(shù)的形式表示,APDL程序允許輸入比較復(fù)雜的參數(shù),這樣就使得用戶有權(quán)控制任何設(shè)計(jì)或是分析屬性,減少了大量的工作。
采用APDL語言編制,并使ANSYS自動運(yùn)行的程序也稱為命令流文件,其文件格式有txt等幾種類型,用戶可以直接編寫命令文件。如果用戶不能非常熟練地使用APDL進(jìn)行命令流的編制,則可以將所要分析的工程問題先使用圖形用戶操作界面(GUI)進(jìn)行分析,分析完成后ANSYS會自動根據(jù)GUI操作形成APDL命令流文件,用戶只需對這個文件進(jìn)行適當(dāng)?shù)男薷木湍艿玫剿璧拿盍魑募?/p>
雖然APDL參數(shù)化語言有較為強(qiáng)大的功能,但仍存在程序結(jié)構(gòu)不清晰等方面的不足。為克服APDL語言的缺點(diǎn),眾多學(xué)者結(jié)合其他編程語言進(jìn)行ANSYS二次開發(fā),Visual Basic匯編語言就是其中的一種。
用戶利用VB可以開發(fā)出友好的界面,ANSYS命令流由VB進(jìn)行后臺封裝,用戶只需在界面中輸入計(jì)算所需的參數(shù),系統(tǒng)就會自動調(diào)用ANSYS在后臺運(yùn)行,進(jìn)行建模、求解和后處理等操作,最后將結(jié)果顯示給用戶。具體來說就是通過執(zhí)行VB的代碼,形成APDL命令流文件,后臺調(diào)用啟動ANSYS,將形成的命令流輸入到后臺運(yùn)行的ANSYS軟件中,ANSYS軟件就會按照APDL命令流進(jìn)行分析計(jì)算,系統(tǒng)讀取計(jì)算結(jié)果并顯示給用戶。系統(tǒng)開發(fā)的流程如圖1所示。
圖1 系統(tǒng)開發(fā)流程
APDL命令流可以在VB程序中通過“Print”命令逐句寫入,形成命令流文件。但是對于復(fù)雜的仿真計(jì)算,逐句寫入太過繁瑣。為簡化程序,在編制好的APDL命令流中添加 “/input”命令,用 VB 中 的“Print”命令將相應(yīng)的參數(shù)值嵌入到命令流中,形成新的命令流文件,具體如圖2、圖3所示,VB代碼中的‘E\*\*.txt’為數(shù)據(jù)文件的路徑。
圖2 Print輸出代碼
圖3 生成的命令流文件
VB程序生成新的命令流文件后,就可以調(diào)用ANSYS軟件。VB利用窗口函數(shù)shell()來調(diào)用ANSYS軟件,調(diào)用的核心代碼如下:
其中:□表示空格。
VB調(diào)用ANSYS軟件時(shí),ANSYS在后臺運(yùn)行,用戶不能直觀地看到ANSYS的運(yùn)行情況,因此就需要采用VB中的計(jì)時(shí)器來檢查ANSYS的運(yùn)行情況。設(shè)計(jì)時(shí),在系統(tǒng)的界面中添加Timer控件,將計(jì)時(shí)器Timer的激活(Enabled)屬性設(shè)為關(guān)(False),時(shí)間間隔(Interval)設(shè)為1 000ms,計(jì)時(shí)器就會每1s檢查一次ANSYS的運(yùn)行狀況。ANSYS在計(jì)算時(shí)會生成file.err文件,如果file.err為空,則后臺出錯,否則表示計(jì)算完成。因此可以通過檢查file.err文件來判斷運(yùn)算的情況。但分析復(fù)雜問題時(shí),由于ANSYS運(yùn)行時(shí)間較長,檢測到file.err文件為空時(shí),ANSYS仍然在計(jì)算,為了避免系統(tǒng)出現(xiàn)判斷錯誤的情況,在系統(tǒng)中采用兩個計(jì)時(shí)器來判斷ANSYS的計(jì)算情況。
為了在VB中直接查看ANSYS結(jié)果數(shù)據(jù),需要先使用APDL語言在命令流里添加一些后處理命令,將需要的結(jié)果文件以“*.txt”或“*.jpg”文件形式保存到工作路徑中。圖片文件可以利用VB的讀取命令,在VB界面中顯示給用戶;而文本文件可以通過VB中的順序文件訪問方法進(jìn)行讀取,其核心代碼如下所示:
本系統(tǒng)借助VB 6.0進(jìn)行開發(fā),利用VB封裝APDL命令流,用戶只需輸入必要的鋁電解工藝參數(shù),系統(tǒng)會自動進(jìn)行后臺運(yùn)算分析,最后將結(jié)果顯示在系統(tǒng)界面中。初步開發(fā)的系統(tǒng),可以實(shí)現(xiàn)以下兩個方面的功能:
(1)用戶對輸入的各項(xiàng)參數(shù)確認(rèn)后方可進(jìn)行分析,在分析過程中,系統(tǒng)始終監(jiān)測ANSYS后臺運(yùn)行的情況,分析完成或出現(xiàn)錯誤時(shí)系統(tǒng)會對用戶進(jìn)行提醒。
(2)根據(jù)用戶輸入的各項(xiàng)參數(shù),結(jié)合預(yù)先編好的APDL命令流文件,生成新的命令流文件,在后臺進(jìn)行鋁電解槽模型的讀入和分析計(jì)算,得到計(jì)算結(jié)果文件,并將結(jié)果文件顯示給用戶,供用戶采集電解槽溫度數(shù)據(jù)和進(jìn)行結(jié)果分析。
系統(tǒng)開發(fā)的目的是用戶可以方便地利用計(jì)算機(jī)進(jìn)行鋁電解溫度監(jiān)測,因此,系統(tǒng)的界面設(shè)計(jì)應(yīng)注重使用的方便性和可視性。系統(tǒng)的歡迎界面如圖4所示。
圖4 歡迎界面
用戶在系統(tǒng)參數(shù)輸入界面(見圖5)輸入相關(guān)參數(shù),利用輸入的參數(shù)生成新的APDL命令流文件,調(diào)用ANSYS將APDL命令流文件輸入到ANSYS中,進(jìn)行電解槽溫度仿真計(jì)算。
圖5 參數(shù)輸入界面
為防止用戶輸入?yún)?shù)有誤,在輸入完成點(diǎn)擊“確定”后,系統(tǒng)會彈出提示界面,并在提示界面中顯示輸入的各項(xiàng)參數(shù),以便用戶對輸入的參數(shù)進(jìn)行確認(rèn)核對。當(dāng)用戶確認(rèn)參數(shù)輸入無誤后,系統(tǒng)自動進(jìn)行分析,ANSYS分析完成后,彈出求解完成對話框,點(diǎn)擊求解完成對話框中的“確定”按鈕,系統(tǒng)讀取求解結(jié)果,并將求解的結(jié)果和輸入的參數(shù)一同在圖6所示的界面中顯示,供用戶查看和記錄溫度數(shù)據(jù)。
圖6中所示的ANSYS等溫線圖,是用系統(tǒng)進(jìn)行的一個算例分析結(jié)果,算例采用的是160kA電解槽1/2二維模型,系統(tǒng)計(jì)算結(jié)果與相同條件下ANSYS軟件分析結(jié)果基本相同。
圖6 結(jié)果顯示界面
本文結(jié)合VB匯編語言與ANSYS APDL參數(shù)化語言的優(yōu)點(diǎn),利用Shell等函數(shù)實(shí)現(xiàn)VB對ANSYS的調(diào)用,設(shè)計(jì)出易于操作的鋁電解溫度仿真分析系統(tǒng),并初步開發(fā)了鋁電解溫度監(jiān)測系統(tǒng),系統(tǒng)界面友好,實(shí)際操作簡單,可初步實(shí)現(xiàn)鋁電解溫度監(jiān)測的功能,為系統(tǒng)進(jìn)一步的開發(fā)打下基礎(chǔ)。
[1]姚明星.預(yù)焙鋁電解槽電解溫度預(yù)測模型的研究[D].長沙:中南大學(xué),2011:12-16.
[2]王炎歡.ANSYS二次開發(fā)的研究[J].機(jī)械,2012(增刊):46-50.
[3]彭公孚,席長友.基于VB控件開發(fā)的ANSYS程序調(diào)用方法[J].軟件開發(fā),2007(5):330.
[4]騰尚偉.鋁電解槽槽殼溫度在線檢測及槽況診斷系統(tǒng)的研究與設(shè)計(jì)[D].蘭州:蘭州理工大學(xué),2012:20-23.