吳 梅,方彥軍
(武漢大學(xué) 自動(dòng)化系,武漢 430072)
作為自動(dòng)化立體倉(cāng)庫(kù)AS/RS(automated storage and retrieval system)的一種替代,AVS/RS于2000年左右在歐洲已有小范圍應(yīng)用[1]??刂茝?fù)雜度高是其尚未廣泛應(yīng)用的原因之一。研究其三維仿真平臺(tái),直觀顯示并驗(yàn)證相關(guān)動(dòng)態(tài)模型理論研究結(jié)果,對(duì)于AVS/RS的進(jìn)一步推廣具有十分重要的意義。
關(guān)于AVS/RS國(guó)內(nèi)外已有的研究并不多,主要成果集中于Charles J.Malmborg[2-4]團(tuán)隊(duì)和羅鍵[5-8]教授團(tuán)隊(duì)。文獻(xiàn)[2]建立了AVS/RS性能與代價(jià)模型,用于AVS/RS設(shè)計(jì)階段的配置優(yōu)化。文獻(xiàn)[3]利用狀態(tài)方程模型預(yù)測(cè)AVS/RS在交叉存取模型下的交叉任務(wù)比例,以此為基礎(chǔ)對(duì)不同配置的AVS/RS進(jìn)行性能評(píng)估。文獻(xiàn)[4]研究了采用隨機(jī)存取與隨機(jī)停靠策略的AVS/RS的性能評(píng)估模型。文獻(xiàn)[5]采用粒子群算法解決AVS/RS的貨位分配問(wèn)題,保證自動(dòng)小車(chē)在不發(fā)生死鎖的情況下存取時(shí)間最短。文獻(xiàn)[6]提出一種基于改進(jìn)遺傳算法的優(yōu)化調(diào)度方法,提高了自動(dòng)小車(chē)存取系統(tǒng)中升降機(jī)系統(tǒng)的接貨效率。文獻(xiàn)[7]提出一種基于Petri網(wǎng)和有向圖的死鎖控制方法,解決了AVS/RS中自動(dòng)小車(chē)的死鎖問(wèn)題。文獻(xiàn)[8]針對(duì)AVS/RS提出一種死鎖預(yù)防的方法。文獻(xiàn)[9]采用改進(jìn)的人工魚(yú)群算法解決了AVS/RS的出入庫(kù)調(diào)度優(yōu)化問(wèn)題。上述研究主要停留在AVS/RS的概念模型階段,少量涉及其動(dòng)態(tài)模型的研究則都采用數(shù)值仿真方式,仿真結(jié)果不直觀,對(duì)AVS/RS的推廣作用不明顯。
針對(duì)上述現(xiàn)狀,本文研究了AVS/RS的三維仿真平臺(tái)。通過(guò)平臺(tái)可搭建所需的自動(dòng)化立體倉(cāng)庫(kù)模型,靈活配置小車(chē)數(shù)量、升降機(jī)數(shù)量等參數(shù)。平臺(tái)提供多種方式接收小車(chē)路徑序列,并以動(dòng)畫(huà)的形式直觀地顯示AVS/RS的動(dòng)態(tài)運(yùn)行過(guò)程,同時(shí)輸出各項(xiàng)運(yùn)行指標(biāo),可為已有的概念模型及動(dòng)態(tài)模型的理論研究結(jié)果提供驗(yàn)證與評(píng)估,有助于AVS/RS的進(jìn)一步推廣。
為適應(yīng)現(xiàn)代企業(yè)柔性生產(chǎn)的需求,AVS/RS系統(tǒng)逐步受到重視。在AVS/RS系統(tǒng)中,存取任務(wù)的執(zhí)行由任意數(shù)量的自動(dòng)小車(chē)完成。自動(dòng)小車(chē)可在水平方向自主運(yùn)動(dòng),而其垂直方向的運(yùn)動(dòng)則依靠立體倉(cāng)庫(kù)中架設(shè)的升降機(jī)完成。由于每臺(tái)自動(dòng)小車(chē)都能訪問(wèn)任意貨位,某臺(tái)小車(chē)故障對(duì)整個(gè)系統(tǒng)基本沒(méi)有影響,并且小車(chē)數(shù)量可隨意更改,從而適應(yīng)市場(chǎng)需求。因此,AVS/RS是自動(dòng)化立體倉(cāng)庫(kù)的發(fā)展趨勢(shì)。
從功能上區(qū)分,本文搭建的AVS/RS三維仿真平臺(tái)由4個(gè)模塊組成,即人機(jī)交互模塊、模型模塊、動(dòng)畫(huà)模塊、輸出模塊,其框架結(jié)構(gòu)如圖1所示。
圖1 AVS/RS三維仿真平臺(tái)架構(gòu)Fig.1 Frame of the 3D simulation platform for AVS/RS
其中模型模塊負(fù)責(zé)三維模型的創(chuàng)建與顯示;人機(jī)交互模塊負(fù)責(zé)處理操作人員輸入;動(dòng)畫(huà)模塊負(fù)責(zé)仿真場(chǎng)景的更新;輸出模塊負(fù)責(zé)AVS/RS仿真結(jié)果的輸出,包括升降機(jī)利用率、系統(tǒng)等待時(shí)間等。其中人機(jī)交互模型的輸入一部分將傳入模型模塊,一部分則傳入動(dòng)畫(huà)模塊。
人機(jī)交互模塊負(fù)責(zé)處理操作人員的輸入。其中,有關(guān)倉(cāng)庫(kù)配置的輸入如自動(dòng)小車(chē)的數(shù)量、升降機(jī)數(shù)量、I/O口數(shù)量、升降機(jī)位置等將被送至模型模塊用于倉(cāng)庫(kù)模型的構(gòu)建,而有關(guān)動(dòng)態(tài)仿真運(yùn)行的參數(shù)如小車(chē)速度、小車(chē)路徑序列、場(chǎng)景透明度等則被送至動(dòng)畫(huà)模塊用于三維場(chǎng)景的更新。結(jié)合已有AVS/RS的倉(cāng)庫(kù)配置結(jié)構(gòu),如升降機(jī)位置的配置只提供均勻分散或貨架邊沿2項(xiàng)選擇。而小車(chē)路徑序列的輸入方式有3種:(1)通過(guò)讀取xml路徑文件輸入;(2)加載指定函數(shù)名稱的動(dòng)態(tài)鏈接庫(kù),用戶將路徑規(guī)劃算法按指定的函數(shù)形式寫(xiě)入動(dòng)態(tài)鏈接庫(kù),平臺(tái)便可以用戶輸入的任務(wù)序列為輸入啟動(dòng)路徑規(guī)劃進(jìn)程,實(shí)時(shí)產(chǎn)生小車(chē)及升降機(jī)路徑并實(shí)時(shí)傳入動(dòng)畫(huà)模塊;(3)通過(guò)TCP/IP通信讀取,平臺(tái)可作為網(wǎng)絡(luò)通信的客戶端向用戶的路徑規(guī)劃軟件發(fā)出連接請(qǐng)求,接收服務(wù)器端實(shí)時(shí)發(fā)送的路徑數(shù)據(jù)并傳入動(dòng)畫(huà)模塊。
部分人機(jī)交互界面如圖2所示。此界面可進(jìn)行的設(shè)置包括小車(chē)速度設(shè)置、小車(chē)轉(zhuǎn)向速度設(shè)置、場(chǎng)景透明設(shè)置。其中場(chǎng)景透明設(shè)置用于設(shè)置倉(cāng)庫(kù)的透明度,便于動(dòng)態(tài)仿真過(guò)程中觀察小車(chē)狀態(tài)。鏡頭追蹤與自動(dòng)小車(chē)選擇設(shè)置用于觀察具體某一輛小車(chē)的運(yùn)行狀態(tài)。方案1至方案4則用于4個(gè)xml路徑節(jié)點(diǎn)文件的選擇。
圖2 部分人機(jī)交互界面Fig.2 Part of the user interface
AVS/RS系統(tǒng)的組成部件比較簡(jiǎn)單,主要包括立體倉(cāng)庫(kù)(由單個(gè)貨位組合而成)、自動(dòng)小車(chē)、升降機(jī)、I/O口。采用參數(shù)化建模方法,建立包含以上4種元件的模型庫(kù)。根據(jù)用戶輸入的配置參數(shù)如小車(chē)數(shù)量、升降機(jī)數(shù)量、貨位個(gè)數(shù)、貨位尺寸等系統(tǒng)可自動(dòng)組合出AVS/RS系統(tǒng)模型。也可通過(guò)從模型庫(kù)中拖動(dòng)的方式建立系統(tǒng)三維模型。如圖3所示為依據(jù)電力科學(xué)研究院智能計(jì)量設(shè)備自動(dòng)檢定流水線倉(cāng)儲(chǔ)環(huán)節(jié)中的自動(dòng)小車(chē)存取系統(tǒng)構(gòu)建的AVS/RS三維模型。其中右下側(cè)矩形塊部分為I/O口。
圖3 AVS/RS示例模型Fig.3 Example model for AVS/RS
動(dòng)畫(huà)模塊是AVS/RS三維仿真平臺(tái)的核心部分。其主要功能實(shí)時(shí)仿真顯示自動(dòng)小車(chē)執(zhí)行存取任務(wù)的運(yùn)行過(guò)程,其中包括小車(chē)空跑、小車(chē)載貨運(yùn)行、小車(chē)等待、升降機(jī)空跑、升降機(jī)載小車(chē)運(yùn)行、升降機(jī)等待等場(chǎng)景。
動(dòng)畫(huà)模塊的工作通過(guò)動(dòng)畫(huà)主循環(huán)完成,而動(dòng)畫(huà)主循環(huán)則通過(guò)定時(shí)器實(shí)現(xiàn)。創(chuàng)建定時(shí)時(shí)間為1/60s的定時(shí)器,定時(shí)時(shí)間到后觸發(fā)場(chǎng)景更新過(guò)程,該更新過(guò)程完成下一幀畫(huà)面的計(jì)算與繪制,主要更改的是小車(chē)的位置與狀態(tài),更新完成后,顯示新場(chǎng)景。此后,重新啟動(dòng)定時(shí)器。通過(guò)這種方式,大概每隔1/60 s更新一次畫(huà)面。
采用改進(jìn)的基于可變的畫(huà)面更新速度來(lái)實(shí)現(xiàn)動(dòng)畫(huà)主循環(huán),場(chǎng)景狀態(tài)會(huì)根據(jù)每一顯示幀消耗的時(shí)間來(lái)進(jìn)行更新。
用1/60 s的定時(shí)器保證在高性能的硬件平臺(tái)上,其更新速度不超過(guò)60幀/s,在場(chǎng)景更新過(guò)程中,又會(huì)根據(jù)前后2幀的時(shí)間間隔進(jìn)行計(jì)算,避免了在性能較差的機(jī)器上,會(huì)出現(xiàn)時(shí)間尺度與畫(huà)面更新速度不匹配的問(wèn)題。其具體流程圖如圖4所示。
創(chuàng)建定時(shí)器后,隨即記錄當(dāng)前系統(tǒng)時(shí)間,并將其保存為上一幀更新時(shí)間。定時(shí)時(shí)間到后,再次獲取當(dāng)前系統(tǒng)時(shí)間,并將其保存為當(dāng)前時(shí)間,通過(guò)當(dāng)前時(shí)間與上一幀更新時(shí)間作差得到前后2幀的時(shí)間間隔,并賦值給delta,同時(shí),將當(dāng)前時(shí)間保存為上一幀時(shí)間。此后根據(jù)delta值更新場(chǎng)景,主要更新的內(nèi)容為小車(chē)的狀態(tài)。更新完成后,顯示場(chǎng)景,并重啟計(jì)時(shí)器。如此循環(huán)下去,場(chǎng)景的更新周期為(1/60 s+1幀的更新顯示時(shí)間)。
圖4 動(dòng)畫(huà)模塊的具體流程Fig.4 Specific flow for the animation model
動(dòng)畫(huà)主循環(huán)的關(guān)鍵在于更新三維場(chǎng)景,在本文搭建的AVS/RS系統(tǒng)三維仿真平臺(tái)中,主要更新的內(nèi)容為小車(chē)的狀態(tài),包括小車(chē)朝向及小車(chē)位置。而小車(chē)狀態(tài)的更新則取決于各小車(chē)的任務(wù)路徑。
平臺(tái)將輸入的小車(chē)路徑保存為路徑指令和等待指令,分別對(duì)應(yīng)小車(chē)的行駛狀態(tài)和等待狀態(tài)。路徑指令包含指令標(biāo)識(shí)和起始路徑點(diǎn)坐標(biāo)、終止路徑點(diǎn)坐標(biāo)。等待指令包含指令標(biāo)識(shí)和等待時(shí)間。
每輛小車(chē)執(zhí)行指令的流程如圖5所示。循環(huán)開(kāi)始后,根據(jù)當(dāng)前指令索引是否大于指令總數(shù)判斷是否還有未執(zhí)行指令,若沒(méi)有則結(jié)束幀循環(huán),小車(chē)狀態(tài)不變。若還有未執(zhí)行的指令,則執(zhí)行指令,并更新剩余時(shí)間delta。若delta大于0,即執(zhí)行完當(dāng)前指令時(shí),還未到下一幀的顯示時(shí)間,則移至下一條指令并初始化指令環(huán)境,繼續(xù)執(zhí)行下一條指令,直至執(zhí)行完所有指令或剩余時(shí)間為0。
圖5 小車(chē)的指令過(guò)程Fig.5 Execution process of the vehicle
小車(chē)在執(zhí)行指令前,先對(duì)指令類(lèi)型進(jìn)行判斷,并按照指令類(lèi)型進(jìn)行相應(yīng)處理。
圖6為路徑指令的執(zhí)行流程,圖7為等待指令的執(zhí)行流程。
圖6 路徑指令執(zhí)行過(guò)程Fig.6 Execution process of path demand
圖7 等待指令執(zhí)行過(guò)程Fig.7 Execution process of waiting demand
路徑指令中小車(chē)轉(zhuǎn)向角度angle的計(jì)算過(guò)程如下:
由式(1)、(2)求出目標(biāo)朝向的單位向量,其中:dest為目標(biāo)路徑點(diǎn);cur為小車(chē)當(dāng)前位置。由目標(biāo)朝向與當(dāng)前朝向可得到theta的正余弦值,其計(jì)算過(guò)程如下:
其中:delta為剩余時(shí)間,其初始值為下一幀與上一幀之間的時(shí)間間隔;rotateSpeed為小車(chē)的轉(zhuǎn)向速度。根據(jù)轉(zhuǎn)向角度angle,可以更改小車(chē)朝向。
等待指令的處理流程較為簡(jiǎn)單。等待指令開(kāi)始后,比較等待時(shí)間delta與等待時(shí)間wait-time之間的大小,記錄較小者的值tm,隨后以delta-tm作為 delta的新取值,waittime-tm作為waittime的新取值,并返回剩余時(shí)間delta。
信息輸出模塊負(fù)責(zé)仿真結(jié)果的輸出,
包括升降機(jī)空載率、小車(chē)空載率、系統(tǒng)運(yùn)行時(shí)間、出入庫(kù)任務(wù)總量等。升降機(jī)空載率與小車(chē)空載率分別等于升降機(jī)空載的幀數(shù)、小車(chē)空載的幀數(shù)與總幀數(shù)的比例。
本文搭建了AVS/RS三維仿真平臺(tái)。包括用于處理用戶輸入的人機(jī)交互模塊、用于創(chuàng)建三維模型的模型模塊、用于仿真系統(tǒng)動(dòng)態(tài)運(yùn)行狀況的動(dòng)畫(huà)模塊和用于輸出系統(tǒng)仿真結(jié)果的輸出模塊。平臺(tái)可根據(jù)用戶輸入的配置參數(shù)生成系統(tǒng)的三維模型也可由模型庫(kù)拖動(dòng)的方式創(chuàng)建系統(tǒng)模型。提供3種接口用于接收自動(dòng)小車(chē)執(zhí)行任務(wù)的路徑點(diǎn)序列。動(dòng)畫(huà)模塊根據(jù)路徑點(diǎn)序列實(shí)時(shí)更新小車(chē)位置、升降機(jī)位置,從而對(duì)系統(tǒng)的動(dòng)態(tài)運(yùn)行過(guò)程進(jìn)行實(shí)時(shí)動(dòng)態(tài)仿真。依據(jù)電力科學(xué)研究院智能計(jì)量設(shè)備自動(dòng)檢定流水線倉(cāng)儲(chǔ)環(huán)節(jié)中的自動(dòng)小車(chē)存取系統(tǒng)構(gòu)建具體仿真平臺(tái),該平臺(tái)接收相關(guān)路徑規(guī)劃研究的結(jié)果并展示了AVS/RS系統(tǒng)的實(shí)時(shí)運(yùn)行狀況,實(shí)現(xiàn)了對(duì)已有的相關(guān)理論研究結(jié)果的驗(yàn)證。該應(yīng)用表明,本文提出的自動(dòng)小車(chē)存取系統(tǒng)三維仿真平臺(tái)仿真效果直觀形象,對(duì)于AVS/RS的推廣具有重要意義。
[1]Charles J Malmborg.Conceptualizing tools for autonomous vehicle storage and retrieval systems[J].International Journal of Production Research,2002,40(8):1807-1822.
[2]Charles J Malmborg.Design optimization models for storage and retrieval systems using rail guided vehicles[J].Applied Mathematical Modeling,2003(27):929-941.
[3]Charles J Malmborg.Interleaving dynamics in autonomous vehicle storage and retrieval systems[J].International Journal of Production Research,2003,41(5):1057-1069.
[4]Po-Hsun Kuo,Ananth Krishnamurthy,Charles J Malmborg.Performance modelling of autonomous vehicle storage and retrieval systems using class-based storage policies[J].International Journal of Computer Applications in Technology,2008,31(3):238-248.
[5]羅鍵,鐘壽桂,吳長(zhǎng)慶.基于離散粒子群算法的AVS/RS貨位優(yōu)化[J].廈門(mén)大學(xué)學(xué)報(bào):自然科學(xué)版,2009,48(2):212-215.
[6]羅鍵,蘇海墩,何善君,等.基于改進(jìn)遺傳算法的自動(dòng)小車(chē)存取系統(tǒng)升降機(jī)調(diào)度建模與優(yōu)化控制[J].廈門(mén)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,49(3):328-332.
[7]吳長(zhǎng)慶,何善君,羅鍵.自動(dòng)小車(chē)存取系統(tǒng)中軌道導(dǎo)引小車(chē)環(huán)路死鎖控制的研究[J].計(jì)算機(jī)集成制造系統(tǒng),2008,14(9):1766-1773.
[8]吳長(zhǎng)慶,羅鍵,陳火國(guó),等.基于Petri網(wǎng)的RGVs系統(tǒng)中環(huán)路死鎖研究[J].計(jì)算機(jī)科學(xué),2009,36(4):250-253,260.
[9]孫衛(wèi)明,方彥軍,肖勇,等.電能計(jì)量設(shè)備檢定中心智能立庫(kù)調(diào)度優(yōu)化研究[J].自動(dòng)化儀表,2014,35(9):1-4.