李明輝,徐 方,宋吉來
(1.中國科學院沈陽自動化研究所 機器人學國家重點實驗室,遼寧 沈陽 110016; 2.中國科學院 機器人與智能制造創(chuàng)新研究院,遼寧 沈陽 110169;3.中國科學院大學,北京 100049; 4.沈陽新松機器人自動化股份有限公司 中央研究院,遼寧 沈陽 110168)
半導體生產制造系統(tǒng)是當今最復雜的離散制造系統(tǒng)之一,具有生產規(guī)模大、周期長、工序復雜以及生產工序重入性多等特點[1]。傳統(tǒng)的晶圓盒搬運多采用人工搬運,但隨著晶圓尺寸的不斷增大,人工搬運方式容易造成晶圓跌落和晶圓污染,自動化物料運輸系統(tǒng)(automatic material handling system,AMHS)應運而生。根據(jù)生產工藝的不同,具有相同或者相似生產功能的機臺會被放在同一個區(qū)域(Bay)中。AMHS由幾十甚至數(shù)百臺高空提升搬運車(overhead hoist transfer,OHT)組成,分布在晶圓廠車間的Intrabay軌道和Interbay軌道上[2]。早期的AMHS要實現(xiàn)跨Bay晶圓盒的運輸,需要通過每個Bay的存儲Stocker中轉,并且各個Bay的OHT只能在內部軌道上往復運行。整體式AMHS把Intrabay軌道和Interbay軌道直接相連,實現(xiàn)了機臺到機臺的直接運輸,大大提高了搬運車輛的運輸效率。但是,整體式AMHS使得車輛能夠走出當前Bay,在整個車間的運輸軌道中行駛,因此車輛的運輸控制變得更加復雜,車輛擁堵現(xiàn)象也發(fā)生的更加頻繁[3]。
針對整體式AMHS中經(jīng)常發(fā)生的擁堵問題,本文分析了系統(tǒng)擁堵產生的原因,將OHT在裝卸端口的等待時間抽象為實時交通信息加入到算法的運行代價統(tǒng)計中。在運輸調度的兩個階段,任務指派和路徑規(guī)劃中均加入實時交通信息,使系統(tǒng)能夠更靈活應對運行中出現(xiàn)的擁堵問題。
整體式AMHS的運輸調度可以分為兩個階段,第一階段是運輸任務指派,第二階段是運輸路徑規(guī)劃。針對運輸任務指派問題,吳立輝等[4]提出了基于模糊邏輯控制的動態(tài)調度方法,實時采集晶圓交貨日期、晶圓等待時間和系統(tǒng)搬運負載等信息,通過模糊邏輯動態(tài)調整調度規(guī)則,從而實現(xiàn)實時有效搬運晶圓。夏蓓鑫等[5]使用多目標動態(tài)調度方法,首先建立了多目標成本模型,使用基于模糊理論的改進方法去動態(tài)調整模型中的權值,最后使用匈牙利算法進行求解。Pan Cong等[6]以車輛到待搬運晶圓盒距離為目標,針對Interbay物料運輸系統(tǒng)使用改進的匈牙利算法進行實時運輸任務指派,并且提出帶有旁路的軌道構型設計,降低了擁堵發(fā)生的概率。針對運輸路徑規(guī)劃問題,或者更明確為路徑規(guī)劃中的擁堵甚至死鎖問題。Robert Schmaler等[7]為了控制擁堵的生成,對每段軌道的利用率定義了限制。通過不斷地迭代,最終使每段軌道的利用率相對保持一個均衡,達到預防擁堵的目的。Sangmin Lee等[8]開發(fā)了擁堵監(jiān)督系統(tǒng)軟件,進行擁堵等級的量化和監(jiān)督,然后根據(jù)擁堵標準去優(yōu)化路徑策略。Illhoe Hwang等[9]提出了基于Q(λ)>-learning的動態(tài)路徑算法,該算法是一個路徑導引算法,能夠根據(jù)當前判定的擁堵狀況和擁堵等級,動態(tài)選擇最優(yōu)的路徑。Zhou Qi等[10]針對自動化物料運輸系統(tǒng)中即將發(fā)生的死鎖難以被發(fā)現(xiàn)問題,提出了基于圖論中的關鍵鏈和共享點來構建死鎖檢測模型,同時提出了一種高效率并且有效的死鎖避免策略。綜上所述,大部分作者都是將晶圓調度問題分成兩個問題來研究,要么在任務指派階段考慮生產系統(tǒng)的系統(tǒng)指標,比如晶圓交貨期、系統(tǒng)搬運負載等,作為任務指派的目標成本;要么只關注路徑規(guī)劃過程中的擁堵或者死鎖問題。本文專注于解決整體式AMHS中車輛擁堵這一問題,實時監(jiān)測系統(tǒng)中的交通狀況,在系統(tǒng)調度的兩個階段均考慮擁堵狀況,為車輛分配任務并動態(tài)規(guī)劃相應的運行路線。
晶圓物料運輸?shù)恼{度包括靜態(tài)調度和動態(tài)調度兩種類型,靜態(tài)調度的特點是晶圓盒運輸任務一旦分配給某一輛小車就不再改變,車輛的運輸路徑在確定之后也不會變化,直至任務完成。動態(tài)調度的特點是算法會實時監(jiān)測系統(tǒng)的狀態(tài),當系統(tǒng)狀態(tài)發(fā)生變化,出現(xiàn)更合適的指派方案,晶圓盒和車輛的對應關系可以動態(tài)調整。
整體式AMHS把Intrabay軌道和Interbay軌道直接相連,打破之前通過存儲Stocker中轉的方式。先前具有運輸和存儲功能的Stocker,只保留存儲功能,被放在中心循環(huán)與每個Bay的接口附近。目前大部分晶圓廠布局有單脊椎式、雙脊椎式、周邊式、混合布局等[11],為了增加車輛的運輸路徑,提高車輛運輸效率,本文采用單脊椎式和周邊式混合布局,具體如圖1所示。然后根據(jù)晶圓廠構型特點,我們使用圖理論來建立路徑網(wǎng)絡模型。假設G=(N,E)表示整個晶圓廠的路徑網(wǎng)絡,不同于大多數(shù)研究者的網(wǎng)絡劃分方式——把每個機臺和存儲Stocker的裝卸點作為圖的節(jié)點,本文在軌道的交叉路口切分,切分后的每一段路作為網(wǎng)絡圖的一個節(jié)點Ni,交叉口上的連接關系作為圖節(jié)點之間連接的邊Ej。路段作為圖的節(jié)點的方式,可以大大減少圖網(wǎng)絡中節(jié)點和邊的個數(shù),從而提高程序運行效率,但是能實現(xiàn)和先前網(wǎng)絡劃分相同的功能。
圖1 整體式晶圓廠布局
根據(jù)建立的軌道網(wǎng)絡模型,圖網(wǎng)絡中邊的權重用來記錄系統(tǒng)中的動態(tài)交通信息。系統(tǒng)可能發(fā)生擁堵的原因有兩種:一是在加工機臺的裝卸載端口,由于AMHS的軌道是單軌,不能發(fā)生超車現(xiàn)象,所以當小車停在機臺的裝卸載口傳送晶圓盒時,就會堵塞后面的車輛,使得后面小車陸續(xù)停止等待,直到傳送完成才能繼續(xù)行駛;二是發(fā)生在軌道交叉路口,為避免車輛之間發(fā)生碰撞,轉彎行駛小車會主動停止避讓直行小車。其中,交叉路口發(fā)生的擁堵一般可以很快解除,但是裝卸載處產生的擁堵需要計入交通統(tǒng)計。圖網(wǎng)絡邊的權重計算公式如下所示:
設車輛的平均運行速度為V,軌道i的長度為Li,經(jīng)過軌道i的時間為Ti,車輛的裝載或者卸載平均時間為Ts,則當軌道上只有一輛小車在裝卸晶圓盒時,有
Ti=Ts+Li/V
(1)
當軌道上有n個小車在裝卸晶圓盒時,有
Ti=n·Ts+Li/V
(2)
當小車停在裝卸載端時,會觸發(fā)信號使得該軌道的權值增加一個時間Ts;在離開時,會使軌道權值減去時間Ts,保證實時交通信息的更新。
在運輸任務指派階段,晶圓盒所在機臺和車輛的對應關系是動態(tài)的,隨著交通狀況的變化,上一時刻機臺和車輛的最優(yōu)匹配在下一時刻可能已經(jīng)不是最優(yōu)的了。所以,當系統(tǒng)中有新的運輸任務生成或者某車輛把晶圓盒傳送給目的機臺后,就會觸發(fā)系統(tǒng)的重指派過程。AMHS中的車輛可以分為3種狀態(tài):空閑車輛,指沒有任何任務在AMHS軌道上空載運行的車輛;被指派車輛,指被分配目的地正在前往某機臺去接晶圓盒的車輛;運載車輛,指裝載著晶圓盒前往下一工序加工機臺的車輛。當系統(tǒng)條件發(fā)生變化時,空閑車輛和被指派車輛都可以參與運輸任務的動態(tài)指派過程。
2.3.1 動態(tài)指派數(shù)學模型
假設在運輸任務指派時刻t,系統(tǒng)中有m個待搬運晶圓盒和n輛可以參與指派的小車。該指派問題可以看作運籌學中的0-1整數(shù)規(guī)劃問題,優(yōu)化目標為所有車輛到待運輸晶圓盒的總行駛成本最小,其數(shù)學描述如下
(3)
(4)
(5)
(6)
其中,X為匹配系數(shù)矩陣,Xij∈{0,1},i=1,2…m,j=1,2…n。當晶圓盒i被分配給小車j來搬運時,Xij=1,否則Xij=0。C為車輛行駛到待搬運晶圓盒所在機臺的成本矩陣,Cij即為小車j到晶圓盒i所在機臺的行駛成本值。
2.3.2 成本矩陣構成
傳統(tǒng)的成本矩陣構成大多基于車輛到達各待運輸晶圓盒的最短距離,但是由于晶圓廠車輛繁多,交通狀況復雜多變,隨時可能發(fā)生交通擁堵,所以最短距離的路徑往往不能在最短時間內到達。本文運輸任務指派的目標是所有可指派車輛到達待運輸晶圓盒的總時間最少,采用基于實時交通信息的運輸任務指派方案,把動態(tài)交通信息下車輛到達晶圓盒的預計最短時間作為行駛成本值。
2.3.3 求解指派問題
匈牙利算法[12]可以用來求解指派問題,基本思想是修改矩陣的行或者列,經(jīng)過不斷修改后,直至使得矩陣的不同行、不同列至少有一個零元素,從而得到一個最優(yōu)匹配方案,這個方案使得當前狀態(tài)下所有車輛的總行駛成本最小。匈牙利算法依據(jù)的原理是:對于一個矩陣,將其某一行(列)的元素加上或減去同一個常數(shù),得到的新矩陣與原矩陣有相同的解。具體步驟如下所述:
步驟1判斷成本矩陣C是否為方陣,若為方陣則跳到步驟3;否則,執(zhí)行步驟2。
步驟2對于成本矩陣C:
(1)若m (2)若m>n,則增加(m-n)列0元素。 步驟3對成本矩陣進行變換,使每行每列至少有一個元素為0。 (1)讓成本矩陣的每行減去該行的最小元素; (2)讓成本矩陣的每列減去該列的最小元素。 步驟4對每一行元素,若該行元素中只包含一個0,就標記該0元素,然后對該0元素所在的列劃線;若該行沒有0元素或者包含兩個及其以上(已經(jīng)被劃去的0元素去掉),則轉下一行。 步驟5對每一列元素,若該列元素中只包含一個0,就標記該0元素,然后對該0元素所在的行劃線;若該列沒有0元素或者包含兩個及其以上(已經(jīng)被劃去的0元素去掉),則轉下一列。 步驟6檢查被標記0元素的個數(shù): (1)若個數(shù)等于行數(shù),就找到了最優(yōu)解,跳到步驟7; (2)若個數(shù)小于行數(shù),找出沒有被劃線的元素的最小元素,對沒有被劃線的元素減去最小元素,對劃線元素交叉點上的元素加上最小元素,轉到步驟4。 步驟7求解結束,被標記0元素位置對應的匹配系數(shù)矩陣的值為1,其它為0。 車輛的運輸路徑動態(tài)規(guī)劃也是一個重要的問題。如果每輛小車總是通過最短路徑到達目的地,這些路徑就會很容易變成擁堵的,而有些路徑卻只有很少的車輛通過。如果小車不斷地進入擁堵區(qū)域,擁堵只會變得越來越嚴重。所以本文在路徑規(guī)劃的過程中,不去找到達目的地距離最短的路徑,而會根據(jù)交通狀況尋找到達目的地時間最短的路徑。 2.4.1 路徑表示 當小車從起始節(jié)點Ns接到晶圓盒,前往目標節(jié)點Nd時,小車就會自動計算一條前往目的機臺的路徑,表示如下 (7) 其中,P為小車的規(guī)劃路徑,f(Ni,Ni+1)表示節(jié)點Ni和節(jié)點Ni+1的連接邊,邊的值表示節(jié)點Ni+1所代表路段的實時交通信息值。 2.4.2 動態(tài)路徑規(guī)劃 小車在前往目的機臺的過程中,規(guī)劃路徑會根據(jù)前方路徑的權重變化進行動態(tài)調整。在小車前進的過程中,每次要離開節(jié)點Ni時,就會觸發(fā)路徑規(guī)劃事件,調用Dijkstra算法進行路徑規(guī)劃,確保Ni+1所代表的路段沒有發(fā)生變化;如果發(fā)生變化,就進入Ni+1代表的新路徑軌道。圖2說明了在每個交叉路口發(fā)生的動態(tài)規(guī)劃場景,在小車剛進入路段Nk時,小車的預計行駛路徑為Nk,Nm,Nm+1,…Nd。但在小車運行過程中,Nm路段交通狀況發(fā)生變化,出現(xiàn)擁堵。在小車行駛到Nk路段末端時,通過運行路徑規(guī)劃算法,得出Nk,Nn,Nn+1,…Nd為預計時間最短的路徑,小車駛出Nk路段后會直接進入Nn軌道。 圖2 動態(tài)路徑規(guī)劃 算法結構如圖3所示,在調度系統(tǒng)運行的過程中,由于不斷產生新的運輸任務,每個指派周期調度系統(tǒng)都會重新統(tǒng)計所有空閑車輛和所有待運輸任務,然后進行指派;路徑規(guī)劃則是由每輛OHT小車在每個交叉路口根據(jù)系統(tǒng)統(tǒng)計的交通信息進行動態(tài)路徑規(guī)劃。 圖3 算法結構 為了驗證本文防擁堵調度算法的有效性,本文在主頻2.6 GHz、內存4 GB、Inter(R) Core(TM) i5-4210M CPU的個人筆記本上進行實驗驗證。首先使用Plant Simulation 14.2仿真軟件建立了整體式AMHS仿真模型,其中運輸任務指派仿真模型采用匈牙利算法求解,該算法使用C++語言實現(xiàn),并封裝成動態(tài)鏈接庫(.dll)文件被仿真軟件調用,車輛的路徑規(guī)劃算法使用軟件內置的SimTalk 2.0語言進行編寫。 Plant Simulation是一個基于對象的仿真軟件,提供了一些內嵌的仿真對象。在建立模型時,用戶可以修改內嵌對象的設置用于模型搭建,表1列出了本文仿真用到的內嵌對象及其用途。 表1 仿真模型元素 仿真模型采用脊椎式和周邊式混合布局,包括一個Interbay內循環(huán)軌道和一個Interbay外循環(huán)軌道,兩個循環(huán)軌道之間分布12個Intrabay加工區(qū),Intrabay軌道和兩個循環(huán)軌道直接連接,構成整體式自動化物料運輸系統(tǒng)。Interbay內循環(huán)軌道長寬為80 m×4 m,外循環(huán)軌道的長寬為80 m×58 m,Intrabay軌道的長寬為26 m×4 m。在Interbay內循環(huán)設有10條捷徑供車輛換向。每個Intrabay加工區(qū)設有6個晶圓盒的加載端和6個卸載端,仿真運行中系統(tǒng)生成從加載端到卸載端的運輸任務、加載端到Stocker的運輸任務、Stocker到卸載端的運輸任務,運輸任務包括Bay內運輸和跨Bay運輸。仿真模型的布局如圖4所示。 圖4 整體式物料運輸系統(tǒng)仿真模型 仿真模型將做如下實驗假設:①由于小車的加減速時間所占比例較小,本文在仿真中忽略加減速時間,假設所有小車以平均速度v運行;②我們假定在仿真運行過程中,車輛、加工機臺和Stocker均不會發(fā)生故障;③為了更加專注于驗證算法的優(yōu)劣,減少其它干擾因素,仿真中并沒有實現(xiàn)整個晶圓廠的工作流程,而是建立了From-To表,仿真晶圓盒從一個機臺被搬運到下一加工機臺的整個流程。 為了驗證混合布局對晶圓搬運效率的影響,本文同時建立了經(jīng)典的單脊椎式軌道布局進行實驗對比。分別取小車數(shù)量(輛)為15、20、25、30、35和40,使用基于距離的動態(tài)調度算法進行驗證。運輸性能的評價指標選擇晶圓盒平均等待時間和平均運輸周期。仿真運行30天,重復3次。 通過圖5可以看出,在車輛數(shù)量為15-20的階段,兩種布局由于車輛不能及時響應晶圓盒運輸任務,導致大量晶圓盒運輸任務堆積等待,平均等待時間要占總運輸時間的70%-80%。隨著運輸車輛的增多,晶圓盒平均運輸周期快速下降,曲線在小車數(shù)量為25輛-30輛時開始變得平緩,晶圓盒的平均等待時間也明顯降低,占比降到了總運輸時間的20%-30%。相比較于單脊椎式布局,混合軌道布局對應的曲線下降速度更快,最終達到平緩時,其對應的晶圓盒平均運輸周期也明顯低于單脊椎式軌道布局。雖然在30輛-40輛小車時平均等待時間相近,但是由于混合布局有更多的運輸路徑,從一個加工區(qū)到達另一個加工區(qū)就會有更合適的路徑選擇,從而整體的平均運輸周期明顯低于單脊椎式布局。 圖5 混合布局對運輸性能的影響 根據(jù)本文2.2分析,交通擁堵產生的原因主要是由于小車停留在加工機臺的裝卸載端口裝卸晶圓盒,堵塞了后續(xù)小車的前進道路。已知小車平均裝卸載時間為30 s,我們對軌道的動態(tài)交通權值做以下設定,當小車停止在軌道裝卸載端時,軌道的行駛成本時間增加30 s;當小車開始運行,軌道的行駛成本時間減少30 s。但是由于其它車輛統(tǒng)計交通信息時,裝卸載車輛的實際停留時間已經(jīng)小于30 s,所以實際軌道成本的增加為α·30 s。 圖6設定運輸小車數(shù)量為26輛,α分別取0-1中的數(shù),以0.1等分,得出α值與晶圓盒平均運輸周期之間的關系。通過觀察可以看出,當α等于0的時候,調度不考慮系統(tǒng)的交通狀況,完全根據(jù)最短距離進行分配指派和路徑規(guī)劃,其對應的晶圓盒平均運輸周期為04∶15。α值從0.1增到0.5,運輸時間總體呈下降趨勢,在0.5時運輸周期最短為04∶10。在α值從0.6增到1,運輸周期呈上升趨勢,在α等于0.7時超過動態(tài)最短距離調度方法。所以本文取α等于0.5進行接下來的實驗。 圖6 α值與晶圓盒平均運輸周期之間的關系 在接下來的實驗中,分別選擇20輛、22輛、24輛、26輛、28輛、30輛小車進行實驗,同時把本文提出的方法和基于距離的靜態(tài)調度方法和基于距離的動態(tài)調度方法進行對比驗證,以下為3種方法的簡要比較: (1)基于距離的靜態(tài)調度方法(static scheduling based on distance,SSBD):該方法是在調度發(fā)生時刻,根據(jù)當前系統(tǒng)最優(yōu)匹配關系進行運輸任務分配指派,同時進行車輛的路徑規(guī)劃。當晶圓加工完成,會尋找距離該晶圓盒最近的空閑車輛,如果找到空閑車輛,就指派該車去運輸晶圓盒;否則將該運輸任務加入任務等待列表。當出現(xiàn)空閑車輛,會去查找等待列表,執(zhí)行該任務。所有運輸任務一旦被分配,就一定會由被分配車輛將任務執(zhí)行完,即使中間出現(xiàn)更優(yōu)的匹配結果,也不會改變。 (2)基于距離的動態(tài)調度方法(dynamic scheduling based on distance,DSBD):該方法可以隨著系統(tǒng)運行狀況的變化,不斷更新指派結果。當有新的運輸任務生成或者有新的空閑車輛出現(xiàn),系統(tǒng)會自動運行重調度程序,依據(jù)總運行距離最短的原則,為運輸任務重新分配運載車輛。在運輸晶圓盒前往目的機臺的過程中,運輸路徑不會變化。 (3)基于實時交通信息的動態(tài)調度方法(dynamic scheduling based on real-time traffic information,DSBRTI):該方法可以不斷統(tǒng)計系統(tǒng)的交通狀況,動態(tài)更新每條道路的行駛成本。當有新的運輸任務生成或者有新的空閑車輛出現(xiàn)時,系統(tǒng)會自動運行重調度程序,依據(jù)總運行時間最短的原則,為運輸任務分配運載車輛。在路徑規(guī)劃階段,小車每當要離開當前路段,就會調用路徑規(guī)劃算法,指導小車進入下一軌道。 在仿真開始之前,已經(jīng)建立了From-To表設置運輸任務產生的時間及對應的機臺,頻率為每分鐘出現(xiàn)6個-8個任務,仿真時間為100天,重復3次。圖7(a)為3種方法所對應的晶圓盒平均運輸周期,可以看出,動態(tài)調度算法性能明顯優(yōu)于靜態(tài)調度算法。在小車數(shù)量到達26時,動態(tài)調度方法的晶圓盒運輸周期開始趨于平穩(wěn),而靜態(tài)調度方法仍保持著下降趨勢。對比DSBD,DSBRTI下降更加平滑,下降速度更快,其平均運輸時間也明顯少于其它兩種調度方法。圖7(b)為3種方法所對應的平均等待時間,在車輛數(shù)量為20輛-22輛時,DSBRTI和DSBD的平均等待時間分別占總運輸時間的65%和70%,SSBD的平均等待時間占總運輸時間的80%。隨著車輛數(shù)目的增多,DSBRTI和DSBD的平均等待時間占比快速下降,時間從06∶20下降到00∶45。但是SSBD的平均等待時間占比依舊為80%左右??梢缘贸鼋Y論,SSBD的平均運輸周期遠遠高于DSBRTI和DSBD,是由于SSBD的平均等待時間占比居高不下,大部分晶圓盒運輸任務無法被及時響應,已加工完成的晶圓大量堆積。 表2為3種方法對應的擁堵發(fā)生次數(shù)統(tǒng)計??梢钥闯?,隨著車輛數(shù)目的增多,3種方法的擁堵發(fā)生次數(shù)也在逐漸增多,SSBD和DSBRTI的擁堵發(fā)生次數(shù)明顯少于DSBD。但是,SSBD是靜態(tài)調度,會出現(xiàn)很多空車行駛去接遠處晶圓盒的情況,總的停車裝卸載次數(shù)更少,所以擁堵發(fā)生次數(shù)會比DSBD少。而DSBRTI既能保證較高的停車裝卸載次數(shù)、高運輸效率,又有較低的擁堵率。綜合圖7和表2的統(tǒng)計,可以得出結論,DSBRTI的綜合性能優(yōu)于SSBD和DSBD。 圖7 3種方法運輸性能的對比 表2 擁堵發(fā)生次數(shù) 本文針對整體式自動化物料運輸系統(tǒng),使用脊椎式與周邊式相結合的軌道布局,增加了車輛運輸路徑,提高了晶圓盒運輸效率。以解決車輛擁堵問題為目標,針對擁堵問題的產生原因——車輛停靠裝卸載晶圓盒阻礙了后方車輛的運行,提出了基于實時交通信息的兩階段動態(tài)調度算法。實驗部分與基于距離的靜態(tài)調度算法和動態(tài)調度算法進行對比,首先得出動態(tài)調度算法性能明顯優(yōu)于靜態(tài)調度算法;其次基于交通信息的動態(tài)調度算法性能更加穩(wěn)定,比基于距離的動態(tài)調度算法有更低的擁堵率,晶圓盒平均運輸周期也更短。2.4 運輸路徑的動態(tài)規(guī)劃
2.5 算法結構圖
3 仿真驗證與分析
3.1 仿真模型布局及實驗假設
3.2 混合布局對搬運效率的影響
3.3 防擁堵調度算法的有效性
4 結束語