陳繼文,李文超,于永鵬,楊紅娟,姬 帥
(1.山東建筑大學機電工程學院,山東 濟南 250101)
(2.山東建筑大學信息與電氣工程學院,山東 濟南 250101)
(3.山東大學機械工程學院,山東 濟南 250061)
混凝土預制(precast concrete,PC)構件是裝配式建筑的基礎部件,其高效率、高標準的工業(yè)化智能生產方式將有效推動“中國建造”的優(yōu)化升級[1]。目前,智能化PC構件生產線比重較小,缺乏上游裝配式建筑設計模型與PC構件排樣的協(xié)同,生產效率較低,用工數(shù)量較多,成為制約裝配式建筑發(fā)展的瓶頸,亟待研究改進。PC構件生產線工序位置固定,主要通過移動模臺來實現(xiàn)生產,充分利用模臺空間進行合理構件排樣,是提高PC構件生產線生產效率的關鍵因素之一[2]。人工排樣很大程度上依賴專業(yè)技術人員的經(jīng)驗,工作效率不高。自動排樣涉及工件的定位與定序,是一個典型的NP-hard問題,其復雜度會隨著構件數(shù)量的增加“爆炸”式地呈指數(shù)級增長[3-4]。將智能搜索算法如粒子群算法、蟻群算法、遺傳算法、模擬退火算法等與經(jīng)典啟發(fā)式定位算法如剩余矩形算法、最低水平線算法相結合成為解決該類問題的突破口[5-6],在制造領域中進行鋼板下料、原材料切割等方面取得了較好的效果[7]。針對PC構件排樣與上游裝配式建筑設計模型的協(xié)同效用問題,本文提出一種基于建筑信息模型(building information modeling,BIM)的PC構件排樣優(yōu)化設計方法。以裝配式BIM作為獲取排樣數(shù)據(jù)信息的來源,充分考慮模臺空間、構件擺放角度與構件尺寸等約束條件,以模臺利用率最大化為目標,對PC構件排樣進行優(yōu)化。通過蟻群算法進行PC構件排序,利用動態(tài)剩余矩形算法進行定位,應用遺傳變異策略與路徑選擇機制提高算法全局搜索能力,實現(xiàn)上游裝配式建筑設計模型與PC構件排樣的協(xié)同效用,提高排樣效率。
裝配式BIM是參數(shù)化、數(shù)字化信息高度集成模型,其信息可幫助PC構件生產者制定計劃,進行決策,改善生產流程[8]。為實現(xiàn)上游裝配式建筑設計模型與PC構件排樣的協(xié)同,分析裝配式BIM中PC構件的組成元素,將深化設計后的PC構件信息按照嵌套層級進行細化,分為父族信息與子族信息,父族信息包含構件整體信息、零件位置信息以及關聯(lián)參數(shù)等,子族信息為混凝土、預埋件與配筋信息,其中構件排樣所需要的信息包括混凝土等級、構件輪廓信息,混凝土等級用于判斷不同類型的PC構件能否同一批生產,構件輪廓信息用于構件排樣[9]。通過Revit二次開發(fā)獲取PC構件排樣信息,并采用Excel表作為PC構件排樣優(yōu)化的中間傳輸文件,方便排樣算法調用。PC構件信息提取流程如圖1所示。

圖1 PC構件信息提取流程圖
以Visual Studio 2022作為編程平臺,采用C#語言對Revit進行二次開發(fā)。利用Revit API實現(xiàn)裝配式建筑模型數(shù)據(jù)的訪問,在主程序的入口注冊外部事件,設定對應控件進行PC構件數(shù)據(jù)提取,通過傳入Document類對象和FilteredElementCollector類作為參數(shù),加入特定篩選條件完成模型數(shù)據(jù)的過濾,得到所需構件集合[10]。采用LookupParameter()函數(shù)獲取過濾后構件的實例參數(shù)信息,get_parameters()獲取內置參數(shù),以數(shù)組承載構件信息集合,方便數(shù)據(jù)提取,引用Epplus庫實現(xiàn)Revit 與 Office 的連接,將過濾后數(shù)據(jù)導入到 Excel 表中。
PC構件通常采用半自動化流水線方式生產,其中模臺是完成PC構件生產的轉運載體,負責PC構件在不同工序之間的流轉。然而,由于PC構件種類繁多,生產時PC構件模具在模臺上存在多種組合形式,不恰當?shù)呐艠臃桨缚赡軙е履E_空間浪費,限制企業(yè)的產能,延長訂單的生產時間,因此在生產過程中需要采用合理的算法,最大程度地利用模臺空間,以縮短生產周期,提高企業(yè)生產效率。
PC構件模具在模臺上的排放問題是典型的二維矩形排樣問題,即將一組數(shù)量為m的待生產PC構件擺放在固定規(guī)格的模臺上,應使排樣所需的總模臺數(shù)量最少,模臺利用率最高。為方便排樣優(yōu)化,將生產模臺擬作二維坐標的矩形面,取模臺寬度W方向為矩形面的y軸,長度L方向為矩形面的x軸,如圖2所示。

