唐秋華 陳世杰 趙 萌 張利平
1.武漢科技大學生產系統工程研究所,武漢,430081 2.武漢科技大學冶金裝備及其控制教育部重點實驗室,武漢,430081 3.武漢科技大學機械傳動與制造工程湖北省重點實驗室,武漢,430081
機器故障是加工車間常見擾動之一,故障的發生會直接影響車間運行狀況,對作業計劃產生巨大干擾,甚至使得原有生產計劃無法執行。通過智慧決策不同機器故障情形下的優化重調度方式,一方面能夠最大限度地保證產品按時完成,另一方面也能減少實際方案與初始方案的差異,提高車間作業穩定性,同時降低生產成本。
針對該問題,目前已有部分研究成果,且大部分成果是針對給定的機器故障,采用智能優化方法,在指定重調度方式的前提下制定具體的重調度方案[1-5]。現有的調度方法主要有完全反應式調度和預測反應式調度[6-8]。兩者的區別在于前者不生成預調度,屬于在線調度方式;后者先生成面向指定目標的預調度,再基于此進行重調度,以響應各種擾動的影響及保持調度的可行性。然而,不同情況下的優化方法性能不同,需要有針對性地選擇。重調度方式的選擇與工件的加工時間矩陣、加工時長、故障發生點、故障修復時長等因素有關,不同機器故障情形下的優化重調度方式往往不同,需根據現場情況做決策。可能采用的重調度方式有很多種,如右移重調度、完全重調度,不同擾動情形下具體采用哪種重調度方式,在生產現場完全由調度員個人完成決策。車間狀況的復雜度增加了重調度方式決策的難度系數,而調度員的個人知識和經驗也極大局限了重調度方式決策的有效性和科學性。WANG等[9]將時間累積誤差作為隱性干擾的量化指標,先使用有監督局部線性嵌入降維(SLLE)與廣義回歸神經網絡(GRNN)對數據進行降維和映射,再使用最小二乘支持向量機(LS-SVM)進行重調度方案的選擇決策。喬非等[10]將模糊Petri 網模型的模糊推理應用到半導體生產線的重調度策略的選擇研究中。劉樂等[11]針對右移、受影響工序、全局3種重調度策略提出特定重調度方法,并對比了不同干擾下的較優策略。
考慮到現場故障后重調度方式性能難以保證、準確樣本難獲得,且現場樣本也無法涵蓋全部故障情形,本文提出了一種融合調度仿真與改進概率神經網絡的重調度方式預測方法。
加工車間重調度通常是在擾動發生后,在滿足工藝流程、機器操作順序等約束條件下,對原調度方案中的工件加工順序和操作時間等進行重新安排,以實現加工周期(makespan) 最小化、機器利用率最大化、工序任務加工時間的累積變動小、變動任務數少、交貨延期短、makespan改變量小等性能指標。機器故障是加工車間常見擾動類型之一,而與其相關的故障機器、故障開始時刻、故障修復時間等參數均具有很大隨機性。不同參數對故障情形的影響程度不同,對應的優化重調度方式也不同,因此在機器故障發生后,需要根據當前生產狀態和故障情形合理選擇優化重調度方式,以減少因機器故障導致的波動與干擾、降低生產成本。
一般來說,車間內機器故障是反復、隨機出現的,故障發生時刻和故障維護時長是不確定的。為簡化研究,本文做如下假設:①在研究時間內有且僅有一臺機器發生故障;②一旦故障發生,立即啟動優化重調度方式決策;③在發生機器故障后,只采用3種處理方式:右移重調度(RSR)、完全重調度(TR)和不重調度。
右移重調度是把盡可能少的未完成的任務推遲一定時間長度,保持原有加工順序,并且與已完成、在加工的任務進行銜接。為了保證右移的任務數盡可能少,需要找出在故障機器上最先受到故障影響的任務,并且根據二元分支原理[11],找出后續相關任務。
完全重調度是把未開始工序與需重新執行的任務進行重新安排,實質上相當于給定加工時間矩陣和加工機器矩陣后,參照初始方案,重新確定調度方案。目前針對完全重調度的研究,多采用智能優化算法如離散震蕩粒子群算法、細菌覓食算法、遺傳算法[12]等,來生成新的調度方案。
已知在加工車間中有一批工件在多臺機器上加工,每個工件有多道工序,且每道工序在各臺機器上的加工時長已知。在某時刻某臺機器突然發生了故障,后續機器維護時間持續了一定時長。重調度問題是在上述給定故障情形下,以工序變動數少、makespan改變量小、累積加工時間變動量小為目標,基于不需要重調度、右移重調度和完全重調度方式進行優化。
加工車間重調度的3個目標可以描述為
(1)
(2)
(3)

