劉 暢,謝文俊,張 鵬,郭 慶,高 超
(1.空軍工程大學 裝備管理與無人機工程學院,西安 710051; 2.空軍工程大學 研究生學院,西安 710051;3.中國衛星海上測控部,江蘇 江陰 214431)
為確保無人機的飛行安全,需根據態勢信息進行航跡規劃[1].UAV在飛行時既要能夠及時感知并迅速規避威脅,威脅或是靜態的(如山峰、建筑等),或是動態的(如有人機、UAV等),又要保證某種目標函數達到最優[2].實際的飛行航跡可采用直線和恒定半徑弧的組合來模擬[3],亦可在上述組合中加入回旋弧[4];Dubins曲線[5]、Ferguson樣條[6]和B樣條[7]也可模擬實際航跡.航跡避障可在目標函數中添加懲罰函數來實現[8];也可將威脅視為規則的形狀[9].經過多年研究,航跡規劃求解方法繁多[10].Voronoi圖可用于航跡規劃[11],但存在兩個缺點,一是不能對具有非零區域的威脅區建模,二是不能生成光滑航跡;采用分段優化RRT方法時[12],雖然航跡代價和算法運行時間有所降低,但生成非平滑航跡,航跡的精確跟蹤性較差;群智能算法由于具有魯棒性強、易于實現、適應性強等優點,現已廣泛應用[13].遺傳算法作為典型代表,通過選擇、交叉和變異等操作來搜索最優航跡[14],但收斂到最優解的效率較低[15],實時性較差.
本文針對規劃空間存在諸多靜態和動態威脅的情形,采用滾動時域優化策略生成最優航跡序列和子序列;結合約束條件和目標函數,利用負梯度下降法搜索航路點[16];應用遺傳算法對每個子序列進行規劃,使其收斂到局部最優解,經反復滾動迭代可得近似全局最優航跡,同時利用控制點優化的貝塞爾曲線,生成平滑航跡.


圖1 靜態與動態威脅位置示意
本文采用二次型貝塞爾曲線對實際航跡進行建模,同時定義了3種目標函數:航跡長度、飛行時間和油耗代價.采用滾動時域策略生成最優航跡序列和子序列,每個子序列的目標函數達到最優即可構成近似全局最優.故每個目標函數均為兩項之和,即經滾動優化的航跡長度、飛行時間、油耗代價和最后一個子序列的末端控制點與目標點間的最優值.
采用二次型貝塞爾曲線對航跡進行建模為
B(t)=(1-t)2P0+2(1-t)tP1+t2P2,0≤t≤1.
曲線上任意點的一階導數的推導,從而會簡化某些約束條件(如最小轉彎半徑)的計算,即
B′(t)=2(1-t)(P1-P0)+2t(P2-P1),0≤t≤1.
式中:P0、P1、P2分別為航跡子序列上的首端、中端和末端控制點.
與其他航跡建模的方法相比,貝塞爾曲線既能夠快速地計算出曲率,又能夠減少控制變量的數量.對于每個子序列,第1個控制點設置為前一子序列的末端控制點,即P0(i)=P0(i-1).針對首個子序列,P0=(x0,y0).每個子序列均包含2個未知控制點,故每個子序列包含4個控制變量.
在構建航跡長度最優目標函數Flength時,既要使每個子序列的航跡長度最優,又要使最后一個子序列末端控制點與目標點間的長度最優,則航跡總長度最優.當子序列的個數為m時,Flength為
(1)
式中:li為第i個子序列的長度,lf為目標點與最后子序列末端控制點間的長度,即
式中(xf,m,yf,m)為最后子序列末端控制點.li很難精確進行計算,故采用數值積分法進行估算.
采用類似的方法定義飛行時間最優目標函數,既要使每個子序列耗時最優,又要保證UAV以最大速度從最后子序列末端控制點直飛至目標點.若每個子序列的耗時均為Δtime,則第1項耗時為mΔtime,第2項耗時為lf/Vmax,則Ftime為
Ftime=mΔtime+lf/Vmax,
式中Vmax為最大飛行速度.
為定義油耗代價最優目標函數Fenergy,首先定義每千米消耗的能量Ereq為
Ereq=Dest/ηoverall.
式中:Dest為UAV所受阻力,ηoverall為推進效率.
采用Carson法估算阻力[17],Carson法綜合考慮了空氣密度、UAV質量、天線發射器面積、翼展、速度等參數.除速度外都是常數,故Dest可表示為速度的函數.為使問題簡化,將η(V)也表示為速度的函數[18],即
Ereq隨著飛行速度的變化而不斷改變,如圖2所示.將min(Ereq)表示為(D/η)opt,則從最后子序列末端控制點飛至目標點所需的最小能量為lf(D/η)opt.由式(1)可推導出Fenergy為
式中(Di/ηi)為第i個子序列的Ereq.為提高實時性,采用數值積分法估算第1項的數值.

