洪 增,張玉軍,湯華軍
(解放軍69240部隊,新疆 烏魯木齊 830011)
目前,中國無人機的發(fā)展非常迅猛,在民用無人機領(lǐng)域,截止2017年,中國無人機占據(jù)全球無人機約70%的市場份額;軍用領(lǐng)域,中國的無人機正在逐步縮小與美軍的差距。隨著我國北斗通信導(dǎo)航系統(tǒng)在無人機領(lǐng)域的使用越來越廣泛,在未來,將有越來越多的無人機將擔(dān)負全球性的任務(wù),這些任務(wù)的特點是航程遠、航時長、飛行環(huán)境復(fù)雜、各種不確定因素多。因此,對無人機航跡實時規(guī)劃研究具有非常重要的現(xiàn)實意義。
關(guān)于路徑規(guī)劃算法有很多種,比如隨機路標圖(PRM)[1]算法,這種算法能夠挑出代價最低的路徑,還有基于勢場函數(shù)[2]的路徑規(guī)劃方法和功能導(dǎo)航函數(shù)[3-4]以及模型預(yù)測控制技術(shù)[5],但是以上方法涉及大量的計算,對計算力有著較高的要求。
本文提出一種基于航跡修正的自適應(yīng)航跡規(guī)劃算法,這種算法發(fā)揮了航跡修正良好的曲線航跡跟蹤特性,能夠?qū)崿F(xiàn)對障礙物的規(guī)避(如圖1所示),且實現(xiàn)簡單,對計算力要求不高。
從圖2看,在無人機不得不引導(dǎo)到現(xiàn)有航跡的地方。點O為無人機現(xiàn)在所處的位置,可以畫一個圓弧與現(xiàn)有航跡相交,交點為參考點P,圓弧OP的半徑為R,L1為連接無人機中心O與參考點P的線段。無人機速度矢量與線段L1之間的夾角為η,側(cè)向加速度al使得無人機沿著圓弧到達參考點P,al由下式表示:
圖1 基于北斗通信系統(tǒng)的規(guī)避模型
(1)
圖2 航跡修正示意圖
(2)
由表達式(2)可以看出,加速度的方向取決于η角方向的變化。舉個例子,如果參考點在無人機速度矢量方向的右邊,那么無人機向右邊加速,并且,最終無人機往往會根據(jù)L1的方向來調(diào)整速度矢量。如果無人機距離期望的航跡很遠,L1的方向?qū)⑴c期望的航跡之間有一個很大的夾角,航跡修正算法在期望的航跡上選擇一個參考點,并使無人機旋轉(zhuǎn)其速度方向,以大角度飛向期望的航跡;如果飛機接近期望的航跡,L1的方向?qū)⑴c期望的航跡之間夾角很小,該航跡修正算法在期望航跡選擇一個參考點,使飛機旋轉(zhuǎn)其速度方向,以小角度飛向期望的航跡。
從沿圓形航跡跟蹤來講,這種控制方法非常有效,尤其特別適合無人機飛圓形航跡。根據(jù)al=sinη×2V2/L1,實際上,速度矢量V已經(jīng)考慮了由于風(fēng)的影響而導(dǎo)致速度發(fā)生變化的情況,并且能夠根據(jù)這種情況自適應(yīng)調(diào)整。另外L1的選擇也很重要。如圖3所示,對于小角度η,制導(dǎo)公式可以近似地用航跡誤差y表示如下:
(3)
圖3 L1的選擇
式(3)表明航跡修正算法相當(dāng)于一個脈沖多普勒(PD)控制器,控制器控制著無人機的速度與距離L1之間的比值。這個比值是一個重要的參數(shù),它表現(xiàn)為控制器的增益。L1越小,控制器增益越大,反之亦然。但是控制增益不是無限的,它被無人機傾斜的滾轉(zhuǎn)角內(nèi)環(huán)控制帶寬(2~3 rad/s)所限制。理想情況下,假如飛行速度大約為25 m/s,L1的距離選擇為150 m。當(dāng)然了,因為它沒有任何積分控制環(huán)節(jié),所以就要求給航跡修正提供精確的側(cè)向加速度測量和無偏的傾斜角估計,這也是它的不足之處。
無人機在起飛之前,規(guī)劃好的路徑就已經(jīng)存儲在自動駕駛儀系統(tǒng)中,路徑規(guī)劃系統(tǒng)通過一個處于無人機前方且長度為RLA的“虛擬的檢測線”來確定一個突然出現(xiàn)的障礙物是否會干擾已經(jīng)規(guī)劃好的路徑。如圖4所示,RLA的長度定義為所謂的“提前量”。如果探測線的任何一部分穿過了一個障礙物,則立即啟動規(guī)避行為。
圖4 接近障礙物時,提前量RLA的定義
因為一個復(fù)雜形狀的障礙物可以由多種不同的圓形障礙物近似來表示,結(jié)合側(cè)向航跡修正算法,本文將障礙物的形狀建模為一個圓形,并且不考慮垂直限制。
RLA選取一個最有價值的值是非常重要的,它將決定無人機是否還有充足的時間來遠離障礙物或者而不用冒險穿越它。那么在什么情況下選取RLA值是最合適的呢?本文認為要符合2個條件:一是無人機將要飛行的弧形航跡恰好處在障礙物的邊緣;二是無人機開始做出規(guī)避行為的時機要盡可能晚一些。RLA的大小取決于3個方面的因素,分別是圓形障礙物的半徑Rc、無人機的地速V、無人機最大的傾斜角φmax。根據(jù)這些參數(shù),假如無人機想要飛行轉(zhuǎn)彎很協(xié)調(diào),其最小的轉(zhuǎn)彎半徑R由下面公式?jīng)Q定:
(4)
在障礙物半徑無限大的情況下,無人機將不得不做一個90°的轉(zhuǎn)彎,在這種情況下RLAmin=Rmin。對于任何一個半徑無限大的障礙物來說,無人機不得不轉(zhuǎn)彎至少90°才能避開它。
為了得到最終的RLA值,必須對無人機開始轉(zhuǎn)彎直到最大的傾斜角φmax所需的延遲做出補償。假定無人機開始轉(zhuǎn)彎時仍然保持水平飛行,一旦轉(zhuǎn)到最大傾斜角φmax時,轉(zhuǎn)彎半徑最小,所花的時間為τroll,最終的提前量RLA為:
RLA=RLA,min+V·τroll
(5)
正如前面所提到的,航跡修正算法在無人機的前面釋放出一個探測線。首先,要計算出從無人機到障礙物中心的距離Dc:
Dc≤Rc+RLA
(6)
如果滿足了式(6)的條件,那么意味著無人機處于障礙物范圍之內(nèi)。在這種情況下,算法程序就要進一步檢查探測線是否接觸到障礙物。
根據(jù)無人機的飛行方向,有2種可能的情況。如圖4和圖5所示,已知h、RLA、α,y和a通過下面公式很容易計算出來:
y=hsinα
(7)
a=hcosα
(8)
對于式(7),需要考慮2種情況,如圖5和圖6所示。
(1) 如圖5所示,如果a≤RLA,當(dāng)a邊與障礙物相切時,將發(fā)生極限的情況。因此,y的值將和Rc值相等。如果y≤Rc,則障礙物與探測線接觸。
圖5 障礙物探測算法框圖(接觸)
圖6 障礙物探測算法框圖(未接觸)
當(dāng)且僅當(dāng)α≤90°時,檢查情況1或者情況2,如果α≥90°,那么障礙物則位于無人機的后方,此時無人機是安全的,無需做規(guī)避動作。
如圖7所示,制導(dǎo)系統(tǒng)將引導(dǎo)無人機到達P點,P點位于半徑為R1的圓上且與無人機的距離為L1,β為線段L1與Dc之間的夾角,為了確保產(chǎn)生的圓形路徑適合無人機飛行并且能夠繞過障礙物,R1的取值為:R1=max(Rmin,Rc+Rsafe),其中Rsafe表示安全值。參考點P的坐標計算如下:
圖7 規(guī)避模型圖
(1) 如果無人機從右邊方向規(guī)避障礙物,則ψavoid=φc+β。
(2) 如果無人機從左邊方向規(guī)避障礙物,則ψavoid=φc-β。
最后,P點的坐標表示如下:
(9)
(10)
圖7中,無人機規(guī)避障礙物按以下步驟進行:
(1) 規(guī)避邊的選擇,P1的確定:制導(dǎo)算法選擇朝左走還是朝右走是由無人機速度矢量方向決定的。如果無人機的速度矢量指向障礙物的右邊,那么無人機將從右側(cè)繞過障礙物。如果無人機的速度矢量指向障礙物的左邊,那么無人機將從左側(cè)繞過障礙物。圓形的障礙物使得制導(dǎo)算法很容易做出這樣的判斷。
(2) 向參考路徑過渡,P2的確定:一旦無人機開始做規(guī)避動作時,它會一直轉(zhuǎn)彎來改變航向直到無人機的速度矢量方向與圓形障礙物的邊緣相切,或者指向障礙物的外部。從T2點開始,制導(dǎo)算法將引導(dǎo)無人機沿著參考路徑飛行。
(3)過渡到正常的路徑點,P4的確定:一旦無人機沿著參考路徑做規(guī)避飛行的時候,它會一直飛直到它的瞄準線指向下一個路徑點P3,而這個路徑點P3在障礙物范圍之內(nèi)且被障礙物妨礙。于是飛向P4點處,制導(dǎo)系統(tǒng)從規(guī)避模型轉(zhuǎn)換為引導(dǎo)無人機飛行到下一個路徑點P4,一旦到達了P4點,那么制導(dǎo)系統(tǒng)將恢復(fù)常態(tài)。在進行規(guī)避飛行過程中,制導(dǎo)系統(tǒng)分析路徑點列表,在規(guī)避飛行之前,檢查P3是否仍然是可到達的點。若該點是可到達的,必須滿足障礙物的中心到P3點的距離DcT>R1;如果P3點不可達,制導(dǎo)系統(tǒng)就選擇路徑點列表中下一個路徑點進行檢查,以此類推。簡單判斷P4點出現(xiàn)的準則是監(jiān)測角度χ,它是無人機中心與下一個可達路徑點之間的連線與無人機中心點與障礙物之間連線的夾角。只要|χ|>π/2,就有一個清晰的直線路徑指向P4。
根據(jù)航跡修正算法并結(jié)合障礙物探測與規(guī)避,提出自適應(yīng)航跡規(guī)劃模型,這種模型可以引導(dǎo)無人機繞過任何障礙物,而且這種規(guī)避方法簡單實用,能夠引導(dǎo)無人機到達距離障礙物邊緣較近的路徑點。
無人機自適應(yīng)航跡規(guī)劃算法流程如圖8所示,其主要的步驟為:
(1) 無人機飛行參數(shù)初始化配置,航跡規(guī)劃算法進行初始路徑裝載。
(2) 無人機出現(xiàn)故障或者初始路徑中出現(xiàn)障礙物,無人機感知系統(tǒng)啟動并傳遞參數(shù),航跡規(guī)劃算法根據(jù)變化自動重新規(guī)劃路徑,并選擇盡可能晚的時機開始做規(guī)避動作,這種時機的把握不但可以將不可到達的路徑點的數(shù)目減少到最小,而且無人機一旦安全地繞過障礙物之后就立刻飛向下一個路徑點,通過這種方式使得返回最初路徑所需要的飛行距離和時間最小。
(3) 規(guī)避動作完成,回到初始路徑,直到遇到下一個障礙物。
算法流程如圖8所示。
圖8 算法流程
在自適應(yīng)航跡規(guī)劃算法下,無人機的實際軌跡如圖9所示。這種規(guī)避模型的關(guān)鍵就是在線產(chǎn)生一個繞著障礙物的圓弧作為參考路徑,如圖9中虛線所示。這樣的一個路徑是無人機規(guī)避障礙物所飛行的最短路徑。而且,在文章的開始就看到航跡修正算法在跟蹤這樣一條路徑時是非常有效的。選擇圓形路徑作為參考路徑使得規(guī)避路徑模型很容易地由障礙物的大小得到。實際上,它由障礙物的中心和一個路徑的半徑R1來定義,R1很簡單,由障礙物半徑加上一個安全的距離。無人機沿著這條路徑飛,直到它能夠飛向下一個路徑點,而這個路徑點和無人機在一條直線上不和障礙物接觸。
圖9 規(guī)避路徑模型
一旦規(guī)避機動完成了,探測線的端點將位于障礙物的外部。如果下一個路徑點仍然被障礙物所阻擋,那么制導(dǎo)系統(tǒng)引導(dǎo)無人機圍繞著障礙物飛行,直到有一條清晰的直視路徑通向下一個路徑點。
本文設(shè)計了2種情況下的仿真實例,以演示和驗證上述算法的正確性和可操作性,其仿真結(jié)果分析如下:
當(dāng)無人機最大傾斜角為30°時,仿真結(jié)果如圖10所示,開始時無人機沿著正常路徑由南向北飛,正常路徑被一障礙物阻擋。從圖中可以看到在無人機繞過障礙物回到正常路徑之前,無人機偏離了正常路徑朝東飛。
圖10 傾斜角為30°情況
當(dāng)無人機最大傾斜角為15°時,仿真結(jié)果如圖11所示。圖11中,制導(dǎo)系統(tǒng)根據(jù)傾斜角變化的信息以及φmax和τroll更新后的參數(shù)重新設(shè)置RLA的值,傾斜角越小,RLA越大。因此,飛機選擇開始規(guī)避動作的時機要比前面的情況早。不管飛機傾斜角變大變小,無人機都會規(guī)避障礙物并以一個大半徑繞著障礙物作孤線飛行。在這種情況下,飛機要想碰到障礙物并繞著它飛行就要比前面2種情況飛更遠距離才行。
由上述結(jié)果可知,在2種情況下,初始航跡出現(xiàn)障礙物時,無人機均能夠自己重新完成航線規(guī)劃,并選擇合適的時機來規(guī)避障礙物,說明算法是正確的。
圖11 傾斜角為15°的情況情況
文章提出一種新的制導(dǎo)算法,這種算法結(jié)構(gòu)非常簡單,并且能夠引導(dǎo)飛機規(guī)避障礙物;更重要的是,該算法在無人機最大傾斜角發(fā)生變化的情況下,能夠進行自適應(yīng)調(diào)整,而且不需要復(fù)雜的邏輯運算,計算效率高。