優化重調度方式決策是根據給定故障情形,在多種可能的重調度方式中找出使得上述幾個目標綜合最優的重調度方式:
(4)
其中,為使具有不同量綱的多個目標能夠加權,將每個目標進行歸一化處理,以消除量綱。同時,利用kε(ε=1,2,3)對3個目標賦以不同權重。令c表示各種重調度方式,即不重調度、右移重調度和完全重調度,令x表示機器故障情形,x′表示所有故障情形,y(x)即為給定機器故障情形下的優化重調度方式,它實質上是令歸一化后3個目標加權和最小的重調度方式。
以圖1a的預調度方案甘特圖為例。同一種工件的加工任務用同一種顏色表示,且用符號表示工件和工序,如“2-1”表示第2個工件第1道工序。粗實線表示故障開始與結束時間,所在的機器號就是故障機器;開始時間處的細實線表示該任務受到了故障的影響。圖1b與圖1c為機器故障下2種不同的重調度方式。

圖1 加工車間加工甘特圖與故障參數Fig.1 Processing Gantt chart and fault parameters in the jobshop
在進行機器學習時,所使用的數據集對訓練結果有顯著的影響,決定著預測的效率和質量。對于分類模型來說,有
(5)
0≤r≤1
式中,et為測試誤差;ep為訓練誤差;N為訓練樣本數量;w為分類模型的VC維;根號部分為模型復雜度懲罰項。
由式(5)可見,欲使測試誤差小,需使訓練誤差和模型復雜度懲罰項都盡可能小,并且,訓練樣本越多,復雜度懲罰項越小,預測準確率越高。
然而,在現有研究中面向機器故障的優化重調度方式數據集有顯著缺陷:①現場機器故障樣本少,且現實樣本不可能覆蓋所有可能的樣本情形[13-15],而樣本特征在樣本空間的覆蓋程度與細致程度不足,直接導致某些故障發生時,預測精度不夠。②現實樣本數據的標簽往往源于調度員的經驗,實際上也無法保證調度員的每次判斷都是理論最優[9]。因此,本文提出基于生產過程仿真,產生涵蓋各種故障情形的優化重調度方式樣本數據集的方法。單個樣本生成的大致框架見圖2。

