?

考慮能耗優化的多目標原油短期調度問題研究

2022-02-18 03:22張億仙滕少華王書娟朱清華
關鍵詞:油罐煉油種群

侯 艷,張億仙,滕少華,王書娟,朱清華

(廣東工業大學計算機學院,廣東 廣州 510000)

0 引言

原油作為一種不可再生資源,對現代經濟發展具有重要的意義.隨著全球生態環境污染的日益嚴重,傳統的以消耗大量資源來實現經濟增長的方式必須得以改變.如何在資源和能源有限的條件下進行生產是原油企業亟需解決的問題.

宏觀上,原油短期調度被分為3個階段:1)原油一次加工過程,包括原油卸載、混合和轉運過程;2)生產過程,包括原油的蒸餾、催化裂化等化學加工過程;3)成品油的儲存和運輸過程,即選擇合適的運輸方式將加工好的原油產品及時運輸到不同的目的地[1].原油一次加工過程包含著大量復雜的約束,因此,目前仍依賴有經驗的調度員根據經驗不斷試錯來得到一個可行的詳細調度計劃.原油一次加工過程是在煉油生產過程中的關鍵步驟,直接影響著后續生產環節的經濟性和穩定性.因此,做好一次加工過程的調度,降低其中的各項成本,對于提高煉油企業經濟效益和整體的自動化水平具有非常重要的意義.

作為一種比較成熟的建模求解方法,數學規劃方法一直被廣泛應用于工業生產問題的建模.目前,通過數學規劃求解原油短期調度問題已有大量的相關研究.根據對時間的不同表示方法,這些數學模型可以分為離散時間模型和連續時間模型.文獻[2]給出了在原油短期調度問題中原油一次加工過程的形式化定義,并建立了基于離散時間表示的混合整數規劃模型.離散時間模型的主要優點是它提供了一個參考網格,所有競爭共享資源的操作都被放置到這個參考網格中,使得模型較為簡單.然而,離散時間模型的主要問題是事件只允許發生在離散間隔的邊界處,需要增加離散變量的數量來提高問題的求解精度.因此,極大地增加了時間變量的個數,從而增加了數學規劃求解器的求解難度.為此,有學者提出了連續時間模型.文獻[3]通過狀態任務網對原油短期調度問題進行建模,為了最小化煉油廠在短期調度過程中的總操作成本,提出了一種基于連續時間表示的混合整數非線性規劃模型;相對于離散時間模型,在該模型中決策變量的個數得到了極大地減少.文獻[4]為了最大化煉油廠整體運行的總毛利潤,提出了一種基于連續時間表示的單操作排序模型,并給出了其對應的2步求解方法.文獻[5]為了最小化原油在轉運過程中的能耗,建立了一個基于連續時間表示的線性規劃模型.在連續時間表示的模型中,事件可以發生在調度區間內的任意時刻,時間點就是準確的事件開始點和結束點.利用連續時間表示,可以大大減少在模型中的離散變量,然而以產生非線性約束為代價,求解極其困難[6].

文獻[7]認為將優化與啟發式和仿真相結合的方法能夠快速地解決大而復雜的問題,具有更好的實用性.為此,基于控制理論的角度,原油一次加工過程被分解為上下2層.在上層,為了最大化生產率等目標,利用數學規劃的方法求解得到一個上層目標煉油計劃; 在下層,得到一個詳細調度計劃.對于上層問題,文獻[8]提出了一種有效的3階段求解的數學規劃模型,使得上層優化問題得到了較好的解決.然而,對于下層問題,由于其復雜的約束條件,所以很難保證解的可行性,優化就更難.因此,文獻[9-12]通過建立Petri網模型,分析并提出了在不同狀態下的可調度性條件,用于驗證上層生成的煉油計劃是否可行,以及指導下層詳細調度的生成.