圖2 Ereq與飛行速度的關系
假設威脅區的作用距離為Tdmax,為能夠迅速規避靜態和動態威脅,需要計算子序列上UAV的位置與每個威脅的距離.若其小于Tdmax,則此威脅對航跡規劃有影響;然后對子序列進行離散化,使航跡上的每個點均滿足威脅約束.若以Δt=0.1 s在t=[0,1]s上進行采樣,則靜態威脅約束為
(2)
動態威脅約束的推導與式(2)相似,但動態威脅區的圓心位置隨著時間在不斷變化.
本文考慮了常見的氣動約束、最小速度和最大速度等飛行約束.由于分段優化策略在相同時間間隔內進行,故每個航跡子序列的最大長度與最大速度有關、最小長度與最小速度有關.取Δtime=1 s、Vmin=10 m/s、Vmax=15 m/s,則最大長度為lmax=15 m,最小長度為lmin=10 m.則每個航跡子序列的長度為
lmin≤lest,i≤lmax.
(3)
為使航跡能夠滿足飛行條件,則航跡的最小曲率k大于等于最小轉彎半徑rturn,即
k≥rturn.
(4)
為模擬真實的飛行狀態,應防止飛行方向瞬時改變.故要求當前航跡子序列末端控制點的一階導數等于下一航跡子序列起始控制點的一階導數,即
(5)
滾動時域控制(亦稱模型預測控制)是滾動時域優化策略的淵源,其思想是將時間離散化.針對每一離散化時刻,未來系統的狀態模型可由當前系統的狀態模型預測,根據未來系統的狀態模型構建約束優化問題模型,最優控制序列通過實時求解約束優化問題模型得到.作用于系統的實際控制信號僅為當前采樣時刻最優控制序列中的第1項,其余各項均沒有實際的作用.在下一采樣時刻,循環往復上述過程,隨著時間的遞增而滾動推進.現在的工業過程控制[19]、飛行器控制[20]都有滾動時域控制的身影.
究其本質,UAV動態方程具有非線性.為使問題簡化,本文采用線性近似模型,將UAV視作質點,則UAV離散時間線性動態模型為
(6)


綜合考慮飛行和威脅約束,利用滾動時域優化策略,以某種目標函數JT來建立無人機自主避障航跡規劃數學模型,即
(7)
s.t.xm+j+1|m=Axm+j|m+Bum+j|m,?j=0,…,T-1,
(8)
(9)
um+j|m∈U, ?j=0,…,T-1,
(10)
pm+j|m?O, ?j=1,…,T.
(11)
式中:T為規劃時域和控制時域的長度;xm+j|m為m時刻UAV動態約束方程(8)對m+j時刻狀態的預測.由式(6)確定UAV動態約束方程(8),初始條件為式(9).由飛行約束式(3)、(4)、(5)確定控制輸入式(10),由式(2)間接確定自主避障約束式(11).由于存在計算時間滯后,故對當前時刻進行的航跡規劃必須在前一時刻求得.


圖3 最優航跡序列組成的軌跡
本文研究的航跡規劃不是全局規劃,而是將起點至目標點的航跡進行分段優化,模擬了UAV的有限視場.由于UAV只能通過自身的傳感器感知附近的威脅,故只進行局部規劃.采用滾動優化策略,每個子序列的最優航跡通過求解一個有限時域內約束優化問題得出,經反復滾動可得由若干個局部最優航跡構成的近似全局最優航跡.
綜合考量算法運行時間和目標函數為最優時,針對最優航跡序列之間的航跡,對其進行滾動優化,生成3個航跡子序列;爾后對其進行重新分組,如圖4所示.每組中有3個子序列,每次只優化第1個子序列.當對最后一段航跡(xm-1,xm)中第2個子序列進行優化時,分組中最后一個子序列的長度取0.75lmax并指向目標點.同理,也采用此方法優化(xm-1,xm)中最后一個子序列.該方法減少了航跡優化的收斂時間,因為前一組優化的后兩個子序列可直接用于下一組優化的前兩個子序列.雖然增加了算法的運行時間,但卻提高了其魯棒性.