圖2 樣本生成流程圖Fig.2 Sample generation flow chart
需要說明的是,故障影響判斷是在故障發生后,判斷故障時間段內是否有任務正在進行。如果故障時間段內故障機器本就閑置,則無影響,不需要重調度;如果故障機器上有任務正在執行,則該任務需要完全重新加工;非故障機器上正在執行任務,需要繼續加工。另一方面,每一故障情形下的優化重調度方式標簽,是基于不同重調度方式運行結果的對比而產生的。
重調度是在初始調度的基礎上進行調整,還需參照初始調度進行評價。針對大規模問題,傳統求解算法無法在多項式時間內獲得調度最優解,可用啟發式或元啟發式算法進行求解。本文的初始方案參照遺傳算法[16]進行方案的優化,實現初始調度方案的全局優化。
加工車間的重調度研究中,一般設定隨機故障遵循期望為平均無故障工作時間(MTBF)的指數分布[17]。故障時長是可預知的維修時間,設為遵循期望為平均修復時間(MTTR)的指數分布或均勻分布,而故障的機器也是均勻分布。
本文在故障方面假設如下:①設備發生故障后立即進行維修,不存在延緩;②設備在維修期間不可進行加工;③所有機器的MTTR與MTBF均已知;④所有工序在加工時因故障而暫停,需要重新開始;⑤在非故障機器上,已經開始的工序任務必須繼續進行;⑥設備發生故障后維修時間可預知。后續重調度方案的確定將依據這些假設進行。
如果選擇右移重調度,在排除已經完成任務、非故障機器上正在執行的任務后,對余下任務進行重調度。在余下任務中,故障機器上正在執行任務以及即將執行的任務全部需要右移。在其影響下,其他機器上的相關任務也需要后移。右移重調度具體流程如下:
(1)確定故障機器與故障開始時間,預估故障修復時間。
(2)確定在故障時間段內故障機器上受直接影響的全部任務,推導第一個受影響任務的開始時間。
(3)基于二元分支原理[11],以故障機器上第一個受直接影響的任務為起點,找出初始調度方案中所有受間接影響的相關任務。
(4)找出每臺機器的下一個任務,形成當前任務集;從該集合中找出最早開始的任務,且將該任務的開始時間右移到max{本工件上道工序的完成時間,本機器上道工序的完成時間}所規定的時刻。右移后,從當前任務集中刪除當前任務。
(5)重復步驟(4),直至每臺機器上將要完成任務集合為空,算法結束,得到右移重調度方案。
完全重調度方案生成時采用的優化算法與決策者偏好有關,常與初始調度方案生成采用算法一致。兩者之間的核心差異是調度目標不同。初始調度目標一般是makespan最小等時間性能指標,而重調度常常期望與初始調度偏離幅度最小化。
完全重調度的一次循環中具體流程如下:
(1)確定故障機器與故障開始時間,預估故障修復時間。
(2)非故障機器上的正在執行工序繼續加工。令故障機器上正在執行工序終止;識別故障機器上受影響的余下工序;識別非故障機器上的未開始工序,用上述三者構造待調度任務集合。
(3)統計任務集合中相關工件數、各工件未完成工序數。利用初始調度方案采用的遺傳算法生成完全重調度方案。
任務安排使用的智能算法是遺傳算法,雖然對于需要重調度的任務集的安排可以找到近似全局最優解,但存在以下3個問題。
(1)考慮到當前的設備占用情況,當該集合與已完成任務集進行銜接后,總方案的優化目標未必最優。
(2)遺傳算法的結果具有隨機性,導致每次生成的完全重調度方案都不完全一致,使得工序變動數與累積加工時間變動量不穩定。即使使用訓練集判斷優化重調度方式后執行完全重調度,也無法保證這兩個參數接近原數值,影響優化重調度標簽的判斷。
(3)遺傳算法的結果具有隨機性,即使使用訓練集判斷優化重調度方式后執行完全重調度,也難以保證現方案與原方案接近。
針對前兩個問題,需要通過多次流程循環避免。某次故障下的初始方案與完全重調度目標參數對比見圖3。

