張玉賢,張繼勛,任旭華,王天興
(1.河海大學 水利水電學院,江蘇 南京 210098; 2.中國電建集團中南勘測設計研究院有限公司,湖南 長沙 410014)
水工隧洞施工系統內部各部分之間相互制約又相互聯系,導致隧洞在施工過程中難以確定合理的進度計劃,隧洞開挖過程圍巖穩定、初期支護以及襯砌的安全情況無法直觀地確定,因此進行較準確的施工進度仿真與施工期結構安全狀況判定的研究尤為重要。針對施工進度仿真問題,Halpin[1]首先提出了循環網絡技術(cycle operation network,即CYCLONE),對循環施工過程進行模擬的同時,也考慮了時間分布的隨機性。鐘登華[2]率先將循環網絡仿真技術應用于隧洞施工仿真。胡連興[3]采用系統仿真方法,對亞碧羅地下洞室群的施工仿真及網絡進度進行了研究。Wang等[4]考慮施工環境的變化對參數的影響改進了碾壓土石壩施工進度仿真的精確性。王曉玲等[5]將CATIA(computer aided three-dimentional interactive application)引入到引水隧洞施工進度可視化中,提高施工進度仿真效率。余佳等[6]考慮隧洞施工過程中的機械故障對CYCLONE模型進行了改進。從目前成果來看,大部分隧洞施工進度仿真只是考慮開挖環節為仿真工序,而將襯砌、灌漿等工序作為非仿真工序,并且模型信息不能實現自動讀取。針對施工過程中結構安全,江權等[7]將智能科學引入地下工程施工過程,通過開挖與支護優化對地下洞室施工過程結構穩定進行控制;Zhang等[8]對橋梁建筑建立了集成結構分析與施工管理的信息模型;南軒等[9]對某隧洞開挖過程中應力應變進行模擬,并以隧洞圍巖應力應變為目標,對隧洞尺寸進行優化設計。上述研究考慮了不同的條件模擬施工期的結構安全狀況,但沒有將施工進度與結構安全進行結合。撒文奇等[10]通過將數值模型分組建立地下洞室群的信息模型,將支護信息以等效參數的形式反饋到圍巖中,實現了地下洞室群開挖過程中圍巖穩定情況判斷。Zhang等[11]通過網格映射法建立了大壩等上部工程動態的施工信息模型。
隨著BIM(building information modeling)技術在水利工程中的應用,數據成為工程全生命期信息傳遞的重要手段。如羅通等[12]基于CAA實現CATIA的二次開發完成渠道的三維設計研究,很大程度上提高了設計效率;陳國良等[13]以IFC格式為基礎建立了IFC-3DgeoMdl模型,將地質體中不同地質情況以及相互關系以數據的形式進行儲存。本研究以引水隧洞作為對象,依托CATIA平臺,開展基于可視化技術的水工隧洞施工進度仿真理論和施工期結構安全與反饋的研究,為水工隧洞建設提供參考。
三維基礎模型不僅包含建筑物幾何信息還要包含施工信息如斷面樁號及斷面面積等。水工隧洞建模是施工進度可視化仿真的基礎,在幾何模型建立的過程中,水工隧洞的開挖、襯砌、灌漿以及噴錨支護等模型,存在著較高的重復利用率和較多的修改次數,甚至在各種相似工程中也可以得到利用[14]。骨架技術整體思想是先整體規劃,后局部細化設計。在對引水隧洞進行設計時,根據已知的工程資料在CATIA中定位出隧洞軸線的起點和終點及軸線轉折點,得到隧洞軸線的具體位置,在創成式曲面設計模塊中按照各條隧洞的空間位置關系運用點、折線等命令生成骨架元素。
引水隧洞的斷面形式和尺寸與圍巖穩定條件、水力條件及施工條件有關,設計中可能會發生變化。在設計過程中要不斷地調整以適應不同的設計方案。參數化設計概念可用如下公式表示[15]。
F(D,X)=0
(1)
式中:F(f1,f2,…,fn)為一系列參數方程;D(d1,d2,…,dn)為F函數中的變量,表示模型特征之間的約束關系,比如相鄰軸線的距離等;X(x1,x2,…,xn)為F函數中的變量,表示模型幾何尺寸、位置以及特征點的坐標。
知識工程包括知識工程規則和知識工程陣列。知識工程規則是一種類似于程序代碼的語言。首先繪制隧洞不同斷面的輪廓形狀,通過知識工程規則進行判斷從而確定隧洞斷面形狀,利用知識工程可以通過函數建立隧洞施工信息,例如通過AREA( )函數確定隧洞施工斷面面積等。知識工程陣列是由條件語句(IF)和循環語句(FOR)組成的,通過用戶編寫的要求可以重復生成特定的形狀。利用參數化和知識工程技術可以建立隧洞開挖、襯砌、灌漿及錨桿支護的模板工程。圖1展示了馬蹄形斷面隧洞的設計流程。
為了進行進度仿真計算,需要將建立的三維基礎模型中幾何及施工信息儲存在數據庫中,本文通過CATIA的二次開發技術得到模型參數及施工信息。編程訪問CATIA對象有兩種方法,進程內和進程外。進程內是指通過編寫VBScript腳本、CATScript腳本、VBA(visual basic application)腳本后,在CATIA中通過運行這些腳本來執行命令[16]。進程外訪問是指程序運行不由CATIA調用,在外部編寫程序后,通過COM(component object model)接口調用CATIA,并執行命令,在這個過程中CATIA僅作為一個外部OLE(object linking and embedding)自動化服務器[17]。

