基于松鼠算法的無人機(jī)航跡規(guī)劃
摘要:本文主要介紹利用松鼠算法來優(yōu)化無人機(jī)航跡規(guī)劃。
1.松鼠搜索算法
松鼠算法原理請參考:https://blog.csdn.net/u011835903/article/details/116223542
2.無人機(jī)飛行環(huán)境建模
? 環(huán)境模型的建立是考驗(yàn)無人機(jī)是否可以圓滿完成人類所賦予各項(xiàng)任務(wù)的基
礎(chǔ)和前提,其中第一步便是如何描述規(guī)劃空間中的障礙物。首先我們將采取函數(shù)模擬法模擬地貌特征。其函數(shù)表達(dá)式為:
z
(
x
,
y
)
=
s
i
n
(
y
+
a
)
+
b
s
i
n
(
x
)
+
c
c
o
s
(
d
y
2
+
x
2
)
+
e
c
o
s
(
y
)
+
f
s
i
n
(
f
y
2
+
x
2
)
+
g
c
o
s
(
y
)
(1)
z(x,y)=sin(y+a)+bsin(x)+ccos(d\sqrt{y^2+x^2})+ecos(y)+fsin(f\sqrt{y^2+x^2})+gcos(y)\tag{1}
z(x,y)=sin(y+a)+bsin(x)+ccos(dy2+x2?)+ecos(y)+fsin(fy2+x2?)+gcos(y)(1)
其中,
(
x
,
y
)
(x, y)
(x,y) 為地形上某點(diǎn)投影在水平面上的點(diǎn)坐標(biāo),
z
z
z 則為對應(yīng)點(diǎn)坐標(biāo)的高度。式中
a
,
b
,
c
,
d
,
e
,
f
,
g
a, b, c, d, e, f , g
a,b,c,d,e,f,g 是常系數(shù),想要得到不同的地貌特征可以通過改變其常系數(shù)的大小,以上建模是作為環(huán)境模型的基準(zhǔn)地形信息。但為了得到障礙區(qū)域我們還需要在這個基準(zhǔn)地形上疊加山峰模型,這樣就可以模擬像山峰、丘陵等障礙地理信息。山峰模型的數(shù)學(xué)表達(dá)式為:
h
(
x
,
y
)
=
∑
i
h
i
e
x
p
[
?
(
x
?
x
o
i
)
2
a
i
2
?
(
y
?
y
o
i
)
2
b
i
2
]
+
h
o
(2)
h(x,y)=\sum_ih_iexp[-\frac{(x-x_{oi})^2}{a_i^2}-\frac{(y-y_{oi})^2}{b_i^2}]+h_o \tag{2}
h(x,y)=i∑?hi?exp[?ai2?(x?xoi?)2??bi2?(y?yoi?)2?]+ho?(2)
式 (2)中,
h
o
h_o
ho? 和
h
i
h_i
hi? 分別表示基準(zhǔn)地形和第
i
i
i座山峰的高度,
(
x
o
i
,
y
o
i
)
(xoi , y oi )
(xoi,yoi)則表示第 i座山峰的中心坐標(biāo)位置,a i 和 b i 分別是第 i 座山峰沿 x 軸和 y 軸方向的坡度。由式(1)和(2),我們可以得到如下表達(dá)式:
Z
(
x
,
y
)
=
m
a
x
[
z
(
x
,
y
)
,
h
(
x
,
y
)
]
(3)
Z(x,y)=max[z(x,y),h(x,y)]\tag{3}
Z(x,y)=max[z(x,y),h(x,y)](3)
無人機(jī)在躲避障礙物的同時也會經(jīng)常遇到具有威脅飛行安全的區(qū)域,我們稱之為威脅區(qū)域。這些威脅區(qū)域可以是敵人的雷達(dá)和防空導(dǎo)彈系統(tǒng)的探測威脅區(qū)域也可以是一些其它的威脅,一旦無人機(jī)進(jìn)入這些區(qū)域很有可能會被擊落或者墜毀。為了簡化模型,本文采用半徑為 r 的圓柱形區(qū)域表示威脅區(qū)域,其半徑的大小決定威脅區(qū)域的覆蓋范圍。每一個圓柱體的中心位置是對無人機(jī)構(gòu)成最大威脅的地方并向外依次減弱。
3.無人機(jī)航跡規(guī)劃建模
? 在環(huán)境建模的基礎(chǔ)上,無人機(jī)航跡規(guī)劃需要考慮到在執(zhí)行復(fù)雜任務(wù)的過程中自身性能約束要求,合理的設(shè)計(jì)航跡評價(jià)函數(shù)才能使得松鼠搜索算法得出的最后結(jié)果符合要求,并保證規(guī)劃出的航跡是有效的??紤]到實(shí)際環(huán)境中,無人機(jī)需要不斷適應(yīng)變化的環(huán)境。所以在無人機(jī)路徑規(guī)劃過程中,最優(yōu)路徑會顯得比較復(fù)雜,并包含許多不同的特征?;趯?shí)際的情況,本文采用較為復(fù)雜的航跡評價(jià)函數(shù)進(jìn)行無人機(jī)路徑規(guī)劃。影響無人機(jī)性能的指標(biāo)主要包括航跡長度、飛行高度、最小步長、轉(zhuǎn)角代價(jià)、最大爬升角等。
? 搜索最佳路徑通常與搜索最短路徑是密不可分的。在無人機(jī)航跡規(guī)劃過程中,航跡的長度對于大多數(shù)航跡規(guī)劃任務(wù)來說也是非常重要的。眾所周知,較短的路線可以節(jié)省更多的燃料和更多的時間并且發(fā)現(xiàn)未知威脅的幾率會更低。我們一般把路徑定義為無人機(jī)從起始點(diǎn)到終點(diǎn)所飛行路程的值,設(shè)一條完整的航線有
n
n
n個節(jié)點(diǎn),其中第
i
i
i個航路點(diǎn)和第
i
+
1
i+1
i+1個航路點(diǎn)之間的距離表示為
l
i
l_i
li? ,這兩個航路點(diǎn)的坐標(biāo)分別表示為
(
x
i
,
y
i
,
z
i
)
(x_i,y_i,z_i )
(xi?,yi?,zi?),
(
x
i
+
1
,
y
i
+
1
,
z
i
+
1
)
(x_{i+1}, y_{i+1},z_{i+1})
(xi+1?,yi+1?,zi+1?)并分別記作
g
(
i
)
g(i)
g(i)和
g
(
i
+
1
)
g(i+1)
g(i+1)。航跡需要滿足如下條件:
{
l
i
=
∣
∣
g
(
i
+
1
)
?
g
(
i
)
∣
∣
2
L
p
a
t
h
=
∑
i
=
1
n
?
1
l
i
(4)
\begin{cases} l_i = ||g(i+1)-g(i)||_2\\ L_{path}=\sum_{i=1}^{n-1}l_i \end{cases}\tag{4}
{li?=∣∣g(i+1)?g(i)∣∣2?Lpath?=∑i=1n?1?li??(4)
在飛行的過程中會遇到障礙物或者進(jìn)入威脅區(qū)域,如果無人機(jī)無法躲避障礙物或者飛入了威脅區(qū)域?qū)⒚媾R被擊落或墜毀的危險(xiǎn)以至于無法到達(dá)終點(diǎn),記為
L
p
a
t
h
=
∞
L_{path}=\infty
Lpath?=∞,但是無窮函數(shù)在實(shí)際問題中很難表示,我們采用懲罰的方式進(jìn)行處理。一般情況下,為了利用地形覆蓋自身位置,無人機(jī)應(yīng)盡可能降低高度這可以幫助自身避免一些未知雷達(dá)等威脅。但是太低的飛行高度同樣會加大無人機(jī)同山體和地面的撞擊幾率,因此設(shè)定穩(wěn)定的飛行高度是非常重要的。飛行高度不應(yīng)該有太大的變化,穩(wěn)定的飛行高度可以減少控制系統(tǒng)的負(fù)擔(dān),節(jié)省更多的燃料 。為了使無人機(jī)飛行更加安全,給出的飛行高度模型:
{
h
h
e
i
g
h
t
=
1
n
∑
i
=
0
n
?
1
(
z
(
i
)
?
z
 ̄
)
2
z
 ̄
=
1
n
∑
i
=
0
n
?
1
z
(
i
)
(5)
\begin{cases} h_{height}=\sqrt{\frac{1}{n}\sum_{i=0}^{n-1}(z(i)-\overline{z})^2}\\ \overline{z}=\frac{1}{n}\sum_{i=0}^{n-1}z(i) \end{cases}\tag{5}
{hheight?=n1?∑i=0n?1?(z(i)?z)2?z=n1?∑i=0n?1?z(i)?(5)
無人機(jī)的可操作性也受到其轉(zhuǎn)角代價(jià)函數(shù)的限制。,在飛行過程中無人機(jī)的轉(zhuǎn)角應(yīng)不大于其預(yù)先設(shè)定的最大轉(zhuǎn)角,轉(zhuǎn)角的大小會影響其飛行的穩(wěn)定性。本文的研究中,設(shè)定最大轉(zhuǎn)角為
Φ
Φ
Φ,當(dāng)前轉(zhuǎn)角為
θ
\theta
θ并且
a
i
a_i
ai?是第
i
i
i段航路段向量。
{
c
o
s
θ
=
a
i
T
a
i
+
1
∣
a
i
∣
∣
a
i
+
1
∣
J
t
u
r
n
=
∑
i
=
1
n
(
c
o
s
(
Φ
?
c
o
s
θ
)
)
(6)
\begin{cases} cos\theta =\frac{a_i^Ta_{i+1}}{|a_i||a_{i+1}|}\\ J_{turn}=\sum_{i=1}^n(cos(\Phi-cos\theta)) \end{cases}\tag{6}
{cosθ=∣ai?∣∣ai+1?∣aiT?ai+1??Jturn?=∑i=1n?(cos(Φ?cosθ))?(6)
其中,
∣
a
∣
|a|
∣a∣代表矢量
a
a
a的長度。
? 通過對以上三個方面建立了無人機(jī)航跡規(guī)劃的代價(jià)函數(shù),可以得出本文的航跡評價(jià)函數(shù)如下:
J
c
o
s
t
=
w
1
L
p
a
t
h
+
w
2
h
h
e
i
g
h
t
+
w
3
J
t
u
r
n
(7)
J_{cost}=w_1L_{path}+w_2h_{height}+w_3J_{turn} \tag{7}
Jcost?=w1?Lpath?+w2?hheight?+w3?Jturn?(7)
其中,
J
c
o
s
t
J_{cost}
Jcost?是總的代價(jià)函數(shù),參數(shù)
w
i
w_i
wi? ,
i
=
1
,
2
,
3
i=1,2,3
i=1,2,3 表示每個代價(jià)函數(shù)的權(quán)值,且滿足如下條件:
{
w
i
≥
0
∑
i
=
1
3
w
i
=
1
(8)
\begin{cases} w_i\geq0 \\ \sum_{i=1}^3 w_i=1 \end{cases} \tag{8}
{wi?≥0∑i=13?wi?=1?(8)
通過對總的代價(jià)函數(shù)進(jìn)行有效地處理,我們可以得到由線段組成的航跡。不可否認(rèn)的是得到的路徑往往是僅在理論上可行,但為了實(shí)際可飛,有必要對航跡進(jìn)行平滑處理。本文采用三次樣條插值的方法對路徑進(jìn)行平滑。
4.實(shí)驗(yàn)結(jié)果
4.1地圖創(chuàng)建
設(shè)置地圖參數(shù)a, b, c, d, e, f , g=1。地圖大小為:200*200。設(shè)置三個山峰,山峰信息如表1所示。威脅區(qū)域信息如表2所示
信息 | 山峰中心坐標(biāo) | 山峰高度 | 山峰X方向坡度 | 山峰y方向坡度 |
---|---|---|---|---|
山峰1 | [60,60] | 50 | 20 | 20 |
山峰2 | [100,100] | 60 | 30 | 30 |
山峰3 | [150,150] | 80 | 20 | 20 |
信息 | 威脅區(qū)域中心坐標(biāo) | 威脅區(qū)域半徑 |
---|---|---|
威脅區(qū)域1 | [150,50] | 30 |
威脅區(qū)域2 | [50,150] | 20 |
創(chuàng)建的地圖如下:
4.2 航跡規(guī)劃
設(shè)置起點(diǎn)坐標(biāo)為[0,0,20],終點(diǎn)坐標(biāo)為[200,200,20]。利用松鼠算法對航跡評價(jià)函數(shù)式(7)進(jìn)行優(yōu)化。優(yōu)化結(jié)果如下:
從結(jié)果來看,松鼠算法規(guī)劃出了一條比較好的路徑,表明算法具有一定的優(yōu)勢。文章來源:http://www.zghlxwxcb.cn/news/detail-736936.html
5.參考文獻(xiàn)
[1]薛建凱. 一種新型的群智能優(yōu)化技術(shù)的研究與應(yīng)用[D].東華大學(xué),2020.DOI:10.27012/d.cnki.gdhuu.2020.000178.文章來源地址http://www.zghlxwxcb.cn/news/detail-736936.html
6.Matlab代碼
到了這里,關(guān)于基于松鼠算法的無人機(jī)航跡規(guī)劃-附代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!