圖2 模具在模臺上置放圖
每個PC構件都有其對應的編號M1,M2,…,Mm,任意一個PC構件i(i=1,2,…,m)在模臺上的位置可描述為:
(xi,yi;xi+li,yi+wi;θi)
(1)
(2)
式中:(xi,yi)為PC構件Mi左下角的坐標;(xi+li,yi+wi)為PC構件右上角的坐標,li、wi分別為PC構件的長和寬;θi為旋轉角度。為充分利用模臺面積,放置PC構件時應正交放置,不可傾斜。
在充分考慮出筋長度和操作空間后,為方便排樣優(yōu)化,將PC構件簡化為矩形件,規(guī)定其在模臺上的尺寸為:
(3)
li=lpi+lgi+0.5δci
(4)
wi=wpi+wgi+0.5δci
(5)
式中:si為PC構件面積,lpi、wpi為模具的規(guī)格尺寸,lgi、wgi為外伸鋼筋尺寸,δci為預留操作空間長度,m′為某模臺上的構件總數(shù)。
優(yōu)化目標為模臺利用率最大,其目標函數(shù)為:
(6)
(7)
式中:Ni為布局時占用的模臺數(shù)量,Hz為最后一個模臺的高度。
針對大規(guī)模PC構件排樣問題,啟發(fā)式算法很難從全局角度進行優(yōu)化,因此本文將啟發(fā)式算法與智能搜索算法相結合,采用改進蟻群算法定序,利用動態(tài)剩余矩形算法定位求解PC構件排樣問題。在迭代過程中,首先基于改進蟻群算法搜索出本代所有PC構件的排序序列,然后通過動態(tài)剩余矩形算法對PC構件序列進行解碼,確定PC構件在模臺上的具體位置。通過目標函數(shù)篩選最優(yōu)序列,將本次最優(yōu)序列保存,并更新蟻群信息素,再次循環(huán)迭代,直到達到設置的迭代次數(shù)時結束算法,輸出最優(yōu)排樣序列以及構件排樣圖。排樣優(yōu)化算法流程如圖3所示。

圖3 算法流程圖
1)動態(tài)剩余矩形算法定位。
剩余矩形算法是一種局部優(yōu)化算法,通過記錄模臺上的剩余空間來表示空間使用情況。在PC構件排樣時,未被使用的空間會被記錄在矩形集合中。每個PC構件在排入模臺前,需要根據(jù)剩余矩形集合的信息選擇最佳的位置進行排放,如圖4所示。