圖1 馬蹄形斷面隧洞設計流程圖
本文利用VB.NET通過進程外的OLE自動化對象來操作CATIA,首先利用ADO(activex date object)技術將VB.NET與Access數據庫相關聯,利用VB.NET對當前活動的CATIA文件進行訪問,依次讀取各個部件的信息,并將讀取的信息全部保存到數據庫中,作為施工仿真的基礎數據。其中部分代碼如下:
Dim Doc AsPartDocument
Doc = CATIA.ActiveDocument
“VB.NET連接到當前活動的CATIA文件”
Dim Sdnumber As Parameter
Sdnumber = Pmts.Item("隧洞編號")
“獲得隧洞的體型參數”
rswangluo.Open("select * from 網絡關系", con, 3, 3)
“將獲取的信息存入仿真數據庫”
對水利水電工程施工管理系統而言,研究施工過程中的工序施工狀況,將其作為離散系統已經足夠[18],離散系統采用“仿真鐘”的手段來體現時間的推進。在動態仿真的過程中運用時間步長法,其規定采用某一單位時間為增量Δt,根據時間的進展,逐步地對系統活動進行判斷及模擬。施工全過程的模擬中,時間步長不發生變化,根據各種工序間的關系確定工程施工的初始狀態作為系統狀態的零點。模擬鐘從零點開始增加規定的時間步長,并判斷該過程中有無事件發生,如果有,則將Δt的終止時刻作為事件的發生時刻,并改變此時的系統狀態,如果在“模擬鐘”推進的時間內任何工序的狀態都沒有發生變化,則系統狀態也不變化[9]。離散系統仿真流程如圖2所示。

圖2 離散系統仿真流程圖
水工隧洞施工是一個復雜的過程[19]。為了更加準確模擬施工過程以及降低進度仿真模型的復雜程度,依據層次化、模塊化的建模思想,將水工隧洞施工全過程分為兩個層次:控制層模型和實施層模型。其中控制層根據CPM網絡模型原理為所有工序制定緊前緊后關系,構成施工計劃表,計劃表中的節點采用CYCLONE模型,分別建立不同施工工序的進度仿真計算子程序,由此構成一個分層次的整體模型。隧洞施工的過程是由開挖、灌漿、襯砌等工序模塊反復循環的過程,每一個模塊又有多種工序組成,比如開挖模塊由鉆孔、爆破、通風散煙、安全檢查等工序組成,在系統仿真的過程中,每種工序的施工方法、施工參數不變。CPM網絡計劃模型對應著隧洞施工過程中的每個工序模塊,它是施工進度的基礎,CYCLONE模型是CPM網絡計劃模型的實施,對應著模塊的具體工序,本文主要考慮開挖、襯砌、灌漿的模塊。
隧洞仿真參數來源復雜,受到多種因素的影響。模型參數的準確性與可靠性直接影響仿真計算的結果。由于隧洞施工條件復雜、工序繁多,難以準確地估計出每種工序的參數大小,本文考慮的模型參數類型有確定型、隨機型。確定型參數如施工機械參數、隧洞斷面尺寸等,參數在施工過程中不會發生變化。隨機型參數有自卸汽車卸渣時間、裝載機裝渣時間等,根據其不同的分布類型[16],生成隨機數,利用反函數的方法確定施工工序的完成時間。
進度計算結束后,建立進度數據庫儲存仿真計算結果,利用CATIA二次開發技術將施工進度仿真后的數據賦予到三維幾何模型中,以初期支護為例,本文考慮在出渣完成后即時支護。在查詢施工期某天的施工面貌時,從數據庫中讀取仿真計算結果,判斷該天開挖工序累計施工進尺與所有錨桿模型的位置關系,將在累計施工進尺范圍內的錨桿激活。利用上述原理,可將開挖、襯砌及灌漿等工序的施工進度進行直觀展示。并且利用BIM建模軟件參數化等特點的優勢,動態地改變模型參數,實現施工狀態的動畫效果。
當進度仿真結束后可以建立水工隧洞數值計算模型,以此確定施工期的結構安全狀況,由于水工隧洞具有軸線長等特點,為了保證隨進度變化的數值計算準確性,選取典型段建立水工隧洞局部精細化數值模型,即在隧洞施工軸線方向上的單元尺寸盡量滿足單位施工工序的進尺的約數,本次仿真單元長度取為1 m。根據水工隧洞的特點,將數值模型按照施工工序分為開挖單元組、襯砌單元組等。采用復制單元的方法建立支護單元,對于錨桿采用桿單元(T3D2)并嵌入(EMBEDDED)整體數值模型中。
數值模型建立完成后,需要對其進行處理,按照不同的施工工序與施工進尺對數值模型進行分組,以開挖工序為例,沿著隧洞軸線方向按照進尺的約數進行劃分,處理結束后將所有單元分組信息儲存在數據庫中。并將單元組的位置信息(沿著施工軸線方向的分組信息)進行儲存,隧洞有限元數值模型及分組如圖3所示。

