工正清++劉杰
摘要:限單元法是拱壩應(yīng)力分析計(jì)算的重要方法,編制命令流文件進(jìn)行有限元分析,可增強(qiáng)分析過(guò)程的通用性和自動(dòng)化程度,大幅提高工作效率。但是,掌握命令流文件對(duì)設(shè)計(jì)人員要求較高,導(dǎo)致其難以普遍應(yīng)用。通過(guò)VB編程為拱壩有限元分析提供交互界面,后臺(tái)生成命令流文件并調(diào)用有限元程序執(zhí)行,實(shí)現(xiàn)了分析計(jì)算過(guò)程的封裝,設(shè)計(jì)人員只需合理設(shè)置參數(shù)即可實(shí)現(xiàn)類似工程的快速分析。本文基于VB和ANSYS進(jìn)行拱壩有限元分析二次開(kāi)發(fā)研究。
關(guān)鍵詞:拱壩 有限元分析 過(guò)程復(fù)用 ANSYS 二次開(kāi)發(fā)
1.概述
拱壩是國(guó)內(nèi)外水利水電工程擋水建筑物廣泛采用的壩型之一。拱壩以其材料強(qiáng)度發(fā)揮充分,承載能力大,體積小、泄洪布置方便,潛在安全度高及抗震能力好等優(yōu)點(diǎn),而受到國(guó)內(nèi)外壩工界的重視。
有限單元法是高拱壩應(yīng)力分析計(jì)算的重要方法。與傳統(tǒng)的拱梁分載法相比,有限單元法不但可以比較合理地考慮拱壩的整體作用,還能夠進(jìn)行各種復(fù)雜條件下拱壩的受力分析。隨著計(jì)算機(jī)技術(shù)的發(fā)展和有限元等效應(yīng)力法的提出,有限單元法越來(lái)越廣泛地應(yīng)用于拱壩的分析。拱壩有限元分析要求設(shè)討人員熟練掌握軟件功能、熟悉有限元計(jì)算理論并具有豐富的工程應(yīng)用經(jīng)驗(yàn),普通設(shè)討^人員的應(yīng)用效率通常不高。有限元分析通常包括前處理、分析計(jì)算和后處理3個(gè)步驟,其中前處理是一項(xiàng)復(fù)雜而關(guān)鍵的工作,前處理的質(zhì)量直接影響著分析結(jié)果。前處理包括建立分析模型、網(wǎng)格劃分、施加約束等內(nèi)容,質(zhì)量要求高,處理耗時(shí)長(zhǎng),優(yōu)化調(diào)整工作量大,是有限元分析的難點(diǎn)。
不同拱壩的有限元分析過(guò)程具有一定的相似性,分析研究其過(guò)程復(fù)用對(duì)于提升拱壩有限元分析的質(zhì)量和效率具有重要意義。以常用的有限元分析軟件ANSYS為例,它的命令流運(yùn)行方式為用戶提供了更為靈活高效的分析手段,通過(guò)對(duì)命令流文件的編寫(xiě)和修改,可以方便地總結(jié)經(jīng)驗(yàn),重用分析過(guò)程。但是,命令流文件的使用對(duì)設(shè)計(jì)人員軟件應(yīng)用能力和理論知識(shí)水平的要求較高,一般設(shè)計(jì)人員難于掌握?;赩B和ANSYS對(duì)拱壩有限元分析進(jìn)行二次開(kāi)發(fā),形成友好、方便、易用的人機(jī)交互系統(tǒng),將復(fù)雜、難于理解和掌握的ANSYS命令流進(jìn)行封裝,并后臺(tái)調(diào)用有限元程序進(jìn)行前處理、分析計(jì)算及后處理,設(shè)計(jì)人員無(wú)需熟練掌握有限元軟件也能方便地進(jìn)行拱壩有限元分析,可顯著提高工作效率。
2 開(kāi)發(fā)平臺(tái)簡(jiǎn)介
Visual Basic,簡(jiǎn)稱VB,是Microsoft公司推出的一種Windows應(yīng)用程序開(kāi)發(fā)工具,是當(dāng)今世界上使用最廣泛的編程語(yǔ)言之一。VB提供了開(kāi)發(fā)Microsoft Windows(R)應(yīng)用程序最迅速、最簡(jiǎn)捷的方法。無(wú)論是開(kāi)發(fā)功能強(qiáng)大、性能可靠的商務(wù)軟件,還是編寫(xiě)能處理實(shí)際問(wèn)題的實(shí)用小程序,VB都是最快速、最簡(jiǎn)便的方法。
ANSYS軟件是融結(jié)構(gòu)、流體、電場(chǎng)、磁場(chǎng)、聲場(chǎng)分析于一體的大型通用有限元分析軟件,由美國(guó)ANSYS公司開(kāi)發(fā),是現(xiàn)代產(chǎn)品設(shè)計(jì)中的高級(jí)CAE工具之一,是水電工程中大壩、地下洞室、發(fā)電廠房等水工建筑物進(jìn)行有限元分析的高效工具。
3 基本原理
3.1 系統(tǒng)結(jié)構(gòu)
基于VB和ANSYS的拱壩有限元分析二次開(kāi)發(fā)系統(tǒng)的基本結(jié)構(gòu)見(jiàn)圖1,用戶通過(guò)交互界面輸入建模分析參數(shù),程序根據(jù)輸入的參數(shù)生成相應(yīng)的命令流文件,后臺(tái)調(diào)用ANSYS軟件建模計(jì)算并生成結(jié)果文件,系統(tǒng)再根據(jù)用戶的設(shè)定將部分關(guān)鍵結(jié)果處理并反饋到交互界面,輔助分析判斷計(jì)算結(jié)果,得到結(jié)論。
3.2 基本功能
(1)允許用戶根據(jù)工程實(shí)際輸入特定的計(jì)算參數(shù),如拱壩結(jié)構(gòu)尺寸、材料、水位等。
(2)用戶在計(jì)算前可以對(duì)輸入的數(shù)據(jù)進(jìn)行添加、修改和刪除操作,以保證輸入正確的參數(shù)。
(3)用戶通過(guò)程序后臺(tái)調(diào)用ANSYS進(jìn)行計(jì)算,將部分關(guān)鍵結(jié)果反饋到交互界面,其他結(jié)果全部存放在設(shè)定目錄下,方便用戶查看。
(4)用戶可以以文本文件的形式對(duì)交互界面輸入的參數(shù)進(jìn)行存取,以保證設(shè)計(jì)的連續(xù)性和工程參數(shù)設(shè)置的重復(fù)使用。
(5)程序能自動(dòng)判斷ANSYS的安裝情況、版本情況和主文件路徑,確保程序有較強(qiáng)的適應(yīng)能力。
4.程序?qū)崿F(xiàn)中的關(guān)鍵問(wèn)題
4.1 后臺(tái)調(diào)用ANSYS
ANSYS并未提供類似于office軟件的可編程對(duì)像模型接口,因而無(wú)法直接調(diào)用和控制ANSYS程序的運(yùn)行,但ANSYS為使用者提供了批處理(batch)運(yùn)行模式,在VB中通常采用帶參數(shù)的shell命令調(diào)用ANSYS,格式如下:
Shell ANSYSExePath&”-b-i”& InNane&”-o”&OutName.vbHide
4.2 判斷ANSYS運(yùn)行結(jié)束
由于ANSYS獨(dú)立于主程序運(yùn)行,主程序無(wú)法控制ANSYS,也無(wú)法直接判斷ANSYS運(yùn)行結(jié)束,因而如何判斷ANSYS程序運(yùn)行結(jié)束成為關(guān)鍵。
由于每次運(yùn)行ANSYS都會(huì)在命令流文件指定目錄生成file.err文件,目前通常采用定期檢查指定目錄是否生成file.err文件來(lái)判斷ANSYS運(yùn)行結(jié)束。為保證同一命令流多次運(yùn)行時(shí)對(duì)ANSYS運(yùn)行結(jié)束的判斷仍然有效,調(diào)用ANSYS前應(yīng)先將指定目錄下的file.err文件刪除。由于該方法獲得的時(shí)間為file.err文件初次生成的時(shí)間,通常早于ANSYS運(yùn)行結(jié)束的真正時(shí)間,當(dāng)需要在交互界面調(diào)用ANSYS運(yùn)行生成的結(jié)果文件時(shí)就會(huì)出現(xiàn)錯(cuò)誤。
采用進(jìn)程監(jiān)控的方法可得到ANSYS運(yùn)行結(jié)束的準(zhǔn)確時(shí)間。首先通過(guò)shell取得ANSYS進(jìn)程的pid號(hào),再根據(jù)pid號(hào)取得ANSYS進(jìn)程的句柄,通過(guò)循環(huán)檢查進(jìn)程的ExitCode,當(dāng)ExitCode不等于STILL—ALIVE即表示ANSYS進(jìn)程運(yùn)行結(jié)束,就可進(jìn)行下一步操作了。
4.3 操作順序的控制
拱壩有限元分析過(guò)程包括:建立分析模型、定義材料參數(shù)、施加邊界條件、求解計(jì)算、結(jié)果分析等步驟。程序設(shè)計(jì)時(shí)將上述各步驟考慮為獨(dú)立模塊分別生成命令流文件進(jìn)行計(jì)算。上述各步驟有嚴(yán)格的先后順序,后序模塊的執(zhí)行需要先序模塊的計(jì)算結(jié)果,因此有必要禁用交互界面中不具備分析條件的模塊。
程序采用選項(xiàng)卡控件布置各獨(dú)立分析過(guò)程的交互界面,通過(guò)檢查各模塊運(yùn)行必須的文件來(lái)決定相應(yīng)選項(xiàng)頁(yè)是否禁用,保證有限元分析過(guò)程按預(yù)先的設(shè)定進(jìn)行。
5.程序應(yīng)用實(shí)例
本文采用基于上述方法開(kāi)發(fā)的雙曲拱壩有限元應(yīng)力及等效應(yīng)力分析軟件對(duì)某水電工程碾壓混凝土拱壩進(jìn)行分析計(jì)算,計(jì)算時(shí)對(duì)碾壓混凝土拱壩進(jìn)行了一定的簡(jiǎn)化,不考慮壩身孔口,不考慮地基巖體的斷層、裂隙、夾層等結(jié)構(gòu)面,考慮巖層分區(qū)和巖層傾角。同時(shí),為了求得數(shù)值穩(wěn)定的壩基面應(yīng)力,在壩基面設(shè)置了薄層單元,薄層厚度為最大壩高的1/200。
運(yùn)行分析計(jì)算程序后,在程序的圖形交互界面設(shè)定拱壩建模的水位、泥沙、材料、體形等參數(shù)和工作路徑,點(diǎn)擊“生成模型”按鈕,程序即轉(zhuǎn)入后臺(tái)執(zhí)行,生成命令流文件并調(diào)用ANSYS程序建模,生成的模型文件反饋到交互界面。建模完成后,依次設(shè)定并執(zhí)行溫度場(chǎng)、材料設(shè)定、施加約束、應(yīng)力計(jì)算、等效應(yīng)力計(jì)算模塊,得到有限元分析計(jì)算結(jié)果,最后在結(jié)果顯示模塊反饋主要計(jì)算結(jié)果。
6.結(jié)語(yǔ)
本程序基于VB和ANSYS開(kāi)發(fā),根據(jù)用戶交互參數(shù)生成命令流文件,通過(guò)batch方式后臺(tái)帶參數(shù)調(diào)用ANSYS程序進(jìn)行計(jì)算分析,再將計(jì)算結(jié)果反饋到交互界面,輔助進(jìn)行計(jì)算結(jié)果的判斷。實(shí)踐證明,該程序方便、易用,一般工程技術(shù)人員也能利用本程序進(jìn)行拱壩有限元分析,顯著提高了工作效率。endprint