董建軍 許新來 陳昱丞 王俊博
中交第三航務工程勘察設計院有限公司
AGV(Automated Guided Vehicle,自動導航車)廣泛應用于集裝箱裝卸的港口碼頭、堆場、立體倉庫等物流領域。實際工程項目中,場地和道路的規劃以及投運的AGV數量、行駛路徑、行駛速度、轉彎速度、集裝箱裝卸情況等,會影響其整體運營效率和能源消耗。因此,應在項目前期策劃、規劃階段開展仿真研究,將道路數據、集裝箱數量、AGV數量、行駛速度、門式起重機裝卸集裝箱速度等相關數據,通過各種組合,使用軟件模擬,生成運行和結果數據,并對這些數據進行分析,得出本場景下最合理的資源配比和最優的路徑算法。
通過將真實項目場地的大小、布局、規模優化后,形成仿真基本框架要素,內容如下:海側AGV行駛線路總長2 300 m、總寬530 m,4車道,每車道寬3 m,區域中間為AGV停車場。陸側為集裝箱堆場,共可堆放1 500(30×10×5)個集裝箱。總體布局見圖1。

圖1 場地規劃及仿真
仿真模擬界面中,上部分為直方圖、餅圖顯示,分別為:各AGV的實時速度、運輸箱量統計、每箱平均時間、有效時間統計(行駛時間)、無效時間統計(在停車場時間)、AGV的總有效時間和總無效時間對比餅圖。
仿真系統使用規則及作業任務流程見圖2,具體為:

圖2 作業任務流程
(1)系統初始化,輸入集裝箱數量、AGV數量及速度和路徑算法等參數值。
(2)集裝箱堆場設置2臺龍門吊,第一臺從最左側往右吊取集裝箱,第二臺從中間往右吊取集裝箱。
(3)海側設置2個集裝箱卸載點。
Shipping Carbon Tax and Green Road of Chinese Shipping Industry
(4)龍門吊抓取集裝箱到AGV裝載點。
(5)從AGV車隊中選擇1臺空閑的AGV,讓其行駛到裝載點。
(6)AGV裝上集裝箱后,按照路徑算法系統計算出的路徑,行駛到卸載點卸掉集裝箱。
(7)AGV卸完集裝箱后,進入下一個運輸任務;當沒有任務時,行駛到AGV停車場。
路徑算法由python語言編程實現,采用Http Server部署。最短路徑不一定是最優路徑,過多轉彎次數會引起頻繁的加減速導致總體行駛時間變長。由于A*循跡計算速度明顯快于Dijkstra循跡計算速度,本文選用A*路徑算法并對其進行優化。
傳統的A*路徑算法公式為:
F(x)=G(x)+H(x)
(1)
通過在H(x)循跡方向上設置權值,可優化路徑中的轉彎次數。利用反三角函數收斂特征,經過反復演算,得出以下優化的A*路徑算法,能夠明顯減少轉彎次數并滿足本文場景的循跡要求:
(2)
(3)
采用python編程,對比A*算法、Dijkstra算法、優化后的A*算法,循跡圖見圖3、圖4。

圖3 A*及Dijkstra算法循跡

圖4 優化后的A*算法循跡
多AGV行駛中,會出現多輛車在同一時間對同一個節點或同一段路線通行權的競爭,從而會導致車輛之間出現沖突甚至死鎖現象。沖突類型主要包括同向沖突、節點沖突、相向沖突。
2.3.1 同向沖突及解決
同向沖突指兩車輛在某一時刻存在方向相同的重疊路徑,車輛行駛速度后車大于前車或后車在加速度加持下能追上前車(見圖5)。

圖5 同向沖突
解決策略為:當后車與前車存在同向沖突的可能性時,應指定后車停止加速、減速或停車等候,直至后車與前車的相對距離大于后車正在執行的最大加速距離,或者確保在后車即將追上前車之前,前車能夠改變路徑。
2.3.2 節點沖突及解決
節點沖突指兩車輛經過同一節點時存在使用權爭奪,但雙方前序及后續路徑不存在重疊(見圖6)。

圖6 節點沖突
解決策略為:先申請節點使用權的車輛對該節點擁有優先行駛權;后申請節點的車輛提前降速或改道。
2.3.3 相向沖突及解決
相向沖突是指兩車輛在某一時刻存在方向相反的重疊路徑,兩車輛若按規劃路徑行駛會造成路徑的死鎖(見圖7)。

圖7 相向沖突
解決策略為:保持高優先級車輛的行駛路線,并更改次優先級車輛的行駛路線,如重載車輛優先級大于空載車輛。若低優先級車輛通過沖突路段所耗費時間遠小于替代路線時,沖突車輛可選擇停車等待。
AGV小車獲取到運輸任務時,系統開始為其計算行駛路徑以及處理路徑沖突,AGV小車運輸行駛節點申請流程見圖8。

圖8 節點申請流程圖
通過以下步驟開展仿真模擬,獲取運行數據:
(1)同一種路徑算法,配置不同數量AGV(1~8輛),統計每輛AGV裝箱量、每箱運輸平均時間、有效時間、無效時間、有效時間占比,以及總歷時、累積歷時。
(2)使用不同路徑算法,在相同的應用場景下多次模擬,記錄結果數據。
(3)對結果數據采用圖表法,分析AGV數量最優配比及各算法優劣。
以集裝箱總數1 500箱、龍門吊2臺、AGV直線行駛速度25 km/h、彎道速度5 m/s、加(減)速度2 m/s2為例,路徑算法為仿真軟件提供的默認最短路徑計算方法時,AGV數量從1~8輛的仿真結果數據見表1。

表1 AGV運輸數據
表1中,有效時間為AGV處于行駛中的時間;無效時間為AGV在停車場中的時間;總歷時為該場景下,仿真總共時間;累積歷時為該場景下,所有AGV總共累加起來的時間。分析表1數據可知,當AGV數量為1時,這輛AGV一直處于行駛狀態,工作效率極高;當AGV數量為8時,各AGV工作效率極低。當AGV數量超過8輛時,過于飽和的AGV數量導致AGV不能及時接到運輸任務而頻繁進出停車場,停車時間會大大增加,并且行駛中的碰撞及等待頻次也越來越高,因此總歷時反而增加,如表2和圖9所示。

表2 AGV運輸歷時

圖9 AGV運輸歷時
從上述圖表分析得出,當AGV數量大于4輛后,總歷時下降趨勢不明顯,因此,在該場景下,AGV投入數量最優為4輛。設置4輛AGV,并選擇不同的路徑算法進行模擬,采集到的數據見表3。

表3 不同路徑下AGV運輸數據
從表3數據分析得出,投入4輛AGV時,優化的A*路徑有效時間占比最大,總歷時、累積歷時均比其他的算法短,對A*路徑算法進行優化能夠提高運輸效率。
通過場景規劃、仿真及算法系統搭建、路徑算法優化、路徑沖突解決以及對仿真結果數據分析后,最終得出AGV最優數量和最優路徑算法,能夠為港口AGV運輸交通路徑及業務運行規劃提供方法及數據支持。