圖4 剩余矩形排樣規(guī)則
該算法彌補了BL(bottom-up left-justified)算法或最低水平線算法容易出現(xiàn)模臺空洞的問題,但是當剩余矩形內填入不恰當?shù)腜C構件模具時會浪費部分空間,導致最佳匹配構件無法填入,因此對算法進行部分改進,采用動態(tài)匹配方法對未排放構件區(qū)域進行規(guī)劃。當某一構件模具不能排入最低的剩余矩形時,首先將構件旋轉90°,若滿足要求則放置旋轉后的構件模具,如果仍然無法排入,則向后搜索其余序列,對剩余矩形與待排樣構件模具面積、高度、寬度進行匹配,選擇與剩余矩形尺寸最接近的構件排入。
2)改進蟻群算法定序。
蟻群算法具有收斂速度快、全局搜索能力強的特點,但該算法后期易陷入局部最優(yōu),因此通過遺傳變異策略、路徑隨機規(guī)劃兩種方式對蟻群算法進行改進。
為方便代碼運行,對待排樣構件賦予一個十進制整數(shù)編號代表該構件,正負號表示該構件是否進行旋轉。一個排樣方案對應一個構件序列,例如(8 4 1 7 6 3 -2 -5)按編號順序先橫向排入構件(8 4 1 7 6 3),然后再豎向排入構件(-2 -5)。
采用交叉與旋轉變異相結合的變異策略,在變異初始階段生成一個[0,1]內的隨機數(shù),若該隨機數(shù)小于變異概率Pm1則進行變異,否則不進行變異。設立檢測機制,當三次迭代沒有發(fā)生變異時,則強制觸發(fā),進行變異。
交叉需要在[1,m]構件序列中生成兩個隨機整數(shù)作為變異點bit1和bit2,交換bit1和bit2處的基因,產生新個體。設染色體parent包含基因個數(shù)num=8,隨機生成的變異點bit1=3和bit2=5,則交換變異點位基因產生子代Child A。
旋轉變異是在[1,m]構件序列中生成一個隨機整數(shù)作為變異點bit3,對bit3取反,產生新的個體。隨機生成的變異點bit3=8,則旋轉點位基因產生子代Child B。交叉與旋轉變異示意圖如圖5所示。

圖5 交叉與旋轉變異
路徑選擇規(guī)劃。在完成一次循環(huán)后,每只螞蟻根據(jù)剩余矩形算法反饋的目標函數(shù)適應度對經(jīng)過的路徑按一定比例釋放信息素,適應度值越高,釋放的信息素濃度越高。后續(xù)循環(huán)時,依據(jù)前代螞蟻留下的信息素濃度計算路徑選擇概率,信息素的濃度會隨著時間的延長不斷消散。
(8)
(9)

(10)

(11)
以此調節(jié)不同節(jié)點的信息素濃度,降低螞蟻對信息素的依賴。
以某PC構件生產企業(yè)的一次生產計劃為例,利用BIM二次開發(fā)獲取PC構件排樣數(shù)據(jù)。本次計劃生產66塊PC構件,包含14種不同規(guī)格,詳細參數(shù)見表1。該企業(yè)所使用的模臺尺寸為4 m×9 m。

表1 PC構件參數(shù)
基于改進蟻群算法與動態(tài)剩余矩形算法對PC構件排樣進行優(yōu)化,采用Excel表輸入構件數(shù)據(jù),設定算法的初始參數(shù)見表2。

表2 初始參數(shù)設置
改進蟻群算法結合動態(tài)剩余矩形算法(改進算法)與標準蟻群算法的迭代結果對比如圖6(a)所示,由圖可以看出,在迭代初始階段收斂速度均較快,標準蟻群算法在第100代左右陷入局部極值停止收斂,而改進算法在第45代陷入局部極值,但在270代左右突破局部限制繼續(xù)收斂并得到最優(yōu)值,模臺排樣占用面積由430.45 m2減少到387.40 m2?;诿看骄娣e波動可以看出,改進算法在全局范圍搜索尋優(yōu)能力明顯更強,如圖6(b)所示。

圖6 構件排樣優(yōu)化迭代
改進蟻群算法與動態(tài)剩余矩形算法相結合能夠有效優(yōu)化PC構件排樣,并通過遺傳變異策略與路徑選擇機制解決了算法在迭代后期易陷入局部最優(yōu)的問題。圖7所示為PC構件在模臺上的排樣方案,其最優(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個PC構件生產需要的模臺數(shù)量為15個,而優(yōu)化后所需的模臺數(shù)量為11個,模臺的整體利用率提高了26.6%。

圖7 預制構件排樣
本文對PC構件排樣與上游裝配式建筑設計模型的協(xié)同問題進行研究,提出一種基于BIM的PC構件排樣優(yōu)化設計方法。以裝配式BIM作為獲取排樣數(shù)據(jù)信息的來源,提高PC構件排樣的精度;基于改進蟻群算法與動態(tài)剩余矩形算法對PC構件進行排樣優(yōu)化求解,改善PC構件的布局,提高模臺利用率;與人工排樣相比,本文設計的排樣方法更節(jié)省時間、效率更高。以此排樣優(yōu)化結果結合PC構件BIM數(shù)據(jù)可以為機器劃線、置邊模等過程中的模臺和邊模的定位操作提供參考。