圖4 航跡子序列重組示意
Fig.4 Schematic diagram of recombination of path sub-sequences
針對每個子序列,采用遺傳算法(GA)對其進行規劃.GA從問題的解集(種群)開始搜索,解集中的每個解是由基因經特定編碼構成的個體,一定數目的個體組成種群.GA的流程如下:①編碼;②生成初始種群;③適應度函數f的計算;④選擇、交叉與變異;⑤終止條件;⑥解碼.
設航向角為θ,Δθ為航向轉角,Δθmax為最大航向轉角,飛行速度為v,則

(12)
當(x(t)i,y(t)i)附近的威脅區對航跡規劃無影響時,適應度函數僅為目標函數,即
利用負梯度下降法可推導出(x(t)i,y(t)i)的航向角迭代公式為

(13)
式中n為迭代次數.
設最大迭代次數為nmax.當迭代次數達到nmax時,可得航向角θi.下一航路點坐標和航向角可由式(6)和式(12)確定.
當(x(t)i,y(t)i)處周圍的威脅區對航跡規劃有影響時,適應度函數為兩項之和,即

同理,根據式(13)求取當前航向角θi,由式(6)和式(12)確定下一航路點坐標和航向角.
自主避障航跡規劃流程如圖5所示.
實驗仿真在Windows 10操作系統,處理器為Intel 酷睿i5 4200M,內存為4 GB的Laptop上采用Matlab 2016b進行編程仿真.規劃空間為100 m×100 m的空域,起點為(0,0) m,目標點為(100,100) m,靜態威脅區數量為40≤n≤60,(5,5)m≤(xcs,ycs)≤(95,95) m為其中心坐標,3 m≤rs≤7 m為威脅半徑,動態威脅區的中心位置、數量、半徑、運動速度將在具體的仿真中設定.GA的種群規模為100,交叉概率為0.8,變異概率為0.05,最大迭代次數為50 000.

圖5 自主避障航跡規劃流程
Fig.5 Flow chart of path planning for autonomous obstacle avoidance
在規劃空間隨機地分布著50個靜態威脅,威脅的半徑為3 m≤rj≤6 m.采用本文所提出的算法,調用fmincon求解器,為UAV規劃出一條從起點至目標點,同時使目標函數達到最優的自主避障航跡.
當油耗代價最優時,規劃方案如圖6所示.

圖6 油耗代價為最優時的規劃方案
Fig.6 Path planning scheme with optimal fuel consumption cost
從圖6可以看出,UAV能成功的避開靜態威脅從起點飛至目標點.圖2中,當飛行速度大約為13.5 m/s時,Ereq達到最小,進而油耗代價達到最小.故規劃的航跡顏色較多地對應速度條中13~14 m/s之間的顏色,而其余的顏色分布主要是滿足飛行約束的要求.
受篇幅所限,其余目標函數的規劃方案就不一一列舉了.當規劃空間僅存靜態威脅時,不同目標函數的油耗代價、時間代價和航跡代價的對比見表1.

表1 不同目標函數的代價對比
由表1可知,當某目標函數為最優時,相應代價最小,但另兩種代價會比相應目標函數為最優時的相應代價偏大.
規劃空間存在5個靜態威脅和2個動態威脅,動態威脅的圓心位置分別為(100 m,90 m)、(70 m,80 m),半徑均為10 m,運動速度均為v1=(-8 m/s,-8 m/s).基于本文所提出的算法,當油耗代價目標函數最優時,規劃出一條從起點至目標點的自主避障航跡.規劃方案如圖7所示.圖7中,藍色虛線圓形表示動態威脅下一時刻所處的位置,紅色小方塊表示其運動軌跡,實線表示已規劃的航跡,虛線表示待規劃的航跡.
從圖7可以看出,在滿足油耗代價最優的情形下既可以規避空域的動態威脅,又可以規避靜態威脅,能為UAV規劃出一條從起點至目標點的可行航跡.驗證了算法的有效性和模型的合理性.

