文章目录

  • 无人机集群复现算法模型对比
  • 1 参数
  • 1.1 原论文包含的参数
  • 1.2 优化论文包含参数
  • 2 模型
  • 2.1 原论文模型受到的作用力
  • 2.2 优化模型中受到的力
  • 3 评估指标
  • 3.1 原论文中评估指标
  • 3.2 优化论文中的评估指标
  • 3.2.1 适应度函数为
  • 4 CMA-ES


无人机集群复现算法模型对比

1 参数

1.1 原论文包含的参数

  • 惯性参数 无人机集群分布式通信 python 代码 无人机集群算法_取值CTRL,智能体需要从当前速度vi转变成期望速度vd,需要一定时间,加速度最大值amax,加速度取值:v/无人机集群分布式通信 python 代码 无人机集群算法_取值,amax中小者,论文中vmax取值为6m/s2
  • 内部噪音:传感器测量周围智能体位置和速度的精度,GPS测量的值存在误差,该误差用一个随机函数表示:无人机集群分布式通信 python 代码 无人机集群算法_算法_03is无人机集群分布式通信 python 代码 无人机集群算法_算法_04,速度测量误差e呈现高斯分布&&标准差为σs
  • 传感器数据刷新率,每秒获取多少次邻居的位置状态信息。0.2s/fresh,刷新率5s-1
  • 通信范围:rc,无人机之间的通信是在一定范围内的,当其距离大于rc,无人机之间不能相互通信。
  • time-delay:时间延迟,本文的时间延迟是固定的,发送与接受的途中需要传输时间。
  • 一般噪音项:无人机集群分布式通信 python 代码 无人机集群算法_算法_03it无人机集群分布式通信 python 代码 无人机集群算法_算法_04具有标准差σ的(高斯)外噪声项ηit被加到单位加速度上。该术语是不可预测的环境影响的模型,例如低层控制算法的风补偿的波动(直接作用于加速度),模拟随机外界影响,高斯噪音。

1.2 优化论文包含参数

  • 环境参数均一致:

    新论文中环境参数与前论文一样,都包含这6个环境参数。
  • 优化群体大小:100
  • 终止条件:150代

无人机集群分布式通信 python 代码 无人机集群算法_取值_07


新增的11个参数,包括排斥力参数,吸引力参数和墙壁(障碍物作用)参数。

2 模型

2.1 原论文模型受到的作用力

  • 目标牵引力,包含局部目标牵引力和全局目标牵引力两部分。
  • 无人机集群分布式通信 python 代码 无人机集群算法_算法_08

  • 无人机集群分布式通信 python 代码 无人机集群算法_取值_09iCoM表示局部中间点,局部中心点牵引物体向中间靠拢,
    无人机集群分布式通信 python 代码 无人机集群算法_取值_09trg是目标点位置,表示局部中心点在向目标点靠拢
  • 排斥力
  • 无人机集群分布式通信 python 代码 无人机集群算法_无人机_11

  • 排斥力和速度差成正比,速度越对齐,排斥力越小
    排斥力和距离成反比,距离大则排斥力小
  • 吸引力(对齐力)
  • 无人机集群分布式通信 python 代码 无人机集群算法_无人机_12

  • 当前速度与期望速度差越大,则吸引力越大,二者对齐力越大。
  • 无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_13

  • s(x, R, d)是一个平滑曲线,降低力的大小
    R是arena形状定义函数
  • 最后添加了一个生成特定形状的力,以圆形为例,生成的力作用于每个智能体,让智能体排列在圆的各个位置上,与中心角度为2*无人机集群分布式通信 python 代码 无人机集群算法_无人机_14

2.2 优化模型中受到的力

  • 排斥力
  • 无人机集群分布式通信 python 代码 无人机集群算法_算法_15

  • 两个参数:prep和prep0
  • 对齐力
  • 无人机集群分布式通信 python 代码 无人机集群算法_算法_16

  • 其中包含一个速度衰减方程D,

无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_17


衰减值越大,表明对齐作用力越大,当两个智能体距离一定,只要速度差在一定范围内,二者间对齐力会比较小。

  • 与墙壁和障碍物作用
  • 无人机集群分布式通信 python 代码 无人机集群算法_算法_18

  • 如果二者的速度差大于临界值,则会产生该墙壁作用力。
  • 最后,添加上一个自驱动力,该力的方向为智能体实际速度的方向,大小为vflock
  • 无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_19

  • 添加上一个速度限制,让速度最大为vmax
  • 无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_20

3 评估指标

3.1 原论文中评估指标

  • 速度相关性,

无人机集群分布式通信 python 代码 无人机集群算法_算法_21

对于不同的阻尼系数Cfrict,无人机集群分布式通信 python 代码 无人机集群算法_算法_22scal的取值不同,要让该值尽可能大。

  • 平均速度,

无人机集群分布式通信 python 代码 无人机集群算法_无人机_23

当在hover状态,D取不同的值,平均速度会有不同的震荡情况,当无人机集群分布式通信 python 代码 无人机集群算法_算法_24GPS=0, 无人机集群分布式通信 python 代码 无人机集群算法_算法_24=0, Cfrict取得不同值的时候,无人机集群分布式通信 python 代码 无人机集群算法_算法_22vel震荡幅度也会不同,我们目标是让震荡幅度趋近于0。

无人机集群分布式通信 python 代码 无人机集群算法_无人机_27

无人机集群分布式通信 python 代码 无人机集群算法_无人机_28

无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_29

  • 这些评估参数的目的是确定模型中的各类系数,如排斥系数D,阻尼系数Cfrict,尽量让评估参数处于较为稳定的目标区间,从而提升系统的稳定性。

源代码中使用的参数为:

无人机集群分布式通信 python 代码 无人机集群算法_算法_30

3.2 优化论文中的评估指标

无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_31corr:速度相关性指标

无人机集群分布式通信 python 代码 无人机集群算法_无人机_32

无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_31coll:碰撞评估指标

无人机集群分布式通信 python 代码 无人机集群算法_算法_34

其中rcoll是定义的特征常数,论文中为3m,表示距离小于等于3米,即视为发生碰撞。

无人机集群分布式通信 python 代码 无人机集群算法_时间延迟_31wall:与墙壁碰撞的概率参数

无人机集群分布式通信 python 代码 无人机集群算法_算法_36

平均速度指标

无人机集群分布式通信 python 代码 无人机集群算法_取值_37

3.2.1 适应度函数为

本文中使用了单适应度函数,包含不同的评估标准。定义了全局适应度函数

  • 三种转化函数:(让F的取值位于0到1之间)

让x从x0-d平滑正弦衰减到x0


无人机集群分布式通信 python 代码 无人机集群算法_无人机_38

  • 单适应度函数如下:

无人机集群分布式通信 python 代码 无人机集群算法_算法_39

该单适应度函数考虑了所有让集群行为安全的因素。

vtol, atol,rtol的取值决定了这些不同的适应度子函数在整体适应度函数中的权重。

4 CMA-ES

设定适应度函数F,上面的11维参数作为F的未知参数,优化目标,使得F取得接近1的极大值时11维参数的输出结果。

例子:

三维函数 f=sum(x.^2); 运行求极小值。如图所示结果:

无人机集群分布式通信 python 代码 无人机集群算法_无人机_40

当x取(0, 0, 0)时,f取得最小值,优化目标让x取值为该坐标,并输出(0, 0, 0)。

github上的开源代码

无人机集群分布式通信 python 代码 无人机集群算法_取值_41