当前位置: 首页 > news >正文

融合竞争学习与高斯扰动的多目标加权平均算法(MOWAA)求解多无人机协同路径规划(多起点多终点,起始点、无人机数、障碍物可自定义),提供完整MATLAB代码

一、MOWAA介绍

融合竞争学习与高斯扰动的多目标加权平均算法(MOWAA)介绍

二. 无人机路径规划数学模型

2.1 路径成本

为了提高无人机的操作效率,规划的路径需要在特定的应用标准下达到最优。在我们的研究中,主要关注空中摄影、测绘和表面检查,因此选择最小化路径长度作为优化目标。由于无人机通过地面控制站(GCS)进行控制,飞行路径 XiX_iXi 被表示为无人机需要飞越的一系列 nnn 个航路点的列表。每个航路点对应于搜索地图中的一个路径节点,其坐标为 Pij=(xij,yij,zij)P_{ij} = (x_{ij}, y_{ij}, z_{ij})Pij=(xij,yij,zij)。通过表示两个节点之间的欧几里得距离为 $| \overrightarrow{P_{ij}P_{i,j+1}} |,与路径成本 F1F_1F1 可以计算为:

F1(X)=∑j=1n−1∥PijPi,j+1→∥F_1(X) = \sum_{j=1}^{n-1} \| \overrightarrow{P_{ij}P_{i,j+1}} \| F1(X)=j=1n1PijPi,j+1

2.2 约束成本

无人机的约束成本包含威胁成本,飞行高度成本,平滑成本。

(1)威胁成本

除了最优性之外,规划的路径还需要确保无人机的安全操作,引导其避开操作空间中可能出现的威胁,这些威胁通常由障碍物引起。设 KKK 为所有威胁的集合,每个威胁被假设为一个圆柱体,其投影的中心坐标为 CkC_kCk,半径为 RkR_kRk,如下图 所示。
在这里插入图片描述

对于给定的路径段 ∥PijPi,j+1→∥\| \overrightarrow{P_{ij}P_{i,j+1}} \|PijPi,j+1,其相关的威胁成本与它到 CkC_kCk 的距离 dkd_kdk 成正比。考虑到无人机的直径 DDD 和到碰撞区域的危险距离 SSS,威胁成本 F2F_2F2 在障碍物集合 KKK 上计算如下:

F2(Xi)=∑j=1n−1∑k=1KTk(PijPi,j+1→),F_2(X_i) = \sum_{j=1}^{n-1} \sum_{k=1}^K T_k(\overrightarrow{P_{ij}P_{i,j+1}}), F2(Xi)=j=1n1k=1KTk(PijPi,j+1),

其中

