宮飛翔,趙永亮,趙昕,李秋爽,鄒華
(1.中國電力科學(xué)研究院有限公司,北京 100192;2.北京郵電大學(xué) 網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876;3.國網(wǎng)山東省電力公司經(jīng)濟技術(shù)研究院,山東 濟南 250021)
水泥作為基本的建筑材料,具備需求量大的特點,在2021 年及2022年,水泥產(chǎn)量分別達到23.63 億噸及21.18 億噸[1]。同時水泥行業(yè)是一類高耗能的產(chǎn)業(yè)類型,水泥熟料能效基準水平為117 千克標準煤/噸[2],按照電熱當(dāng)量計算法,截至2020 年底,水泥行業(yè)能效低于基準水平的產(chǎn)能約占24%,根據(jù)前文的數(shù)據(jù)進行估算,約有超過5 億噸的水泥產(chǎn)量的生產(chǎn)能力需要進行改進,具備較大的節(jié)能減排改造潛力。為了對水泥生產(chǎn)耗能進行改進,除了采用更加先進的技術(shù)和生產(chǎn)設(shè)備之外,也可以通過對現(xiàn)有的生產(chǎn)安排進行優(yōu)化,取得更為合理的生產(chǎn)安排,做到在生產(chǎn)設(shè)備運行時間不變的情況下提升水泥生產(chǎn)能力,從而減少每噸水泥產(chǎn)量的生產(chǎn)能耗,達到節(jié)能減排的目的[3],同時還可以提高生產(chǎn)效率,節(jié)約企業(yè)生產(chǎn)成本。
任務(wù)狀態(tài)網(wǎng)絡(luò)(State Task Network,STN)由Kondili等人提出,可以用于描述化工生產(chǎn)過程,此類過程通常按照一定的配方和流程進行[4]。STN 提供了一種此類流程的圖形化表征、數(shù)學(xué)建模方法及相應(yīng)的求解方法[5-6],將生產(chǎn)任務(wù)、原料及產(chǎn)物等抽象為有向圖中的節(jié)點,并通過邊的連接表示生產(chǎn)任務(wù)所對應(yīng)的輸入原料及輸出產(chǎn)物,由于STN 的建立主要基于生產(chǎn)的配方,因此可以擴展至化工之外的領(lǐng)域。蘇生等人在STN 的基礎(chǔ)上對其進行擴展,使其成為能夠描述具有復(fù)雜產(chǎn)品結(jié)構(gòu)的生產(chǎn)過程、存儲過程及不同運輸模式的運輸過程的模型,將其用于解決制造供應(yīng)鏈問題[7]。趙均等人對藥物發(fā)酵生產(chǎn)過程進行建模,并使用模擬退火算法對其進行求解,得到藥物生產(chǎn)過程的調(diào)度結(jié)果[8]。Pantelides 認為STN 存在只能包含處理任務(wù),無法處理存儲、清洗等任務(wù),同時STN 中流入、流出任務(wù)的比例必須為100%的缺陷,為了緩解上述缺陷,Pantelides 基于STN 建立了資源任務(wù)網(wǎng)絡(luò)(Resource Task Network),將設(shè)備、存儲、物料傳輸及公共設(shè)施按照統(tǒng)一的方式進行處理[9]。此外,Crooks 基于STN 提出最大化狀態(tài)任務(wù)網(wǎng)(maximum State Task Network,mSTN),緩解了前述兩個缺陷[10]。由于STN 為MILP模型,其求解為NP-hard 問題,Durand等通過一系列整數(shù)修剪方法來提高STN 建模的短期調(diào)度問題的計算性能[11]。
本文主要對水泥生產(chǎn)中生產(chǎn)排產(chǎn)優(yōu)化問題進行了研究。在水泥生產(chǎn)過程中,涉及的生產(chǎn)設(shè)備主要使用電力進行驅(qū)動,而工業(yè)用電中電價在不同的時間點可能不同,可以考慮在高峰用電時段根據(jù)生產(chǎn)需要選擇停止生產(chǎn),或是根據(jù)用電安全約束的需要對生產(chǎn)進行調(diào)節(jié),將相關(guān)的生產(chǎn)安排在低谷電價時段,達到降低成本目的。因此通過利用STN 對水泥生產(chǎn)流程進行建模,對模型進行求解,得到最優(yōu)化的生產(chǎn)安排計劃。
本小節(jié)主要描述水泥生產(chǎn)流程中可以與STN 構(gòu)成對應(yīng)關(guān)系的部分。以圖1 所示部分水泥生產(chǎn)流程,可以將水泥生產(chǎn)過程中的原料、中間產(chǎn)物及最終產(chǎn)物表示為狀態(tài)節(jié)點,生產(chǎn)過程中涉及的設(shè)備及生產(chǎn)步驟可表示為任務(wù)節(jié)點,涉及的使用原料及產(chǎn)生產(chǎn)物的關(guān)系表示為節(jié)點之間相連的邊。
圖1 水泥生產(chǎn)流程STN 部分示意圖
STN 是一個有向圖,包括狀態(tài)節(jié)點、任務(wù)節(jié)點、狀態(tài)任務(wù)邊、任務(wù)狀態(tài)邊及設(shè)備5 個部分。
2.1.1 狀態(tài)節(jié)點
狀態(tài)節(jié)點s用于表示原料、中間產(chǎn)物及最終產(chǎn)物等,可具有的屬性包括:
(1) 容量cs:表示在狀態(tài)庫存量的最大值,即在每一個時間點上可以存儲在該狀態(tài)的最大庫存數(shù)量。
(2) 初始庫存量is:表示在最開始的時候狀態(tài)所擁有的庫存數(shù)量。
(3) 價格ps:表示單位數(shù)量狀態(tài)的價格。
2.1.2 任務(wù)節(jié)點及設(shè)備
任務(wù)節(jié)點t用于表示將輸入的狀態(tài)轉(zhuǎn)化為其他狀態(tài)的過程,如加熱、反應(yīng)及分離等。
設(shè)備u用于表示對每一個任務(wù)t而言,都需要為其分配一個設(shè)備來執(zhí)行任務(wù),并且在設(shè)備執(zhí)行任務(wù)的過程中無法停止任務(wù)的執(zhí)行,也無法轉(zhuǎn)向執(zhí)行其他任務(wù)。設(shè)備可具有的屬性包括:
(3) 運行代價Cu,t:表示設(shè)備每運行一次所需要的代價。
(4) 處理代價Cˉu,t:表示設(shè)備在運行過程中每處理一單位輸入狀態(tài)量所需要的代價。
2.1.3 狀態(tài)任務(wù)邊及任務(wù)狀態(tài)邊
狀態(tài)任務(wù)邊Es,t為由狀態(tài)節(jié)點s指向任務(wù)節(jié)點t的邊,表示狀態(tài)s作為任務(wù)t的輸入,可具有的屬性包括:
(1) 權(quán)重ρs,t:表示狀態(tài)s占任務(wù)t的總輸入的比例,如權(quán)重為0.5時,輸入占總輸入的50%。
任務(wù)狀態(tài)邊為由任務(wù)節(jié)點t指向狀態(tài)節(jié)點s的邊,表示狀態(tài)s作為任務(wù)t的輸出,可具有的屬性包括:
(1) 權(quán)重ρt,s:表示狀態(tài)s占任務(wù)t的總輸出的比例,如權(quán)重為0.5時,輸出占總輸出的50%。
(2) 耗時dt,s:表示任務(wù)t執(zhí)行時生成占總輸出量一定比例的狀態(tài)所需要的時間。
本小節(jié)主要按照STN 基本元素的組成對STN 進行建模,主要分為決策變量、求解目標及求解約束三個部分。表1 給出了本節(jié)涉及的一些數(shù)學(xué)符號的含義。
表1 數(shù)學(xué)符號表
2.2.1 決策變量
模型中定義的決策變量如表2 所示,表中給出了模型變量的數(shù)學(xué)表達式、變量的類型以及具體含義。
表2 決策變量表
2.2.2 求解目標
模型中求解的目標是為了最大化利潤,具體為使總利潤(所有庫存狀態(tài)的價格之和)與總代價(總運行代價加總處理代價)之差最大,即:
2.2.3 求解約束
(1) 總利潤約束:在時間到達結(jié)束時刻H時,總利潤為所有狀態(tài)中庫存的價格之和,即:
(2) 總代價約束:在所有的時刻中,所有設(shè)備運行造成的代價之和,即總運行代價與總處理代價之和,數(shù)學(xué)公式為:
(3) 設(shè)備分配約束:在任意一個時刻中,任意一個設(shè)備最多只能夠分配一個任務(wù),即:
(4) 設(shè)備容量約束:在任意一個時刻,任意一個設(shè)備的總輸入量必須大于等于最小輸入量,且必須小于等于最大輸入量,即:
(5) 設(shè)備質(zhì)量守恒約束:在任意一個時刻,任意一個設(shè)備的庫存必須為前一個時刻的庫存與前一個時刻該設(shè)備的總輸入量之和,然后減去前一個時刻設(shè)備的總輸出量,當(dāng)時刻為0時,可以認為前一個時刻的庫存量、總輸入量和總輸出量都為0,即:
(6) 中止條件約束:所有設(shè)備在達到結(jié)束時刻H時庫存量為0,即:
(7) 狀態(tài)容量約束:在任意一個時刻,任意一個狀態(tài)的庫存量小于等于該狀態(tài)的容量,即:
(8) 狀態(tài)質(zhì)量守恒約束:在任意一個時刻,任意一個狀態(tài)的庫存量等于前一個時刻的庫存量與前一個時刻的總輸入量之和,然后減去前一個時刻的總輸出量,當(dāng)時刻為0時,可以認為前一個時刻的庫存量,總輸入量和總輸出量都為0,即:
2.2.4 模型求解
將2.2.3 節(jié)中出現(xiàn)的所有約束相互代換,最后代入求解目標的公式中,可以將大部分決策變量進行消除,最后僅留下和兩個決策變量,其中為二元變量,為非負實數(shù)變量,并且該決策變量的階數(shù)均為1次,因此求解目標是線性的。
同時,2.2.3 節(jié)中所有的約束所包含的決策變量的階數(shù)均為1次,即所有的約束均為線性的,因此該模型為一個混合整數(shù)線性規(guī)劃(Mixed-Integer Linear Program,MILP)模型。對于MILP 模型一般可以采用分支定界法、割平面法、隱枚舉法進行求解[12],除此之外,由于MILP 模型是NP-hard的,可以通過如模擬退火、蟻群優(yōu)化及遺傳算法等啟發(fā)式方法進行求解,啟發(fā)式方法可以求出問題的近似解,并在一定概率上可以求得問題的最優(yōu)解,但是此類方法無法判斷問題是否有解,因為無法精確地判斷是由于該方法還沒有找到一個可行解,還是問題本身不存在可行解[13]。
以分支定界法求解MILP 問題精確解為例,該方法首先不對整型變量進行考慮,將所有整型變量看作是線性的,對原問題的松弛線性規(guī)劃問題進行求解;之后進行分支判斷,如果松弛問題的解不滿足整型變量的約束,則任選一個整型變量對其上下取整,將原問題劃分為兩個子問題;在對問題進行求解時,通過對計算每個子問題的可行解得出問題的上下界,并通過該上下界進行剪支,加快計算的速度[14]。分支定界法也可用于求解問題的近似解,可以將松弛問題的解認為是最優(yōu)解,通過求解子問題的上下界當(dāng)前子空間內(nèi)可能的最優(yōu)解與全局最優(yōu)解有多大的差異。
針對文獻[15]所述水泥生產(chǎn)流程,將其進行簡化后使用STN 進行水泥生產(chǎn)流程的建模,并額外擴展倉儲的環(huán)節(jié),其表示如圖2 所示。圖2 表示的是不帶倉庫的水泥生產(chǎn)流程的STN 表示,圖3 及圖4 在圖2 的基礎(chǔ)上分別對生料和熟料增加了倉儲流程,在進行生產(chǎn)流程時可以將中間產(chǎn)物(生料、熟料)存放于對應(yīng)的倉庫之中,并在需要時從倉庫中提取加入生產(chǎn)環(huán)節(jié),同時還可以選擇從市場中購入相應(yīng)的產(chǎn)物補充倉儲,圖5 則在圖2 的基礎(chǔ)上對兩種中間產(chǎn)物增加了倉儲環(huán)節(jié)。
圖2 無倉儲水泥生產(chǎn)流程圖
圖3 帶生料倉水泥生產(chǎn)流程圖
圖4 帶熟料倉水泥生產(chǎn)流程圖
圖5 帶生料倉及熟料倉水泥生產(chǎn)流程圖
對圖2~圖5 的每個圖設(shè)定一個實驗,分別為:
實驗1:無倉庫工藝流程調(diào)度實驗;
實驗2:帶生料倉工藝流程調(diào)度實驗;
實驗3:帶熟料倉工藝流程調(diào)度實驗;
實驗4:帶生料倉及熟料倉工藝流程調(diào)度實驗。
在圖2~圖5 中所有狀態(tài)節(jié)點具有的屬性如表3 所示。其中初始值列、價格列及容量列中取值為inf 時表示數(shù)量取足夠大的值,在進行模型的求解時對規(guī)定范圍內(nèi)的時間范圍內(nèi)不會將狀態(tài)的庫存量全部消耗。對于生料、熟料等中間產(chǎn)物容量大小的設(shè)定則限定在輸入設(shè)備一次所能夠消耗的數(shù)量,從而對中間產(chǎn)物在非倉儲條件下可能出現(xiàn)的堆積進行限制。
表3 狀態(tài)節(jié)點屬性表
在圖2~圖5 中所有出現(xiàn)的設(shè)備及其具有的屬性如表4 所示,表中同類設(shè)備以設(shè)備名稱最后的字母進行區(qū)分。對于運輸設(shè)備和購入設(shè)備而言,設(shè)置代價的目的是希望生產(chǎn)調(diào)度的時候?qū)@一類設(shè)備進行充分地利用,提升設(shè)備的利用效率,避免出現(xiàn)狀態(tài)中累積數(shù)量較小時需要頻繁使用設(shè)備進行運輸?shù)那闆r。同時考慮到實際的生產(chǎn)環(huán)境中如生料磨、煅燒爐及熟料磨這類主要生產(chǎn)設(shè)備的耗能較大,因此限定此類設(shè)備只能夠在滿載的情況下運作。此外對處理代價全部設(shè)置為0。
表4 設(shè)備屬性表
在進行優(yōu)化時,對圖2~圖5 所表示的水泥生產(chǎn)流程進行模型求解,并輸出限定時間范圍內(nèi)最優(yōu)化的調(diào)度方案,以甘特圖的形式進行展示。其中進行優(yōu)化的時間范圍為從0~27 h,按照表3 和表4 的內(nèi)容設(shè)定狀態(tài)節(jié)點的屬性及設(shè)備的屬性。
圖6~圖9 分別為實驗1~實驗4 的調(diào)度結(jié)果圖。
圖6 無倉庫調(diào)度圖
從圖6 來看,調(diào)度圖呈流水線樣式,調(diào)度的結(jié)果盡可能地對每個設(shè)備都進行了最大化的利用,在該圖中,生料磨從0 h 開始到22 h 為止執(zhí)行生料磨制任務(wù),所生產(chǎn)的生料全部加入煅燒爐進行煅燒作業(yè)。由于煅燒爐每2 h 生產(chǎn)100 單位的生料,而煅燒爐每4 h 消耗100 單位的生料,因此生料磨不斷進行作業(yè)可保證所有的煅燒爐的生料供應(yīng),煅燒爐在得到生料后即可一直保持生產(chǎn),對于每個煅燒爐而言,在煅燒爐完成一個任務(wù)的作業(yè)后即可得到100 單位的熟料。由于熟料磨每小時可處理100 單位的熟料,大于兩個煅燒爐每小時可獲得的孰料數(shù)量,因此兩個煅燒爐交替完成煅燒任務(wù)后產(chǎn)生的熟料可直接投入熟料磨進行生產(chǎn)。
從圖7 來看,生產(chǎn)的調(diào)度安排會盡可能使各個設(shè)備以最大負荷持續(xù)運行,可以注意到生料庫中的倉儲生料會優(yōu)先加入生產(chǎn),同時在設(shè)定的時間段內(nèi)生料磨會持續(xù)進行生產(chǎn),生產(chǎn)產(chǎn)生的部分生料加入倉儲,供生產(chǎn)調(diào)節(jié)使用。
從圖8 來看,生產(chǎn)的調(diào)度安排與實驗2 的類似,會主動調(diào)度倉庫中的熟料進行生產(chǎn),同時進行熟料的補充,可以看出帶熟料倉的生產(chǎn)工藝可決定熟料倉是否進行運作,在需要停止生產(chǎn)時可將熟料存儲在熟料倉中,提供一定的生產(chǎn)調(diào)節(jié)空間。
圖8 帶熟料倉調(diào)度圖
從圖9 來看,生產(chǎn)的調(diào)度安排與實驗3 的類似,都在從市場中購入熟料補充倉儲的同時盡可能安排生料磨和煅燒爐進行生產(chǎn)以補充熟料倉儲,使熟料磨的利用盡可能最大化,同時利用倉庫中原有的倉儲進行生產(chǎn)的補充,使得生產(chǎn)具備更多的調(diào)節(jié)空間??梢钥闯?,在同時帶有兩類倉庫時,會優(yōu)先使用倉庫中的倉儲原料,并且在某一倉中儲量不足時會優(yōu)先使用設(shè)備進行生產(chǎn)來補充倉儲量,減少從市場上購入原料所帶來的額外開銷。
圖9 帶生料倉及熟料倉調(diào)度圖
實驗1 的負荷變化圖如圖10 所示,由于缺乏具體的用電數(shù)據(jù),此處對負荷的計算進行了簡化,假定每個設(shè)備用電功率相同,所有設(shè)備都運轉(zhuǎn)時負荷為1,由于有四個設(shè)備,因此每個設(shè)備運轉(zhuǎn)時負荷為0.25。可以觀察到,負荷在生料磨-煅燒爐-熟料磨這條流水線滿載時可達到最大負荷,同時由于熟料磨的生產(chǎn)能力大于煅燒爐的生產(chǎn)能力,該流程存在一定的生產(chǎn)調(diào)節(jié)空間,對照圖6來看,煅燒爐完成煅燒后,熟料磨可以馬上開始生產(chǎn),也可以延后一個小時才開始生產(chǎn),存在一個小時的調(diào)節(jié)時間。
圖10 實驗1 負荷變化
從四個實驗來看,倉儲環(huán)節(jié)及倉儲補充環(huán)節(jié)的引入可以提供一定的生產(chǎn)調(diào)節(jié)能力,在進行生產(chǎn)時倉儲的存在可以使得設(shè)備盡可能保持運行,對停機開機代價較大的設(shè)備比較有利,同時由于倉儲提供了一定的生產(chǎn)調(diào)節(jié)能力,一方面可以根據(jù)電價的波峰波谷時段合理安排生產(chǎn),降低生產(chǎn)成本,另一方面這部分生產(chǎn)能力作為可以進行調(diào)節(jié)的用電負荷,具備一定的負荷調(diào)節(jié)潛力,有利于平衡電網(wǎng)用電負荷,對電網(wǎng)需求側(cè)響應(yīng)能力建設(shè)具有積極作用。
本文主要研究了基于STN 的水泥生產(chǎn)流程,利用STN,同時在滿足用電安全約束的條件下,研究這兩個環(huán)節(jié)的引入對生產(chǎn)調(diào)節(jié)能力的影響。
針對本文所做的研究,未來還可以有幾個可以改進的方面:(1)對生產(chǎn)流程中狀態(tài)節(jié)點的屬性及各個設(shè)備的屬性進行調(diào)研,獲取實際的生產(chǎn)數(shù)據(jù)對建模進行改進;(2)在現(xiàn)有STN 的模型之上對其進行改進,目前STN 模型的運行時間只能針對某一特定的時間段進行,而在實際生產(chǎn)中設(shè)備會24 小時不停運轉(zhuǎn),因此可以研究可以支持時間段循環(huán)的STN 模型,從而適應(yīng)前述實際生產(chǎn)場景。