本發(fā)明涉及自動布線領域,特別涉及一種基于混合水滴算法的線纜布線路徑搜索方法。
背景技術:
線纜布線路徑的搜索是實現(xiàn)線纜自動布線的關鍵技術之一,能快速找出一條便捷、無碰撞、平滑且貼附于壁面的布線路徑不僅提升了線纜的自動布線效率,同時也提升了機電產(chǎn)品的可靠性。
目前,常用到的路徑搜索方法有可視圖法、啟發(fā)式圖搜索算法、人工勢場法等,這些算法有各自的優(yōu)缺點,例如人工勢場法具有良好的實時性,但存在陷阱區(qū)域,并且在相近障礙物之間不能發(fā)現(xiàn)路徑等缺點,算法更適用于解決單目標優(yōu)化問題。近十年間,隨著人工智能算法的研究不斷取得進展,許多智能算法也被用到移動機器人的路徑規(guī)劃中,包括模糊邏輯與增強學習算法、神經(jīng)網(wǎng)絡、遺傳算法以及蟻群算法等。這些算法都有各自的優(yōu)點,但也存在諸多問題,例如算法收斂速度過慢、易陷入局部最優(yōu)、搜索空間過大等。
雖然現(xiàn)階段已對諸多算法進行改進,能夠找出較好的線纜布線路徑,但是仍然存在迭代次數(shù)較多、運算時間過長等問題,這些問題無法滿足線纜自動布線的要求,且在得到的路徑中,線纜路徑處于懸空狀態(tài),這將嚴重影響機電產(chǎn)品的穩(wěn)定性,同時降低機電產(chǎn)品工作可靠性。
技術實現(xiàn)要素:
針對現(xiàn)有技術的缺點,本發(fā)明提供一種基于混合水滴算法的線纜布線路徑搜索算法,該方法迭代次數(shù)少、運算時間短,能滿足線纜自動布線的要求,不會影響機電產(chǎn)品的穩(wěn)定性,提高機電產(chǎn)品工作可靠性。
實現(xiàn)本發(fā)明目的的技術方案是:
一種基于混合水滴算法的線纜布線路徑搜索方法,包括如下步驟:
1)在布線空間中,選取線纜敷設的壁面,以平面展開的方式將布線空間簡化成一個矩形的布線平面;
2)對矩形布線平面進行柵格地圖建模;
3)將粒子群算法作為粗搜索階段并進行快速路徑尋優(yōu),通過得到的多組次優(yōu)路徑更新土壤分布;
4)采用改進的智能水滴算法作為細搜索階段,進行路徑尋優(yōu);
5)將路徑中的節(jié)點以及彎折點作為控制點,并根據(jù)步驟1)中的平面展開方式將二維的控制點坐標轉化為布線空間中的三維控制點坐標;
6)采用三階B樣條曲線優(yōu)化路徑;
通過上述步驟,利用粒子群算法優(yōu)化智能水滴算法中的參數(shù),給水滴的移動提供導向;改進水滴算法中水滴的移動方式,并進行路徑尋優(yōu);最終采用B樣條曲線優(yōu)化路徑,綜合考慮了算法的穩(wěn)定性和魯棒性,能快速找出一條便捷、無碰撞、平滑且貼附于壁面的布線路徑。在該路徑上敷設線纜即可完成線纜布線。
步驟1)中,在布線空間中,選取線纜敷設的壁面,以平面展開的方式將布線空間簡化成一個矩形的布線平面:
首先,若通過平面展開之后簡化而成的平面非矩形平面則將該平面擴展成矩形平面;
其次,擴展部分視為障礙物;
最后,將該平面劃分為兩個區(qū)域:障礙物區(qū)域以及非障礙物區(qū)域。
步驟2)中,對矩形布線平面進行柵格地圖建模:
首先,柵格地圖由障礙柵格與非障礙柵格組成;
其次,任意含有障礙物的柵格視為障礙柵格;
最后,若布線起止點位于柵格地圖中的同一列,則將柵格地圖行列互換。
步驟3)中,將粒子群算法作為粗搜索階段并進行快速路徑尋優(yōu),通過得到的多組次優(yōu)路徑更新土壤分布,具體包括:
首先,設置初始參數(shù)(種群規(guī)模N,慣性權重w,學習因子c1和c2,最大迭代次數(shù)Ic,速度最大值Vmax,以及速度最小值Vmin);
然后,隨機生成粒子的位置矢量xi=(xi1,xi2,…,xiD)和速度矢量vi=(vi1,vi2,…,viD),并初始化粒子的局部最優(yōu)解pp以及全局最優(yōu)解pg;
進入迭代并更新所有粒子的位置信息以及速度信息按照以下兩式:
式中i=1,2,…,N,d=1,2,…,D,w為慣性權重,c1和c2為學習因子,r1與r2是[0,1]之間相對獨立、均勻分布的隨機數(shù),pp=(pp1,pp2,…,ppD)為粒子的局部最優(yōu)解,即粒子在上一次迭代中的最優(yōu)解,pg=(pg1,pg2,…,pgD)為粒子的全局最優(yōu)解,即粒子在此次迭代之前的最優(yōu)解。
同時,計算每個粒子的適應度f(xi),若f(xi)為此次迭代中的最小值,則pp=xi,若此時f(xi)<f(pg),則pg=xi,其中適應度函數(shù)f為:
式中(xj,yj)為路徑節(jié)點j的坐標,n為路徑點的個數(shù),numj為節(jié)點j以及節(jié)點j-1之間的路徑所觸碰障礙柵格的數(shù)量,pun為懲罰因子使得觸碰障礙的路徑賦予較差的評價值。
最后,進入下一次迭代重復公式(1)(2)(3),更新局部最優(yōu)解pp以及全局最解pg,直至迭代次數(shù)達到最大或滿足精度要求。
步驟4)中,采用改進的智能水滴算法作為細搜索階段,進行路徑尋優(yōu),
首先,設置水滴的數(shù)量W,最大迭代次數(shù)Is,初始土壤量Its,對柵格地圖中各位置的土壤進行初始化,并利用PSO算法求出的T組次優(yōu)解更新土壤,如下兩式:
式中soili為某一節(jié)點i的土壤量;posi為該節(jié)點的位置;pathsub為D組路徑中路徑中各節(jié)點的位置;eup為兩個相鄰柵格中心點間的最短距離;λi表示在這T組次優(yōu)解中有λi組解含有節(jié)點i;參數(shù)δ,α以及β均為正數(shù)。
然后,將所有水滴均放置于布線起點。
使用輪盤賭法進行路徑點選擇,并記錄路徑節(jié)點信息,公式如下:
式中soili為某一節(jié)點的土壤量;posi為該節(jié)點的位置;eup為兩個相鄰柵格中心點間的最短距離;P為選擇下一個節(jié)點的概率;N為下一步可選柵格的集合;函數(shù)dis(posi,posj)為節(jié)點i以及節(jié)點j之間的歐幾里得度量;ρ為小于1的正數(shù);af,,bf以及cf均為正數(shù)。
在水滴移動到另外一個節(jié)點j時,更新水滴的速度:
式中velj為水滴移動到節(jié)點j的速度;soilj為節(jié)點j的土壤量;av為正數(shù)。
同時,更新所移動到的節(jié)點的土壤,以及此時水滴攜帶的土壤,如下兩式:
式中posi為節(jié)點i的位置;函數(shù)dis(posi,posj)為節(jié)點i以及節(jié)點j之間的歐幾里得度量;soilj為節(jié)點j的土壤量;ρ1和as均為正數(shù)。
在所有水滴移動到布線終點之前,重復公式(6)(7)(8)(9)(10),計算每個水滴所形成路徑的適應度,并更新局部最優(yōu)解pp和全局最優(yōu)解pg。
在所有水滴移動到布線終點之后,更新全局的土壤量:
式中soili為節(jié)點i的土壤量;posi為節(jié)點i的位置;為形成局部最優(yōu)解的水滴所攜帶的土壤量;pp為局部最優(yōu)解,且pg為全局最優(yōu)解;num柵格地圖中柵格的數(shù)量;局部認知因子ρ2和全局認知因子ρ3均為正數(shù),且ρ3≥ρ2。
在按照公式(11)更新完全局土壤量后,算法即完成一次迭代。此后算法將進入下一次迭代,所有水滴將重置于布線起點處,并以上述方法(公式(6)至公式(11))重新進行移動,直至迭代次數(shù)達到最大或滿足精度要求。
步驟5)中,將路徑中的節(jié)點以及彎折點作為控制點,并根據(jù)步驟1)中的平面展開方式將二維的控制點坐標轉化為布線空間中的三維控制點坐標;
步驟6)中,采用三階B樣條優(yōu)化路徑:
先獲取步驟5)中,的控制點p0(x0,y0,z0),...,pn(xn,yn,zn),確定B樣條曲線的階數(shù)k=3,定義樣條曲線的支撐區(qū)間T=[t0,t1,...,tn+k]如下式:
然后計算樣條曲線的基函數(shù)Ni,k(t),如下兩式:
式中t為樣條曲線方程中的變量;T=[t0,t1,...,tn+k]為樣條曲線的支撐區(qū)間。
最后可求得三階B樣條曲線的方程,如下式:
式中,t為曲線方程的變量;Ni,k(t)為B樣條曲線中的基函數(shù);
k=3為的曲線階數(shù)。
有益效果:
本發(fā)明提供了一種基于混合水滴算法的線纜布線路徑搜索方法,該方法:
(1)通過選取線纜敷設壁面,將布線空間簡化為布線平面,在求出線纜路徑后,將平面上線纜控制點的二維坐標轉化為布線空間的三維坐標,從而使得布線路徑帖在壁面上,避免了線纜懸空的情況;
(2)采用柵格地圖建模方式,具有精度高、易于實現(xiàn)等優(yōu)點;
(3)將粒子群算法與改進的智能水滴算法融合起來。粒子群算法的優(yōu)勢在于它相對于智能水滴算法來說所需時間很短,加在智能水滴算法之前不僅不會消耗太多時間、影響整體運行速率,而且能為智能水滴算法提供初期土壤分布的信息素反饋,這樣能減少智能水滴算法的運行時間,從而達到即能減少搜索時間又得到優(yōu)化路徑的效果;
(4)將歐幾里得度量作為影響水滴選擇節(jié)點移動的一個因素,從而使得水滴盡可能朝著位置較好的區(qū)域移動,增加了算法的收斂速度;
(5)采用三階B樣條曲線,從而使得線纜路徑更加平滑,同時避免了線纜路徑中存在大量彎角較大的彎折點。
附圖說明
圖1柵格地圖建立流程圖;
圖2為基于混合水滴算法的線纜布線路徑搜索流程圖;
圖3為通過本發(fā)明方法在布線空間中所完成的線纜自動布線;
圖4簡化布線空間流程圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明內(nèi)容作進一步闡述,但不是對本發(fā)明的限定。
實施例
一種基于混合水滴算法的線纜布線路徑搜索方法,包括如下步驟:
1)在布線空間中,選取線纜敷設的壁面,以平面展開的方式將布線空間簡化成一個矩形的布線平面;
2)對矩形布線平面進行柵格地圖建模;
3)將粒子群算法作為粗搜索階段并進行快速路徑尋優(yōu),通過得到的多組次優(yōu)路徑更新土壤分布;
4)采用改進的智能水滴算法作為細搜索階段,進行路徑尋優(yōu);
5)將路徑中的節(jié)點以及彎折點作為控制點,并根據(jù)步驟1)中的平面展開方式將二維的控制點坐標轉化為布線空間中的三維控制點坐標;
6)采用三階B樣條曲線優(yōu)化路徑;
通過上述步驟,利用粒子群算法優(yōu)化智能水滴算法中的參數(shù),給水滴的移動提供導向;改進水滴算法中水滴的移動方式,并進行路徑尋優(yōu);最終采用B樣條曲線優(yōu)化路徑,綜合考慮了算法的穩(wěn)定性和魯棒性,能快速找出一條便捷、無碰撞、平滑且貼附于壁面的布線路徑。在該路徑上敷設線纜即可完成線纜布線。
步驟1)中,在布線空間中,選取線纜敷設的壁面,以平面展開的方式將布線空間簡化成一個矩形的布線平面:
如圖1所示,為布線空間的簡化方式。其中P1為布線起點,P2為布線重點;So,S1以及S2均為線纜敷設的壁面;O1為障礙物,且O2為擴展區(qū)域并視為障礙物;最后用黑色的區(qū)域表示障礙物,白色的區(qū)域表示非障礙物區(qū)域。
首先,若通過平面展開之后簡化而成的平面非矩形平面則將該平面擴展成矩形平面;
其次,擴展部分視為障礙物;
最后,將該平面劃分為兩個區(qū)域:障礙物區(qū)域以及非障礙物區(qū)域。
步驟2)中,對矩形布線平面進行柵格地圖建模:
如圖2所示,為柵格建模方式。其中圓環(huán)表示布線起點,矩形環(huán)表示布線終點;中黑色柵格為障礙柵格;白色柵格為非障礙柵格;任意兩個柵格之間的距離為它們中心點的連線。
首先,柵格地圖由障礙柵格與非障礙柵格組成;
其次,任意含有障礙物的柵格視為障礙柵格;
最后,若布線起止點位于柵格地圖中的同一列,則將柵格地圖行列互換。
步驟3)中,將粒子群算法作為粗搜索階段并進行快速路徑尋優(yōu),通過得到的多組次優(yōu)路徑更新土壤分布,具體包括:
首先,設置初始參數(shù)(種群規(guī)模N,慣性權重w,學習因子c1和c2,最大迭代次數(shù)Ic,速度最大值Vmax,以及速度最小值Vmin);
然后,隨機生成粒子的位置矢量xi=(xi1,xi2,…,xiD)和速度矢量vi=(vi1,vi2,…,viD),并初始化粒子的局部最優(yōu)解pp以及全局最優(yōu)解pg;
進入迭代并更新所有粒子的位置信息以及速度信息按照以下兩式:
式中i=1,2,…,N,d=1,2,…,D,w為慣性權重,c1和c2為學習因子,r1與r2是[0,1]之間相對獨立、均勻分布的隨機數(shù),pp=(pp1,pp2,…,ppD)為粒子的局部最優(yōu)解,即粒子在上一次迭代中的最優(yōu)解,pg=(pg1,pg2,…,pgD)為粒子的全局最優(yōu)解,即粒子在此次迭代之前的最優(yōu)解。
同時,計算每個粒子的適應度f(xi),若f(xi)為此次迭代中的最小值,則pp=xi,若此時f(xi)<f(pg),則pg=xi,其中適應度函數(shù)f為:
式中(xj,yj)為路徑節(jié)點j的坐標,n為路徑點的個數(shù),numj為節(jié)點j以及節(jié)點j-1之間的路徑所觸碰障礙柵格的數(shù)量,pun為懲罰因子使得觸碰障礙的路徑賦予較差的評價值。
最后,進入下一次迭代重復公式(1)(2)(3),更新局部最優(yōu)解pp以及全局最解pg,直至迭代次數(shù)達到最大或滿足精度要求。
步驟4)中,采用改進的智能水滴算法作為細搜索階段,進行路徑尋優(yōu),
首先,設置水滴的數(shù)量W,最大迭代次數(shù)Is,初始土壤量Its,對柵格地圖中各位置的土壤進行初始化,并利用PSO算法求出的T組次優(yōu)解更新土壤,如下兩式:
式中soili為某一節(jié)點i的土壤量;posi為該節(jié)點的位置;pathsub為D組路徑中路徑中各節(jié)點的位置;eup為兩個相鄰柵格中心點間的最短距離;λi表示在這T組次優(yōu)解中有λi組解含有節(jié)點i;參數(shù)δ,α以及β均為正數(shù)。
然后,將所有水滴均放置于布線起點。
使用輪盤賭法進行路徑點選擇,并記錄路徑節(jié)點信息,公式如下:
式中soili為某一節(jié)點的土壤量;posi為該節(jié)點的位置;eup為兩個相鄰柵格中心點間的最短距離;P為選擇下一個節(jié)點的概率;N為下一步可選柵格的集合;函數(shù)dis(posi,posj)為節(jié)點i以及節(jié)點j之間的歐幾里得度量;ρ為小于1的正數(shù);af,,bf以及cf均為正數(shù)。
在水滴移動到另外一個節(jié)點j時,更新水滴的速度:
式中velj為水滴移動到節(jié)點j的速度;soilj為節(jié)點j的土壤量;av為正數(shù)。
同時,更新所移動到的節(jié)點的土壤,以及此時水滴攜帶的土壤,如下兩式:
式中posi為節(jié)點i的位置;函數(shù)dis(posi,posj)為節(jié)點i以及節(jié)點j之間的歐幾里得度量;soilj為節(jié)點j的土壤量;ρ1和as均為正數(shù)。
在所有水滴移動到布線終點之前,重復公式(6)(7)(8)(9)(10),計算每個水滴所形成路徑的適應度,并更新局部最優(yōu)解pp和全局最優(yōu)解pg。
在所有水滴移動到布線終點之后,更新全局的土壤量:
式中soili為節(jié)點i的土壤量;posi為節(jié)點i的位置;為形成局部最優(yōu)解的水滴所攜帶的土壤量;pp為局部最優(yōu)解,且pg為全局最優(yōu)解;num柵格地圖中柵格的數(shù)量;局部認知因子ρ2和全局認知因子ρ3均為正數(shù),且ρ3≥ρ2。
在按照公式(11)更新完全局土壤量后,算法即完成一次迭代。此后算法將進入下一次迭代,所有水滴將重置于布線起點處,并以上述公式(6)至公式(11)重新進行移動,直至迭代次數(shù)達到最大或滿足精度要求。
步驟5)中,將路徑中的節(jié)點以及彎折點作為控制點,并根據(jù)步驟1)中的平面展開方式將二維的控制點坐標轉化為布線空間中的三維控制點坐標;
步驟6)中,采用三階B樣條優(yōu)化路徑:
如圖3所示,即為采用三階B樣條優(yōu)化后的布線路徑實例。其中布線空間為一個10dm×18dm×20dm的箱體,障礙物為虛線包圍的物體,實線包圍的短圓柱體表示接插件,可明顯看出線纜連接布線起止端,避開障礙物,并帖敷于壁面;
先獲取步驟5)中,的控制點p0(x0,y0,z0),...,pn(xn,yn,zn),確定B樣條曲線的階數(shù)k=3,定義樣條曲線的支撐區(qū)間T=[t0,t1,...,tn+k]如下式:
然后計算樣條曲線的基函數(shù)Ni,k(t),如下兩式:
式中t為樣條曲線方程中的變量;T=[t0,t1,...,tn+k]為樣條曲線的支撐區(qū)間。
最后可求得三階B樣條曲線的方程,如下式:
式中,t為曲線方程的變量;Ni,k(t)為B樣條曲線中的基函數(shù);
k=3為的曲線階數(shù)。
如圖4所示:求解布線路徑的混合水滴算法流程為:
S101開始
S102初始化參數(shù)
S103采用粒子群算法求解T組次優(yōu)路徑
S104根據(jù)T組次優(yōu)路徑更新全局土壤量
S105迭代次數(shù)增加
S106選擇尚未移動的水滴
S107水滴選擇節(jié)點移動
S108更新節(jié)點處土壤,水滴移動速度,水滴攜帶土壤
S109判斷水滴是否移動到布線終點
S110判斷所有水滴是否移動至布線終點
S111更新局部最優(yōu)解以及全局最優(yōu)解
S112更新全局土壤
S113判斷是否滿足迭代結束條件
S114獲取控制點坐標
S115采用三階B樣條曲線優(yōu)化路徑
S116輸出線纜布線路徑
S117結束。