Tk(PijPi,j+1→)={0,if dk>S+D+Rk(S+D+Rk)−dk,if D+Rk<dk≤S+D+Rk∞,if dk≤D+RkT_k(\overrightarrow{P_{ij}P_{i,j+1}}) = \begin{cases} 0, & \text{if } d_k > S + D + R_k \\ (S + D + R_k) - d_k, & \text{if } D + R_k < d_k \leq S + D + R_k \\ \infty, & \text{if } d_k \leq D + R_k \end{cases} Tk(PijPi,j+1)=0,(S+D+Rk)dk,,if dk>S+D+Rkif D+Rk<dkS+D+Rkif dkD+Rk

(2)飞行高度成本

在操作过程中,飞行高度通常被限制在给定的最小和最大高度之间,例如在调查和搜索应用中,需要相机以特定的分辨率和视场收集视觉数据,从而限制飞行高度。设最小和最大高度分别为 hminh_{\text{min}}hminhmaxh_{\text{max}}hmax。与航路点 PijP_{ij}Pij 相关的高度成本计算为:

Hij={∣hij−hmax+hmin2∣,if hmin≤hij≤hmax∞,otherwiseH_{ij} = \begin{cases} |h_{ij} - \frac{h_{\text{max}} + h_{\text{min}}}{2}|, & \text{if } h_{\text{min}} \leq h_{ij} \leq h_{\text{max}} \\ \infty, & \text{otherwise} \end{cases} Hij={hij2hmax+hmin,,if hminhijhmaxotherwise

其中 hijh_{ij}hij 表示相对于地面的飞行高度,如下图所示。
在这里插入图片描述

可以看出,HijH_{ij}Hij 保持平均高度并惩罚超出范围的值。对所有航路点求和得到高度成本:

F3(X)=∑j=1nHijF_3(X) = \sum_{j=1}^n H_{ij} F3(X)=j=1nHij

(3)平滑成本

平滑成本评估转弯率和爬升率,这对于生成可行路径至关重要。如下图 所示。
在这里插入图片描述

转弯角 ϕij\phi_{ij}ϕij 是两个连续路径段 Pij′Pi,j+1′→\overrightarrow{P'_{ij}P'_{i,j+1}}PijPi,j+1Pi,j+1′Pi,j+2′→\overrightarrow{P'_{i,j+1}P'_{i,j+2}}Pi,j+1Pi,j+2 在水平面 Oxy 上的投影之间的角度。设 k→\overrightarrow{k}k 是 z 轴方向的单位向量,投影向量可以计算为:

Pij′Pi,j+1′→=k→×(PijPi,j+1→×k→)\overrightarrow{P'_{ij}P'_{i,j+1}} = \overrightarrow{k} \times (\overrightarrow{P_{ij}P_{i,j+1}} \times \overrightarrow{k}) PijPi,j+1=k×(PijPi,j+1×k)

因此,转弯角计算为:

ϕij=arctan⁡(∥Pij′Pi,j+1′→×Pi,j+1′Pi,j+2′→∥PijPi,j+1′→⋅Pi,j+1′Pi,j+2′→)\phi_{ij} = \arctan\left( \frac{\| \overrightarrow{P'_{ij}P'_{i,j+1}} \times \overrightarrow{P'_{i,j+1}P'_{i,j+2}} \|}{\overrightarrow{P_{ij}P'_{i,j+1}} \cdot \overrightarrow{P'_{i,j+1}P'_{i,j+2}}} \right) ϕij=arctanPijPi,j+1Pi,j+1Pi,j+2PijPi,j+1×Pi,j+1Pi,j+2

爬升角 ψij\psi_{ij}ψij 是路径段 PijPi,j+1→\overrightarrow{P_{ij}P_{i,j+1}}PijPi,j+1 与其在水平面上的投影 Pij′Pi,j+1′→\overrightarrow{P'_{ij}P'_{i,j+1}}PijPi,j+1 之间的角度,由下式给出:

ψij=arctan⁡(zi,j+1−zij∥Pij′Pi,j+1′→∥)\psi_{ij} = \arctan\left( \frac{z_{i,j+1} - z_{ij}}{\| \overrightarrow{P'_{ij}P'_{i,j+1}} \|} \right) ψij=arctanPijPi,j+1zi,j+1zij

然后,平滑成本计算为:

F4(X)=a1∑j=1n−2ϕij+a2∑j=1n−1∣ψij−ψj−1∣F_4(X) = a_1 \sum_{j=1}^{n-2} \phi_{ij} + a_2 \sum_{j=1}^{n-1} |\psi_{ij} - \psi_{j-1}| F4(X)=a1j=1n2ϕij+a2j=1n1ψijψj1

其中 a1a_1a1a2a_2a2 分别是转弯角和爬升角的惩罚系数。

2.3 目标函数

若共有mmm 个无人机,f1f_1f1 表示mmm 个无人机的路径成本之和;f2f_2f2 表示mmm 个无人机的约束成本之和,计算公式如下:
f1(X)=∑i=1mb1F1(Xi)f_1(X) = \sum_{i=1}^m b_1F_1(X_i) f1(X)=i=1mb1F1(Xi)
f2(X)=∑k=24∑i=1mbkFk(Xi)f_2(X) =\sum_{k=2}^4 \sum_{i=1}^m b_kF_k(X_i) f2(X)=k=24i=1mbkFk(Xi)
其中 bkb_kbk 是权重系数,第iii 个无人机的路径成本F1(Xi)F_1(X_i)F1(Xi); 第iii 个无人机的约束成本为威胁成本F2(Xi)F_2(X_i)F2(Xi)、飞行高度成本F3(Xi)F_3(X_i)F3(Xi)、平滑成本F4(Xi)F_4(X_i)F4(Xi)、之和。决策变量是 XXX,包括 nnn 个航路点 Pij=(xij,yij,zij)P_{ij} = (x_{ij}, y_{ij}, z_{ij})Pij=(xij,yij,zij) 的列表,使得 Pij∈OP_{ij} \in OPijO,其中 OOO 是无人机的操作空间。

参考文献:
[1] Phung M D , Ha Q P .Safety-enhanced UAV path planning with spherical vector-based particle swarm optimization[J].Applied Soft Computing, 2021(2):107376.DOI:10.1016/j.asoc.2021.107376.

三、部分MATLAB代码及结果

%% 画图
lineColor=linspecer(UAVnum);%%路径颜色
for Anum=1:length(AlgorithmName)Result=FinalResult(Anum).Algorithm.Result;%% 定义3个视图gca1=figure;gca2=figure;gca3=figure;%% 画地形图及起始点[hh2,hh3,hhh2,hhh3,hhhh2,hhhh3]=PlotUAVRoute(ModelUAV,gca1,gca2,gca3);%% 画各个无人机的路径hh=[];hhh=[];hhhh=[];lenstr=[];for i=1:UAVnum[hh10,hhh10,hhhh10]=PlotUAV(Result(i).BestPosition,ModelUAV(i).model,gca1,gca2,gca3,lineColor(i,:));hh=[hh,hh10];hhh=[hhh,hhh10];hhhh=[hhhh,hhhh10];lenstr{i}=strcat('UAV',num2str(i));endlegenstr=lenstr;lenstr{i+1}='start';lenstr{i+2}='end';legend([hh,hh2,hh3],lenstr,Location="best")title(AlgorithmName{Anum})legend([hhh,hhh2,hhh3],lenstr,Location="best")title(AlgorithmName{Anum})legend([hhhh,hhhh2,hhhh3],lenstr,Location="best")title(AlgorithmName{Anum})figure(gca1)saveas(gca,['./Picture/',AlgorithmName{Anum},'1.jpg']);figure(gca2)saveas(gca,['./Picture/',AlgorithmName{Anum},'2.jpg']);figure(gca3)saveas(gca,['./Picture/',AlgorithmName{Anum},'3.jpg']);figurefor i=1:UAVnumplot(Result(i).data.fit,'-o','LineWidth',2)hold onendlegend(legenstr)set(gca,'xtick',1:1:4);set(gca,'XTickLabel',{})title(AlgorithmName{Anum})saveas(gca,['./Picture/',AlgorithmName{Anum},'5.jpg']);
end

在这里插入图片描述
以其中一组解为例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、完整MATLAB代码见下方名片

http://www.dtcms.com/a/279967.html

相关文章:

  • 【地理探测器】解释
  • pip install torch各种版本的命令及地址
  • Java学习——使用jpackage把jar文件打包为可执行的exe文件
  • SnapKit介绍与使用
  • OneCode 3.0: 注解驱动的Spring生态增强方案
  • windows系统中双击.py文件可以直接运行
  • 第 2 章 数据类型及其运算
  • JSCPC 2025 江苏省赛
  • VictoriaMetrics 架构
  • 位置编码类型彩色图解
  • 考虑频率耦合的构网型(GFM)VSG变流器(电压电流双闭环控制结构)的二维序阻抗与降维SISO序阻抗建模详细推导及扫频对比验证
  • 【人工智能99问】什么是深度学习?(2/99)
  • Kimi K2智能体能力的技术突破:大规模数据合成 + 通用强化学习
  • 名片管理系统IV
  • 螺旋模型:风险分析驱动的渐进式开发
  • cuda优化之softmax
  • 组件化思想
  • Brooks 低温泵On-Board Cryopump 安装和维护手法Installation and Maintenance Manual
  • aspnetcore Mvc配置选项中的ModelBindingMessageProvider
  • 第二章 基于新版Onenet搭建云服务(stm32物联网)
  • PyTorch中torch.topk()详解:快速获取最大值索引
  • @Resource 注解的空值处理(默认行为与容器实现)
  • 冲刺阶段项目进度压力大,如何组织高效冲刺
  • 大屏搭建多个图表不自适应问题
  • H264编码结构和解析
  • 第四章 uniapp实现兼容多端的树状族谱关系图,剩余组件
  • ESP32 OTA升级详解:使用Arduino OTA库实现无线固件更新
  • HTML 文本格式化标签
  • java--ThreadLocal创建以及get源码解析
  • http常见状态码