趙 虎 李曉麗 尹德斌
(1.東華大學(xué)信息科學(xué)與技術(shù)學(xué)院 上海 201620)(2.數(shù)字化紡織服裝技術(shù)教育部工程研究中心 上海 201620)(3.上海工業(yè)自動化儀表研究院有限公司 上海 200030)
近幾年來,無人機研究越來越引起國內(nèi)外專家學(xué)者的關(guān)注,特別是對無人機的編隊控制的研究受到許多學(xué)者的青睞。隨著戰(zhàn)場環(huán)境的多變性和復(fù)雜性,單架無人機已經(jīng)無法滿足現(xiàn)實的需求。為此,許多專家提出利用多無人機以協(xié)同的形式進行編隊飛行來執(zhí)行任務(wù)。就目前來說,對于無人機的編隊飛行,前人已經(jīng)提出了很多的方法,比如長機-僚機法,行為法,虛擬結(jié)構(gòu)法,基于一致性的編隊控制方法,人工勢場法等;施書成[1]等根據(jù)長機-僚機方法設(shè)計了多無人機編隊協(xié)同保持的速度矢量場算法,并借鑒人工勢場的方法,引入相對速度矢量,從而保證了無人機群以相對穩(wěn)定的速度進行飛行,并且具有防碰撞功能。周子為等[2]根據(jù)雁群的行為機制,提出了一種編隊重構(gòu)拓撲方法。該方法能夠使得無人機緊密編隊,并且可以大大地減少無人機的耗油量。劉成功[3]等對無人機仿生緊密編隊飛行控制技術(shù)進行了研究,分析了候鳥編隊飛行原理,討論了無人機緊密編隊飛行的仿生機理,建立氣動耦合效應(yīng)的緊密編隊飛行模型,并設(shè)計了基于小腦模型神經(jīng)網(wǎng)絡(luò)與PID 復(fù)合控制的隊形保持控制器,通過仿真實驗結(jié)果表明所設(shè)計控制器的合理性。郭冬冬[4]等運用二階一致性的方法,通過對無人機協(xié)同編隊方法的研究,設(shè)計了二階有領(lǐng)航者的一致性控制算法,以及基于人工勢場法設(shè)計了群體控制算法,通過實驗驗證,該算法可以讓多個無人機跟隨領(lǐng)航者保持一定的隊形飛行。張佳龍[5]等人對基于改進人工勢場的無人機編隊避障控制研究,對人工勢場法在無人機避障過程中存在的局部最小值問題,利用了虛擬結(jié)構(gòu)和長機-僚機控制控制策略,提出了一種三維空間復(fù)合矢量人工勢場方法,從而實現(xiàn)了無人機編隊飛行過程中能夠在三維空間避開障礙物的目的。除此之外,Lin,ZJ 等[6]通過對小型無人的研究,根據(jù)火災(zāi)任務(wù)的需求,通過分布式編隊的方式,提出了一種基于一致性的無人機群合作方法,最后經(jīng)過仿真驗證了該算法可以將無人機分組覆蓋到火線輪廓的不同部分,從而提高了救災(zāi)效率。Feng 等[7]提出了一種基于一致性的均勻無人機群魯棒聚類和優(yōu)化算法。該算法可以實現(xiàn)無人機群的自適應(yīng)地集群并可以自適應(yīng)的選擇一架無人機作為領(lǐng)航者。 林敏等[8]針對多智能體的時變問題,設(shè)計了一致性算法和具有避障功能的人工勢場法,從而使得僚機能夠跟隨長機穩(wěn)定飛行。
論文的研究借鑒了雁群飛行編隊的行為。在雁群進行編隊飛行的過程中,大雁由于其生物體本身的特性,存在一定的視覺盲區(qū)。為此,本文根據(jù)這一問題,提出了一種基于視覺盲區(qū)的小型無人機自主控制算法,首先是構(gòu)建了二階積分器系統(tǒng)模型,通過對無人機在視覺盲區(qū)和非視覺盲區(qū)的區(qū)別,設(shè)計代價函數(shù)進行刻畫視覺盲區(qū)和非視覺盲區(qū),然后利用了梯度下降法以及以圖論作為理論基礎(chǔ)的速度一致性算法使無人機在避開彼此視覺盲區(qū)的基礎(chǔ)之上速度達到一致性,通過仿真實驗,最后驗證了所設(shè)計的控制器的合理性。
假設(shè)無人機現(xiàn)在飛行到O 點,此時無人機的俯仰角為βi,偏航角為θi,無人機的飛行速度為Vi。如圖1 所示建立無人機的地面坐標(biāo)系,根據(jù)文獻[9]對于小型固定翼無人機的非線性動力學(xué)方程為
圖1 小型固定翼無人機飛行運動學(xué)模型
其中:Vi為無人機對地的飛行速度ai=[ai1,ai2,ai3]為無人機的加速度,ai1為無人機的切向加速度,其方向與無人機的速度方向一致,ai2為無人機的法向加速度的垂直分量,ai3為無人機的法向加速的水平分量,βi為無人機飛行時的俯仰角,θi為無人機飛行時的偏航角。如果令pi為無人機在某時刻的速度信息,qi為無人機在某時刻的位置信息,則:
然后讓式(2)再對時間求導(dǎo)可得:
則式(3)可以表示為ui=k+Aiai,進而可以得到從變換中可以看出,可以將控制輸入ai=[ai1,ai2,ai3] 轉(zhuǎn)化為ui,從而可以令ui為新的控制輸入,設(shè)uix為無人機在x 方向上的加速度,uiy為無人機在y 方向上的加速度,uiz為無人機在z方向上的加速度,則新的控制器輸入可以表示為
則由此可以將系統(tǒng)狀態(tài)方程轉(zhuǎn)化為
上式中qi為第i個無人機的位置,pi為第i個無人機的速度,ui為無人機編隊時需要設(shè)計的新的控制輸入。在本文中,假設(shè)無人機群是在一個二位平面進行飛行,此時令俯仰角βi=0,z方向的控制輸入為零。
無人機群在編隊飛行過程中的通信問題可以用通信拓撲圖來描述,在一定的拓撲條件下,每個無人機都可以看成是圖中的一個節(jié)點,而圖中的邊可以看成是無人機之間的通信信息流。
假設(shè)G=(V,E)為無人機組成的網(wǎng)絡(luò)圖,其中V=[ν1,ν2,ν3,…,νn] 為 圖 中 的 節(jié) 點N={1 ,2,3,…,n} 為節(jié)點的序號,在實際中表示每架 無 人 機 ,E=(e1,e2,e3,…,en) 為 圖 中 的 邊 集E?V*V。M={1 ,2,3,…,n} 為圖中邊的序號,在實際中代表無人機在相互通信時的信息傳遞。若信 息 交 換 是 沒 有 方 向 性 的 ,則 有 (νi,νj)∈E?(νj,νi)∈E,那么此時圖 G 被稱為無向圖;若信息流只能從其中一個節(jié)點傳遞到另一個節(jié)點,反之不能傳遞,則此時稱圖G 為有向圖。此外,鄰接矩陣A=[aij] 為非負加權(quán)矩陣,當(dāng)無人機νi有信息向無人機νj傳遞時,aij>0(本論文中規(guī)定當(dāng)無人機νi有信息向νj傳遞時,aij=1),當(dāng)無人機之間無信息傳遞時aij=0,所以此時A是由0-1 元素組成的一個非負加權(quán)矩陣。對于一個無向圖中的節(jié)點i,鄰接元素可以表示為Ni={νj∈ν|(νi,νj)?E}。假設(shè)圖的出度矩陣為D,易知矩陣D為斜對角矩陣,則此時該圖的拉普拉斯矩陣可以表示為L=D-A。
在生物種群中,比如魚群的聚集,大雁的遷徙,都會按照一定的隊形進行排列,比如,大雁的遷徙,就會按照一定的人字形進行編排飛行,這樣在遷徙過程中大雁之間不僅會節(jié)省自身能量,而且也會方便領(lǐng)航者的交換和使每個大雁都能夠在各自的視覺之內(nèi)飛行,這樣就方便了各自之間信息的傳遞??茖W(xué)家根據(jù)這一生物學(xué)行為,將此場景應(yīng)用到無人機的編隊飛行過程中。本文就是根據(jù)雁群在飛行過程中由于存在視覺盲區(qū)的特點來進行研究。因為無人機群在執(zhí)行任務(wù)時也會存在盲區(qū),所以需要進行避盲算法的設(shè)計。
首先,前面提到,無人機在編隊執(zhí)行任務(wù)過程中,由于無人機之間有且僅有視覺上的通信,此時就需要各無人機之間保持在視覺盲區(qū)之外飛行,所以,為了刻畫視覺盲區(qū)和非視覺盲區(qū),就需要設(shè)計相應(yīng)的代價函數(shù)函數(shù)進行刻畫。
如圖2 所示,假設(shè)有兩架型號相同的小型無人機,分別為無人機j和無人機i,此時無人機j在二維平面時的坐標(biāo)為(xj,yj),無人機i在二維平面時的坐標(biāo)維 (xi,yi),無人機的盲角都為α(α< 90°),偏航角為θj,假設(shè)無人機j的機頭朝向的反向延長線與兩架無人機相對位置偏差的夾角為γij,則此時由文獻[12]可以到:
圖2 無人機視覺之間的幾何關(guān)系圖
由此可以看出,當(dāng) cos(γij)≥cos(α)時,無人機i在無人機j的視覺盲區(qū)之內(nèi),當(dāng) cos(γij)< cos(α)時,無人機i在無人機j的視覺盲區(qū)之外。由此可以設(shè)計代價函數(shù)為
當(dāng)γij∈(0,α]時,函數(shù)hcos(γij)與γij的關(guān)系如圖 3 所示。則從式(8)可以看出,當(dāng)γij=0 時,hcos(γij) 的值為無窮大,當(dāng)γij∈(0 ,α]時,hcos(γij)的值從無窮大平滑地過渡到 0;γij>α?xí)r,hcos(γij)的取值為0。然而,對于小型無人機來說,其可視化的距離是有限的,所以為了使無人機能夠避免因隨時間變化而變化的鄰接集Ni(t)所帶來的代價函數(shù)產(chǎn)生的突變,此時需要定義一個緩沖函數(shù)ρ(dij),此緩沖函數(shù)可以使代價函數(shù)平滑可微,根據(jù)文獻[10]可以得到:
圖3 代價函數(shù)圖像
無人機在編隊飛行過程中,除了需要設(shè)計代價函數(shù)讓無人機在盲區(qū)之外飛行以外,也需要讓無人機保持速度一致性。所以在此就需要速度一致性算法的設(shè)計。
如果無人機j在[xj,yj]位置時的速度定義為pj,無人機i在位置 [xi,yi]位置時的速度為pi,則根據(jù)文獻[13~15]可以得到,要使得無人機群速度保持一致性,則需要滿足:
其中,aij是非負加權(quán)矩陣中的元素(在本文中aij=1)。這樣就可以保證無人機群按照相同的速度大小和相同的速度方向飛行。
無人機群在飛行過程中,要想飛離其他無人機盲區(qū),就需要使無人機的代價函數(shù)為零,另一方面,無人機群在飛行過程中,需要保持速度一致性。根據(jù)文獻[14]可以得到:
其中,pxi和pyi分別表示無人機i在x方向以及y方向上的速度,pxj和pyj分別表示無人機j在x方向以及y方向上的速度表示無人機i的代價函數(shù)在x方向上的負梯度,表示無人機i的代價函數(shù)在y方向上的負梯度。下面,通過仿真來驗證所設(shè)計控制器的合理性。
根據(jù)所提出的算法,進行仿真驗證,其中設(shè)四架無人機為同一型號無人機,盲角偏轉(zhuǎn)角為指向無人機飛行時的速度方向。
1)當(dāng)無人機相互不再彼此的盲區(qū)之內(nèi)如表所示。
表1 無人機的初始狀態(tài)1
圖4 無人機初始位置坐標(biāo)圖
仿真結(jié)果如圖5~7所示。
圖5 無人機群的位置坐標(biāo)
圖6 無人機x方向速度與時間的關(guān)系
因為無人機群在飛行的過程中,相互不在盲區(qū)之內(nèi),所以無人機按照初始時的速度和偏轉(zhuǎn)角度直線飛行。
圖7 無人機y方向速度與時間的關(guān)系
2)當(dāng)初始狀態(tài)在盲區(qū)之內(nèi)時如表2。
表2 無人機的初始狀態(tài)2
圖8 無人機初始時刻位置
則無人機飛行的仿真結(jié)果如圖9~11。
圖9 無人機群的位置坐標(biāo)
通過仿真結(jié)果可以得到,當(dāng)無人機在盲區(qū)之內(nèi)飛行時,無人機之間通過所設(shè)計的算法成功避開了視覺盲區(qū)繼續(xù)飛行,并且速度最終達到一致性的效果。
圖10 無人機x方向速度與時間的關(guān)系
圖11 無人機y方向速度與時間的關(guān)系
本文是基于生物體群體飛行的特征,以小型無人機為研究對象,因小型無人機自身負載小的原因無人機之間只能安裝魚眼鏡頭作為視覺上的通信,雖然魚眼鏡頭可以擴大視野范圍,然而仍存在視覺盲區(qū),為解決這一問題,提出了使用代價函數(shù)對視覺盲區(qū)和非視覺盲區(qū)進行刻畫,利用二階積分器模型,根據(jù)代價函數(shù)的負梯度以及速度一致性得到無人機飛行控制器的實際的輸入。 最后通過Matlab仿真,驗證所設(shè)計控制器的合理性。然而本文只是考慮了使無人機避開盲區(qū)以及速度達到一致性,并沒有考慮到無人機的編隊和避障的需要。這一問題將在以后的研究工作中進行開展。