王仁超,張 樂(lè),尹志洋,王 馳
(1.天津大學(xué)水利工程仿真與安全國(guó)家重點(diǎn)實(shí)驗(yàn)室,天津 300072;2.中水北方勘測(cè)設(shè)計(jì)研究有限公司,天津 300222)
運(yùn)用計(jì)算機(jī)仿真技術(shù)分析混凝土壩澆筑過(guò)程,確定混凝土壩澆筑順序,論證澆筑施工機(jī)械配套方案,輔助工程設(shè)計(jì)人員進(jìn)行施工組織設(shè)計(jì),在我國(guó)已有20余年的歷史。這一技術(shù)的運(yùn)用有力地促進(jìn)了諸如三峽、小灣、龍灘等一批超大型工程的設(shè)計(jì)速度、質(zhì)量和建設(shè)。但是以往開(kāi)發(fā)的混凝土壩澆筑仿真軟件,在建模速度、建模精度以及工程設(shè)計(jì)人員理解和運(yùn)用方面存在一定的不足[1-3]。隨著我國(guó)三維設(shè)計(jì)技術(shù)、BIM(Building Information Modeling)在水利水電工程設(shè)計(jì)中應(yīng)用,工程設(shè)計(jì)成果多以三維形式表達(dá)[4-6]。為此,作為輔助施工組織設(shè)計(jì)的施工過(guò)程計(jì)算機(jī)仿真,也需要適應(yīng)這一變化。
對(duì)于混凝土澆筑仿真模型構(gòu)建問(wèn)題,將系統(tǒng)仿真技術(shù)與AutoCAD技術(shù)相結(jié)合,不僅有利于加快系統(tǒng)仿真建模速度,提高模型的精確性,而且也便于工程設(shè)計(jì)人員對(duì)于仿真的理解應(yīng)用。
本文采用VB.NET為開(kāi)發(fā)語(yǔ)言,通過(guò)對(duì)混凝土壩澆筑仿真模型構(gòu)成分析,探討了混凝土壩澆筑仿真與AutoCAD技術(shù)結(jié)合的方式,建立了具有擴(kuò)展屬性的混凝土壩三維實(shí)體模型,實(shí)現(xiàn)了大壩模型自動(dòng)劃分功能。
從系統(tǒng)分析的角度,可以把混凝土壩的澆筑施工看作一個(gè)排隊(duì)服務(wù)系統(tǒng),在該系統(tǒng)中,澆筑塊和澆筑機(jī)械是主要的實(shí)體對(duì)象,其中顧客為澆筑塊,服務(wù)臺(tái)為澆筑機(jī)械[7]。因此,系統(tǒng)可以劃分為大壩形體子系統(tǒng)、機(jī)械子系統(tǒng)和施工控制子系統(tǒng)。根據(jù)系統(tǒng)劃分,將混凝土壩澆筑模型分為大壩形體子模型、機(jī)械子模型和施工控制子模型。各個(gè)模型都由若干參數(shù)構(gòu)成,模型參數(shù)可以根據(jù)是否與空間位置有關(guān)劃分為位置參數(shù)和非位置參數(shù),非位置參數(shù)又可分為位置關(guān)聯(lián)參數(shù)和位置無(wú)關(guān)參數(shù)。以此對(duì)混凝土澆筑模型構(gòu)成進(jìn)行分解。
(1)大壩形體子模型
由于橫縫將壩體分為若干壩段,各壩段獨(dú)立工作,功能有所不同,結(jié)構(gòu)形式也不盡相同,因此不同壩段剖面的控制點(diǎn)個(gè)數(shù)也不同。構(gòu)成壩體模型的控制點(diǎn)均具有固定的空間位置,歸為位置參數(shù)。
(2)機(jī)械子模型
機(jī)械子系統(tǒng)主要包括澆筑機(jī)械與拌合機(jī)械。拌合機(jī)械主要的參數(shù)包括所屬拌合系統(tǒng)、各月份拌合能力等。澆筑機(jī)械的主要參數(shù)包括機(jī)械運(yùn)行參數(shù)、澆筑范圍控制、澆筑能力、機(jī)械聯(lián)合與干擾規(guī)則等。
(3)施工控制模型
壩體澆筑施工工序繁多,過(guò)程復(fù)雜,因此仿真模擬時(shí)需設(shè)定約束條件對(duì)澆筑過(guò)程進(jìn)行控制,以便能夠真實(shí)地反映大壩施工面貌。約束條件都劃分為非位置參數(shù),其中,相鄰高差限制、澆筑優(yōu)先順序、壩段關(guān)系控制為位置關(guān)聯(lián)參數(shù);有效工作時(shí)間、混凝土初、終凝時(shí)間、層間間歇期、降雨隨機(jī)因素等為位置無(wú)關(guān)參數(shù)。
混凝土壩澆筑模型一般采用參數(shù)化方法建立。參數(shù)化建模方法需要采集大量的信息,以建立壩體模型為例,系統(tǒng)需要用戶輸入大壩二維剖面的控制點(diǎn)坐標(biāo),然后按照橫縫、縱縫位置進(jìn)行分壩段、分倉(cāng),從而構(gòu)成壩段、柱塊等對(duì)象。而一個(gè)剖面的控制點(diǎn)坐標(biāo)少則五、六個(gè),多則十幾個(gè),因此要建立整個(gè)壩體模型,需要輸入系統(tǒng)的數(shù)據(jù)量非常大,造成了建模效率低下。程序建立模型時(shí),對(duì)一些形體復(fù)雜部位(如壩基面)通常采用線性內(nèi)插法,將一些復(fù)雜輪廓近似為梯形處理,造成模型的精度不夠,而且像溢流面、閘墩等由于澆筑順序要求,模型需要單獨(dú)建立,增加了建模時(shí)間。
AutoCAD為工程界所通用,操作、理解均很容易,其本身具有強(qiáng)大的建模功能,因此,對(duì)于由位置參數(shù)組成的模型直接利用CAD命令進(jìn)行可視化建模,不僅加快了建模速度,而且保證了模型的精度;同時(shí)結(jié)合參數(shù)化建模方法,采用常規(guī)的文本框輸入模式或利用CAD二次開(kāi)發(fā)技術(shù),將模型所需的非位置參數(shù)作為屬性進(jìn)行存儲(chǔ),以建立既有外部形體參數(shù),又具備內(nèi)部仿真參數(shù)的混合模型,可以直接參與仿真計(jì)算。
混凝土壩三維實(shí)體模型屬于靜態(tài)的物理實(shí)體模型。建立混凝土壩三維實(shí)體模型一般分為數(shù)據(jù)準(zhǔn)備、空間轉(zhuǎn)換、模型生成以及模型修正四步。首先根據(jù)提供的壩段二維剖面圖建立面模型,然后將面模型旋轉(zhuǎn)、移動(dòng)至三維空間,根據(jù)壩體結(jié)構(gòu)數(shù)據(jù)進(jìn)行放樣、擠出等操作,得到壩體初步模型,再利用切割、布爾運(yùn)算等操作對(duì)初步模型進(jìn)行修正,從而得到壩體的準(zhǔn)確模型[8]。
通過(guò)可視化方法建立的是壩體三維幾何模型,而混凝土壩三維實(shí)體模型作為仿真計(jì)算過(guò)程中的研究對(duì)象,要求其不僅具有幾何坐標(biāo)參數(shù),而且每一個(gè)實(shí)體都要包含作為一個(gè)混凝土柱塊所應(yīng)具有的壩段號(hào)、所屬倉(cāng)號(hào)等內(nèi)部仿真參數(shù)。因此,需要將壩段號(hào)、所屬倉(cāng)號(hào)等仿真參數(shù)作為屬性賦予壩體三維幾何模型。AutoCAD中提供一種擴(kuò)展字典機(jī)制,通過(guò)擴(kuò)展字典可以使用關(guān)鍵字來(lái)保存和檢索相應(yīng)的實(shí)體對(duì)象[9]。
將壩段號(hào)、倉(cāng)號(hào)等不同數(shù)據(jù)類型的仿真參數(shù)通過(guò)不同的組碼值保存到擴(kuò)展字典當(dāng)中,如果該仿真參數(shù)參與仿真計(jì)算,則直接從擴(kuò)展字典中讀取即可。讀取數(shù)據(jù)時(shí),首先獲得擴(kuò)展字典,然后找到“SimuInfor”擴(kuò)展記錄,然后利用GetXRecordData方法來(lái)讀取具體參數(shù)。
這樣通過(guò)擴(kuò)展字典就將三維幾何模型與壩體仿真模型聯(lián)系起來(lái),建立了具有擴(kuò)展屬性的混凝土壩三維實(shí)體模型。
對(duì)混凝土壩澆筑施工過(guò)程進(jìn)行模擬,一般是將壩體模型離散為很多個(gè)澆筑塊,壩體澆筑過(guò)程就可以看作澆筑塊的產(chǎn)生過(guò)程。澆筑層厚度受溫度控制等的限制,并不是固定值,這就決定了仿真模擬時(shí)澆筑塊的厚度須根據(jù)當(dāng)前仿真條件來(lái)自動(dòng)判斷獲取。
借鑒有限元軟件的模型網(wǎng)格自動(dòng)剖分思想,利用AutoCAD二次開(kāi)發(fā)技術(shù)來(lái)實(shí)現(xiàn)壩體模型的自動(dòng)剖分。要獲得當(dāng)前澆筑塊,需要對(duì)壩段模型進(jìn)行剖切,CAD中每一個(gè)實(shí)體對(duì)象均具有唯一標(biāo)識(shí)值-句柄,通過(guò)讀取句柄值即可獲取當(dāng)前壩段模型,而且每次剖切得到位于剖切面正法向側(cè)的實(shí)體的句柄與原壩段實(shí)體保持一致。如圖1所示,當(dāng)前澆筑塊將壩段模型分為三部分,分別在當(dāng)前澆筑高程處和此筑塊澆筑完畢高程處建立剖切平面,對(duì)壩段模型進(jìn)行兩次剖切即可獲得當(dāng)前澆筑塊。如此,每次在程序中讀取當(dāng)前可澆柱塊、當(dāng)前高程和當(dāng)前澆筑層厚,按照此算法即可實(shí)現(xiàn)壩段模型的自動(dòng)剖分。
圖1 獲得澆筑塊示意圖
2.3.1 模擬規(guī)則
一般將大壩混凝土澆筑系統(tǒng)按照離散事件系統(tǒng)來(lái)對(duì)待,在筑塊澆筑進(jìn)程中,筑塊是主導(dǎo)實(shí)體,筑塊的事件會(huì)引起機(jī)械等其他實(shí)體的活動(dòng),而且,筑塊是壩體澆筑活動(dòng)服務(wù)鏈的最終產(chǎn)品,因此,壩體筑塊行為模擬規(guī)則是最重要的規(guī)則[10]。主要規(guī)則如下:
(1)時(shí)間約束。為了滿足壩體混凝土的溫控要求,以及相鄰澆筑層之間的層面結(jié)合要求,筑塊的澆筑受到混凝土初、終凝時(shí)間和層間間歇期的約束。
(2)高差約束。包括最大高差約束和至少高差約束。最大高差約束是為了滿足溫度控制的要求,以使得應(yīng)力分布均勻,減少裂縫;至少高差約束是為了滿足立模板的要求。
(3)施工工藝約束。各壩段功能不盡相同,結(jié)構(gòu)形式有所差異,因此不同壩段的施工工藝也會(huì)有所不同,壩體澆筑需要滿足不同的施工工藝約束。
(4)澆筑面貌控制約束。在對(duì)壩體不同壩段部位進(jìn)行澆筑時(shí),為了滿足諸如壩體穩(wěn)定性要求,立模板方便,特殊部位(如底孔部位)施工的限制,要求壩體澆筑面貌呈現(xiàn)高低相間上升或階梯狀上升的面貌。
2.3.2 模擬流程
大壩澆筑過(guò)程模擬引入仿真時(shí)鐘,采用時(shí)間步長(zhǎng)法推進(jìn)機(jī)制。混凝土壩澆筑仿真計(jì)算過(guò)程是以澆筑機(jī)械與筑塊交替、反復(fù)選擇活動(dòng)的過(guò)程,基于AutoCAD的大壩澆筑仿真流程中的機(jī)械澆筑活動(dòng)即為對(duì)CAD實(shí)體模型進(jìn)行剖分,當(dāng)有筑塊滿足澆筑條件時(shí),便根據(jù)剖分算法生成澆筑塊,同時(shí)將該筑塊的澆筑信息直接存儲(chǔ)到擴(kuò)展字典當(dāng)中。仿真流程如圖2所示。
圖2 模擬流程圖
本文以VB.NET作為開(kāi)發(fā)工具,運(yùn)用面向?qū)ο蟮姆椒ㄟM(jìn)行系統(tǒng)開(kāi)發(fā),由于采用對(duì)象、類和繼承等概念,使得系統(tǒng)具有可移植、可擴(kuò)充和易維護(hù)的特點(diǎn)[11]。系統(tǒng)的構(gòu)架采用了Windows軟件的多文檔和多視圖結(jié)構(gòu),并將AutoCAD作為子窗體嵌入到系統(tǒng)當(dāng)中;建立了數(shù)據(jù)庫(kù)連接,用以存儲(chǔ)和管理從CAD模型中獲取的數(shù)據(jù)信息和用戶輸入的仿真參數(shù)等。
在數(shù)據(jù)采集過(guò)程中,需要與AutoCAD進(jìn)行多次交互操作,因此考慮將AutoCAD嵌入系統(tǒng),方法是調(diào)用Windows API函數(shù)SetParent將AutoCAD設(shè)置為當(dāng)前窗體的子窗體,這樣既可以實(shí)現(xiàn)建模仿真一體化,又可以簡(jiǎn)化數(shù)據(jù)輸入。
系統(tǒng)主要由三個(gè)模塊構(gòu)成,即模型參數(shù)模塊,仿真計(jì)算模塊和結(jié)果輸出模塊[12-13]。
(1)模型參數(shù)模塊
用于對(duì)構(gòu)建模擬模型以及運(yùn)行所必須的參數(shù)進(jìn)行編輯,此模塊劃分為形體相關(guān)參數(shù)部分、機(jī)械參數(shù)部分和施工控制三個(gè)主要部分。其中,形體相關(guān)參數(shù)部分由于直接將在AutoCAD中建立的具備擴(kuò)展屬性的壩體模型作為研究對(duì)象而得到很大程度的簡(jiǎn)化,僅需要輸入相關(guān)仿真參數(shù)即可。
(2)仿真計(jì)算模塊
該模塊是系統(tǒng)的核心,實(shí)現(xiàn)大壩澆筑過(guò)程的仿真計(jì)算及同步三維演示。系統(tǒng)后臺(tái)調(diào)用相關(guān)算法進(jìn)行程序計(jì)算,前臺(tái)在AutoCAD三維視圖中動(dòng)態(tài)顯示壩體模型自動(dòng)剖分過(guò)程即壩體澆筑上升情況。
(3)結(jié)果查詢與輸出模塊
將仿真計(jì)算得出的澆筑信息以簡(jiǎn)捷、直觀的方式輸出。系統(tǒng)建立了Access數(shù)據(jù)庫(kù)連接,用以保存澆筑信息。結(jié)合二次開(kāi)發(fā),在AutoCAD本身查詢功能的基礎(chǔ)上,實(shí)現(xiàn)拾取任意筑塊即可顯示其澆筑信息功能。
該工程混凝土壩壩頂高程為1139.000 m,壩頂總長(zhǎng)度為838.035 m。本次計(jì)算取大壩右岸標(biāo)段為研究對(duì)象,壩段分布為24-25壩段為明渠溢流壩段,28-30壩段為岸邊溢流壩段,26-27,31-35為右岸擋水壩段。
澆筑塊厚度與間歇期的安排如下:強(qiáng)約束區(qū)內(nèi)塊厚1 m,間歇期5 d;弱約束區(qū)內(nèi)塊厚為1.5 m,間歇期6 d;脫離約束區(qū)塊厚3 m,間歇期為6 d。
相鄰壩段間最大高差約束為12 m,至少高差為3 m,壩體上升總體控制高差為20 m。
通過(guò)仿真計(jì)算,可以在AutoCAD平臺(tái)上查看壩體的澆筑面貌,而且壩體剖分所得到的筑塊均包含澆筑信息,可以點(diǎn)擊任意筑塊來(lái)查看其澆筑信息。同時(shí)也可將澆筑信息輸入到數(shù)據(jù)庫(kù)中,進(jìn)行總體澆筑信息的查詢。月澆筑方量及方量累計(jì)如圖3所示,澆筑完工面貌及任意筑塊信息查詢?nèi)鐖D4所示,總體澆筑信息如表1所示。
圖3 月澆筑方量及累計(jì)曲線
圖4 澆筑結(jié)束面貌及任意筑塊澆筑時(shí)間
表1 澆筑信息統(tǒng)計(jì)表
本文對(duì)混凝土壩澆筑模型進(jìn)行分解分析,提出將AutoCAD與仿真系統(tǒng)軟件相結(jié)合,并利用CAD二次開(kāi)發(fā)技術(shù),建立了具備擴(kuò)展屬性的三維實(shí)體模型,簡(jiǎn)化了數(shù)據(jù)輸入過(guò)程;實(shí)現(xiàn)了壩體模型的自動(dòng)剖分功能,同時(shí)將系統(tǒng)外部運(yùn)行參數(shù)可視化,增強(qiáng)了系統(tǒng)的通用性。
[1]Byung Kwon O,Beishan Jie.An object-oriented approach to simulation model[J].Construction for CIM System,1996,66(2):93-105.
[2]Roberts C A,Dessouky Y M.An overview of object oriented simulation[J].Simulation,1998,70(6):359-368.
[3]TamotsuKamigaki,Nobuto Nakamura.Anobject-orientedvisual model-building and simulation,system for FMS control[J].Simulation,1996,67(6):373-385.
[4]周宜紅,定 蘭,趙春菊.碾壓混凝土壩施工澆筑系統(tǒng)仿真模型研究[J].水電能源科學(xué),2006,24(1):50-51,89.
[5]邱世明,張立勇,王仁超.混凝土壩施工過(guò)程管理與控制研究[J].水力發(fā)電,2003,29(2):36-39.
[6]趙衛(wèi)軍.AutoCAD二次開(kāi)發(fā)在水利工程設(shè)計(jì)中的應(yīng)用[J].水利與建筑工程學(xué)報(bào),2011,9(1):101-103.
[7]孫錫衡,齊東海.水利水電工程施工計(jì)算機(jī)模擬與程序設(shè)計(jì)[M].北京:中國(guó)水利水電出版社,1997.
[8]申明亮,熊碧露,肖 宜.基于OpenGL的混凝土壩施工三維動(dòng)態(tài)圖形仿真[J].中國(guó)農(nóng)村水利水電,2005,(5):85-86.
[9]張 帆,鄭立楷,盧擇臨.AutoCAD VBA二次開(kāi)發(fā)教程[M].北京:清華大學(xué)出版社,2006.
[10]王仁超,石 英,李名川,等.混凝土高拱壩澆筑施工仿真[J].天津大學(xué)學(xué)報(bào),2005,38(7),625-629.
[11]Booch G.Object-oriented development[J].IEEE Trans on Software Engineering,1986,12(2):211-221.
[12]劉藻珍,魏華梁.系統(tǒng)仿真[M].北京:北京理工大學(xué)出版社,1998.
[13]張 萌.基于AutoCAD平臺(tái)的混凝土壩澆筑仿真初探[D].天津:天津大學(xué),2010.