圖7 油耗代價最優動態威脅規避方案
當規劃空間同時存在動態和靜態威脅時,不同目標函數的航跡代價、油耗代價、時間代價的對比見表2.
表2 存在動態威脅時不同目標函數的代價對比
Tab.2 Cost comparison of different objective functions in the presence of dynamic threats

目標函數航跡代價/m油耗代價/J時間代價/s油耗代價最優143.704504.75011.543時間代價最優162.248607.57410.592航跡長度最優142.499560.03111.392
由表2可知,當某一目標函數為最優時,相應的代價最小,另兩種代價相比于其他目標函數為最優的代價偏大.此外,油耗代價相差較大,是因為UAV在規避動態威脅時要做大量的機動才能規劃出一條可行航跡.
針對靜態威脅規劃空間,其數量、中心位置、半徑的設置與不同目標函數的多重靜態威脅規避仿真相同.將最優航跡子序列的個數分別取1、2、3、4、5、6,則在滾動優化的每個時間間隔內分別有0、1、2、3、4、5個前瞻性規劃段;當規劃空間僅存動態威脅時,其中心位置、數量、半徑和運動速度與不同目標函數的動態威脅規避仿真設置相同,子序列個數的設置與上述靜態威脅規劃空間相同.以航跡長度最優為目標函數,比較子序列個數不同的情況下航跡長度與算法的運行時間,如圖8所示.

圖8 不同子序列個數對航跡長度的影響
Fig.8 Effect of the number of different sub-sequences on path length
從圖8可以看出,當子序列個數增加時,雖然航跡長度更短,但卻增加了算法的運行時間.當子序列個數>3時,并不會明顯地縮短航跡長度,但運行時間卻顯著增加.同時當子序列個數為1和2時,通常會規劃出不能令人滿意的航跡,如圖9所示.

圖9 子序列個數為2時的航跡規劃
從圖9可以看出,當子序列個數為2時,雖然可規劃出一條可行航跡,但會穿越威脅密集區.此時若按此航跡執行任務,UAV損傷概率將會增加.經綜合分析可知,當子序列個數為3時,航跡長度既能達到相對最小,又能規劃出一條令人滿意的航跡.
針對同一規劃空間,分別采用本文所提出的算法(局部航跡規劃算法)和全局航跡規劃算法,規劃出一條既滿足約束條件又能使目標函數達到最優的實際可飛航跡.全局航跡規劃指的是采用滾動優化策略生成的從起點至目標點的最優航跡序列,經平滑處理形成的飛行航跡.
對于以下兩種情況:1)規劃空間僅隨機地分布著40個靜態威脅,其半徑、中心位置坐標與不同目標函數的多重靜態威脅規避仿真設置相同,以時間代價最優為目標函數;2)規劃空間僅存在兩個動態威脅,其半徑、中心位置坐標、運動速度與不同目標函數的動態威脅規避仿真設置相同,以航跡代價最優為目標函數.分別采用局部規劃方法和全局規劃方法對其進行自主避障航跡規劃,如圖10所示.紅色實線表示局部規劃,綠色實線表示全局規劃.

圖10 局部規劃與全局規劃的比較
從圖10可以看出,局部規劃航跡與全局規劃航跡的差別并不大,說明局部規劃可充分表征全局規劃,故本文所提出的算法可近似規劃出全局最優航跡.同時針對同一規劃空間,在相應目標函數達到最優時,局部規劃與全局規劃方法的收斂時間見表3.
由表3可知,局部規劃算法規劃出一條可飛航跡的收斂時間均少于全局規劃算法的收斂時間,說明本文所提出的算法提高了航跡規劃的效率,實時性更強.

表3 局部規劃與全局規劃方法的收斂時間
1)借鑒滾動時域控制思想并進行深入分析,將其演化為航跡規劃的優化策略.先后采用滾動優化策略生成最優航跡序列和子序列,經反復滾動迭代優化可規劃出一條從起點至目標點的航跡.
2)綜合考慮威脅和飛行約束,利用負梯度下降法搜索航路點,同時利用控制點優化貝塞爾曲線對航跡進行處理,獲得符合實際要求的飛行航跡.
3)本文針對規劃空間存在諸多靜態和動態威脅的情形,提出了一種基于滾動時域的無人機自主避障航跡規劃方法.與全局規劃方法相比,該方法減少了算法的收斂時間,實時性更強,并且能夠近似表征全局最優航跡.