然而,上述工作只是保證解的可行性,并沒有對生成下層在詳細調度過程中的多個目標進行優化.由于原油短期調度問題是一個既包含有連續變量又包含有離散事件的混合系統,需要調度的任務事先未知,所以,需要在調度的過程中定義任務,導致啟發式算法和元啟發式算法無法直接應用.為此,文獻[13]提出了一種轉換方法,將該問題轉換為一個動態資源指派問題,并使用遺傳算法求解該問題.基于上述問題的轉換,文獻[14]以最小化蒸餾塔使用供油罐的切換成本、使用的供油罐的個數、在供油罐和管道中原油的混合成本為目標,利用多目標進化算法(non-dominated sorting genetic algorithm-II,NSGA-II)對該問題進行求解,為決策者提供多個可供選擇的優化解.

以上研究為了最大化生產率和保證調度的可行性,在轉運時均假設采用最大速率.然而,在實際生產中,管道上有多組不同的油泵,當開啟不同組數的油泵時,對應的轉運速率也不同,轉運速率與油泵組數之間是非線性關系.同時,在大多數情況下,在供油罐中的原油往往需要等待較長的時間后才會被蒸餾塔所使用.這不僅造成電能的極大浪費,而且會占用更多的供油罐.因此,對于轉運能耗的研究是非常必要的.除了能耗優化,同時還考慮了文獻[14]中涉及的4個目標,本文建立了一個多目標優化數學模型.對于高維多目標優化問題,可以將其加權求和轉換為單目標優化問題,或者直接利用多目標進化算法對其進行求解.目前,常見的多目標進化算法分為如下3類.

1)基于Pareto支配關系的多目標進化算法.文獻[15]提出了一種基于快速非支配排序和擁擠距離的多目標遺傳算法NSGA-II,該算法能夠較好地解決低維多目標優化問題.然而,隨著目標維度的增加,存在著由選擇壓力過小而導致收斂性較差的問題.為了解決這一問題,文獻[16]對在NSGA-II中臨界層選擇策略進行改進,提出基于非支配排序和基于參考點的臨界層選擇的多目標遺傳算法(reference-point-based non-dominated sorting genetic algorithm-III,NSGA-Ⅲ).文獻[17]提出了基于網格的進化算法(grid-based evolutionary algorithm,GrEA),該算法通過改進的網格支配和網格差異來代替傳統Pareto支配關系以增大選擇算子的選擇壓力.

2)基于指標的多目標進化算法.性能評價指標通常用來分析算法運行的結果,為了讓算法朝著決策者偏好的方向搜索,文獻[18]提出了基于指標的進化算法(indicator-based evolutionary algorithm,IBEA).另外,選擇Pareto前沿面上“最凹”的一個點作為非支配解集有助于提高解集的收斂性和多樣性,基于該思想,文獻[19]提出了基于拐點的多目標進化算法(knee point driven many-objective evolutionary Algorithm,KnEA).文獻[20]提出了基于指標的參考點自適應多目標進化算法(indicator-based MOEA with reference point adaptation,ARMOEA),根據前沿面的形狀自動地調整參考點集的分布,提高算法在不同形狀前沿面上的求解性能.

3)基于分解的多目標進化算法.文獻[21]提出了基于分解的多目標進化算法(multi-objective evolutionary algorithm based on decomposition,MOEA/D),它通過將一個多目標優化問題分解為多個單目標優化子問題,接著,優化每一個子問題使得原問題得以求解.文獻[22]提出了一種基于參考向量的多目標進化算法(reference vector guided evolutionary algorithm,RVEA),該算法通過一組預定義的參考向量指導算法朝著用戶偏好的方向搜索.

基于該問題的特點,本文提出一種改進的染色體編碼和解碼策略,并對比分析了上述8種具有代表性的多目標優化算法,實驗結果表明NSGA-III算法在該問題上具有較好的性能.最后,將算法運行得到的非支配結果與現有的研究結果進行對比.

1 問題描述與建模

1.1 問題描述

一個典型的原油1次加工過程如圖 1所示,油輪在港口時卸載原油到港口的儲油罐中,然后通過一條較長的輸油管道,將原油最終輸送到煉油廠內的供油罐中.經過一段時間的駐留等待,分離出在原油中的海水.最終,將在供油罐中的原油提供給蒸餾塔進行煉油操作.

圖1 原油1次加工過程

在原油1次加工過程中,存在著很多約束.一旦違背這些約束,則調度計劃將變為不可行.一般地,這些約束分為資源約束和操作約束2類.其中資源約束包括:

1)儲油罐和供油罐的容量是有限的;

