无人机集群编队控制算法,二维,三维空间MATALB仿真
引言
本人研究生期间,主要研究无人机集群编队,目标追踪,避障,路径规划等,参考了大量论文,也走了不少弯路,今天将一些心得写出来,希望能够帮到师弟师妹们,早发论文,早日毕业。
无人机集群编队
什么叫编队?就是几架无人机保持一个特定的队形移动而已。
什么叫集群?就是很多无人机协调一致的运动,这里面用到了一致性思想。
代码中如何体现?管它什么无人机,无人艇,无人飞船,全部都是质点。
如果考虑到通信,划分通信范围;如果考虑到避障,划分防碰撞范围。本质来说都是以无人机质点为中心得一个圆(二维)或者一个球(三维)。
很多论文中会提出一些算法的背景,比如受到生物集群迁徙等行为的影响,牛群,羊群,蜜蜂等等,论文中这么写可以,代码实现要抓住本质!
另外,我这里着重介绍集群,或许有很多同学研究的只是少量的几个无人机编队,我也希望你们能够看下去,因为多的无人机都能编队了,少的当然更可以了。
---------------- 介绍两个人,或者说是两种算法 ----------------
Reynlod和Olfati-Saber,搞过集群,看过相关论文的都知道他俩,也很熟悉下面这两图吧,图2是我代码跑出来的,标准三维集群。
Biods模型
三维集群模型
1.首先介绍Biods模型的思想:分离,内聚,对齐。
通俗的来说,就是靠的太近的无人机彼此分离,以免碰撞;靠的太远的无人机彼此吸引,以免分散;速度对齐,保持一致,这就是一致性的思想。
这是一种局部的算法,每一架无人机通过其通信范围内的邻居无人机的运动状态,适时调整自身的状态。
其代码实现的本质为:向量
注意,下面的位置和速度都是向量
位置更新,根据当前时刻无人机i的位置向量和当前时刻无人机邻居j的位置向量,求得下一时刻无人机i的位置
Pi(t+1)=Pi_(t)+(Pi_(t)-Pj_(t))/f(||Pi_(t)-Pj_(t)||)Vi_(t+1)=Vi_(t)+(Vi_(t)-Vj_(t))/g(||Vi_(t)-Vj_(t)||)
速度一样,只是要调参。
Vi_(t+1)=Vi_(t)+(Vi_(t)-Vj_(t))/g(||Vi_(t)-Vj_(t)||)
至于无人机之间怎么避碰,是同样的原理。注意,无人机j是无人机i的邻居,什么叫邻居?通信范围内的;那么避碰的时候呢?对,就是防碰撞范围内的。
2.介绍Olfati-Saber模型的思想
另外,介绍一个重要的概念,什么叫势能?在代码中,无人机是怎么运动起来的呢?
所谓的势能,其实就是距离。MTALB仿真,不论是二维还是三维,首先生成一些随机散乱的点,
N=20;%数量
p =2*rand(2,N);%位置
那么计算各个点之间的距离,然后自己设置一个势能函数f,就可以求得势能。
F=f(||p(i)-p(j)||)
然后用一个方法就去降低势能,比如常用的梯度下降算法等,就可以不断地迭代,求得无人机每一次的位置。
然后,画出这些位置,无人机就运动起来了。
人工势场法也就是这个意思
看到这里,同学们肯定觉得我说了一些废话,既不给你们看代码,也不给你们看具体的公式。我只是想先让你们理解,树立一个意识,因为论文是需要创新的,创新点在哪里,就是在这些公式里面,很多论文换一个势能函数,换几个公式就是创新了!!!
别着急,后面我会把代码和公式给大家。
动力学方程:
无人机邻居集合:
无人机稳定时状态:
控制方程:
势能函数:
平滑函数:
总势能:
后面还有很多公式,我就不一一粘贴了,因为我的本意不是将论文的一些公式摆出来,大家自己去找论文看就好了,我是想要讲解一下我的心得。
至于大家最关心的代码问题,如果需要,我会给大家。
无人机避障
避障的本质:就是障碍物给无人机一个反向的作用力。
就像我之前写的,在代码中一切都是质点,只是有些具有范围。
障碍物就是有范围的质点,我们可以获取到它的坐标,怎么获取?感知范围。怎么避障?一个反向的作用力,更新位置。
看到这,还是一脸懵逼么。MATLAB操作的都是矩阵,这个是核心,我们做的研究,只涉及到位置矩阵,速度矩阵,这也是核心。
至于公式,代码,我后期会更新。
无人机目标追踪
目标追踪的本质:就是目标给无人机一个正向的作用力。
和避障相反,无人机感知到目标之后会给其一个正向吸引的作用力。
动态目标怎么办?
要有预测。
此时需要用到的算法有,kalman滤波算法及其衍生算法KF-kalman,UKF-kalman,DKF-kalman。如果是做无人机集群,建议用DKF-kalman。
一致性思想的本质:就是降低差异性,通过邻居的动作调整自身,最后所有无人机协调一致运动。
这一思想在无人机协同控制方程中有体现,在分布式卡尔曼滤波算法中也有体现。
最后,给大家看一下我做的无人机集群的仿真结果吧。
关于目标追踪,有单目标追踪和多目标追踪。这部分我下次再介绍。
版权归原作者 起个名字真的烦 所有, 如有侵权,请联系我们删除。