赞
踩
原文地址:[1]林倩玉. 多无人机协同编队控制算法研究[D].哈尔滨工业大学,2018.
航向角的动态模型是
ψ
˙
i
=
1
τ
ψ
(
ψ
i
c
−
ψ
i
)
(3-1)
\dot{\psi}_i = \frac{1}{\tau_\psi} (\psi^c_i - \psi_i) \tag{3-1}
ψ˙i=τψ1(ψic−ψi)(3-1)
ψ i \psi_i ψi:当前航向角
ψ i c \psi_i^c ψic:航向指令
航向角的一致性控制算法如下:
{
ψ
i
c
=
ψ
i
+
1
1
+
n
i
u
i
u
i
=
−
∑
j
=
1
n
a
i
j
(
ψ
i
−
ψ
j
)
(3-2)
\left\{
n i n_i ni 是无人机 i i i 的邻居无人机的个数。
指定航向角的一致性算法为:
{
ψ
i
c
=
ψ
i
+
1
1
+
n
i
u
i
u
i
=
−
b
i
(
ψ
i
−
ψ
∗
)
−
∑
j
=
1
n
a
i
j
(
ψ
i
−
ψ
j
)
(3-3)
\left\{
ψ ∗ \red{\psi^*} ψ∗ 为指定航向角。
速度动态模型为:
v
˙
i
=
α
v
(
v
i
c
−
v
i
)
(3-5)
\dot{v}_i = \alpha_v (v^c_i - v_i) \tag{3-5}
v˙i=αv(vic−vi)(3-5)
速度一致性控制算法为:
{
v
i
c
=
v
i
+
τ
v
u
i
u
i
=
−
∑
j
=
1
n
a
i
j
(
v
i
−
v
j
)
(3-6)
\left\{
指定编队收敛时的飞行速度控制算法为:
{
v
i
c
=
v
i
+
τ
v
u
i
u
i
=
−
c
i
(
v
i
−
v
∗
)
−
∑
j
=
1
n
a
i
j
(
v
i
−
v
j
)
(3-7)
\left\{
c i > 0 \red{c_i}>0 ci>0 时控制系数。
无人机高度动态模型为:
z
¨
i
=
−
1
τ
z
˙
z
˙
i
−
1
τ
z
(
z
i
c
−
z
i
)
(3-8)
\ddot{z}_i = -\frac{1}{\tau_{\dot{z}}} \dot{z}_i - \frac{1}{\tau_z} (z^c_i - z_i) \tag{3-8}
z¨i=−τz˙1z˙i−τz1(zic−zi)(3-8)
高度一致性控制算法:
{
z
i
c
=
z
i
+
τ
z
τ
z
˙
z
˙
i
+
τ
z
u
i
u
i
=
−
k
z
˙
i
−
∑
j
=
1
n
a
i
j
[
(
v
i
−
v
j
)
+
γ
(
z
˙
i
−
z
˙
j
)
]
(3-10)
\left\{
有外部参考输入下的算法:
{
z
i
c
=
z
i
+
τ
z
τ
z
˙
z
˙
i
+
τ
z
u
i
u
i
=
−
d
i
(
z
i
−
z
∗
)
−
k
z
˙
i
−
∑
j
=
1
n
a
i
j
[
(
v
i
−
v
j
)
+
γ
(
z
˙
i
−
z
˙
j
)
]
(3-12)
\left\{
当编队稳定时,其横侧向平面内有:
(
x
i
′
−
x
i
F
′
)
−
(
x
j
′
−
x
j
F
′
)
=
0
(x^{'}_i - x^{'}_{iF}) - (x^{'}_j - x^{'}_{jF}) = 0
(xi′−xiF′)−(xj′−xjF′)=0
(
y
i
′
−
y
i
F
′
)
−
(
y
j
′
−
y
j
F
′
)
=
0
(y^{'}_i - y^{'}_{iF}) - (y^{'}_j - y^{'}_{jF}) = 0
(yi′−yiF′)−(yj′−yjF′)=0
即:
(
x
i
′
−
x
i
F
′
)
−
(
x
j
′
−
x
j
F
′
)
=
x
i
′
−
x
j
′
−
x
i
j
′
r
=
0
(x^{'}_i - x^{'}_{iF}) - (x^{'}_j - x^{'}_{jF}) = x^{'}_i - x^{'}_j - x^{'r}_{ij} = 0
(xi′−xiF′)−(xj′−xjF′)=xi′−xj′−xij′r=0
(
y
i
′
−
y
i
F
′
)
−
(
y
j
′
−
y
j
F
′
)
=
y
i
′
−
y
j
′
−
y
i
j
′
r
=
0
(y^{'}_i - y^{'}_{iF}) - (y^{'}_j - y^{'}_{jF}) = y^{'}_i - y^{'}_j - y^{'r}_{ij} = 0
(yi′−yiF′)−(yj′−yjF′)=yi′−yj′−yij′r=0
x i j ′ r , y i j ′ r \red{x^{'r}_{ij}},\red{y^{'r}_{ij}} xij′r,yij′r 分别表示无人机之间的预定机间距离。
多无人机协同编队的控制算法如下:
{
v
i
c
=
v
i
−
∑
j
=
1
n
a
i
j
[
τ
v
(
v
i
−
v
j
)
+
k
i
v
(
x
i
′
−
x
j
′
−
x
i
j
′
r
)
]
ψ
i
c
=
ψ
i
−
∑
j
=
1
n
a
i
j
[
1
1
+
n
i
(
ψ
i
−
ψ
j
)
+
k
i
ψ
∑
j
∈
N
i
(
y
i
′
−
y
j
′
−
y
i
j
′
r
)
]
(3-16)
\left\{
k i v , k i ψ \red{k^v_i},\red{k^{\psi}_i} kiv,kiψ 分别用于调整无人机间隔的控制增益。
上式是进行队形控制的最基本算法。如果要指定编队的某些飞行状态,可由上式衍生出以下三种队形控制算法:
1)指定飞行航向,
ψ
i
→
ψ
∗
\psi_i \rightarrow \psi^*
ψi→ψ∗
{
v
i
c
=
v
i
−
∑
j
=
1
n
a
i
j
[
τ
v
(
v
i
−
v
j
)
+
k
i
v
(
x
i
′
−
x
j
′
−
x
i
j
′
r
)
]
ψ
i
c
=
ψ
i
−
b
i
(
ψ
i
−
ψ
∗
)
−
∑
j
=
1
n
a
i
j
[
1
1
+
n
i
(
ψ
i
−
ψ
j
)
+
k
i
ψ
∑
j
∈
N
i
(
y
i
′
−
y
j
′
−
y
i
j
′
r
)
]
(3-17)
\left\{
2)指定飞行速度
3)指定飞行速度和飞行航向
{
z
i
c
=
z
i
+
τ
z
τ
z
˙
z
˙
i
+
τ
z
u
i
u
i
=
−
k
z
˙
i
−
∑
j
=
1
n
a
i
j
[
(
z
i
−
z
j
−
z
i
j
r
)
+
γ
(
z
˙
i
−
z
˙
j
)
]
(3-20)
\left\{
当编队稳定收敛时,编队成员之间的机间距离满足式(3-22)时,则认为队形稳定。
{
lim
t
→
∞
(
x
i
′
(
t
)
−
x
j
′
(
t
)
)
=
x
i
j
′
(
t
)
lim
t
→
∞
(
y
i
′
(
t
)
−
y
j
′
(
t
)
)
=
y
i
j
′
(
t
)
lim
t
→
∞
(
z
i
′
(
t
)
−
z
j
′
(
t
)
)
=
z
i
j
′
(
t
)
lim
t
→
∞
(
v
i
(
t
)
−
v
j
(
t
)
)
=
0
lim
t
→
∞
(
ψ
i
(
t
)
−
ψ
j
(
t
)
)
=
0
(3-22)
\left\{
高度有错误,修改后调出来了。
同时还给出了高度爬升时的速度曲线。
下图结果对应程序 Fig3_6_1_20220812.m
论文中的仿真结果图如下:
下图结果对应程序 Fig3_6_2_20220813_formation
高度曲线之前一直没有调整出来,最近又看了一下,发现了问题。
问题就出现在下图中箭头位置,应该是 z i − z i c z_i - z_i^c zi−zic,但是论文中给的错了。
位置状态的初始值如果设置不好的话,容易造成不一致的情况。
论文中给的
y
4
=
−
73
y_4 = -73
y4=−73,仿真出来的结果刚好差了一个周期。
结果如下图,刚好从
π
4
=
0.7854
\frac{\pi}{4} =0.7854
4π=0.7854 跑到了
π
4
+
2
π
=
7.0686
\frac{\pi}{4}+2\pi = 7.0686
4π+2π=7.0686。
解决办法就是调下一下初始值就行了。
需要程序代码可加+V:Zhao-Jichao
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。