2)在管道中原油的流速必須在指定的范圍內;

3)原油在儲油罐、供油罐、管道以及即將到來的油船上的油量是有限的.

操作約束主要包括:

1)所有蒸餾塔在整個調度周期內不能中斷煉油;

2)供油罐和儲油罐不能同時進油和出油;

3)管道不能同時向2個供油罐注入原油;

4)為了過濾出在原油中的海水,在儲油罐和供油罐中的原油在注油結束后必須等待一段時間才能使用,記為駐留時間約束;

5)當一個供油罐給蒸餾塔供油時,在供油罐中的原油并不能完全用完,有約1/6的原油會留在供油罐中,稱之為罐底;

6)輸油管道的輸油速率可以在一定的范圍內變化,但其費用不同.

1.2 數學模型

除了在原油轉運過程中會產生能耗成本外,該問題中還存在一些其他的優化目標,如減少不同種類的原油在管道和供油罐中混合時由原油的品質下降而產生的經濟成本、盡量少地使用供油罐和減少蒸餾塔使用供油罐的切換成本等.

設煉油廠內原油種類數為O,蒸餾塔的個數為D,mi, j為原油i和原油j在管道中依次流動的單次混合成本,ni, j是罐底為原油i注入原油j的單次混合成本,ci, j為原油i和原油j在管道中依次流動的次數,di, j是罐底為原油i注入原油j的次數,ηd為第d個蒸餾塔(DSd)切換供油罐的次數,ud為DSd的煉油任務的個數.αd,u為DSd的第u個煉油任務的起始供油罐,W為原油在管道中轉運任務的個數,Cw為第w個原油轉運任務的單位時間能耗,τw為第w個原油轉運任務的開始時刻,υw為第w個原油轉運任務的結束時刻,VFd,p為DSd的在第p個原油進料包中需要轉運原油的體積,Pd為DSd的原油進料包的個數,H為調度周期的長度,fd為DSd的煉油速率,Sd,u和Ed,u分別為DSd的第u個煉油任務的開始時刻和結束時刻,Ω為在原油轉運結束后需要等待的駐留時間,μw為在第w個原油轉運任務中的原油開始使用時間.為了形式化描述,本文建立了下述數學模型.

目標函數:

(1)

(2)

(3)

minJδ=|{αd,u|d∈{1,2,…,D},u∈{1,2,…,ud}}|,

(4)

(5)

約束條件:

(6)

0≤τ1<υ1≤τ2<υ2≤…≤τW<υW

(7)

Sd,1

(8)

υw+Ω≤μw,?w∈{1,2,…,W}.

(9)

目標函數(1)表示在管道中不同種類原油混合所產生的成本,即在管道中相鄰的2種不同種類的原油包會在其鄰接的切面位置處發生混合產生的成本; 目標函數(2)表示在供油罐中不同種類原油混合所產生的成本,即由于供油罐中總會剩余部分原油,所以當新注入的原油與其種類不同時,由原油品質下降而會產生一定的經濟成本; 目標函數(3)表示蒸餾塔切換供油罐的次數; 目標函數(4)表示在整個調度周期內使用的供油罐的數量; 目標函數(5)表示原油在管道中轉運所產生的電能消耗; 約束(6)表示任意一個蒸餾塔的所有原油進料包的體積恰好能夠滿足其整個調度周期的需要; 約束(7)表示在任意時刻時管道至多為1個供油罐輸送原油; 約束(8)表示在調度期間蒸餾塔煉油不能中斷; 約束(9)表示在原油轉運到煉油廠內的供油罐后,只有等待一段時間以過濾出在原油中的海水,才能供蒸餾塔煉油.

2 詳細短期調度計劃

為了介紹生成一個詳細調度的過程,先給出如下定義.

定義1原油進料包FP=(o,ξ,INT),其中o代表其中的原油類型,ξ代表其中的原油體積,INT=[a,b]代表原油包的使用時間,即原油包從時刻a開始使用到時刻b結束使用.

定義2在整個調度周期內的煉油計劃RS={F1,1,…,F1,P1,…,Fd,1,…,Fd,Pd},其中Pd為蒸餾塔DSd的進料包個數.

