豆超勇,古 平
(1.陸軍工程大學(xué)石家莊校區(qū),河北 石家莊 050003;2.中國(guó)人民解放軍73087部隊(duì),江蘇 徐州 221000)
裝備維修保障分隊(duì)是部隊(duì)完成裝備維修保障任務(wù)的主體,也是部隊(duì)完成裝備維修保障任務(wù)的中堅(jiān)力量和具體操作者,地位與作用非常重要??茖W(xué)合理地維修分隊(duì)機(jī)動(dòng)路線規(guī)劃可以有效縮短機(jī)動(dòng)時(shí)間,提升其維修效能,具有重要意義[1-2]。
路線規(guī)劃問(wèn)題一直都是人們研究的熱點(diǎn)。目前運(yùn)用比較多的方法有蟻群算法、遺傳算法等,但其收斂速度相對(duì)較慢且規(guī)劃路線相對(duì)較長(zhǎng),無(wú)法滿足現(xiàn)代化戰(zhàn)爭(zhēng)對(duì)維修分隊(duì)迅速、高效的機(jī)動(dòng)路線的規(guī)劃要求[3-4]。人工勢(shì)場(chǎng)法具有對(duì)環(huán)境適應(yīng)性強(qiáng)、魯棒性好且計(jì)算簡(jiǎn)潔、快速的優(yōu)點(diǎn),在機(jī)動(dòng)路線規(guī)劃方面具有很廣泛的應(yīng)用前景。但傳統(tǒng)人工勢(shì)場(chǎng)法存在目標(biāo)不可達(dá)和局部最小值等問(wèn)題,使得該方法的應(yīng)用受限[5-7]。本文在研究維修分隊(duì)機(jī)動(dòng)路線規(guī)劃的時(shí)候?qū)鹘y(tǒng)人工勢(shì)場(chǎng)法進(jìn)行了改進(jìn),解決了目標(biāo)不可達(dá)和局部最小值的問(wèn)題,對(duì)裝備維修保障系統(tǒng)中裝備維修保障分隊(duì)的建模與仿真具有積極意義。
人工勢(shì)場(chǎng)法(Artificial Potential Field, APF)是美國(guó)斯坦福大學(xué)的Khatib教授在1986年提出的一種用于解決機(jī)器人、無(wú)人機(jī)等智能體運(yùn)動(dòng)路線規(guī)劃問(wèn)題的虛擬力場(chǎng)方法。其基本思想是把智能體的運(yùn)動(dòng)環(huán)境抽象為目標(biāo)點(diǎn)產(chǎn)生的引力勢(shì)場(chǎng)和障礙物產(chǎn)生的斥力勢(shì)場(chǎng)構(gòu)成的勢(shì)場(chǎng)空間,在這個(gè)空間中,智能體分別受到障礙物的斥力和目標(biāo)點(diǎn)的引力,并在這兩種力的共同作用下向目標(biāo)點(diǎn)的方向運(yùn)動(dòng),最終到達(dá)目標(biāo)點(diǎn)位置[8]。
將人工勢(shì)場(chǎng)法引入維修分隊(duì)機(jī)動(dòng)路線的規(guī)劃模型,模擬維修分隊(duì)在戰(zhàn)場(chǎng)上受領(lǐng)維修任務(wù)后向維修地點(diǎn)機(jī)動(dòng)的過(guò)程,具有魯棒性良好、信息需求低、規(guī)劃步驟簡(jiǎn)潔、運(yùn)動(dòng)軌跡平滑等優(yōu)點(diǎn),有助于裝備維修保障系統(tǒng)的科學(xué)構(gòu)建。
假設(shè)維修地點(diǎn)坐標(biāo)為pg=(xg,yg),那么維修分隊(duì)機(jī)動(dòng)到位置p=(x,y)時(shí),引力勢(shì)場(chǎng)函數(shù)可以用式(1)表示:
(1)
其中,katt為引力勢(shì)場(chǎng)正比例系數(shù),katt∈R+,適當(dāng)增大katt可以增加維修地點(diǎn)引力勢(shì)場(chǎng)的作用,在一定程度上減小出現(xiàn)極小值的概率;n為引力勢(shì)場(chǎng)因子,其值大小是不固定的,并且取值的大小可以影響引力勢(shì)場(chǎng)分布圖的形狀,本文取值n=2;d(p,pg)表示維修分隊(duì)到維修地點(diǎn)的距離。所以,引力勢(shì)場(chǎng)函數(shù)可以表示為
(2)
由于引力函數(shù)為引力勢(shì)場(chǎng)函數(shù)的負(fù)梯度,所以引力函數(shù)可以表示為
Fatt(p)=-Uatt=-kattd(p,pg)
(3)
由式(3)可知,維修分隊(duì)所受的引力大小與其到維修地點(diǎn)的距離成正比,距離越近引力越小,且可以通過(guò)調(diào)節(jié)引力勢(shì)場(chǎng)正比例系數(shù)katt的大小來(lái)改變引力Fatt(p)的大小;維修分隊(duì)所受的引力方向?yàn)榫S修分隊(duì)指向維修地點(diǎn)。
假設(shè)障礙物坐標(biāo)為po=(xo,yo),那么維修分隊(duì)機(jī)動(dòng)到位置p=(x,y)時(shí),斥力勢(shì)場(chǎng)函數(shù)可以用式(4)表示:
(4)
其中,krep為斥力勢(shì)場(chǎng)正比例系數(shù),krep∈R+,適當(dāng)增大krep可以增加障礙物斥力勢(shì)場(chǎng)的作用,使維修分隊(duì)與障礙物保持更遠(yuǎn)的距離,從而確保機(jī)動(dòng)路線更安全;d(p,po)表示維修分隊(duì)與障礙物之間的距離;d0為受障礙物影響的最大距離,當(dāng)且僅當(dāng)維修分隊(duì)機(jī)動(dòng)到d0范圍內(nèi)的時(shí)候才會(huì)受到障礙物斥力作用。
由于斥力函數(shù)為斥力勢(shì)場(chǎng)函數(shù)的負(fù)梯度,所以斥力函數(shù)可以表示為
(5)
由式(5)可知,維修分隊(duì)所受的斥力大小與其到障礙物距離的平方成反比,距離越近斥力越大;當(dāng)維修分隊(duì)與障礙物距離d(p,po)趨向于d0時(shí),維修分隊(duì)所受的斥力Frep(p)也趨向于0;同樣,也可以通過(guò)調(diào)節(jié)斥力勢(shì)場(chǎng)正比例系數(shù)krep的大小來(lái)改變斥力Frep(p)的大小;維修分隊(duì)所受的斥力方向?yàn)檎系K物指向維修分隊(duì)。
維修分隊(duì)?wèi)?zhàn)場(chǎng)機(jī)動(dòng)路線一般都要經(jīng)過(guò)多個(gè)障礙物,產(chǎn)生的斥力勢(shì)場(chǎng)也會(huì)有多個(gè),所以其受到的斥力也應(yīng)是多個(gè)斥力勢(shì)場(chǎng)產(chǎn)生斥力的合力∑Frep(p)。那么,維修分隊(duì)在機(jī)動(dòng)過(guò)程中受到的引力與斥力的合力可以表示為
F(p)=Fatt(p)+∑Frep(p)
(6)
在真實(shí)的作戰(zhàn)環(huán)境內(nèi),維修分隊(duì)的機(jī)動(dòng)環(huán)境復(fù)雜多變,遇到障礙物的位置和數(shù)量也不確定,所以采用傳統(tǒng)的人工勢(shì)場(chǎng)法規(guī)劃維修分隊(duì)機(jī)動(dòng)路線的時(shí)候就可能會(huì)出現(xiàn)目標(biāo)不可達(dá)和局部極小值的問(wèn)題,具體原因分析如下[9]:
1)隨著維修分隊(duì)不斷向維修地點(diǎn)機(jī)動(dòng),其受到的引力會(huì)不斷減小,而當(dāng)維修地點(diǎn)附近出現(xiàn)斥力勢(shì)場(chǎng)比較強(qiáng)的障礙物時(shí),維修分隊(duì)所受的斥力會(huì)因?yàn)榕c障礙物距離變小而增大,從而造成維修分隊(duì)無(wú)法到達(dá)維修地點(diǎn)的現(xiàn)象。
2)在維修分隊(duì)向維修地點(diǎn)機(jī)動(dòng)的過(guò)程中,可能會(huì)存在某個(gè)位置,使得維修分隊(duì)受到的維修地點(diǎn)引力和障礙物斥力大小相等、方向相反,從而出現(xiàn)維修分隊(duì)到達(dá)該位置后來(lái)回震蕩或者停止不動(dòng)的現(xiàn)象,機(jī)動(dòng)路線得到局部最優(yōu)解。
針對(duì)上述兩個(gè)問(wèn)題,本文采用了優(yōu)化斥力勢(shì)場(chǎng)函數(shù)和類(lèi)似BUG算法的方法來(lái)解決。
針對(duì)由引力變小和斥力變大引起的不能到達(dá)維修地點(diǎn)的問(wèn)題,對(duì)斥力勢(shì)場(chǎng)函數(shù)進(jìn)行改進(jìn),具體如式(7)—(9)所示。
其中,m為調(diào)節(jié)因子,m∈R+。由斥力勢(shì)場(chǎng)函數(shù)可得斥力函數(shù)為
(7)
其中,
(8)
斥力Frep1(p)的方向?yàn)橛烧系K物指向維修分隊(duì);斥力Frep2(p)的方向與引力
(9)
Fatt(p)的方向一致,都為由維修分隊(duì)指向維修地點(diǎn),具體如圖1所示。
圖1 改進(jìn)斥力函數(shù)受力示意圖
將Frep2(p)與Frep1(p)相除,可得
(10)
為了便于觀察其數(shù)值大小,設(shè)
(11)
有
(12)
為使維修分隊(duì)從局部最小值中逃離出來(lái),采用了類(lèi)似BUG算法,即在人工勢(shì)場(chǎng)法路徑規(guī)劃的基礎(chǔ)上增加應(yīng)激反應(yīng),也就是BUG算法中的模擬昆蟲(chóng)沿障礙物爬行的行為[10]。當(dāng)維修分隊(duì)機(jī)動(dòng)到局部極小值時(shí),不再考慮維修地點(diǎn)對(duì)其產(chǎn)生的引力作用,而是沿著障礙物產(chǎn)生的斥力勢(shì)場(chǎng)的等勢(shì)線繞行,直到維修分隊(duì)逃離局部極小值的區(qū)域。具體的算法流程如下所示。
Step1 通過(guò)位置傳感器獲取維修分隊(duì)當(dāng)前位置引力和斥力的大小和方向;
Step2 計(jì)算維修分隊(duì)所受的合力,并判斷其是否處于局部極小值,如果是,則執(zhí)行步驟Step3;如果不是,則執(zhí)行步驟Step5;
Step3 維修分隊(duì)沿斥力勢(shì)場(chǎng)等勢(shì)線繞行機(jī)動(dòng),默認(rèn)沿逆時(shí)針?lè)较蚶@行;
Step4 判斷維修分隊(duì)是否已經(jīng)逃離局部極小值區(qū)域,如果是,則結(jié)束繞行機(jī)動(dòng),執(zhí)行步驟Step5;如果不是,則執(zhí)行步驟Step3;
Step5 維修分隊(duì)沿其所受合力的方向繼續(xù)機(jī)動(dòng);
Step6 判斷維修分隊(duì)是否到達(dá)維修地點(diǎn),如果是,則結(jié)束機(jī)動(dòng);如果不是,則執(zhí)行步驟Step1。
其中,判斷維修分隊(duì)是否處于局部極小值可采用如下方法。
條件1:
F(p)=Fatt(p)+∑Frep(p)→0
(13)
條件2:|xj-xi|?s
(14)
其中,條件1表示維修分隊(duì)在位置p處受到的合力趨于0;條件2中|xj-xi|表示維修分隊(duì)從i點(diǎn)機(jī)動(dòng)到j(luò)點(diǎn)的直線距離,s則表示維修分隊(duì)從i點(diǎn)機(jī)動(dòng)到j(luò)點(diǎn)的機(jī)動(dòng)路程,那么,條件2則表示維修分隊(duì)在機(jī)動(dòng)了很長(zhǎng)路程后位移卻很小。所以,如果符合條件1或者條件2時(shí),就認(rèn)為維修分隊(duì)處于局部極小值。
為了驗(yàn)證改進(jìn)算法的先進(jìn)性和合理性,給出仿真案例如下。
設(shè)裝備維修保障分隊(duì)在原點(diǎn)(0,0)位置接收到上級(jí)任務(wù),命令其機(jī)動(dòng)至維修地點(diǎn)進(jìn)行維修作業(yè)。
1)根據(jù)傳統(tǒng)人工勢(shì)場(chǎng)法設(shè)定斥力勢(shì)場(chǎng)函數(shù),在如圖2所示障礙物位置情況下通過(guò)不斷仿真找出滿足目標(biāo)不可達(dá)情形的維修地點(diǎn)位置(4750,5380)。
圖2 傳統(tǒng)人工勢(shì)場(chǎng)法規(guī)劃路線一
由圖2可以看出,在維修分隊(duì)向維修地點(diǎn)機(jī)動(dòng)的過(guò)程中,其受到的引力會(huì)不斷減小,而當(dāng)維修地點(diǎn)附近出現(xiàn)斥力勢(shì)場(chǎng)比較強(qiáng)的障礙物時(shí),維修分隊(duì)所受的斥力會(huì)因?yàn)榕c障礙物距離變小而增大,從而造成維修分隊(duì)無(wú)法到達(dá)維修地點(diǎn)的現(xiàn)象。
2)根據(jù)改進(jìn)人工勢(shì)場(chǎng)法設(shè)定斥力勢(shì)場(chǎng)函數(shù),并設(shè)定與圖2所示障礙物和維修地點(diǎn)位置相同的仿真條件進(jìn)行仿真,得出圖3。
圖3 改進(jìn)人工勢(shì)場(chǎng)法規(guī)劃路線一
由圖3可以看出,在維修分隊(duì)向維修地點(diǎn)機(jī)動(dòng)的過(guò)程中,改進(jìn)后的斥力勢(shì)場(chǎng)函數(shù)中,斥力隨著維修分隊(duì)不斷向維修地點(diǎn)靠近而變小,維修分隊(duì)所受合力的方向也一直都指向維修地點(diǎn)或其附近,并最終順利到達(dá)維修地點(diǎn)。
3)根據(jù)傳統(tǒng)人工勢(shì)場(chǎng)法設(shè)定勢(shì)場(chǎng)函數(shù),在如圖3所示障礙物位置情況下通過(guò)不斷仿真找出滿足局部最小值情形的維修地點(diǎn)位置(5380,5380),如圖4。
圖4 傳統(tǒng)人工勢(shì)場(chǎng)法規(guī)劃路線二
由圖4可以看出,在維修分隊(duì)向維修地點(diǎn)機(jī)動(dòng)的過(guò)程中,存在某個(gè)位置,使得維修分隊(duì)受到的維修地點(diǎn)引力和障礙物斥力大小相等、方向相反,從而使維修分隊(duì)到達(dá)該位置后來(lái)回震蕩或者停止不動(dòng)的現(xiàn)象,機(jī)動(dòng)路線得到局部最優(yōu)解。
4)根據(jù)改進(jìn)人工勢(shì)場(chǎng)法設(shè)定勢(shì)場(chǎng)函數(shù)和增加BUG算法的應(yīng)激反應(yīng),并設(shè)定與圖4所示障礙物和維修地點(diǎn)位置相同的仿真條件進(jìn)行仿真,得出圖5。
圖5 改進(jìn)人工勢(shì)場(chǎng)法規(guī)劃路線二
由圖5可以看出,在維修分隊(duì)向維修地點(diǎn)機(jī)動(dòng)的過(guò)程中,改進(jìn)人工勢(shì)場(chǎng)法在維修分隊(duì)出現(xiàn)局部極小值的情況時(shí),模擬BUG算法中沿障礙物爬行的行為沿著障礙物產(chǎn)生的斥力勢(shì)場(chǎng)的等勢(shì)線逆時(shí)針繞行,直到維修分隊(duì)逃離局部極小值的區(qū)域,然后繼續(xù)在所受合力的影響下繼續(xù)機(jī)動(dòng),并最終順利到達(dá)維修地點(diǎn)。
本文對(duì)人工勢(shì)場(chǎng)法在裝備維修保障系統(tǒng)維修分隊(duì)機(jī)動(dòng)路線規(guī)劃建模與仿真中的應(yīng)用進(jìn)行了嘗試,并針對(duì)傳統(tǒng)人工勢(shì)場(chǎng)法的不足進(jìn)行了改進(jìn),通過(guò)仿真實(shí)驗(yàn)驗(yàn)證了改進(jìn)人工勢(shì)場(chǎng)法的可行性,對(duì)人工勢(shì)場(chǎng)法在裝備維修保障系統(tǒng)建模與仿真領(lǐng)域的拓展應(yīng)用起到了一定作用。