詹君宇,王子茹
(大連理工大學(xué)建設(shè)工程學(xué)部,遼寧大連116024)
煙囪屬于特種結(jié)構(gòu)的一種,是工業(yè)建筑尤其是火電廠建筑中的重要構(gòu)筑物[1]。目前國內(nèi)外主要通過結(jié)構(gòu)動力試驗(yàn)[2]、借助大型專業(yè)結(jié)構(gòu)計(jì)算分析軟件進(jìn)行模擬分析[3]等手段對煙囪地震作用反應(yīng)問題進(jìn)行研究,而對煙囪結(jié)構(gòu)的地震反應(yīng)及其破壞機(jī)理、復(fù)雜的動態(tài)過程用可視化仿真的方法表達(dá)目前尚不多見。
本文針對不同煙囪結(jié)構(gòu)模型,在ANSYS中產(chǎn)生的大量抽象數(shù)據(jù),應(yīng)用可視化仿真技術(shù),利用ANSYS軟件中編寫的命令流,參數(shù)化主要命令流指令,并在程序中映射相應(yīng)的菜單編輯框數(shù)據(jù),生成互動的地震分析命令流文件,嵌入OpenGL圖形庫,完成操作快捷的可視化程序系統(tǒng)[4-5]。通過讀取不同工況下ANSYS計(jì)算結(jié)果文件,實(shí)時(shí)模擬生成各種工況下的三維動態(tài)的圖形圖像,給研究人員提供在地震作用下引起的煙囪結(jié)構(gòu)的破壞形式、破壞機(jī)理和結(jié)構(gòu)的易斷裂部位等直觀信息;同時(shí),避免了傳統(tǒng)的模型試驗(yàn)缺乏直觀性,專業(yè)性過強(qiáng),操作費(fèi)時(shí)費(fèi)力等問題,這對研究煙囪結(jié)構(gòu)的抗震設(shè)計(jì)、預(yù)防震害、后期運(yùn)營管理具有重要意義。
本系統(tǒng)基于Windows操作平臺,采用VC++的MFC程序框架,融合OpenGL技術(shù),通過定義顏色模型、光照模型、材質(zhì)、紋理貼圖,完成三維煙囪變形前的造型顯示;結(jié)合ANSYS數(shù)據(jù)文件,通過數(shù)據(jù)讀取和處理,結(jié)合OpenGL函數(shù),在VC環(huán)境下進(jìn)行程序的編制,實(shí)現(xiàn)煙囪在地震作用下多項(xiàng)特征的可視化仿真。
煙囪地震作用可視化仿真系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)的總體功能是:對不同煙囪結(jié)構(gòu)進(jìn)行參數(shù)化建模,完成其在不同工況下的地震作用結(jié)構(gòu)動力特性的可視化仿真。該系統(tǒng)主要由模型輸入模塊、計(jì)算及數(shù)據(jù)采集處理模塊、可視化顯示模塊組成,且每一模塊均有子模塊。其中可視化顯示模塊中結(jié)構(gòu)變形仿真能清晰觀察到結(jié)構(gòu)物整體變形趨勢及變形最大位置;應(yīng)力云圖則直觀顯示結(jié)構(gòu)物動應(yīng)力最大處的位置,便于對煙囪易斷裂部位做出準(zhǔn)確判斷;動畫仿真模塊則更加具體和直觀的顯示了結(jié)構(gòu)變形的過程,可以據(jù)此進(jìn)一步對結(jié)構(gòu)物在不同震害作用下變化趨勢情況做出對比分析及歸納總結(jié)。
圖1 可視化仿真系統(tǒng)結(jié)構(gòu)圖
模型輸入模塊主要由框架建立、特征值建立、模型的繪制三個(gè)模塊組成。模型的繪制通過調(diào)用OpenGL圖形庫函數(shù)來實(shí)現(xiàn)。逐一構(gòu)造外表面、內(nèi)表面、頂面圓環(huán)和底面圓環(huán),最終完成參數(shù)化建模,圖2為底面尺寸參數(shù)對話框視圖(其它參數(shù)對話框類似)。
圖2 底面尺寸對話框
本文模型的繪制方法:首先采用讀取ANSYS節(jié)點(diǎn)數(shù)據(jù)文件,對數(shù)據(jù)文件進(jìn)行編程處理,得到建模所需格式的標(biāo)準(zhǔn)文件[6];其次在VC環(huán)境下,讀取標(biāo)準(zhǔn)格式文件,結(jié)合OpenGL圖形庫,由點(diǎn)及面,由面形成體來進(jìn)行三維模型參數(shù)化繪制。最后,對實(shí)體材質(zhì)、光照、顏色等進(jìn)行設(shè)置和處理,實(shí)現(xiàn)真實(shí)感造型顯示。
根據(jù)《煙囪設(shè)計(jì)規(guī)范》[7],參照在大連理工大學(xué)抗震實(shí)驗(yàn)室進(jìn)行的高大煙囪結(jié)構(gòu)動力試驗(yàn)?zāi)P?結(jié)合對獨(dú)立煙囪高度、筒壁厚度和坡度的構(gòu)造要求,確定了兩組典型煙囪的結(jié)構(gòu)計(jì)算模型,分別為混凝土煙囪和磚煙囪。
模型的計(jì)算是在結(jié)構(gòu)計(jì)算軟件ANSYS中進(jìn)行,煙囪筒壁采用45號單元建模,地震作用的分析采用時(shí)程分析法,選取美國Elcentro1940地震波和按設(shè)計(jì)反應(yīng)譜擬合人工地震波,用有限單元法進(jìn)行結(jié)構(gòu)動力分析。彈性結(jié)構(gòu)振動方程的基本形式為:
式中:[M]、[C]、[K]分別代表結(jié)構(gòu)的質(zhì)量陣、阻尼陣和剛度陣;{u}為結(jié)構(gòu)位移量;{F}為外部激勵,本文即為地震激勵作用。得出計(jì)算結(jié)果,根據(jù)各工況第一主應(yīng)力灰度圖可以繪制在各工況下煙囪在地震動應(yīng)力隨高度變化曲線圖。圖3為鋼筋混凝土煙囪在Elcentro1940地震波作用下結(jié)構(gòu)應(yīng)力隨高度變化應(yīng)力圖。由圖3可知,ANSYS計(jì)算結(jié)果曲線和實(shí)驗(yàn)結(jié)果曲線基本吻合,說明數(shù)值分析結(jié)果和試驗(yàn)結(jié)果具有一致性。
圖3 鋼筋混凝土煙囪在Elcentro1940地震波作用下應(yīng)力隨高度變化曲線圖
數(shù)據(jù)采集整理模塊主要由兩部分組成:數(shù)據(jù)讀取和數(shù)據(jù)分類整理。
數(shù)據(jù)讀取來源是ANSYS地震時(shí)程分析后的三維散亂點(diǎn)。首先定義全局變量數(shù)組用于讀入三維點(diǎn)數(shù)據(jù),extern float node[5972][4];然后由函數(shù)fopen(“NLIST.txt”,“r”)讀取ANSYS輸出文件“NLIST.txt”的點(diǎn)數(shù)據(jù)信息。
數(shù)據(jù)分類整理是將原始的數(shù)據(jù)劃分為外表面、內(nèi)表面、頂面、底面四類。通過分別讀取各類數(shù)據(jù),進(jìn)行不同類表面網(wǎng)格的構(gòu)建,最終形成面,再由面繪制體模型[8-9]。以下是生成煙囪外表面數(shù)據(jù)點(diǎn)集合的程序,其它集合的形成同理。
2.4.1 基本模視變換的實(shí)現(xiàn)
通過矩陣運(yùn)算實(shí)現(xiàn)模型轉(zhuǎn)換和視口轉(zhuǎn)換:當(dāng)發(fā)出一個(gè)轉(zhuǎn)換命令時(shí),程序會自動生成一個(gè)4×4階轉(zhuǎn)換矩陣,用該矩陣和當(dāng)前矩陣相乘,生成一個(gè)新的當(dāng)前矩陣,從而完成轉(zhuǎn)換。
平移、旋轉(zhuǎn)和縮放通過以下函數(shù)進(jìn)行轉(zhuǎn)換[10]:
void glTranslate{fd}(Type x,Type y,Type z);
void glRotate{fd}(Type angle,Type x,Type y,Type z);
void glScale{fd}(Type x,Type y,Type z);
2.4.2 應(yīng)力云圖的生成
彩色云圖是可視化環(huán)節(jié)中至關(guān)重要的部分,是后處理系統(tǒng)功能的關(guān)鍵所在。本文在掃描線算法[11]的基礎(chǔ)上,利用OpenGL自動插值功能,形成了四邊形快速填充算法,其產(chǎn)生的云圖具有較高的精度。具體實(shí)現(xiàn)由以下三個(gè)環(huán)節(jié)組成:
(1)四邊形網(wǎng)格單元的形成。先設(shè)置OpenGL為光滑著色處理方式,然后繪制各個(gè)結(jié)構(gòu)表面多邊形。
(2)建立應(yīng)力值與顏色的對應(yīng)關(guān)系。首先建立一張基于線性變化的顏色查找表,再建立顏色與物理量(標(biāo)量)之間線性的一一對應(yīng)關(guān)系。算法使用OpenGL的多邊形填充模式進(jìn)行單元區(qū)域填充,單元內(nèi)部則采用拉格朗日(Lagrange)線性插值,這樣能更好地反映云圖的分布情況。
(3)應(yīng)力云圖顯示。單元內(nèi)部各個(gè)空間點(diǎn)上的值,運(yùn)用OpenGL相關(guān)函數(shù),自動使用Lagrange線性插值填充模式,遍歷所有的網(wǎng)格單元,完成云圖的繪制。為了加速圖形顯示,采用雙緩沖區(qū)方法,即一幅圖形在顯示的同時(shí),下一幅將要顯示的圖形在內(nèi)存中開始畫。這樣交替地進(jìn)行就不會產(chǎn)生閃爍感,滿足動畫演示的要求。
2.4.3 動畫仿真的實(shí)現(xiàn)
采用定時(shí)器方法[12]完成動畫程序的編制。
(1)用SetTimer()函數(shù)創(chuàng)建一個(gè)定時(shí)器,每隔一段時(shí)間(以ms為單位)向窗口發(fā)送WMTIMER消息;
(3)在需要停止動畫時(shí),使用KillTimer()函數(shù)刪除定時(shí)器。具體實(shí)施如下:
void CStepinGl3View::OnPlayPause()
{
//TODO:Add your command handler code here
{
SetTimer(1,100,NULL);
}
else
{
KillTimer(1);
}
}
void CStepinGl3View::OnUpdatePlayPause(CCmdUI*pCmdUI)
{
//TODO:Add your command update UI handler code here
}
工況一所示高為180 m的鋼筋混凝土煙囪(見圖4),上截面外徑3 330 mm,上截面內(nèi)徑3 170mm,下截面外徑9 355 mm,下截面內(nèi)徑8 935 mm,容重2.4 t/m3,泊松比0.17,彈模28 392 MPa,在美國Elcentro1940地震波作用下(激振為水平方向,水平加速度幅值為197.1 gal),對其結(jié)構(gòu)變形及動畫,結(jié)構(gòu)表面應(yīng)力云圖,剖切面應(yīng)力云圖,橫截面應(yīng)力云圖等后處理功能進(jìn)行仿真模擬。
圖4 煙囪模型二維圖
通過結(jié)構(gòu)參數(shù)菜單,打開如圖2的結(jié)構(gòu)尺寸對話框,通過結(jié)構(gòu)參數(shù)設(shè)置及參數(shù)化編程,生成煙囪模型二維圖(圖4),直觀顯示煙囪的幾何尺寸,為三維建模提供可靠的依據(jù)。
進(jìn)一步的參數(shù)化編程即可得到結(jié)構(gòu)三維模型。打開變形模擬菜單下拉菜單工況選擇,可輸入任何十九種系統(tǒng)已嵌入工況數(shù)據(jù)文件的工況號,得到相應(yīng)工況下煙囪地震作用下的結(jié)構(gòu)動力特征。此處以工況一為例,故輸入“1”即可。
以下是在工況一(美國Elcentro1940地震波)作用下煙囪地震動力特征圖形顯示結(jié)果:
圖5為煙囪的結(jié)構(gòu)變形仿真顯示,圖6為煙囪的結(jié)構(gòu)應(yīng)力云圖仿真顯示,圖7、圖8分別為煙囪1號剖切面、橫截面應(yīng)力云圖仿真顯示,圖9為橫截面(y=1000時(shí))壁厚查詢結(jié)果顯示。為分析對比研究,圖10顯示了ANSYS繪制的第一主應(yīng)力云圖。
圖5 結(jié)構(gòu)變形仿真
圖6 結(jié)構(gòu)應(yīng)力云圖仿真
在水平地震作用下,圖4反映的是煙囪的變形情況,其結(jié)構(gòu)頂部的位移最大。圖6反映了鋼筋混凝土煙囪動應(yīng)力在距煙囪底部1/3處最大,往上和往下逐漸減小,而且在接近底部又略有增大,這是受煙囪底部彎矩最大的影響,說明水平地震作用能引起煙囪結(jié)構(gòu)物的上部破壞。
圖7 剖切面應(yīng)力云圖仿真
圖8 橫截面應(yīng)力云圖仿真
圖9 橫截面(y=1000時(shí))壁厚查詢結(jié)果顯示
圖7、圖8反映了煙囪特定位置的形狀及受力情況。為深入分析煙囪在結(jié)構(gòu)易斷裂面的變形及受力情況,該系統(tǒng)創(chuàng)建單截面顯示模塊及壁厚查詢模塊。通過輸入截面號,程序自動將對應(yīng)截面數(shù)據(jù)信息調(diào)入,顯示截面云圖,給出壁厚值(圖9)。
圖10 ANSYS生成的煙囪第一主應(yīng)力彩色云圖
將本系統(tǒng)云圖顯示結(jié)果(圖6)與ANSYS軟件顯示結(jié)果(圖10)進(jìn)行比較,可以看出圖10中有明顯的不光滑痕跡,且邊界出現(xiàn)了鋸齒狀,而圖6不論是云圖的質(zhì)量還是邊界的光滑度,較ANSYS繪制的云圖都有很明顯的提高。
本文將ANSYS與OpenGL有機(jī)結(jié)合,通過在ANSYS中建模,利用產(chǎn)生的數(shù)據(jù)文件,融合OpenGL圖形技術(shù),建立了煙囪在地震作用下可視化仿真系統(tǒng),實(shí)現(xiàn)了在工況一(美國Elcentro1940地震波)作用下煙囪地震動力特征圖形三維可視化仿真,并且與ANSYS軟件顯示結(jié)果進(jìn)行了比較與分析。此項(xiàng)研究成果為煙囪減震設(shè)計(jì)、保證結(jié)構(gòu)抗震性能、優(yōu)化煙囪運(yùn)營提供直觀形象的信息支持。同時(shí),使用VC調(diào)用OpenGL的方法研制的系統(tǒng)易于操作,具有很強(qiáng)的開放性,可以進(jìn)行任何預(yù)期的動畫顯示及任意位置結(jié)構(gòu)動力特性的可視化顯示。
[1]范高杰,王子茹.套筒式煙囪CAD系統(tǒng)地開發(fā)[J].中國圖學(xué)學(xué)報(bào),2010,(2):18-25.
[2]朱 彤,周 晶,林 皋,等.煙囪模型動力試驗(yàn)研究[J].世界地震工程,2007,23(3):113-119.
[3]孫 波.煙囪在地震力作用下的動應(yīng)力反應(yīng)分析[D].大連:大連理工大學(xué),2002:20-25.
[4]Donald Hearn,Pauline Baker M著.計(jì)算機(jī)圖形學(xué)(第三版)[M].蔡士杰,等譯.北京:電子工業(yè)出版社,2006.
[5]和平鴿工作室.OpenGL三維圖形系統(tǒng)開發(fā)與使用技術(shù)[M].北京:清華大學(xué)出版社,2003.
[6]賈艾晨,陳 軍,梁玉紅.拱壩應(yīng)力計(jì)算可視化研究[J].水利與建筑工程學(xué)報(bào),2008,6(2):83-85.
[7]中華人民共和國建設(shè)部.GB50051-2002.煙囪設(shè)計(jì)規(guī)范[S].北京:中國計(jì)劃出版社,2003.
[8]李冰鑫.基于OpenGL的結(jié)構(gòu)微振仿真系統(tǒng)研究[D].大連:大連理工大學(xué),2009:38-43.
[9]陳俊濤,肖 明,鄭永蘭.用OpenGL開發(fā)地下結(jié)構(gòu)工程三維有限元圖形系統(tǒng)[J].巖石力學(xué)與工程學(xué)報(bào),2006,25(5):1015-1020.
[10]高 穎,黃羅軍,許志國,等.基于OpenGL的某導(dǎo)彈視景仿真技術(shù)研究[J].兵工學(xué)報(bào),2007,28(1):125-128.
[11]王德清.基于OpenGL的有限元分析數(shù)據(jù)可視化系統(tǒng)開發(fā)[D].武漢:武漢理工大學(xué),2008:35-37.
[12]喬 立,蘇鴻根.對MFC下使用OpenGL實(shí)現(xiàn)動畫的兩種方法特點(diǎn)分析[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(5):102-104.