陳繼文,李文超,于永鵬,楊紅娟,姬 帥
(1.山東建筑大學(xué)機(jī)電工程學(xué)院,山東 濟(jì)南 250101)
(2.山東建筑大學(xué)信息與電氣工程學(xué)院,山東 濟(jì)南 250101)
(3.山東大學(xué)機(jī)械工程學(xué)院,山東 濟(jì)南 250061)
混凝土預(yù)制(precast concrete,PC)構(gòu)件是裝配式建筑的基礎(chǔ)部件,其高效率、高標(biāo)準(zhǔn)的工業(yè)化智能生產(chǎn)方式將有效推動(dòng)“中國(guó)建造”的優(yōu)化升級(jí)[1]。目前,智能化PC構(gòu)件生產(chǎn)線比重較小,缺乏上游裝配式建筑設(shè)計(jì)模型與PC構(gòu)件排樣的協(xié)同,生產(chǎn)效率較低,用工數(shù)量較多,成為制約裝配式建筑發(fā)展的瓶頸,亟待研究改進(jìn)。PC構(gòu)件生產(chǎn)線工序位置固定,主要通過(guò)移動(dòng)模臺(tái)來(lái)實(shí)現(xiàn)生產(chǎn),充分利用模臺(tái)空間進(jìn)行合理構(gòu)件排樣,是提高PC構(gòu)件生產(chǎn)線生產(chǎn)效率的關(guān)鍵因素之一[2]。人工排樣很大程度上依賴專業(yè)技術(shù)人員的經(jīng)驗(yàn),工作效率不高。自動(dòng)排樣涉及工件的定位與定序,是一個(gè)典型的NP-hard問(wèn)題,其復(fù)雜度會(huì)隨著構(gòu)件數(shù)量的增加“爆炸”式地呈指數(shù)級(jí)增長(zhǎng)[3-4]。將智能搜索算法如粒子群算法、蟻群算法、遺傳算法、模擬退火算法等與經(jīng)典啟發(fā)式定位算法如剩余矩形算法、最低水平線算法相結(jié)合成為解決該類問(wèn)題的突破口[5-6],在制造領(lǐng)域中進(jìn)行鋼板下料、原材料切割等方面取得了較好的效果[7]。針對(duì)PC構(gòu)件排樣與上游裝配式建筑設(shè)計(jì)模型的協(xié)同效用問(wèn)題,本文提出一種基于建筑信息模型(building information modeling,BIM)的PC構(gòu)件排樣優(yōu)化設(shè)計(jì)方法。以裝配式BIM作為獲取排樣數(shù)據(jù)信息的來(lái)源,充分考慮模臺(tái)空間、構(gòu)件擺放角度與構(gòu)件尺寸等約束條件,以模臺(tái)利用率最大化為目標(biāo),對(duì)PC構(gòu)件排樣進(jìn)行優(yōu)化。通過(guò)蟻群算法進(jìn)行PC構(gòu)件排序,利用動(dòng)態(tài)剩余矩形算法進(jìn)行定位,應(yīng)用遺傳變異策略與路徑選擇機(jī)制提高算法全局搜索能力,實(shí)現(xiàn)上游裝配式建筑設(shè)計(jì)模型與PC構(gòu)件排樣的協(xié)同效用,提高排樣效率。
裝配式BIM是參數(shù)化、數(shù)字化信息高度集成模型,其信息可幫助PC構(gòu)件生產(chǎn)者制定計(jì)劃,進(jìn)行決策,改善生產(chǎn)流程[8]。為實(shí)現(xiàn)上游裝配式建筑設(shè)計(jì)模型與PC構(gòu)件排樣的協(xié)同,分析裝配式BIM中PC構(gòu)件的組成元素,將深化設(shè)計(jì)后的PC構(gòu)件信息按照嵌套層級(jí)進(jìn)行細(xì)化,分為父族信息與子族信息,父族信息包含構(gòu)件整體信息、零件位置信息以及關(guān)聯(lián)參數(shù)等,子族信息為混凝土、預(yù)埋件與配筋信息,其中構(gòu)件排樣所需要的信息包括混凝土等級(jí)、構(gòu)件輪廓信息,混凝土等級(jí)用于判斷不同類型的PC構(gòu)件能否同一批生產(chǎn),構(gòu)件輪廓信息用于構(gòu)件排樣[9]。通過(guò)Revit二次開(kāi)發(fā)獲取PC構(gòu)件排樣信息,并采用Excel表作為PC構(gòu)件排樣優(yōu)化的中間傳輸文件,方便排樣算法調(diào)用。PC構(gòu)件信息提取流程如圖1所示。
圖1 PC構(gòu)件信息提取流程圖
以Visual Studio 2022作為編程平臺(tái),采用C#語(yǔ)言對(duì)Revit進(jìn)行二次開(kāi)發(fā)。利用Revit API實(shí)現(xiàn)裝配式建筑模型數(shù)據(jù)的訪問(wèn),在主程序的入口注冊(cè)外部事件,設(shè)定對(duì)應(yīng)控件進(jìn)行PC構(gòu)件數(shù)據(jù)提取,通過(guò)傳入Document類對(duì)象和FilteredElementCollector類作為參數(shù),加入特定篩選條件完成模型數(shù)據(jù)的過(guò)濾,得到所需構(gòu)件集合[10]。采用LookupParameter()函數(shù)獲取過(guò)濾后構(gòu)件的實(shí)例參數(shù)信息,get_parameters()獲取內(nèi)置參數(shù),以數(shù)組承載構(gòu)件信息集合,方便數(shù)據(jù)提取,引用Epplus庫(kù)實(shí)現(xiàn)Revit 與 Office 的連接,將過(guò)濾后數(shù)據(jù)導(dǎo)入到 Excel 表中。
PC構(gòu)件通常采用半自動(dòng)化流水線方式生產(chǎn),其中模臺(tái)是完成PC構(gòu)件生產(chǎn)的轉(zhuǎn)運(yùn)載體,負(fù)責(zé)PC構(gòu)件在不同工序之間的流轉(zhuǎn)。然而,由于PC構(gòu)件種類繁多,生產(chǎn)時(shí)PC構(gòu)件模具在模臺(tái)上存在多種組合形式,不恰當(dāng)?shù)呐艠臃桨缚赡軙?huì)導(dǎo)致模臺(tái)空間浪費(fèi),限制企業(yè)的產(chǎn)能,延長(zhǎng)訂單的生產(chǎn)時(shí)間,因此在生產(chǎn)過(guò)程中需要采用合理的算法,最大程度地利用模臺(tái)空間,以縮短生產(chǎn)周期,提高企業(yè)生產(chǎn)效率。
PC構(gòu)件模具在模臺(tái)上的排放問(wèn)題是典型的二維矩形排樣問(wèn)題,即將一組數(shù)量為m的待生產(chǎn)PC構(gòu)件擺放在固定規(guī)格的模臺(tái)上,應(yīng)使排樣所需的總模臺(tái)數(shù)量最少,模臺(tái)利用率最高。為方便排樣優(yōu)化,將生產(chǎn)模臺(tái)擬作二維坐標(biāo)的矩形面,取模臺(tái)寬度W方向?yàn)榫匦蚊娴膟軸,長(zhǎng)度L方向?yàn)榫匦蚊娴膞軸,如圖2所示。
圖2 模具在模臺(tái)上置放圖
每個(gè)PC構(gòu)件都有其對(duì)應(yīng)的編號(hào)M1,M2,…,Mm,任意一個(gè)PC構(gòu)件i(i=1,2,…,m)在模臺(tái)上的位置可描述為:
(xi,yi;xi+li,yi+wi;θi)
(1)
(2)
式中:(xi,yi)為PC構(gòu)件Mi左下角的坐標(biāo);(xi+li,yi+wi)為PC構(gòu)件右上角的坐標(biāo),li、wi分別為PC構(gòu)件的長(zhǎng)和寬;θi為旋轉(zhuǎn)角度。為充分利用模臺(tái)面積,放置PC構(gòu)件時(shí)應(yīng)正交放置,不可傾斜。
在充分考慮出筋長(zhǎng)度和操作空間后,為方便排樣優(yōu)化,將PC構(gòu)件簡(jiǎn)化為矩形件,規(guī)定其在模臺(tái)上的尺寸為:
(3)
li=lpi+lgi+0.5δci
(4)
wi=wpi+wgi+0.5δci
(5)
式中:si為PC構(gòu)件面積,lpi、wpi為模具的規(guī)格尺寸,lgi、wgi為外伸鋼筋尺寸,δci為預(yù)留操作空間長(zhǎng)度,m′為某模臺(tái)上的構(gòu)件總數(shù)。
優(yōu)化目標(biāo)為模臺(tái)利用率最大,其目標(biāo)函數(shù)為:
(6)
(7)
式中:Ni為布局時(shí)占用的模臺(tái)數(shù)量,Hz為最后一個(gè)模臺(tái)的高度。
針對(duì)大規(guī)模PC構(gòu)件排樣問(wèn)題,啟發(fā)式算法很難從全局角度進(jìn)行優(yōu)化,因此本文將啟發(fā)式算法與智能搜索算法相結(jié)合,采用改進(jìn)蟻群算法定序,利用動(dòng)態(tài)剩余矩形算法定位求解PC構(gòu)件排樣問(wèn)題。在迭代過(guò)程中,首先基于改進(jìn)蟻群算法搜索出本代所有PC構(gòu)件的排序序列,然后通過(guò)動(dòng)態(tài)剩余矩形算法對(duì)PC構(gòu)件序列進(jìn)行解碼,確定PC構(gòu)件在模臺(tái)上的具體位置。通過(guò)目標(biāo)函數(shù)篩選最優(yōu)序列,將本次最優(yōu)序列保存,并更新蟻群信息素,再次循環(huán)迭代,直到達(dá)到設(shè)置的迭代次數(shù)時(shí)結(jié)束算法,輸出最優(yōu)排樣序列以及構(gòu)件排樣圖。排樣優(yōu)化算法流程如圖3所示。
圖3 算法流程圖
1)動(dòng)態(tài)剩余矩形算法定位。
剩余矩形算法是一種局部?jī)?yōu)化算法,通過(guò)記錄模臺(tái)上的剩余空間來(lái)表示空間使用情況。在PC構(gòu)件排樣時(shí),未被使用的空間會(huì)被記錄在矩形集合中。每個(gè)PC構(gòu)件在排入模臺(tái)前,需要根據(jù)剩余矩形集合的信息選擇最佳的位置進(jìn)行排放,如圖4所示。
圖4 剩余矩形排樣規(guī)則
該算法彌補(bǔ)了BL(bottom-up left-justified)算法或最低水平線算法容易出現(xiàn)模臺(tái)空洞的問(wèn)題,但是當(dāng)剩余矩形內(nèi)填入不恰當(dāng)?shù)腜C構(gòu)件模具時(shí)會(huì)浪費(fèi)部分空間,導(dǎo)致最佳匹配構(gòu)件無(wú)法填入,因此對(duì)算法進(jìn)行部分改進(jìn),采用動(dòng)態(tài)匹配方法對(duì)未排放構(gòu)件區(qū)域進(jìn)行規(guī)劃。當(dāng)某一構(gòu)件模具不能排入最低的剩余矩形時(shí),首先將構(gòu)件旋轉(zhuǎn)90°,若滿足要求則放置旋轉(zhuǎn)后的構(gòu)件模具,如果仍然無(wú)法排入,則向后搜索其余序列,對(duì)剩余矩形與待排樣構(gòu)件模具面積、高度、寬度進(jìn)行匹配,選擇與剩余矩形尺寸最接近的構(gòu)件排入。
2)改進(jìn)蟻群算法定序。
蟻群算法具有收斂速度快、全局搜索能力強(qiáng)的特點(diǎn),但該算法后期易陷入局部最優(yōu),因此通過(guò)遺傳變異策略、路徑隨機(jī)規(guī)劃兩種方式對(duì)蟻群算法進(jìn)行改進(jìn)。
為方便代碼運(yùn)行,對(duì)待排樣構(gòu)件賦予一個(gè)十進(jìn)制整數(shù)編號(hào)代表該構(gòu)件,正負(fù)號(hào)表示該構(gòu)件是否進(jìn)行旋轉(zhuǎn)。一個(gè)排樣方案對(duì)應(yīng)一個(gè)構(gòu)件序列,例如(8 4 1 7 6 3 -2 -5)按編號(hào)順序先橫向排入構(gòu)件(8 4 1 7 6 3),然后再豎向排入構(gòu)件(-2 -5)。
采用交叉與旋轉(zhuǎn)變異相結(jié)合的變異策略,在變異初始階段生成一個(gè)[0,1]內(nèi)的隨機(jī)數(shù),若該隨機(jī)數(shù)小于變異概率Pm1則進(jìn)行變異,否則不進(jìn)行變異。設(shè)立檢測(cè)機(jī)制,當(dāng)三次迭代沒(méi)有發(fā)生變異時(shí),則強(qiáng)制觸發(fā),進(jìn)行變異。
交叉需要在[1,m]構(gòu)件序列中生成兩個(gè)隨機(jī)整數(shù)作為變異點(diǎn)bit1和bit2,交換bit1和bit2處的基因,產(chǎn)生新個(gè)體。設(shè)染色體parent包含基因個(gè)數(shù)num=8,隨機(jī)生成的變異點(diǎn)bit1=3和bit2=5,則交換變異點(diǎn)位基因產(chǎn)生子代Child A。
旋轉(zhuǎn)變異是在[1,m]構(gòu)件序列中生成一個(gè)隨機(jī)整數(shù)作為變異點(diǎn)bit3,對(duì)bit3取反,產(chǎn)生新的個(gè)體。隨機(jī)生成的變異點(diǎn)bit3=8,則旋轉(zhuǎn)點(diǎn)位基因產(chǎn)生子代Child B。交叉與旋轉(zhuǎn)變異示意圖如圖5所示。
圖5 交叉與旋轉(zhuǎn)變異
路徑選擇規(guī)劃。在完成一次循環(huán)后,每只螞蟻根據(jù)剩余矩形算法反饋的目標(biāo)函數(shù)適應(yīng)度對(duì)經(jīng)過(guò)的路徑按一定比例釋放信息素,適應(yīng)度值越高,釋放的信息素濃度越高。后續(xù)循環(huán)時(shí),依據(jù)前代螞蟻留下的信息素濃度計(jì)算路徑選擇概率,信息素的濃度會(huì)隨著時(shí)間的延長(zhǎng)不斷消散。
(8)
(9)
(10)
(11)
以此調(diào)節(jié)不同節(jié)點(diǎn)的信息素濃度,降低螞蟻對(duì)信息素的依賴。
以某PC構(gòu)件生產(chǎn)企業(yè)的一次生產(chǎn)計(jì)劃為例,利用BIM二次開(kāi)發(fā)獲取PC構(gòu)件排樣數(shù)據(jù)。本次計(jì)劃生產(chǎn)66塊PC構(gòu)件,包含14種不同規(guī)格,詳細(xì)參數(shù)見(jiàn)表1。該企業(yè)所使用的模臺(tái)尺寸為4 m×9 m。
表1 PC構(gòu)件參數(shù)
基于改進(jìn)蟻群算法與動(dòng)態(tài)剩余矩形算法對(duì)PC構(gòu)件排樣進(jìn)行優(yōu)化,采用Excel表輸入構(gòu)件數(shù)據(jù),設(shè)定算法的初始參數(shù)見(jiàn)表2。
表2 初始參數(shù)設(shè)置
改進(jìn)蟻群算法結(jié)合動(dòng)態(tài)剩余矩形算法(改進(jìn)算法)與標(biāo)準(zhǔn)蟻群算法的迭代結(jié)果對(duì)比如圖6(a)所示,由圖可以看出,在迭代初始階段收斂速度均較快,標(biāo)準(zhǔn)蟻群算法在第100代左右陷入局部極值停止收斂,而改進(jìn)算法在第45代陷入局部極值,但在270代左右突破局部限制繼續(xù)收斂并得到最優(yōu)值,模臺(tái)排樣占用面積由430.45 m2減少到387.40 m2?;诿看骄娣e波動(dòng)可以看出,改進(jìn)算法在全局范圍搜索尋優(yōu)能力明顯更強(qiáng),如圖6(b)所示。
圖6 構(gòu)件排樣優(yōu)化迭代
改進(jìn)蟻群算法與動(dòng)態(tài)剩余矩形算法相結(jié)合能夠有效優(yōu)化PC構(gòu)件排樣,并通過(guò)遺傳變異策略與路徑選擇機(jī)制解決了算法在迭代后期易陷入局部最優(yōu)的問(wèn)題。圖7所示為PC構(gòu)件在模臺(tái)上的排樣方案,其最優(yōu)序列為(65 9 -20 53 -5 -29 45 64 47 26 -2 10 -17 -49 13 -28 -4 23 -16 39 37 -52 21 22 27 -57 18 63 -14 48 50 -55 36 25 7 -32 66 -54 -3 15 -12 -58 -59 62 -35 41 30 51 19 24 31 -40 11 -61 -46 -43 8 56 -1 33 -60 -38 -44 -6 34 -42)。傳統(tǒng)人工排樣完成66個(gè)PC構(gòu)件生產(chǎn)需要的模臺(tái)數(shù)量為15個(gè),而優(yōu)化后所需的模臺(tái)數(shù)量為11個(gè),模臺(tái)的整體利用率提高了26.6%。
圖7 預(yù)制構(gòu)件排樣
本文對(duì)PC構(gòu)件排樣與上游裝配式建筑設(shè)計(jì)模型的協(xié)同問(wèn)題進(jìn)行研究,提出一種基于BIM的PC構(gòu)件排樣優(yōu)化設(shè)計(jì)方法。以裝配式BIM作為獲取排樣數(shù)據(jù)信息的來(lái)源,提高PC構(gòu)件排樣的精度;基于改進(jìn)蟻群算法與動(dòng)態(tài)剩余矩形算法對(duì)PC構(gòu)件進(jìn)行排樣優(yōu)化求解,改善PC構(gòu)件的布局,提高模臺(tái)利用率;與人工排樣相比,本文設(shè)計(jì)的排樣方法更節(jié)省時(shí)間、效率更高。以此排樣優(yōu)化結(jié)果結(jié)合PC構(gòu)件BIM數(shù)據(jù)可以為機(jī)器劃線、置邊模等過(guò)程中的模臺(tái)和邊模的定位操作提供參考。