圖3 隧洞有限元數值模型及分組示意圖
圖中“開挖1-1”表示1號隧洞的開挖工序的第1個單元組。通過判斷單元組的位置信息與累計施工進尺的關系可以將單元組施工狀態劃分為3種:當施工累計進尺包含該單元組時,單元組為已完工狀態;當施工累計進尺不包含該單元組時,單元組為未施工狀態;當累計施工進尺不完全包含該單元組時,單元組為正在施工狀態。
當進行工期內某天的數值計算時,判斷該天的施工累計進尺,利用SQL語言搜索數據庫中小于該進尺的單元,并根據施工工序進行儲存,即將所有開挖單元儲存至E-REMOVE單元組,將所有支護單元儲存至E-ADD單元組中,對其進行相應的“殺死”或“激活”處理。
數值計算采用ABAQUS進行,系統為后臺調用軟件計算內核,采用PYTHON語言對ABAQUS進行二次開發。對ABAQUS二次開發主要有兩種形式,一種對INP文件進行操作。一種對CAE進行操作,在進行施工期單元狀態查詢時,對INP文件操作需要不斷地改變的文件內容且對于施工期任意一天需要重新判斷單元位置與累計施工進尺的關系,消耗大量時間。本系統將所有單元組全部存儲于INP文件后對CAE進行操作,將模型邊界條件、分析步以及荷載等通過編程對數值模型進行處理,后臺調用ABAQUS內核進行計算,對計算結束后的ODB文件編寫腳本進行訪問,提取工程師希望的數據以及云圖進行展示。
數值計算結束后,為使結果數據對施工進行反饋,需要對設計參數進行調整,本文主要以計算得到圍巖數據以及錨桿數據對施工錨桿的支護參數進行調整。利用BIM建模軟件的參數化設計將新的錨桿支護導入前處理軟件進行單元劃分后,重新導入無錨桿的數值模型中。為減少對數值模型的處理時間,支護參數反饋分析中不再對數值模型按照施工軸線方向分組處理,僅將數值模型按照施工工序劃分為開挖、噴層、錨桿、襯砌等單元組。在數據庫中建立節點信息數據庫,包含節點編號以及對應的X、Y、Z坐標;單元信息數據庫包含單元編號、每個對應的節點編號、單元的樁號信息以及單元所屬的單元組。通過判斷累計施工進尺與單元樁號的關系實現對單元的處理。將已經開挖的單元進行“殺死”,已經施工的支護單元進行“激活”。
依據上述原理,對ABAQUS的INP文件進行處理,INP文件由關鍵字和數據行組成,包含數值模型所有的節點、單元以及單元分組信息,并且有固定的格式。通過對INP文件關鍵字的讀取,利用編程語言自動將信息存儲到數據庫中。
引水隧洞施工進度仿真系統的開發目標是將隧洞施工進度與施工期結構安全狀況進行直觀地表達。為工程師提供一個施工期施工狀態的數據支持,并根據系統對結構狀況作出的數據修改支護的方案。系統的運行流程如圖4所示。

