張玉賢,張繼勛,任旭華,王天興
(1.河海大學 水利水電學院,江蘇 南京 210098; 2.中國電建集團中南勘測設(shè)計研究院有限公司,湖南 長沙 410014)
水工隧洞施工系統(tǒng)內(nèi)部各部分之間相互制約又相互聯(lián)系,導致隧洞在施工過程中難以確定合理的進度計劃,隧洞開挖過程圍巖穩(wěn)定、初期支護以及襯砌的安全情況無法直觀地確定,因此進行較準確的施工進度仿真與施工期結(jié)構(gòu)安全狀況判定的研究尤為重要。針對施工進度仿真問題,Halpin[1]首先提出了循環(huán)網(wǎng)絡(luò)技術(shù)(cycle operation network,即CYCLONE),對循環(huán)施工過程進行模擬的同時,也考慮了時間分布的隨機性。鐘登華[2]率先將循環(huán)網(wǎng)絡(luò)仿真技術(shù)應用于隧洞施工仿真。胡連興[3]采用系統(tǒng)仿真方法,對亞碧羅地下洞室群的施工仿真及網(wǎng)絡(luò)進度進行了研究。Wang等[4]考慮施工環(huán)境的變化對參數(shù)的影響改進了碾壓土石壩施工進度仿真的精確性。王曉玲等[5]將CATIA(computer aided three-dimentional interactive application)引入到引水隧洞施工進度可視化中,提高施工進度仿真效率。余佳等[6]考慮隧洞施工過程中的機械故障對CYCLONE模型進行了改進。從目前成果來看,大部分隧洞施工進度仿真只是考慮開挖環(huán)節(jié)為仿真工序,而將襯砌、灌漿等工序作為非仿真工序,并且模型信息不能實現(xiàn)自動讀取。針對施工過程中結(jié)構(gòu)安全,江權(quán)等[7]將智能科學引入地下工程施工過程,通過開挖與支護優(yōu)化對地下洞室施工過程結(jié)構(gòu)穩(wěn)定進行控制;Zhang等[8]對橋梁建筑建立了集成結(jié)構(gòu)分析與施工管理的信息模型;南軒等[9]對某隧洞開挖過程中應力應變進行模擬,并以隧洞圍巖應力應變?yōu)槟繕?,對隧洞尺寸進行優(yōu)化設(shè)計。上述研究考慮了不同的條件模擬施工期的結(jié)構(gòu)安全狀況,但沒有將施工進度與結(jié)構(gòu)安全進行結(jié)合。撒文奇等[10]通過將數(shù)值模型分組建立地下洞室群的信息模型,將支護信息以等效參數(shù)的形式反饋到圍巖中,實現(xiàn)了地下洞室群開挖過程中圍巖穩(wěn)定情況判斷。Zhang等[11]通過網(wǎng)格映射法建立了大壩等上部工程動態(tài)的施工信息模型。
隨著BIM(building information modeling)技術(shù)在水利工程中的應用,數(shù)據(jù)成為工程全生命期信息傳遞的重要手段。如羅通等[12]基于CAA實現(xiàn)CATIA的二次開發(fā)完成渠道的三維設(shè)計研究,很大程度上提高了設(shè)計效率;陳國良等[13]以IFC格式為基礎(chǔ)建立了IFC-3DgeoMdl模型,將地質(zhì)體中不同地質(zhì)情況以及相互關(guān)系以數(shù)據(jù)的形式進行儲存。本研究以引水隧洞作為對象,依托CATIA平臺,開展基于可視化技術(shù)的水工隧洞施工進度仿真理論和施工期結(jié)構(gòu)安全與反饋的研究,為水工隧洞建設(shè)提供參考。
三維基礎(chǔ)模型不僅包含建筑物幾何信息還要包含施工信息如斷面樁號及斷面面積等。水工隧洞建模是施工進度可視化仿真的基礎(chǔ),在幾何模型建立的過程中,水工隧洞的開挖、襯砌、灌漿以及噴錨支護等模型,存在著較高的重復利用率和較多的修改次數(shù),甚至在各種相似工程中也可以得到利用[14]。骨架技術(shù)整體思想是先整體規(guī)劃,后局部細化設(shè)計。在對引水隧洞進行設(shè)計時,根據(jù)已知的工程資料在CATIA中定位出隧洞軸線的起點和終點及軸線轉(zhuǎn)折點,得到隧洞軸線的具體位置,在創(chuàng)成式曲面設(shè)計模塊中按照各條隧洞的空間位置關(guān)系運用點、折線等命令生成骨架元素。
引水隧洞的斷面形式和尺寸與圍巖穩(wěn)定條件、水力條件及施工條件有關(guān),設(shè)計中可能會發(fā)生變化。在設(shè)計過程中要不斷地調(diào)整以適應不同的設(shè)計方案。參數(shù)化設(shè)計概念可用如下公式表示[15]。
F(D,X)=0
(1)
式中:F(f1,f2,…,fn)為一系列參數(shù)方程;D(d1,d2,…,dn)為F函數(shù)中的變量,表示模型特征之間的約束關(guān)系,比如相鄰軸線的距離等;X(x1,x2,…,xn)為F函數(shù)中的變量,表示模型幾何尺寸、位置以及特征點的坐標。
知識工程包括知識工程規(guī)則和知識工程陣列。知識工程規(guī)則是一種類似于程序代碼的語言。首先繪制隧洞不同斷面的輪廓形狀,通過知識工程規(guī)則進行判斷從而確定隧洞斷面形狀,利用知識工程可以通過函數(shù)建立隧洞施工信息,例如通過AREA( )函數(shù)確定隧洞施工斷面面積等。知識工程陣列是由條件語句(IF)和循環(huán)語句(FOR)組成的,通過用戶編寫的要求可以重復生成特定的形狀。利用參數(shù)化和知識工程技術(shù)可以建立隧洞開挖、襯砌、灌漿及錨桿支護的模板工程。圖1展示了馬蹄形斷面隧洞的設(shè)計流程。
為了進行進度仿真計算,需要將建立的三維基礎(chǔ)模型中幾何及施工信息儲存在數(shù)據(jù)庫中,本文通過CATIA的二次開發(fā)技術(shù)得到模型參數(shù)及施工信息。編程訪問CATIA對象有兩種方法,進程內(nèi)和進程外。進程內(nèi)是指通過編寫VBScript腳本、CATScript腳本、VBA(visual basic application)腳本后,在CATIA中通過運行這些腳本來執(zhí)行命令[16]。進程外訪問是指程序運行不由CATIA調(diào)用,在外部編寫程序后,通過COM(component object model)接口調(diào)用CATIA,并執(zhí)行命令,在這個過程中CATIA僅作為一個外部OLE(object linking and embedding)自動化服務器[17]。
圖1 馬蹄形斷面隧洞設(shè)計流程圖
本文利用VB.NET通過進程外的OLE自動化對象來操作CATIA,首先利用ADO(activex date object)技術(shù)將VB.NET與Access數(shù)據(jù)庫相關(guān)聯(lián),利用VB.NET對當前活動的CATIA文件進行訪問,依次讀取各個部件的信息,并將讀取的信息全部保存到數(shù)據(jù)庫中,作為施工仿真的基礎(chǔ)數(shù)據(jù)。其中部分代碼如下:
Dim Doc AsPartDocument
Doc = CATIA.ActiveDocument
“VB.NET連接到當前活動的CATIA文件”
Dim Sdnumber As Parameter
Sdnumber = Pmts.Item("隧洞編號")
“獲得隧洞的體型參數(shù)”
rswangluo.Open("select * from 網(wǎng)絡(luò)關(guān)系", con, 3, 3)
“將獲取的信息存入仿真數(shù)據(jù)庫”
對水利水電工程施工管理系統(tǒng)而言,研究施工過程中的工序施工狀況,將其作為離散系統(tǒng)已經(jīng)足夠[18],離散系統(tǒng)采用“仿真鐘”的手段來體現(xiàn)時間的推進。在動態(tài)仿真的過程中運用時間步長法,其規(guī)定采用某一單位時間為增量Δt,根據(jù)時間的進展,逐步地對系統(tǒng)活動進行判斷及模擬。施工全過程的模擬中,時間步長不發(fā)生變化,根據(jù)各種工序間的關(guān)系確定工程施工的初始狀態(tài)作為系統(tǒng)狀態(tài)的零點。模擬鐘從零點開始增加規(guī)定的時間步長,并判斷該過程中有無事件發(fā)生,如果有,則將Δt的終止時刻作為事件的發(fā)生時刻,并改變此時的系統(tǒng)狀態(tài),如果在“模擬鐘”推進的時間內(nèi)任何工序的狀態(tài)都沒有發(fā)生變化,則系統(tǒng)狀態(tài)也不變化[9]。離散系統(tǒng)仿真流程如圖2所示。
圖2 離散系統(tǒng)仿真流程圖
水工隧洞施工是一個復雜的過程[19]。為了更加準確模擬施工過程以及降低進度仿真模型的復雜程度,依據(jù)層次化、模塊化的建模思想,將水工隧洞施工全過程分為兩個層次:控制層模型和實施層模型。其中控制層根據(jù)CPM網(wǎng)絡(luò)模型原理為所有工序制定緊前緊后關(guān)系,構(gòu)成施工計劃表,計劃表中的節(jié)點采用CYCLONE模型,分別建立不同施工工序的進度仿真計算子程序,由此構(gòu)成一個分層次的整體模型。隧洞施工的過程是由開挖、灌漿、襯砌等工序模塊反復循環(huán)的過程,每一個模塊又有多種工序組成,比如開挖模塊由鉆孔、爆破、通風散煙、安全檢查等工序組成,在系統(tǒng)仿真的過程中,每種工序的施工方法、施工參數(shù)不變。CPM網(wǎng)絡(luò)計劃模型對應著隧洞施工過程中的每個工序模塊,它是施工進度的基礎(chǔ),CYCLONE模型是CPM網(wǎng)絡(luò)計劃模型的實施,對應著模塊的具體工序,本文主要考慮開挖、襯砌、灌漿的模塊。
隧洞仿真參數(shù)來源復雜,受到多種因素的影響。模型參數(shù)的準確性與可靠性直接影響仿真計算的結(jié)果。由于隧洞施工條件復雜、工序繁多,難以準確地估計出每種工序的參數(shù)大小,本文考慮的模型參數(shù)類型有確定型、隨機型。確定型參數(shù)如施工機械參數(shù)、隧洞斷面尺寸等,參數(shù)在施工過程中不會發(fā)生變化。隨機型參數(shù)有自卸汽車卸渣時間、裝載機裝渣時間等,根據(jù)其不同的分布類型[16],生成隨機數(shù),利用反函數(shù)的方法確定施工工序的完成時間。
進度計算結(jié)束后,建立進度數(shù)據(jù)庫儲存仿真計算結(jié)果,利用CATIA二次開發(fā)技術(shù)將施工進度仿真后的數(shù)據(jù)賦予到三維幾何模型中,以初期支護為例,本文考慮在出渣完成后即時支護。在查詢施工期某天的施工面貌時,從數(shù)據(jù)庫中讀取仿真計算結(jié)果,判斷該天開挖工序累計施工進尺與所有錨桿模型的位置關(guān)系,將在累計施工進尺范圍內(nèi)的錨桿激活。利用上述原理,可將開挖、襯砌及灌漿等工序的施工進度進行直觀展示。并且利用BIM建模軟件參數(shù)化等特點的優(yōu)勢,動態(tài)地改變模型參數(shù),實現(xiàn)施工狀態(tài)的動畫效果。
當進度仿真結(jié)束后可以建立水工隧洞數(shù)值計算模型,以此確定施工期的結(jié)構(gòu)安全狀況,由于水工隧洞具有軸線長等特點,為了保證隨進度變化的數(shù)值計算準確性,選取典型段建立水工隧洞局部精細化數(shù)值模型,即在隧洞施工軸線方向上的單元尺寸盡量滿足單位施工工序的進尺的約數(shù),本次仿真單元長度取為1 m。根據(jù)水工隧洞的特點,將數(shù)值模型按照施工工序分為開挖單元組、襯砌單元組等。采用復制單元的方法建立支護單元,對于錨桿采用桿單元(T3D2)并嵌入(EMBEDDED)整體數(shù)值模型中。
數(shù)值模型建立完成后,需要對其進行處理,按照不同的施工工序與施工進尺對數(shù)值模型進行分組,以開挖工序為例,沿著隧洞軸線方向按照進尺的約數(shù)進行劃分,處理結(jié)束后將所有單元分組信息儲存在數(shù)據(jù)庫中。并將單元組的位置信息(沿著施工軸線方向的分組信息)進行儲存,隧洞有限元數(shù)值模型及分組如圖3所示。
圖3 隧洞有限元數(shù)值模型及分組示意圖
圖中“開挖1-1”表示1號隧洞的開挖工序的第1個單元組。通過判斷單元組的位置信息與累計施工進尺的關(guān)系可以將單元組施工狀態(tài)劃分為3種:當施工累計進尺包含該單元組時,單元組為已完工狀態(tài);當施工累計進尺不包含該單元組時,單元組為未施工狀態(tài);當累計施工進尺不完全包含該單元組時,單元組為正在施工狀態(tài)。
當進行工期內(nèi)某天的數(shù)值計算時,判斷該天的施工累計進尺,利用SQL語言搜索數(shù)據(jù)庫中小于該進尺的單元,并根據(jù)施工工序進行儲存,即將所有開挖單元儲存至E-REMOVE單元組,將所有支護單元儲存至E-ADD單元組中,對其進行相應的“殺死”或“激活”處理。
數(shù)值計算采用ABAQUS進行,系統(tǒng)為后臺調(diào)用軟件計算內(nèi)核,采用PYTHON語言對ABAQUS進行二次開發(fā)。對ABAQUS二次開發(fā)主要有兩種形式,一種對INP文件進行操作。一種對CAE進行操作,在進行施工期單元狀態(tài)查詢時,對INP文件操作需要不斷地改變的文件內(nèi)容且對于施工期任意一天需要重新判斷單元位置與累計施工進尺的關(guān)系,消耗大量時間。本系統(tǒng)將所有單元組全部存儲于INP文件后對CAE進行操作,將模型邊界條件、分析步以及荷載等通過編程對數(shù)值模型進行處理,后臺調(diào)用ABAQUS內(nèi)核進行計算,對計算結(jié)束后的ODB文件編寫腳本進行訪問,提取工程師希望的數(shù)據(jù)以及云圖進行展示。
數(shù)值計算結(jié)束后,為使結(jié)果數(shù)據(jù)對施工進行反饋,需要對設(shè)計參數(shù)進行調(diào)整,本文主要以計算得到圍巖數(shù)據(jù)以及錨桿數(shù)據(jù)對施工錨桿的支護參數(shù)進行調(diào)整。利用BIM建模軟件的參數(shù)化設(shè)計將新的錨桿支護導入前處理軟件進行單元劃分后,重新導入無錨桿的數(shù)值模型中。為減少對數(shù)值模型的處理時間,支護參數(shù)反饋分析中不再對數(shù)值模型按照施工軸線方向分組處理,僅將數(shù)值模型按照施工工序劃分為開挖、噴層、錨桿、襯砌等單元組。在數(shù)據(jù)庫中建立節(jié)點信息數(shù)據(jù)庫,包含節(jié)點編號以及對應的X、Y、Z坐標;單元信息數(shù)據(jù)庫包含單元編號、每個對應的節(jié)點編號、單元的樁號信息以及單元所屬的單元組。通過判斷累計施工進尺與單元樁號的關(guān)系實現(xiàn)對單元的處理。將已經(jīng)開挖的單元進行“殺死”,已經(jīng)施工的支護單元進行“激活”。
依據(jù)上述原理,對ABAQUS的INP文件進行處理,INP文件由關(guān)鍵字和數(shù)據(jù)行組成,包含數(shù)值模型所有的節(jié)點、單元以及單元分組信息,并且有固定的格式。通過對INP文件關(guān)鍵字的讀取,利用編程語言自動將信息存儲到數(shù)據(jù)庫中。
引水隧洞施工進度仿真系統(tǒng)的開發(fā)目標是將隧洞施工進度與施工期結(jié)構(gòu)安全狀況進行直觀地表達。為工程師提供一個施工期施工狀態(tài)的數(shù)據(jù)支持,并根據(jù)系統(tǒng)對結(jié)構(gòu)狀況作出的數(shù)據(jù)修改支護的方案。系統(tǒng)的運行流程如圖4所示。
圖4 引水隧洞施工進度仿真系統(tǒng)運行流程
整個系統(tǒng)采用VB.NET與PYTHON混合編程技術(shù)。VB.NET進行進度計算與系統(tǒng)框架的編寫,PYTHON主要對ABAQUS進行二次開發(fā)[20],通過編寫腳本進行調(diào)用,整個系統(tǒng)中不會出現(xiàn)有限元計算的界面。通過向?qū)讲僮鳎脩艨梢杂嬎愠鏊矶词┕みM度進而得到工期內(nèi)任意一天的施工面貌,輸入材料的物理參數(shù)后可以計算結(jié)構(gòu)的穩(wěn)定情況,為隧洞的設(shè)計、施工提供良好的交互平臺。
以某一引水隧洞為例,選取典型段建立模型,隧洞總長為300 m,斷面形式為馬蹄形斷面,幾何模型見圖5(a),隧洞施工采用鉆爆法,由開挖、襯砌、灌漿等工序反復循環(huán)完成。本次仿真的開挖工序中測量、裝藥爆破、安全檢查服從均勻分布,自卸汽車卸渣服從指數(shù)分布,裝載機裝渣時間服從正態(tài)分布,通風散煙及安全檢查均取平均0.5~1.0 h,考慮開挖后即時噴錨支護。施工開始時間為2019年1月1日,開挖進尺為5 m/d,錨桿的間距為1.2 m,排距為1.5 m。在系統(tǒng)中輸入施工參數(shù),施工過程中若發(fā)生突發(fā)事件,在系統(tǒng)中可以加入突發(fā)事件的處理事件,當機械參數(shù)發(fā)生變化后,將此時已經(jīng)計算結(jié)束的結(jié)果保存至數(shù)據(jù)庫中,重新在系統(tǒng)中輸入機械參數(shù)計算施工進度情況,經(jīng)進度仿真計算后,完工時間為2020年5月26日,全部有效工期為365 d,將進度仿真結(jié)果存到數(shù)據(jù)庫中,圖5(b)為建立的水工隧洞模型及進度仿真結(jié)果數(shù)據(jù)庫。
在系統(tǒng)中,輸入工期內(nèi)的任意1天,可以直觀地查詢該天的施工面貌。也可以以一定的時間間隔動態(tài)地展示施工狀態(tài)。圖6中展示的為不同施工天數(shù)的工序施工狀態(tài)及施工面貌。
通過系統(tǒng)平臺可以查詢施工期任意一天的結(jié)構(gòu)安全狀況,在界面中輸入材料的物理力學參數(shù)后自動生成腳本文件,采用no GUI的方式調(diào)用ABAQUS進行計算,當計算結(jié)束后,用戶通過查看結(jié)果可以查詢圍巖位移、錨桿應力等參數(shù)從而判斷該天的工程安全情況。各材料的主要物理力學參數(shù)見表1,數(shù)值計算結(jié)果見圖7。
工程人員在設(shè)計階段結(jié)合系統(tǒng)計算結(jié)果可以考慮縮短工期、節(jié)省投資,從而修改錨桿的設(shè)計方案;施工階段現(xiàn)場工程師根據(jù)施工監(jiān)測結(jié)果,可以利用系統(tǒng)計算改變錨桿支護方式的結(jié)構(gòu)安全狀況。
表1 各材料的主要物理力學參數(shù)
圖5 隧洞幾何模型及施工信息
圖6 不同施工天數(shù)的工序施工狀態(tài)及施工面貌展示
圖7 數(shù)值計算結(jié)果界面
在系統(tǒng)中輸入新的錨桿參數(shù),包括錨桿間排距、錨桿長度及支護范圍,間距為1.2 m,排距為3 m,系統(tǒng)自動以特定的格式輸出,對輸出錨桿進行劃分單元,此時不需要對數(shù)值模型進行大量分組,僅對INP文件進行操作,按照關(guān)鍵字將數(shù)值模型信息儲存到數(shù)據(jù)庫中。表2為數(shù)據(jù)庫中儲存的字段名及類型。
將新生成的模型導入系統(tǒng)中可以得到新的支護條件下的結(jié)構(gòu)安全狀況,由圖8可以看出,當排距變?yōu)? m時,圍巖位移僅增加0.001 m,錨桿的最大拉應力增加2 MPa,但仍在結(jié)構(gòu)安全范圍內(nèi),因此可以考慮將錨桿排距增加。顯然,利用該系統(tǒng)也可以根據(jù)不同的施工進尺制定合理的施工進度計劃。
表2 數(shù)據(jù)庫中儲存的字段名及類型
圖8 修改支護信息
本文以引水隧洞作為對象,依托CATIA平臺,根據(jù)施工仿真的基本原理,對隧洞開挖、襯砌、灌漿等工序進行模擬,并在平臺上實現(xiàn)隧洞施工信息獲取、進度三維可視化以及施工期結(jié)構(gòu)安全計算,具體成果與結(jié)論如下:
(1)針對目前水工隧洞的建設(shè),引入?yún)?shù)化的設(shè)計方法和知識工程技術(shù)實現(xiàn)模型的快速修改及施工信息的儲存,建立了有時間屬性的水工隧洞三維模型。
(2)以CPM網(wǎng)絡(luò)模型為基本框架,通過調(diào)用開挖、襯砌、灌漿的CYCLONE層模型得到更加精確的施工進度計劃,并利用CATIA二次開發(fā)技術(shù)將進度計劃與三維模型相關(guān)聯(lián),實現(xiàn)動態(tài)展示施工面貌。
(3)引入映射概念,將單元組與施工狀態(tài)進行對應,通過對有限元軟件進行二次開發(fā),動態(tài)地查詢施工期結(jié)構(gòu)的數(shù)值計算狀況。根據(jù)數(shù)值計算結(jié)果,調(diào)整相應的錨桿參數(shù),結(jié)合結(jié)構(gòu)安全狀況可以制定合理的施工進度計劃。
(4)通過VB.NET+PYTHON混合編程技術(shù),為工程各參建方提供了一個可視化、可查詢、可控制的平臺。