<nobr id="bb1lr"></nobr>
    <dfn id="bb1lr"></dfn>

      <meter id="bb1lr"><del id="bb1lr"><track id="bb1lr"></track></del></meter>

      <form id="bb1lr"></form>

        <em id="bb1lr"><del id="bb1lr"></del></em>

          珠海創智科技有限公司

          行業新聞

          AGV調度系統:AGV的實時動態解鎖調度方法

          日期: 2021-09-13 15:39 點擊:

                  在使用自動導引小車AGV(Automated Guided Vehicle)的物流倉庫中,尤其是使用了多臺AGV的情況下,AGV在搬運貨物過程中,不可避免地會引發AGV的碰撞沖突和死鎖,AGV發生碰撞沖突和死鎖將直接導致物流倉庫系統癱瘓。因此研究多AGV調度過程中避免沖突碰撞死鎖是AGV研究問題的重要領域,不僅對于AGV調度系統理論的發展有重大促進作用,而且能夠應用于實際物流倉庫,解決物流倉庫低吞吐量的問題。


                  對于調度算法,整體上可以分為離線調度算法和在線實時調度算法。對于離線調度,系統可以在調度前構建并優化AGV的行駛路徑,然而離線調度并不適用于實際應用中物流倉庫的工作環境,具有較低的實際應用價值,一般適合于理論研究。對于實時在線調度,則可以根據系統實時狀態信息的改變去動態調度AGV,保證AGV在實時環境變化的過程中依然能夠順利運行,實時在線調度方法比較適合于實際的應用場景。


                  關于多AGV的實時在線調度算法,S.C.Daniels、G.Desaulniers、R.H.Möhring等提出的在線實時調度算法盡管能夠一定程度上處理多AGV的實時調度問題,但因其時間復雜度和空間復雜性方面相對較高,因此仍然無法滿足實際物流倉庫系統吞吐量的需求。

                  本文提供一種多AGV的實時動態解鎖調度方法,時間復雜度和空間復雜度相對較低且能夠提高物流倉庫系統吞吐量,提高物流倉庫系統的工作效率。


          為實現上述目的,具體步驟包括:


          步驟S1:基于圖論對多AGV運行地圖進行數學建模,將AGV的路徑抽象為圖形的邊,AGV經過的站點抽象為節點,則運行環境抽象為一個由節點和邊構成的圖G=(V,E),V={v1,v2,...,vn}是所有節點的集合,E={e1,e2,...,em}是所有邊的集合,n為節點數,m為邊數,如果<vi,vj>∈E,則<vi,vj>表示兩個節點之間的一條邊,圖形的存儲結構通過鄰接矩陣或鄰接表來實現。

          步驟S2:初始化地圖、AGV小車列表、站點列表。

          步驟S3:每一輛AGV。
          步驟S4:判斷當前AGV的站點序列siteSet是否為空;如果為空,表示當前AGV空閑,進入步驟S5;如果不為空,表示當前AGV忙,進入步驟S6。
          步驟S5:判斷任務隊列是否為空,如果為空,回到步驟S3;如果不為空,從任務隊列中取出任務T,通過最短路徑搜索算法獲得最短路徑的站點序列R=(P1,P2,...,Pk),Pk的值為當前AGV將要經過的具體站點,將站點序列R分配給當前AGV,并將當前AGV寫入站點序列R經過的所有站點的站點鏈表ListK,站點鏈表數據結構表示每個站點對應各自的一個鏈表,鏈表中元素表示要經過當前站點的AGV順序,然后回到步驟S3。
          步驟S6:獲取當前AGV的站點序列siteSet的頭元素P1和次元素P2,根據頭元素P1和次元素P2的值尋找相應站點的站點鏈表ListK。
          步驟S7:判斷相應站點的站點鏈表ListK的頭元素是否均為當前AGV;如是,則執行調度,并刪除P1對應的站點鏈表ListK的頭元素,更新當前AGV的站點序列siteSet,回到步驟S3;否則等待,不執行調度,回到步驟S3。


          從地圖運行角度,以下詳細闡述本方案:

          (1)計算機開發環境:任意系統平臺(Windows/Linux/Mac)下的任意編程語言(C/C++,JAVA,C#等)。
          (2)通過計算機編程語言構建地圖相關的圖數據結構、站點鏈表數據結構、任務隊列數據結構。圖數據結構表示當前地圖中各個站點的連接關系;站點鏈表數據結構表示每個站點對應各自的一個鏈表,鏈表中元素表示要經過當前站點的AGV順序;任務隊列數據結構表示存儲任務的數據結構,任務隊列中元素的排列順序即為任務的先后到達順序。


                  假設兩臺AGV的分配順序是agvA>agvB,第一個任務序列為(0,3,4,8),第二個任務序列為(2,3,4,5)。agvA首先被分配任務,如圖2所示的淺色路徑序列,將第二個任務分配給agvB,如圖2所示的深色路徑序列。由于agvA的(3,4)路徑和agvB的(3,4)路徑是重疊路徑,因此存在路徑覆蓋,即在調度過程中發生沖突,因此深色線條放置在淺色線條下方,表示agvB優先級低于agvA,允許agvA先通過。繪圖之后,路線圖如圖2所示,為了方便理解,每個路徑都標記了通過它的所有AGV調度順序,例如,路徑(3,4)上方的字符串“AB表示路徑(3,4)存在路徑覆蓋,agvA先通過agvB后通過。
          接下來開始使用本方案進行調度,調度系統的初始狀態及每一步調度后的路徑狀態如圖2所示。


                  開始調度,每個AGV依次遍歷,對于agvA,下一個調度路徑為(0,3),沒有路徑覆蓋,可以調度agvA,對于agvB,下一個調度路徑為(2,3),3號站點被agvA占用,等待調度。
          繼續遍歷每個AGV,對于agvA,下一個調度路徑為(3,4),標記字符串為“AB,存在路徑覆蓋,但agvA在站點鏈表的表頭,仍然可以調度agvA,調度完agvA后,3號站點鏈表的表頭變為agvB,對于agvB,下一個調度路徑為(2,3),agvB在站點鏈表的表頭,可以調度。


                  繼續遍歷每個AGV,對于agvA,下一個調度路徑為(4,8),無路徑覆蓋,可以調度agvA,調度完agvA后,4號站點鏈表的表頭變為agvB。對于agvB,下一個調度路徑為(3,4),無路徑覆蓋,agvB在站點鏈表的表頭,可以調度。


                  繼續遍歷每個AGV,agvA空閑,對于agvB,下一個調度路徑為(4,5),無路徑覆蓋,agvB在站點鏈表的表頭,可以調度,路徑完成。
           

           

          秋霞电影网理论片韩国在线观看_和老外3p爽粗大免费视频_2012中文字幕高清在线电影

          <nobr id="bb1lr"></nobr>
            <dfn id="bb1lr"></dfn>

              <meter id="bb1lr"><del id="bb1lr"><track id="bb1lr"></track></del></meter>

              <form id="bb1lr"></form>

                <em id="bb1lr"><del id="bb1lr"></del></em>