汪偉麗,郭 宇,劉道元,高瀚鵬,楊志偉
(1.南京航空航天大學(xué)機(jī)電學(xué)院,南京 210016;2.北京星航機(jī)電裝備有限公司,北京 100074)
經(jīng)濟(jì)社會(huì)的快速發(fā)展對(duì)企業(yè)的生產(chǎn)能力提出了更高的要求,而離散制造車間存在的瓶頸現(xiàn)象嚴(yán)重地制約了系統(tǒng)的有效產(chǎn)出[1],影響了車間的生產(chǎn)效率,因此如何準(zhǔn)確描述并預(yù)測(cè)作業(yè)車間的生產(chǎn)瓶頸是當(dāng)前的研究重點(diǎn)。
針對(duì)瓶頸定義問題,部分學(xué)者通過生產(chǎn)系統(tǒng)中工作負(fù)載最大的設(shè)備[2]、對(duì)整體系統(tǒng)吞吐量影響最大的設(shè)備[3]等來描述瓶頸。在瓶頸識(shí)別方面,REID等[4]對(duì)制造單元的生產(chǎn)能力和生產(chǎn)需求進(jìn)行度量以識(shí)別瓶頸;翟穎妮等[5]設(shè)計(jì)正交實(shí)驗(yàn)識(shí)別生產(chǎn)中的系統(tǒng)瓶頸;SUBRAMANIYAN等[6]開發(fā)了一種實(shí)時(shí)數(shù)據(jù)驅(qū)動(dòng)的平均活動(dòng)周期瓶頸檢測(cè)算法。瓶頸定義用于描述瓶頸單元,瓶頸識(shí)別用于檢測(cè)瓶頸單元,但瓶頸識(shí)別一般是事后識(shí)別,此時(shí)瓶頸影響已經(jīng)造成,而瓶頸預(yù)測(cè)是事前識(shí)別,對(duì)車間的生產(chǎn)調(diào)度更具指導(dǎo)意義。葉濤鋒等[7]提出了一種利用隊(duì)列圖形評(píng)價(jià)和回顧仿真技術(shù)的瓶頸預(yù)測(cè)方法;LIU等[8]構(gòu)建了瓶頸度與瓶頸指數(shù)來描述動(dòng)態(tài)瓶頸特征,并建立了生產(chǎn)物流瓶頸預(yù)測(cè)模型?;诜抡娼5钠款i預(yù)測(cè)方法,模型構(gòu)建相對(duì)復(fù)雜,難以準(zhǔn)確描述離散車間的動(dòng)態(tài)情況。隨著大數(shù)據(jù)分析技術(shù)在車間的應(yīng)用,CAO等[9]提出了一種基于自適應(yīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的瓶頸預(yù)測(cè)方法,可以準(zhǔn)確預(yù)測(cè)主次瓶頸。HUANG等[10]提出一種基于深度學(xué)習(xí)的瓶頸預(yù)測(cè)方法,在案例中測(cè)試效果良好。數(shù)據(jù)驅(qū)動(dòng)的預(yù)測(cè)方式,對(duì)車間數(shù)學(xué)模型的構(gòu)建相對(duì)簡(jiǎn)單,但未考慮瓶頸問題的時(shí)序性,不利于做長(zhǎng)期分析預(yù)測(cè)。楊昊龍等[11]提出的基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的瓶頸指數(shù)預(yù)測(cè)方法,實(shí)現(xiàn)了時(shí)間序列建模,但其串行計(jì)算方式在計(jì)算時(shí)長(zhǎng)上不具備優(yōu)勢(shì),且前述研究中對(duì)不同狀態(tài)數(shù)據(jù)的利用程度相同,未能充分挖掘信息特征。
基于上述分析,本文提出了基于注意力機(jī)制的準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)(quasi-recurrent neural networks,QRNN)生產(chǎn)瓶頸預(yù)測(cè)方法,以QRNN網(wǎng)絡(luò)的卷積結(jié)構(gòu)提取特征信息、池化結(jié)構(gòu)提取序列信息,減少了模型訓(xùn)練時(shí)間,引入的注意力機(jī)制充分發(fā)揮不同時(shí)刻的狀態(tài)信息,提高了瓶頸預(yù)測(cè)精度。最后在某機(jī)加車間進(jìn)行算法對(duì)比,驗(yàn)證了本文方法的優(yōu)勢(shì)。
傳統(tǒng)的瓶頸單元一般定義為負(fù)荷最大的設(shè)備、庫存堆積最多的設(shè)備等,這種定義方式割裂了車間設(shè)備在生產(chǎn)過程中產(chǎn)生的因果關(guān)系,而離散制造系統(tǒng)是由多個(gè)不同加工功能的生產(chǎn)單元組合而成,各生產(chǎn)單元基于工件的工藝路線存在著一定約束關(guān)系,上游生產(chǎn)單元的生產(chǎn)效率影響著下游生產(chǎn)單元的任務(wù)產(chǎn)出,故以車間全局為研究對(duì)象,找到制約生產(chǎn)的關(guān)鍵單元,即為瓶頸單元。
本文將車間的加工工位,包含該工位的出入緩存區(qū)視為一個(gè)完整的生產(chǎn)單元,在實(shí)際生產(chǎn)過程中,生產(chǎn)單元既需響應(yīng)上游工位傳遞的加工任務(wù),也需滿足下游工位所需的加工任務(wù),因此,定義瓶頸值為生產(chǎn)單元滿足上下游生產(chǎn)任務(wù)的綜合能力的負(fù)值,瓶頸值最大的單元即為瓶頸單元。為方便后續(xù)描述,對(duì)車間的基本要素進(jìn)行定義,如表1所示。
表1 車間基本要素定義
則t時(shí)刻,工位Mk瓶頸的表達(dá)式bottleneckk如下:
(1)
(2)
bottleneckk=-(-PA+NA)
(3)
式中,PA表示t時(shí)刻工位Mk的緩存區(qū)Bk內(nèi)的工件的等待時(shí)間之和,PA越大,表示響應(yīng)上游的能力越弱;NA表示t時(shí)刻工位Mk′的緩存區(qū)中來自工位Mk的工件的等待時(shí)間之和,NA越大,表示供給下游的能力越強(qiáng),則工位Mk的瓶頸值如式(3)所示,bottleneckk越大,該工位的瓶頸值越大。
為刻畫瓶頸單元制約車間生產(chǎn)時(shí)的運(yùn)行狀態(tài),根據(jù)瓶頸問題特性,從車間采集全局變量與局部變量,共同構(gòu)建成數(shù)據(jù)集,如表2所示。
表2 車間狀態(tài)特征選取
實(shí)際車間的生產(chǎn)環(huán)境是動(dòng)態(tài)變化的,且存在著各種擾動(dòng)因素,使得車間的生產(chǎn)性能復(fù)雜多變,各單元的瓶頸值隨之更新,生產(chǎn)瓶頸在時(shí)間維度上發(fā)生空間位置的轉(zhuǎn)變,稱之為瓶頸漂移現(xiàn)象。當(dāng)擾動(dòng)發(fā)生時(shí),原本按照計(jì)劃加工的制造單元的生產(chǎn)能力與設(shè)備負(fù)荷不再匹配,使得該環(huán)節(jié)的加工進(jìn)度變慢,不能滿足下一環(huán)節(jié)的生產(chǎn)需求,間接導(dǎo)致下一制造單元的瓶頸值偏離預(yù)期,成為影響下一環(huán)節(jié)的干擾因素,隨著擾動(dòng)因素的推進(jìn)與變異,車間環(huán)境變得復(fù)雜難測(cè),通過挖掘海量生產(chǎn)數(shù)據(jù)中的知識(shí)為找到瓶頸漂移的時(shí)變規(guī)律提供可能。
本文基于不同時(shí)刻、不同制造單元產(chǎn)生的數(shù)據(jù),搭建瓶頸漂移預(yù)測(cè)框架,如圖1所示,首先對(duì)車間運(yùn)行過程中采集的歷史數(shù)據(jù)進(jìn)行預(yù)處理,將多條狀態(tài)數(shù)據(jù)重組為一條具有時(shí)序信息的樣本數(shù)據(jù),然后基于上述的瓶頸量化公式,計(jì)算樣本數(shù)據(jù)的瓶頸值作為數(shù)據(jù)標(biāo)簽,以處理后的時(shí)序數(shù)據(jù)作為模型輸入,瓶頸值作為輸出,通過QRNN網(wǎng)絡(luò)的卷積結(jié)構(gòu)與池化結(jié)構(gòu)挖掘狀態(tài)信息,并借助注意力機(jī)制有側(cè)重地提取不同時(shí)刻的信息特征,訓(xùn)練后的模型可以根據(jù)當(dāng)前時(shí)刻的實(shí)時(shí)數(shù)據(jù),預(yù)測(cè)未來時(shí)刻各設(shè)備的瓶頸值。
圖1 瓶頸漂移預(yù)測(cè)框架
根據(jù)QRNN預(yù)測(cè)網(wǎng)絡(luò)的輸入特點(diǎn),將s+1條狀態(tài)數(shù)據(jù)進(jìn)行序列處理,重構(gòu)為一條訓(xùn)練數(shù)據(jù),其中每條狀態(tài)數(shù)據(jù)的時(shí)間間隔差為Δt,則重組后的輸入序列的表示形式如下:
(4)
不同類型的狀態(tài)數(shù)據(jù)存在著數(shù)值量級(jí)區(qū)別,為方便模型訓(xùn)練,對(duì)輸入數(shù)據(jù)進(jìn)行歸一化處理,如式(5)所示,將有量綱數(shù)值變成無量綱數(shù)值,歸一化后的數(shù)據(jù)質(zhì)量有所提高,可以加快模型的收斂速度。
(5)
瓶頸預(yù)測(cè)模型的輸入是時(shí)序數(shù)據(jù),瓶頸漂移問題自身也具備時(shí)序性,因此針對(duì)瓶頸預(yù)測(cè)問題,采用時(shí)序預(yù)測(cè)方法。循環(huán)神經(jīng)網(wǎng)絡(luò)的特殊結(jié)構(gòu)可以在數(shù)據(jù)預(yù)測(cè)時(shí)更好的擬合數(shù)據(jù)在時(shí)間序列上的特性[12],但RNN網(wǎng)絡(luò)模型易出現(xiàn)梯度爆炸與梯度消失等問題,LSTM提出的門控單元針對(duì)性的存儲(chǔ)信息與遺忘信息,有效的解決了梯度問題,但LSTM對(duì)輸入狀態(tài)同等重視,且串行計(jì)算方式在訓(xùn)練時(shí)間上略顯劣勢(shì)。
本文提出了基于注意力機(jī)制的QRNN預(yù)測(cè)模型(AQRNN),QRNN模型結(jié)合了CNN與RNN的網(wǎng)絡(luò)特性,以CNN捕捉短期局部依賴關(guān)系,以RNN捕捉長(zhǎng)期宏觀依賴關(guān)系,將卷積添加到遞歸中,取長(zhǎng)補(bǔ)短,達(dá)到了更好的效果。如圖2所示,以CNN的卷積操作來提取序列數(shù)據(jù)的特征,卷積操作的跨時(shí)間步并行計(jì)算大大減少了循環(huán)體內(nèi)的計(jì)算時(shí)間,以池化操作代替LSTM門控單元體系中的輸入門,遺忘門和輸出門,該單元的輸出依賴于上一單元的輸入,實(shí)現(xiàn)了時(shí)間依賴性。
圖2 基于注意力機(jī)制的堆疊QRNN的瓶頸預(yù)測(cè)方法
(1)前向傳播。對(duì)于向量維度n,時(shí)間步長(zhǎng)s的輸入序列X,先通過卷積層,用一組m個(gè)寬度為k的濾波器進(jìn)行特征提取,而后通過激活函數(shù)來獲得池化層所需的門控向量序列,每個(gè)時(shí)間步t的計(jì)算公式如下。
(6)
(7)
(8)
式中,輸入Xt的大小為[s,n];WZ、Wf、Wo為濾波器權(quán)重,大小為[k,n,m],濾波器沿著時(shí)間維度進(jìn)行卷積計(jì)算,輸出矩陣的大小為[s,m],卷積過程共享參數(shù),3個(gè)門函數(shù)的計(jì)算不依賴于上一個(gè)時(shí)刻單元的輸出。
將提取后的向量序列輸入到池化層,實(shí)現(xiàn)跨時(shí)間維度的計(jì)算,獲取序列的順序信息。為增強(qiáng)AQRNN的魯棒性,將droupout應(yīng)用到遞歸過程進(jìn)行正則化,即在池化層的每個(gè)時(shí)間步隨機(jī)選擇一個(gè)子集,直接復(fù)制當(dāng)前時(shí)間步狀態(tài)到下一時(shí)間步,而不做計(jì)算。
ct=ft⊙ct-1+(1-ft)⊙zt
(9)
ht=ot⊙ct
(10)
F=1-droupout(1-σ(F))
(11)
式(9)中⊙表示Hadamard乘積,即對(duì)應(yīng)位置元素相乘;ht、ct為輸入序列第t個(gè)時(shí)間步的遺忘門與輸出門;c初始化為0。式(11)中F為輸入序列的遺忘門。
在池化層的輸出序列上添加注意權(quán)重,給不同的狀態(tài)賦予不同的權(quán)重以表征各狀態(tài)的重要程度,使各狀態(tài)在預(yù)測(cè)時(shí)發(fā)揮不同的作用。
(12)
(13)
式中,L表示AQRNN的層數(shù);s表示時(shí)間步的長(zhǎng)度。最后通過全連接層輸出各生產(chǎn)單元的瓶頸值。
(14)
(2)反向更新。前向傳播的最后輸出是回歸值,故損失函數(shù)取均方根誤差(RMSE),則loss表達(dá)式如式(15)所示。
(15)
式中,N為所取樣本數(shù);λ為L(zhǎng)2正則化的超參數(shù);Bottlenecki為第i條樣本的所有工位瓶頸值矩陣,正則化可以避免網(wǎng)絡(luò)過擬合。
(3)評(píng)價(jià)指標(biāo)。采用均方根誤差(RMSE),平均絕對(duì)誤差(MAE),R方(R2)為評(píng)價(jià)指標(biāo),具體形式如下:
(16)
(17)
(18)
本文選取某航天機(jī)加車間為例,該車間有6臺(tái)含一定容量緩存區(qū)的加工設(shè)備,加工13種類型的工件,采集了15 264條數(shù)據(jù),取13 737狀態(tài)數(shù)據(jù)做訓(xùn)練集,訓(xùn)練AQRNN模型,經(jīng)多次實(shí)驗(yàn)確定網(wǎng)絡(luò)各參數(shù),如表3所示。
表3 參數(shù)設(shè)置表
本文使用python語言與tensorflow框架搭建預(yù)測(cè)模型,工作站配置如下:處理器:Intel(R) Core(TM) i9-10980XE,顯卡:NVIDIA GeForce RTX 3090,內(nèi)存:DDR-4 32 G。
為驗(yàn)證本文方法的有效性,在相同的實(shí)驗(yàn)環(huán)境下,選取LSTM,未加注意力機(jī)制的QRNN算法進(jìn)行對(duì)比實(shí)驗(yàn),數(shù)據(jù)預(yù)處理過程相同,經(jīng)十折交叉驗(yàn)證法得本文算法的訓(xùn)練集與測(cè)試集損失結(jié)果,如表4所示,與其余算法的對(duì)比結(jié)果如圖3和表5所示。
圖3 損失變化對(duì)比圖
表4 十折交叉驗(yàn)證損失值
表5 評(píng)價(jià)對(duì)比表
由表4可知,AQRNN的損失變化在訓(xùn)練集和測(cè)試集上表現(xiàn)相似,由于訓(xùn)練時(shí)加入了正則化,有效的緩解了過擬合問題,且測(cè)試集損失值之間偏差較小,證明了本文算法的泛化性。由圖3可知,AQRNN最終收斂到的損失值最低,LSTM與QRNN最終收斂到的損失值相似,相應(yīng)的準(zhǔn)確度可見表5,由于加入的注意力機(jī)制選擇性的關(guān)注有助于當(dāng)前任務(wù)的重要特征,提高了信息利用率,使得AQRNN的準(zhǔn)確度高于LSTM與QRNN。
為驗(yàn)證本文算法在時(shí)間上的優(yōu)越性,選取64,128,256三種不同的批量測(cè)試, AQRNN與LSTM兩者的實(shí)驗(yàn)對(duì)比結(jié)果如表6所示。
表6 運(yùn)行時(shí)間對(duì)比表
由表6可知,由于AQRNN的網(wǎng)絡(luò)結(jié)構(gòu)采用卷積形式并行處理數(shù)據(jù)信息,緩解了采集序列信息時(shí)循環(huán)體內(nèi)的計(jì)算量,使得AQRNN的運(yùn)行時(shí)間遠(yuǎn)小于LSTM,隨著批量的增大,二者的運(yùn)行時(shí)間相應(yīng)減少,AQRNN的減少趨勢(shì)雖然小于LSTM,但運(yùn)行時(shí)間始終低于LSTM。
取500個(gè)時(shí)間步分析預(yù)測(cè)結(jié)果,由圖4可知,預(yù)測(cè)瓶頸單元與真實(shí)瓶頸單元基本擬合,瓶頸單元主要在工位1、工位3、工位5之間漂移,這三個(gè)工位的瓶頸值在相應(yīng)的時(shí)間段內(nèi)變化如圖5~圖7所示。
圖4 瓶頸工位預(yù)測(cè)圖 圖5 工位1的瓶頸值變化圖
圖6 工位3的瓶頸值變化圖 圖7 工位5的瓶頸值變化圖
圖5為工位1的瓶頸值變化,在部分時(shí)間段內(nèi),預(yù)測(cè)值與標(biāo)簽值之間略有偏差,但偏差較小,能夠反映變化趨勢(shì),工位1的瓶頸值整體范圍變化不大,該情形下工位1成為瓶頸單元的概率不高。圖6為工位3的瓶頸值變化,工位3的預(yù)測(cè)值與標(biāo)簽值吻合度高,瓶頸值變化幅度較大,且為負(fù)的情況較多,由瓶頸量化公式分析,緩存區(qū)的待加工零件的等待時(shí)間較短,下游工位中來自工位3的零件的等待時(shí)間較長(zhǎng),工位3的加工能力相對(duì)較高,該情形下工位3成為瓶頸單元的概率相對(duì)較小。圖7為工位5的瓶頸值變化,工位5的預(yù)測(cè)值與標(biāo)簽值吻合度較高,瓶頸值變化幅度較大,且長(zhǎng)期處于高值狀態(tài),由瓶頸量化公式分析,工位5的緩存區(qū)的零件的等待時(shí)間較長(zhǎng),該工位的加工能力較弱,成為瓶頸的概率較大,后續(xù)的車間生產(chǎn)中對(duì)工位5要重點(diǎn)關(guān)注。
本文針對(duì)離散制造車間存在的瓶頸漂移現(xiàn)象,提出了基于注意力QRNN瓶頸預(yù)測(cè)方法。首先結(jié)合車間的生產(chǎn)特點(diǎn),量化了車間瓶頸,定義了狀態(tài)數(shù)據(jù)類型,而后分析了瓶頸漂移現(xiàn)象,并提出了基于注意力機(jī)制的QRNN瓶頸漂移預(yù)測(cè)框架,對(duì)生產(chǎn)數(shù)據(jù)進(jìn)行序列處理,輸入到預(yù)測(cè)模型中進(jìn)行訓(xùn)練,融合的注意力機(jī)制充分利用了狀態(tài)數(shù)據(jù),訓(xùn)練好的模型可以根據(jù)實(shí)時(shí)數(shù)據(jù)預(yù)測(cè)未來不同工位的瓶頸值,幫助車間人員找到未來的瓶頸工位,最后在實(shí)例上進(jìn)行實(shí)驗(yàn)分析,驗(yàn)證了算法的有效性和準(zhǔn)確性。在后續(xù)研究中,可以對(duì)車間進(jìn)行溯源分析,找到導(dǎo)致該單元成為瓶頸單元的干擾因素,幫助車間人員明確干預(yù)方向,緩解瓶頸單元帶來的影響。