圖3 20次運行GA的參數變化Fig.3 Parameter change of GA after running 20 times
大量實驗證明,在不同機器故障情況下,20次迭代后累積加工時間變動量最少的3次結果中,總方案makespan、工序變動數與累積加工時間變動量穩定,方案具體安排穩定,偏差小。
基于上述原因,取20次流程循環后,累積加工時間變動量最少的3次結果,并且,把這3次結果的目標值平均值作為完全重調度方案的3個目標值。對于第三個問題,選擇完全重調度方式時,執行20次遺傳算法并取目標函數最小的方案作為最終方案。
基于式(4)可以得出不同故障情形下的優化重調度方式,并賦以標簽。同時,在權重系數的設定中,為了避免主觀因素的影響,使用熵值法確定各目標的權重系數。用信息熵評判各目標的信息量與離散程度,離散程度越大,權重越大。其中,由于計算熵值時有對數運算,故把故障發生時未在加工的樣本刪去。最終求得各目標權重系數的值分別為:k1=0.41,k2=0.48,k3=0.11。樣本的類別標簽不均衡時,刪除較多類別的樣本,盡量保持各類別樣本數一致。
初始數據輸入為故障機器序號、故障開始時間、故障修復時間、故障時故障機器是否正在加工、首先影響的任務號、機器負載率、總剩余任務數、總剩余空閑時間、總剩余加工時間。其中,在“故障時故障機器是否在加工”中,當機器故障時機器閑置,則取值為0,否則為1;在“首先影響的任務號”中,任務號以加工時間矩陣為順序,逐行連續標序號,如FT06問題中總任務數有36個,則從第一行起標出1~36號的工序任務;在“機器負載率”中,機器負載率等于總剩余工作時間除以剩余制造周期;在“剩余任務數”中,剩余任務數即剩余制造周期中未加工的工序任務數。
通過加權和求出優化重調度方式后,為了進行重要特征的選擇,對以上9個初始維度分別與標簽進行Pearson相關性分析。相關系數見表1,其中V1,V2,…,V9分別為初始的9個維度。

表1 Pearson相關性分析結果
由表1可知,V3與V6的Pearson相關系數較小,故不作為機器學習的輸入變量,最終輸入變量只有7維。
在大量帶標簽的數據基礎上,需要采用機器學習算法學習在不同故障情形下的優化重調度方式,以便快速準確地完成不同故障情形的優化方式決策。為此,采用粒子群優化(PSO)的概率神經網絡(PNN)模型(PSO-PNN模型),基于仿真數據樣本,完成模型的訓練與預測。
概率神經網絡是由徑向基神經網絡發展而成的網絡模型,主要用于模式分類等。該模型融入了密度函數估計與貝葉斯理論,相比傳統的BP神經網絡,其最大特色是在激活函數中應用指數函數取代了以往的S型函數。
概率神經網絡的組成包括輸入層、模式層、求和層及輸出層。輸入層負責接收待訓練數據,并將其傳入模式層神經元;輸入層的神經元個數與輸入數據集的維度相同。模式層接收輸入層輸出的數據,應用非線性激活函數exp((Zρ-1)/δ2)進行處理;若記該層的第τ類中第υ個神經元輸出概率密度為φτυ(X),則有
式中,ρ為輸入神經元序號;P為訓練數據集的維度;δ為示平滑因子,表示以訓練樣本為中心的鐘形曲線寬度;Xτυ為第τ類神經元的第υ個隱中心矢量。
求和層將屬于同類模式的神經元都輸出并求平均值,該層中神經元數目等于類別數目。輸出層輸出最大概率下的類別。PNN模型結構見圖4。

圖4 PNN模型結構示意圖Fig.4 Schematic diagram of PNN model structure
常規PNN中平滑因子取值對預測結果有顯著影響[18]。為使PNN獲得更好的預測性能與泛化性能,使用PSO算法優化平滑因子,形成PSO-PNN算法,平滑因子的值設為1。實驗表明在不同規模的數據集下,最優的平滑因子取值為1.8。PNN要求模式層節點數為訓練樣本個數,對于一個已訓練的模型,增加訓練樣本也只需要增加模式層節點,不必對原有模式層節點訓練。
將仿真樣本數據輸入到PSO-PNN中,根據2.6節,每組數據有7個輸入維度。以下截取訓練集數據300個,測試集數據100個。將訓練集輸入PSO-PNN后,訓練結果見圖5。
基于300個訓練數據,PSO-PNN的訓練集準確率為99.00%。利用訓練好的模型對100個測試集數據進行分類預測,預測的具體結果見表2。

圖5 300個數據的訓練結果Fig.5 300 data training results