定義3任務OD=(o,ξ,V,S,D,INT),其中o代表待處理的原油類型,ξ代表原油的體積,V代表管道中原油的流速,S代表原油的來源,D代表原油的目的地,INT=[a,b]代表任務的執行時間,即任務從時刻a開始到時刻b結束.

在原油短期調度問題中的任務可以分為3類,它們分別為原油卸載任務ODU、原油轉運任務ODT和煉油任務ODF.在通常情況下,煉油廠會預購在未來一段時間內需要使用的原油,不妨假設在港口儲油罐中的原油足夠當前調度周期使用,即不考慮ODU任務.因此,一個詳細的短期調度計劃可以表示為SCHD={ODT1,ODT2,…,ODTW,ODF1,ODF2,…,ODFU},其中煉油任務的個數U=u1+u2+…+ud.

假設τ時刻,系統的狀態如下:

1)Fd,p轉運了一部分或Fd,p-1剛結束轉運;

2)未完成煉油計劃的蒸餾塔集合為ND;

3)可用的供油罐的集合為UT;

4)原油轉運速率集合為FR;

5)在已經生成的部分調度計劃中蒸餾塔DSd的煉油結束時間為θd.

基于文獻[13]的思想,一個詳細調度可以通過逐步確定轉運任務和煉油任務得到,即根據文獻[9-12]中的可調度性條件和已經生成的部分調度,逐個地產生ODT及其對應的ODF.最終,得到一個實現了給定煉油計劃的詳細調度.

為了確定一個ODT及其對應的ODF,首先,從UT中選擇一個供油罐,記為CTk,從ND中選擇一個蒸餾塔,記為DSd,從FR中選擇一個原油轉運速率,記為FRv.根據給定的煉油計劃,可以確定當前需要提煉原油的類型,進而確定當前需要轉運原油的類型.此時,一旦轉運原油的體積ξ已知,則通過計算ξ/FRv可以得到轉運任務的持續時間,進而確定一個ODT.同時,通過計算ξ/fd可以得到煉油任務的持續時間,并確定與當前ODT對應的ODF.為了表述方便,這里將蒸餾塔、供油罐和轉運速率的一種選擇記為一種指派方案.

2.1 計算原油轉運體積

從上面的分析可以看出,在選擇了一種指派方案后,還需要確定轉運原油的體積ξ.一方面,為了減少不同種類原油在管道和供油罐中的混合成本,提高供油罐的利用率,應盡可能多地轉運原油;另一方面,每次轉運的原油體積要滿足供油罐容量約束和原油進料包約束,且在滿足駐留時間約束的同時,保證轉運的原油能夠及時地提供給蒸餾塔.因此,體積的計算方法為ξ=min(CAPk,VFd,p,FRv(θd-Ω)),其中CAPk為供油罐的容量,VFd,p為Fd,p中還需要轉運的原油的體積.

2.2 生成詳細調度計劃

為了保證調度計劃的可行性,這里給出安全狀態的定義.

定義4假設時刻τ,系統處于安全狀態,當且僅當在[τ,∞]時存在一個可行的調度.

為了保證最后生成一個可行的詳細調度,必須保證系統時刻處于安全狀態,即選擇一系列合適的指派方案,并產生一系列的ODT及對應的ODF,使得在每次ODT結束時系統仍處于安全狀態.一個可行的詳細調度通過下述步驟得到:

1)判斷在初始時系統是否處于安全狀態,若是安全狀態,則繼續向下執行,否則,結束.

2)根據已知的煉油計劃,安排在初始時裝有原油的供油罐的ODF.

3)選擇一個合適的指派方案,并根據選擇的蒸餾塔和已知的煉油計劃確定轉運原油的類型,計算轉運原油的體積,根據所選擇的轉運速率計算轉運任務的持續時間并生成一個ODT,并根據蒸餾塔的煉油速率和在供油罐中的原油體積確定對應的ODF.

4)判斷在ODT結束時系統是否處于安全狀態,若是,則執行4),否則,執行5).

5)撤銷上一次指派確定的ODT和ODF,并將系統狀態回退到前一狀態.此時,判斷是否存在合適的指派方案.若是,則繼續執行3),否則,繼續執行5).

6)若已經完成煉油任務,則結束,否則,繼續執行3).

