梁明霄,文艷,閆永思
(上海外高橋造船有限公司,上海 200137)
作為大型海上石油處理設(shè)備,FPSO安裝的各類型管路系統(tǒng)是其重要的組成部分。FPSO的管路系統(tǒng)具有排布復(fù)雜、布設(shè)空間受限、設(shè)計要求嚴格等特點,通常其管路系統(tǒng)的設(shè)計工時能占總設(shè)計時長的50%[1]。然而,目前的FPSO管路設(shè)計主要依賴人工完成,設(shè)計人員的經(jīng)驗、知識和對設(shè)計規(guī)范的運用程度,直接決定管路設(shè)計的效率和設(shè)計結(jié)果的優(yōu)劣。
FPSO管路系統(tǒng)設(shè)計中難點在于設(shè)計管道的路徑,在設(shè)計時通常要求以最短的路徑接連管道的起點和終點,同時需要滿足避開限制區(qū)域、減少彎頭數(shù)量、避免管路相互干涉等多種約束條件。FPSO的管道路徑設(shè)計問題可以歸類為一種路徑優(yōu)化問題,這類問題自上世紀60年代起便得到了關(guān)注,并有大量研究人員對此做了研究[2-10]。
蟻群算法最早由Dorigo等[11]提出,該算法模擬螞蟻在自然界中搜索食物的行為,在解決管路路徑優(yōu)化問題時相對其他算法具有優(yōu)勢。
在實際設(shè)計船舶管路系統(tǒng)的過程中,需要面對的管路系統(tǒng)通常存在大量分支管路,針對這類管系的設(shè)計,已有的設(shè)計方法的處理方式主要是將管路系統(tǒng)中所有的終點和起點為管路設(shè)計起點,利用各類算法尋找并確定管路分支點,以此實現(xiàn)管路系統(tǒng)的設(shè)計。
針對FPSO甲板管路系統(tǒng)設(shè)計問題,考慮基于蟻群算法提出管路系統(tǒng)分級設(shè)計方法,首先將FPSO甲板管路系統(tǒng)分為主管路和分支管路,通過分別設(shè)計主管路和分支管路完成對管路系統(tǒng)的設(shè)計。
管路系統(tǒng)的設(shè)計首先受到其所處空間的限制,對于FPSO而言,其管路系統(tǒng)可以根工作空間分為甲板管路系統(tǒng)和艙內(nèi)管路系統(tǒng)。FPSO的甲板管路系統(tǒng)的主要作用在于:連接沿船長方向分布的艙段;連接每個艙段中的艙室;連接甲板上部模塊系統(tǒng)和油氣儲存空間。因此,FPSO的甲板管路系統(tǒng)具有如下的特點。
1)管路系統(tǒng)的垂直方向尺度受到上部模塊的限制,因此其水平方向尺度遠大于垂直方向尺度。
2)管路系統(tǒng)中主管路和分支管路分級明顯,主管路沿船長方向分布,分支管路沿船寬方向分布。
3)各甲板管路系統(tǒng)的主管集中在甲板中部。
對于分級明顯且主管路集中于甲板中部的FPSO甲板管系,在進行數(shù)值設(shè)計時,考慮將管路系統(tǒng)拆分成不同層級進行設(shè)計,即先設(shè)計位于甲板中部主管路,再設(shè)計分支管路。如此設(shè)計既能降低計算難度,也更符合實際設(shè)計邏輯。
設(shè)計目標與約束條件是管路設(shè)計的核心部分,通常在管路系統(tǒng)設(shè)計過程中需要考慮的設(shè)計目標如下。
1)使管路系統(tǒng)的管路長度最小。
2)使管路系統(tǒng)中的彎頭數(shù)量最小。
3)使管路盡量靠近墻體、甲板等。
通常在管路系統(tǒng)設(shè)計過程中需要考慮的約束條件如下。
1)管路系統(tǒng)需要避開障礙物、危險區(qū)域和限制區(qū)域。
2)避免管路系統(tǒng)間的相互干涉。
需要說明的是,上述的設(shè)計目標與約束條件并非是固定的,在設(shè)計時可以結(jié)合具體的要求進行修改。本文中管道的彎頭都被設(shè)定為90°。
管路設(shè)計問題可以視為一個多目標、多約束條件的優(yōu)化問題,依照前文所述,管路設(shè)計問題的數(shù)學(xué)形式可以表示為
(1)
式中:fp為第p條管路的目標函數(shù);Lp,Bp為第p條管路的長度和彎頭數(shù)量;Rp為第p條管路的路徑;Ω為管道路徑的可經(jīng)過區(qū)域。
如式(1)中所示,管路設(shè)計問題是一個典型的三維路徑優(yōu)化問題,對于求解這一類問題,蟻群算法具有針對性強、收斂性好等優(yōu)勢。因此,基于蟻群算法構(gòu)建用于FPSO甲板管路分級設(shè)計方法。
FPSO甲板管路系統(tǒng)具有明顯的分級特點,其甲板管路中的主管路集中于甲板中部,沿船長方向延伸,分支管路由主管路向船舷延伸。對于這類型的管路系統(tǒng),在設(shè)計時可以將其分為主管路和分支管路進行設(shè)計。設(shè)計流程見圖1。
圖1 FPSO甲板管路系統(tǒng)分級設(shè)計流程
針對所需要設(shè)計甲板管路系統(tǒng),首先確定主管路的起點、終點以及分支管路的終點,并劃分管路所在區(qū)域的網(wǎng)格。設(shè)置螞蟻種群數(shù)量,搜索主管路起點、終點間的最優(yōu)路徑。在主管路路徑搜索完成后,以分支管路終點為起點,搜索到達主管路的最優(yōu)路徑。在主管路和分支管路搜索完成后,計算管路系統(tǒng)的長度和彎頭數(shù)量等目標函數(shù),依據(jù)目標函數(shù)的大小更新網(wǎng)格邊界的信息素,完成第一步迭代。重復(fù)上述計算過程直至迭代步數(shù)到達設(shè)定值。
在蟻群算法中,路徑的搜過程實質(zhì)是螞蟻不斷的選擇和移動到相鄰的未探索節(jié)點。螞蟻在網(wǎng)格中的移動方向由信息素和啟發(fā)因子共同決定。其中,信息素的強度取決于先前經(jīng)過螞蟻的數(shù)量,經(jīng)過某一路徑的螞蟻越多,該路徑上的信息素強度越高。信息素記錄的是前序計算的信息,其作用是保留下優(yōu)秀的計算結(jié)果用于后續(xù)迭代。啟發(fā)因子用于評價當前迭代步中,螞蟻某前進方向的優(yōu)劣,其大小與前述計算結(jié)果無關(guān)。啟發(fā)因子與信息素聯(lián)合使用可以避免蟻群算法發(fā)散或者陷入局部最優(yōu)解。
螞蟻移動方向的具體選取過程如下。
(2)
式中:τij為當前點i到相鄰點j間路徑的信息素;ηij為當前點i到相鄰點j間路徑的啟發(fā)因子;、和為經(jīng)驗系數(shù),其中q0∈(0,1);Pij為當前點i到相鄰點j的概率,具體計算方法如下。
(3)
在計算時首先生成均布隨機數(shù)q,若q≤q0,則螞蟻向具有最大Pij值的點移動;否則,依據(jù)每個相鄰點的概率,選擇下一點的移動方向。
蟻群算法中的啟發(fā)因子用于在當前迭代步中,評價螞蟻某一移動方的優(yōu)劣。本文管路系統(tǒng)被分為主管路和分支管路兩部分,在主管路部分設(shè)計完成后,分支管路再進行設(shè)計。在設(shè)計主管路時,其管路的起點和終點是確定的,因此主管路設(shè)計使用的啟發(fā)因子如下。
(4)
式中:xj、yj、zj為螞蟻當前所在位置的相鄰點j的三維坐標;XE、YE、ZE為主管路終點的三維坐標。
在主管路的路徑搜索完成后,分支管路開始設(shè)計。與主管路不同的是,分支管路路徑的搜索是由分支管路的終點開始的,當分支管路的路徑到達主管路時搜索結(jié)束。因此,分支管路路徑的起點是確定的,而其終點是不確定的。對于分支管路,螞蟻當前所在位置相鄰點j的啟發(fā)因子可以表示為
(5)
式中:Sj為點j到主管路的最近曼哈頓距離,具體可以表示為
Sj=argmin[|xj-XJ|+|yj-YJ|+|zj-ZJ|]
(6)
式中:XJ、YJ、ZJ為主管路上點J的三維坐標。
(7)
(8)
(9)
在FPSO甲板管路系統(tǒng)分級設(shè)計方法中,主管路和分支管路的搜索過程是分開進行的,因此,主管路和分支管路在搜索時使用的信息素信息也應(yīng)當分為互不干擾的兩組。在主管路和分支管路路徑搜索完成后,再依據(jù)式(7)~(9)分別更新主管路和分支管路的信息素。
設(shè)置1個長、寬、高分別為50 m、50 m和1 m的管路系統(tǒng)設(shè)計區(qū)域,區(qū)域網(wǎng)格的長、寬、高分別為2 m、2 m和1 m,管路系統(tǒng)需要連接的3個點坐標分別為點A(0,0,0)、點B(50,0,0)和點C(22,50,0),其中主管路需要連接A、B兩點,分支管路需要連接C點。通過在區(qū)域內(nèi)為管路系統(tǒng)設(shè)計路徑,對比FPSO甲板管路系統(tǒng)分級設(shè)計方法與常用方法所得結(jié)果,見圖2。
圖2 常用方法與本文方法結(jié)果對比
在圖a)中,為了保證3條路徑能最終合攏,從1點出發(fā)的螞蟻將另兩只螞蟻的當前位置和已搜索的路徑作為搜索目標。A螞蟻和B螞蟻首先在點D(24,0,0)處相遇,B螞蟻停止搜索,而A螞蟻由點D出發(fā),繼續(xù)向Y軸正方向搜索直至與C螞蟻相遇。觀察圖a)中不難發(fā)現(xiàn),A、B螞蟻的匯合點D實際成為了管路系統(tǒng)的分支點,但分支點D并非最優(yōu)的分支點(22,0,0)。這一問題是目前常用方法中的一個缺陷,對于常用方法,管路系統(tǒng)中的分支點的位置由網(wǎng)格劃分、起點位置等多種參數(shù)共同決定,并不能保證其位置最優(yōu)。在圖a)中,通過增加迭代步數(shù)或者螞蟻種群數(shù)并不能繼續(xù)優(yōu)化分支點位置。針對這個問題,一個比較好的處理方式是修正網(wǎng)格。論文[12]給出了一種網(wǎng)格修正方法,以圖a)為例。圖中(2,0,0)至(20,0,0)間的節(jié)點以及(24,0,0)至(48,0,0)間的節(jié)點可以視作A、B兩螞蟻匯合過程中的過程節(jié)點,去掉這些節(jié)點可以使得A、B兩螞蟻在第一步迭代時直接在點(22,0,0)匯合。然而,對于有多套并行管路系統(tǒng)需要同時設(shè)計的情況,論文[12]中給出的網(wǎng)格修正方法并無優(yōu)勢,它在去掉某些過程節(jié)點的同時,又會增加新的過程節(jié)點。因此,對于分級現(xiàn)象明顯、分支管路眾多、多管路系統(tǒng)并行排列的FPSO甲板管路系統(tǒng),常用方法并無優(yōu)勢。
在圖b)中,A、B、C三點間的管路系統(tǒng)被分為兩級,其中連接點A和點B的為主管路,連接點C和主管路的為分支管路。圖b)中的管路路徑由FPSO甲板管路系統(tǒng)分級設(shè)計方法所得,設(shè)計時A螞蟻首先沿X軸搜索確定了由A點至B點的主管路,隨后C螞蟻開始搜索并在點(22,0,0)與主管路匯合。相較于圖a),本方法通過將管路系統(tǒng)分級,在降低了每級管路系統(tǒng)的計算難度的同時,避免了路徑匯合對管路分支點的不利影響。
基于蟻群算法建立的用于設(shè)計FPSO甲板管路系統(tǒng)的分級設(shè)計方法,將甲板管路分化為主管和分支管路,通過先后設(shè)計主管路和分支管路的方式完成對管路系統(tǒng)的設(shè)計。對比一般方法表明,所提出的設(shè)計方法能有效解決分支管路設(shè)計中由多起點同時設(shè)計管道路徑造成的分支點不在最優(yōu)位置的問題;同時,通過將管路系統(tǒng)分級的方式,可有效降低數(shù)值計算和程序編寫難度。
所提出的設(shè)計方法能有效輔助實際FPSO甲板管路系統(tǒng)設(shè)計,提高設(shè)計效率。在后續(xù)研究中可以將該方法進一步拓展,將管路系統(tǒng)的受力等作為約束條件,提高設(shè)計結(jié)果的完成度。