預測分類不重調度右移重調度完全重調度總計準確率(%)不重調度33123691.67右移重調度13023390.91完全重調度03283190.32總計343432100
該算例的測試集分類中,PSO-PNN對不采用重調度與完全重調度情況的識別準確率更高,只需要300個訓練數據就能達到99%的準確率。右移重調度的分類準確率相對較低,需要更多的訓練集提高預測準確率,這將在后面的大規模訓練集算例中實現。PSO-PNN的100個數據樣本分類預測效果圖見圖6,分類錯誤的9個樣本均勻地分布,是訓練樣本量過少所致,總的預測準確率為91.00%。

圖6 100個測試集數據預測結果Fig.6 100 test set data prediction results
4.1節的訓練中只使用了300個數據,并未發揮自生成數據集的規模化作用與PSO-PNN的優秀泛化性能。本文針對不同數據規模,應用PSO-PNN與各類機器學習算法進行訓練與預測,并進行準確率、運行速度上的對比。用于對比的廣義回歸神經網絡(GRNN)使用交叉驗證找到針對各自數據集的最佳參數,故參數不恒定。BP神經網絡與小波神經網絡的參數已經使用遺傳算法優化,優化目標為預測準確率最優,參數恒定,具體設定如下。
BP神經網絡的輸入層有7個神經元節點,隱含層有2層,節點數為18,輸出層有1個節點,訓練最大迭代次數為100次。使用遺傳算法對權重進行優化后的GA-BP預測性能提升不大,但訓練耗時大大增加,故沒有填入表中。小波神經網絡的學習概率為0.1,隱含層節點數為18。
各智能算法在不同規模的數據量下,測試集的分類準確率及對應訓練與預測總時間見表3。運行的CPU為Intel Xeon Platinum 8163 Processor,內存為8GB,取3次運行的平均值作為最終結果。

表3 PSO-PNN與其他算法的分類準確率及時間
由表3可知,基于PSO-PNN的重調度決策模型在運行速度和分類準確率兩方面都相對于PNN有所提升,并且明顯優于其他機器學習算法。訓練與預測的時間方面,在不同數據規模下PSO-PNN與PNN的耗時都是最短的,即使使用50 000訓練量與10 000測試集也只需要13.53 s完成訓練,0.094 526 s完成測試。
得益于數據集是可以自生成的,數據樣本量可以具備以下優勢:樣本量足夠大,樣本特征在樣本空間的覆蓋程度足夠廣;各典型特征的覆蓋細致程度足夠細;遇到訓練集標簽類別不平衡時,可以針對特定類別生成或刪除。上述數據自生成的優勢可以突破每種機器學習算法在數據規模與數據合理性上的性能瓶頸。由圖7可知,隨著樣本量的增加,不同算法的預測準確率都逐步提高。

圖7 不同數據規模下各機器學習算法預測準確率Fig.7 Prediction accuracy of machine learning algorithms under different data scales
訓練集數據量達到2 000個以后預測準確率趨于穩定,使用訓練集數據280 000、測試集120 000個情況下,PSO-PNN的預測準確率達到99.54%,相對于表3的50 000組數據的訓練集只提升0.11%。時間與預測準確率上相對接近于PSO-PNN的是決策樹分類預測算法,樹的結構隨著數據規模的增長逐漸穩定且變得相對簡單。其余機器學習算法在預測準確率上都低于PSO-PNN,尤其在訓練與測試時間上差距較大,小波神經網絡在大規模數據訓練中非常耗時。
本文提出的融合調度仿真與概率神經網絡模型利用仿真獲得大規模可控的機器故障下生產車間重調度樣本,并且經降維后使用改進的概率神經網絡對自生成樣本進行分類標簽的預測。最后利用粒子群優化后的概率神經網絡進行了訓練。對于該類樣本,與其他機器學習算法相比,改進的概率神經網絡有更好的訓練與預測能力,預測準確率可達99.54%;對10 000個測試集數據進行分類也只需要不到0.1 s的時間,顯著提高了機器故障下生產車間的決策速度。