3 NSGA-III算法

3.1 確定染色體的編碼長度

在使用NSGA-III求解該問題時,在種群中的每一個染色體代表一個可行的詳細調度.確定一個合適的染色體編碼長度,對于提高算法的求解效率是非常重要的.根據給定的煉油計劃,可以計算出最大的指派次數

(10)

其中U(N)代表對N向上取整,ω為在供油罐集合中最小的供油罐體積.

考慮每次轉運決策需要確定蒸餾塔、供油罐和油泵的組數,本文提出的三染色體編碼結構如圖 2所示.因此,每個染色體編碼長度均為3Γ.

圖2 三染色體結構

3.2 染色體編碼與解碼

一個染色體X=(x1,x2,…,x3Γ),其中,xj∈[0,1),?j∈{1,2,…,3Γ}.染色體的第i次指派的解碼過程如下:

d=L(x3i-2|ND|)+1,

(11)

k=L(x3i-1|UT|)+1,

(12)

v=L(x3i(|FR|+1)),

(13)

其中L(N)代表對數字N向下取整,|S|代表在集合S中元素的個數.

根據式(11)~(13),第i次指派從集合ND中選擇第d個未完成煉油任務的蒸餾塔,從集合UT中選擇第k個可用的空罐,從集合FR中選擇第v個轉運速率.特殊地,當v=0時,代表管道停止轉運原油直到某一個供油罐被蒸餾塔釋放.假設ND={DS1,DS2},UT={CT3,CT7,CT9},FR={V1,V2,V3},第i次指派所對應的編碼為(0.35,0.82,0.64),則解碼后,d=1,k=3,t=2,即以速率V2向CT9轉運DS1所需要的原油.

3.3 交叉與變異算子

對于任意一個染色體X,一旦X中任意一個指派發生變化,其后的指派都將發生變化.因此,本文結合單點交叉和單點變異的思路,提出了改進的模擬二進制交叉算子和多項式變異算子.

設2個父代個體x1和x2,則改進的模擬二進制交叉算子產生2個后代個體c1和c2的方式為

其中p是交叉的位置,α是由分布因子η1動態確定,η1越大,產生的后代個體越接近父代.

p=L(rΓ),

其中隨機數r∈[0,1).

假設父代個體xt,則改進的多項式變異算子產生后代個體xt+1的方式如下所示:

其中q是變異的位置,β是由分布因子η2動態確定,η2越大,產生的后代個體越接近父代.

q=L(rΓ),

3.4 選擇算子

圖3 選擇操作的具體過程

3.5 NSGA-III算法的整體流程

NSGA-III算法的執行流程如下:

1)種群初始化,t=0,隨機產生種群P0;

2)交叉和變異操作,對Pt執行改進的交叉和變異操作產生子代種群Qt;

3)選擇操作,執行選擇算子得到種群Pt+1,并令t=t+1;

4)重復執行步驟2)和3),直到t達到最大迭代次數.

4 工業實例與結果

某煉油廠共有3個蒸餾塔,記為DS1、DS2、DS3,它們的煉油速率分別為375、230和500 t·h-1.上層得到的一個10 d的煉油計劃(見圖 4).原油的駐留時間為6 h.在開啟1組、2組和3組油泵時,管道中原油的轉運速率分別為833.3、1 250.0和1 375.0 t·h-1,其對應的原油轉運任務的單位時間能耗Cw分別為1、2和3.

圖4 一個10 d的煉油計劃

根據已知的煉油計劃和表1中在煉油廠內9個供油罐CT1~CT9的初始狀態可知,FP12、FP21和FP33分別需要轉運原油63 000、25 200和38 000 t.因為表1中最小的供油罐容量為20 000 t,根據式(10)可得Γ=8.考慮管道可能停止轉運的情況,這里Γ取12,染色體的編碼長度為36.

表1 供油罐的初始狀態

由上述可知,mi, j和ni, j分別表示原油i和原油j在管道和供油罐中發生1次混合所產生的經濟成本,假設6種不同種類的原油在管道和供油罐中混合所產生的經濟成本分別如下:

