董建軍 許新來(lái) 陳昱丞 王俊博
中交第三航務(wù)工程勘察設(shè)計(jì)院有限公司
AGV(Automated Guided Vehicle,自動(dòng)導(dǎo)航車(chē))廣泛應(yīng)用于集裝箱裝卸的港口碼頭、堆場(chǎng)、立體倉(cāng)庫(kù)等物流領(lǐng)域。實(shí)際工程項(xiàng)目中,場(chǎng)地和道路的規(guī)劃以及投運(yùn)的AGV數(shù)量、行駛路徑、行駛速度、轉(zhuǎn)彎速度、集裝箱裝卸情況等,會(huì)影響其整體運(yùn)營(yíng)效率和能源消耗。因此,應(yīng)在項(xiàng)目前期策劃、規(guī)劃階段開(kāi)展仿真研究,將道路數(shù)據(jù)、集裝箱數(shù)量、AGV數(shù)量、行駛速度、門(mén)式起重機(jī)裝卸集裝箱速度等相關(guān)數(shù)據(jù),通過(guò)各種組合,使用軟件模擬,生成運(yùn)行和結(jié)果數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行分析,得出本場(chǎng)景下最合理的資源配比和最優(yōu)的路徑算法。
通過(guò)將真實(shí)項(xiàng)目場(chǎng)地的大小、布局、規(guī)模優(yōu)化后,形成仿真基本框架要素,內(nèi)容如下:海側(cè)AGV行駛線(xiàn)路總長(zhǎng)2 300 m、總寬530 m,4車(chē)道,每車(chē)道寬3 m,區(qū)域中間為AGV停車(chē)場(chǎng)。陸側(cè)為集裝箱堆場(chǎng),共可堆放1 500(30×10×5)個(gè)集裝箱??傮w布局見(jiàn)圖1。
圖1 場(chǎng)地規(guī)劃及仿真
仿真模擬界面中,上部分為直方圖、餅圖顯示,分別為:各AGV的實(shí)時(shí)速度、運(yùn)輸箱量統(tǒng)計(jì)、每箱平均時(shí)間、有效時(shí)間統(tǒng)計(jì)(行駛時(shí)間)、無(wú)效時(shí)間統(tǒng)計(jì)(在停車(chē)場(chǎng)時(shí)間)、AGV的總有效時(shí)間和總無(wú)效時(shí)間對(duì)比餅圖。
仿真系統(tǒng)使用規(guī)則及作業(yè)任務(wù)流程見(jiàn)圖2,具體為:
圖2 作業(yè)任務(wù)流程
(1)系統(tǒng)初始化,輸入集裝箱數(shù)量、AGV數(shù)量及速度和路徑算法等參數(shù)值。
(2)集裝箱堆場(chǎng)設(shè)置2臺(tái)龍門(mén)吊,第一臺(tái)從最左側(cè)往右吊取集裝箱,第二臺(tái)從中間往右吊取集裝箱。
(3)海側(cè)設(shè)置2個(gè)集裝箱卸載點(diǎn)。
Shipping Carbon Tax and Green Road of Chinese Shipping Industry
(4)龍門(mén)吊抓取集裝箱到AGV裝載點(diǎn)。
(5)從AGV車(chē)隊(duì)中選擇1臺(tái)空閑的AGV,讓其行駛到裝載點(diǎn)。
(6)AGV裝上集裝箱后,按照路徑算法系統(tǒng)計(jì)算出的路徑,行駛到卸載點(diǎn)卸掉集裝箱。
(7)AGV卸完集裝箱后,進(jìn)入下一個(gè)運(yùn)輸任務(wù);當(dāng)沒(méi)有任務(wù)時(shí),行駛到AGV停車(chē)場(chǎng)。
路徑算法由python語(yǔ)言編程實(shí)現(xiàn),采用Http Server部署。最短路徑不一定是最優(yōu)路徑,過(guò)多轉(zhuǎn)彎次數(shù)會(huì)引起頻繁的加減速導(dǎo)致總體行駛時(shí)間變長(zhǎng)。由于A*循跡計(jì)算速度明顯快于Dijkstra循跡計(jì)算速度,本文選用A*路徑算法并對(duì)其進(jìn)行優(yōu)化。
傳統(tǒng)的A*路徑算法公式為:
F(x)=G(x)+H(x)
(1)
通過(guò)在H(x)循跡方向上設(shè)置權(quán)值,可優(yōu)化路徑中的轉(zhuǎn)彎次數(shù)。利用反三角函數(shù)收斂特征,經(jīng)過(guò)反復(fù)演算,得出以下優(yōu)化的A*路徑算法,能夠明顯減少轉(zhuǎn)彎次數(shù)并滿(mǎn)足本文場(chǎng)景的循跡要求:
(2)
(3)
采用python編程,對(duì)比A*算法、Dijkstra算法、優(yōu)化后的A*算法,循跡圖見(jiàn)圖3、圖4。
圖3 A*及Dijkstra算法循跡
圖4 優(yōu)化后的A*算法循跡
多AGV行駛中,會(huì)出現(xiàn)多輛車(chē)在同一時(shí)間對(duì)同一個(gè)節(jié)點(diǎn)或同一段路線(xiàn)通行權(quán)的競(jìng)爭(zhēng),從而會(huì)導(dǎo)致車(chē)輛之間出現(xiàn)沖突甚至死鎖現(xiàn)象。沖突類(lèi)型主要包括同向沖突、節(jié)點(diǎn)沖突、相向沖突。
2.3.1 同向沖突及解決
同向沖突指兩車(chē)輛在某一時(shí)刻存在方向相同的重疊路徑,車(chē)輛行駛速度后車(chē)大于前車(chē)或后車(chē)在加速度加持下能追上前車(chē)(見(jiàn)圖5)。
圖5 同向沖突
解決策略為:當(dāng)后車(chē)與前車(chē)存在同向沖突的可能性時(shí),應(yīng)指定后車(chē)停止加速、減速或停車(chē)等候,直至后車(chē)與前車(chē)的相對(duì)距離大于后車(chē)正在執(zhí)行的最大加速距離,或者確保在后車(chē)即將追上前車(chē)之前,前車(chē)能夠改變路徑。
2.3.2 節(jié)點(diǎn)沖突及解決
節(jié)點(diǎn)沖突指兩車(chē)輛經(jīng)過(guò)同一節(jié)點(diǎn)時(shí)存在使用權(quán)爭(zhēng)奪,但雙方前序及后續(xù)路徑不存在重疊(見(jiàn)圖6)。
圖6 節(jié)點(diǎn)沖突
解決策略為:先申請(qǐng)節(jié)點(diǎn)使用權(quán)的車(chē)輛對(duì)該節(jié)點(diǎn)擁有優(yōu)先行駛權(quán);后申請(qǐng)節(jié)點(diǎn)的車(chē)輛提前降速或改道。
2.3.3 相向沖突及解決
相向沖突是指兩車(chē)輛在某一時(shí)刻存在方向相反的重疊路徑,兩車(chē)輛若按規(guī)劃路徑行駛會(huì)造成路徑的死鎖(見(jiàn)圖7)。
圖7 相向沖突
解決策略為:保持高優(yōu)先級(jí)車(chē)輛的行駛路線(xiàn),并更改次優(yōu)先級(jí)車(chē)輛的行駛路線(xiàn),如重載車(chē)輛優(yōu)先級(jí)大于空載車(chē)輛。若低優(yōu)先級(jí)車(chē)輛通過(guò)沖突路段所耗費(fèi)時(shí)間遠(yuǎn)小于替代路線(xiàn)時(shí),沖突車(chē)輛可選擇停車(chē)等待。
AGV小車(chē)獲取到運(yùn)輸任務(wù)時(shí),系統(tǒng)開(kāi)始為其計(jì)算行駛路徑以及處理路徑?jīng)_突,AGV小車(chē)運(yùn)輸行駛節(jié)點(diǎn)申請(qǐng)流程見(jiàn)圖8。
圖8 節(jié)點(diǎn)申請(qǐng)流程圖
通過(guò)以下步驟開(kāi)展仿真模擬,獲取運(yùn)行數(shù)據(jù):
(1)同一種路徑算法,配置不同數(shù)量AGV(1~8輛),統(tǒng)計(jì)每輛AGV裝箱量、每箱運(yùn)輸平均時(shí)間、有效時(shí)間、無(wú)效時(shí)間、有效時(shí)間占比,以及總歷時(shí)、累積歷時(shí)。
(2)使用不同路徑算法,在相同的應(yīng)用場(chǎng)景下多次模擬,記錄結(jié)果數(shù)據(jù)。
(3)對(duì)結(jié)果數(shù)據(jù)采用圖表法,分析AGV數(shù)量最優(yōu)配比及各算法優(yōu)劣。
以集裝箱總數(shù)1 500箱、龍門(mén)吊2臺(tái)、AGV直線(xiàn)行駛速度25 km/h、彎道速度5 m/s、加(減)速度2 m/s2為例,路徑算法為仿真軟件提供的默認(rèn)最短路徑計(jì)算方法時(shí),AGV數(shù)量從1~8輛的仿真結(jié)果數(shù)據(jù)見(jiàn)表1。
表1 AGV運(yùn)輸數(shù)據(jù)
表1中,有效時(shí)間為AGV處于行駛中的時(shí)間;無(wú)效時(shí)間為AGV在停車(chē)場(chǎng)中的時(shí)間;總歷時(shí)為該場(chǎng)景下,仿真總共時(shí)間;累積歷時(shí)為該場(chǎng)景下,所有AGV總共累加起來(lái)的時(shí)間。分析表1數(shù)據(jù)可知,當(dāng)AGV數(shù)量為1時(shí),這輛AGV一直處于行駛狀態(tài),工作效率極高;當(dāng)AGV數(shù)量為8時(shí),各AGV工作效率極低。當(dāng)AGV數(shù)量超過(guò)8輛時(shí),過(guò)于飽和的AGV數(shù)量導(dǎo)致AGV不能及時(shí)接到運(yùn)輸任務(wù)而頻繁進(jìn)出停車(chē)場(chǎng),停車(chē)時(shí)間會(huì)大大增加,并且行駛中的碰撞及等待頻次也越來(lái)越高,因此總歷時(shí)反而增加,如表2和圖9所示。
表2 AGV運(yùn)輸歷時(shí)
圖9 AGV運(yùn)輸歷時(shí)
從上述圖表分析得出,當(dāng)AGV數(shù)量大于4輛后,總歷時(shí)下降趨勢(shì)不明顯,因此,在該場(chǎng)景下,AGV投入數(shù)量最優(yōu)為4輛。設(shè)置4輛AGV,并選擇不同的路徑算法進(jìn)行模擬,采集到的數(shù)據(jù)見(jiàn)表3。
表3 不同路徑下AGV運(yùn)輸數(shù)據(jù)
從表3數(shù)據(jù)分析得出,投入4輛AGV時(shí),優(yōu)化的A*路徑有效時(shí)間占比最大,總歷時(shí)、累積歷時(shí)均比其他的算法短,對(duì)A*路徑算法進(jìn)行優(yōu)化能夠提高運(yùn)輸效率。
通過(guò)場(chǎng)景規(guī)劃、仿真及算法系統(tǒng)搭建、路徑算法優(yōu)化、路徑?jīng)_突解決以及對(duì)仿真結(jié)果數(shù)據(jù)分析后,最終得出AGV最優(yōu)數(shù)量和最優(yōu)路徑算法,能夠?yàn)楦劭贏GV運(yùn)輸交通路徑及業(yè)務(wù)運(yùn)行規(guī)劃提供方法及數(shù)據(jù)支持。