圖4 引水隧洞施工進度仿真系統運行流程
整個系統采用VB.NET與PYTHON混合編程技術。VB.NET進行進度計算與系統框架的編寫,PYTHON主要對ABAQUS進行二次開發[20],通過編寫腳本進行調用,整個系統中不會出現有限元計算的界面。通過向導式操作,用戶可以計算出隧洞施工進度進而得到工期內任意一天的施工面貌,輸入材料的物理參數后可以計算結構的穩定情況,為隧洞的設計、施工提供良好的交互平臺。
以某一引水隧洞為例,選取典型段建立模型,隧洞總長為300 m,斷面形式為馬蹄形斷面,幾何模型見圖5(a),隧洞施工采用鉆爆法,由開挖、襯砌、灌漿等工序反復循環完成。本次仿真的開挖工序中測量、裝藥爆破、安全檢查服從均勻分布,自卸汽車卸渣服從指數分布,裝載機裝渣時間服從正態分布,通風散煙及安全檢查均取平均0.5~1.0 h,考慮開挖后即時噴錨支護。施工開始時間為2019年1月1日,開挖進尺為5 m/d,錨桿的間距為1.2 m,排距為1.5 m。在系統中輸入施工參數,施工過程中若發生突發事件,在系統中可以加入突發事件的處理事件,當機械參數發生變化后,將此時已經計算結束的結果保存至數據庫中,重新在系統中輸入機械參數計算施工進度情況,經進度仿真計算后,完工時間為2020年5月26日,全部有效工期為365 d,將進度仿真結果存到數據庫中,圖5(b)為建立的水工隧洞模型及進度仿真結果數據庫。
在系統中,輸入工期內的任意1天,可以直觀地查詢該天的施工面貌。也可以以一定的時間間隔動態地展示施工狀態。圖6中展示的為不同施工天數的工序施工狀態及施工面貌。
通過系統平臺可以查詢施工期任意一天的結構安全狀況,在界面中輸入材料的物理力學參數后自動生成腳本文件,采用no GUI的方式調用ABAQUS進行計算,當計算結束后,用戶通過查看結果可以查詢圍巖位移、錨桿應力等參數從而判斷該天的工程安全情況。各材料的主要物理力學參數見表1,數值計算結果見圖7。
工程人員在設計階段結合系統計算結果可以考慮縮短工期、節省投資,從而修改錨桿的設計方案;施工階段現場工程師根據施工監測結果,可以利用系統計算改變錨桿支護方式的結構安全狀況。

表1 各材料的主要物理力學參數

圖5 隧洞幾何模型及施工信息

圖6 不同施工天數的工序施工狀態及施工面貌展示

圖7 數值計算結果界面
在系統中輸入新的錨桿參數,包括錨桿間排距、錨桿長度及支護范圍,間距為1.2 m,排距為3 m,系統自動以特定的格式輸出,對輸出錨桿進行劃分單元,此時不需要對數值模型進行大量分組,僅對INP文件進行操作,按照關鍵字將數值模型信息儲存到數據庫中。表2為數據庫中儲存的字段名及類型。
將新生成的模型導入系統中可以得到新的支護條件下的結構安全狀況,由圖8可以看出,當排距變為3 m時,圍巖位移僅增加0.001 m,錨桿的最大拉應力增加2 MPa,但仍在結構安全范圍內,因此可以考慮將錨桿排距增加。顯然,利用該系統也可以根據不同的施工進尺制定合理的施工進度計劃。

表2 數據庫中儲存的字段名及類型

圖8 修改支護信息
本文以引水隧洞作為對象,依托CATIA平臺,根據施工仿真的基本原理,對隧洞開挖、襯砌、灌漿等工序進行模擬,并在平臺上實現隧洞施工信息獲取、進度三維可視化以及施工期結構安全計算,具體成果與結論如下:
(1)針對目前水工隧洞的建設,引入參數化的設計方法和知識工程技術實現模型的快速修改及施工信息的儲存,建立了有時間屬性的水工隧洞三維模型。
(2)以CPM網絡模型為基本框架,通過調用開挖、襯砌、灌漿的CYCLONE層模型得到更加精確的施工進度計劃,并利用CATIA二次開發技術將進度計劃與三維模型相關聯,實現動態展示施工面貌。
(3)引入映射概念,將單元組與施工狀態進行對應,通過對有限元軟件進行二次開發,動態地查詢施工期結構的數值計算狀況。根據數值計算結果,調整相應的錨桿參數,結合結構安全狀況可以制定合理的施工進度計劃。
(4)通過VB.NET+PYTHON混合編程技術,為工程各參建方提供了一個可視化、可查詢、可控制的平臺。