本文實驗基于i5-5200U CPU,主頻2.20 GHz,內存8 G的筆記本電腦,運行環境為Matlab 2020.8種算法的模擬二進制交叉算子的分布指數為η1=20,多項式變異算子的分布指數為η2=20.

圖5 8種算法的IGD指標對比

衡量2個多目標優化算法的另一種方法是比較它們所得解集的覆蓋率.設A、B為2個算法得到的2個解集,C(A,B)為集合A覆蓋集合B的比率,

C(A,B)=|u∈B|?v∈A,v支配u|/|B|.

當C(A,B)>C(B,A)時,稱A中解的質量高于B中解的質量; 否則,稱A中解的質量低于B中解的質量.特殊地,當C(A,B)=1時,B中所有的個體均被A中的某些個體所支配;當C(A,B)=0時,B中沒有個體被A中的任一個體所支配.將NSGA-III算法分別與其余的7種算法對比,7組實驗的具體配置如表 2所示.設A為NSGA-III,B為待對比算法.如圖 6所示,淺色區域代表C(A,B)的值,深色區域為C(B,A)的值.綜合來看,在不同的種群規模和迭代次數的情況下,NSGA-III算法所得解的質量更優.

表2 NSGA-III與另外7種算法對比實驗

種群規模為50迭代500次 種群規模為100迭代500次 種群規模為150迭代500次 種群規模為200迭代500次圖6 NSGA-III與7種算法的覆蓋率指標對比

為了綜合評價算法的運行效率,對比了在不同的種群規模和迭代次數的情況下,8種算法的運行時間如圖 7所示,其中每組實驗獨立運行30次.

(a)種群規模50,迭代次數100,獨立運行30次 (b)種群規模50,迭代次數200,獨立運行30次

種群規模為50迭代100次 種群規模為100迭代100次 種群規模為150迭代100次 種群規模為200迭代100次

(c)種群規模150,迭代次數100,獨立運行30次 (d)種群規模150,迭代次數200,獨立運行30次圖7 8種算法運行效率對比盒圖

從上述實驗結果可以看出,NSGA-III算法在求解質量和運行效率上均表現良好.根據圖6,為了得到較好的調度結果,這里設置種群規模為200,迭代次數為500.此時,NSGA-III算法1次運行得到的非支配解集如圖8所示.

注:a為管道混合成本,b為罐底混合成本,c為蒸餾塔使用供油罐的切換次數,d為供油罐個數,e為能耗成本.圖8 運行NSGA-III算法得到的非支配解集

從上述得到的非支配解集中選取3個具有代表性的解與文獻[5]中的結果對比,結果如表3所示.調度1和調度3的5個目標均比文獻[5]中的結果更優.其中,調度3的在管道中原油混合成本比文獻[5]中的成本降低了50%以上.調度2的原油在供油罐中的混合成本高于文獻[5]中的結果,但是調度2使用了更少的供油罐.同時,3個解的能耗成本均減少了將近10%.

表3中調度3的甘特圖如圖9所示.從圖9可以看出:在第2次指派時管道發生停運直到供油罐在CT3中的原油被DS3使用完并釋放;同時,調度3共執行了5次轉運操作,每次均采用最低速率V1轉運原油.

表3 NSGA-III算法與現有研究對比

圖9 調度3的轉運和煉油計劃甘特圖

5 結論

針對在原油管道運輸過程中的能耗優化問題,本文在已有的可調度性條件的基礎上,將該問題轉換為一個多目標動態資源指派問題.接著,改進了染色體的編碼和解碼方式,并通過一系列實驗分析對比了多種具有代表性的多目標優化算法的性能.實驗結果表明NSGA-III算法在求解該問題時性能較好.與現有研究工作中的結果進行對比,可以看出本文算法在能耗等多個目標上均有較大程度的優化.

猜你喜歡
油罐煉油種群
山西省發現刺五加種群分布
探究煉油設備腐蝕與防護技術
基于雙種群CSO算法重構的含DG配網故障恢復
把握主動權,提高油罐火災撲救成功率
中國石化煉油銷售有限公司
從小到大,由大走強—40載煉油節節高
中華蜂種群急劇萎縮的生態人類學探討
“?!睕r空前 煉油之踵
某分餾廠油罐區設計
DSP運動控制器在油罐焊接機器人中的應用探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合