基于多目标蜻蜓优化算法(MODA)求解无人机三维路径规划(MATLAB代码)

一、无人机多目标优化模型

无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。

1.1路径成本

无人机三维路径规划的首要目标是寻找起飞点和目标点之间最短路程的飞行路径方案。一般地,记无人机的飞行路径点为 W i j = ( x i j , y i j , z i j ) W_{i j}=\left(x_{i j}, y_{i j}, z_{i j}\right) Wij=(xij,yij,zij)即在第 i i i 条飞行路径中第 j j j个路径点的无人机三维空间位置,则整条飞行路径 X i X_{i} Xi 可表示为包含 n n n 个路径点的三维数组。将 2 个路径点之间的欧氏距离记作路径段 ∥ W i j W i , j + 1 → ∥ \left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| WijWi,j+1 ,则与无人机飞行路径成本函数 F 1 F_{1} F1 为:
F 1 ( X i ) = ∑ j = 1 n − 1 ∥ W i j W i , j + 1 → ∥ F_{1}\left(X_{i}\right)=\sum_{j=1}^{n-1}\left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| F1(Xi)=j=1∑n−1 WijWi,j+1

1.2障碍物威胁成本

无人机通过躲避障碍物来确保安全作业航迹。设定障碍物威胁区为圆柱体形式,其投影如下图所示,记圆柱体中心坐标为 C k C_{k} Ck,半径为 R k R_{k} Rk,则无人机的避障威胁成本与其路径段 ∥ W i j W i , j + 1 → ∥ \left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| WijWi,j+1 和障碍物中心 C k C_{k} Ck的距离 d k d_{k} dk 成反比。

将飞行环境下的障碍物威胁区集合记作 T T T,则与无人机避障威胁相关的成本函数 F 2 F_{2} F2为:
F 2 ( X i ) = ∑ j = 1 n − 1 ∑ k = 1 K T k ( W i j W i , j + 1 → ) F_{2}\left(X_{i}\right)=\sum_{j=1}^{n-1} \sum_{k=1}^{K} T_{k}\left(\overrightarrow{W_{i j} W_{i, j+1}}\right) F2(Xi)=j=1∑n−1k=1∑KTk(WijWi,j+1 )

其中:
T k ( W i j W i , j + 1 → ) = { 0 ( d k > R k ) ( R k / d k ) ( 0 < d k < R k ) ∞ ( d k = 0 ) T_{k}\left(\overrightarrow{W_{i j} W_{i, j+1}}\right)=\left\{\begin{array}{ll} 0 & \left(d_{k}>R_{k}\right) \\ \left(R_{k}/d_{k}\right) & \left(0<d_{k}<R_{k}\right) \\ \infty & \left(d_{k}=0\right) \end{array}\right. Tk(WijWi,j+1 )=⎩ ⎨ ⎧0(Rk/dk)∞(dk>Rk)(0<dk<Rk)(dk=0)

1.3飞行高度威胁成本

无人机的飞行高度通常受到最小高度 h m i n h_{min} hmin 和最大高度 h m a x h_{max} hmax 的约束限制,如下图 所示,其中 T i j T_{ij} Tij 为地形的高度, Z i j Z_{ij} Zij为无人机相对于海平面的高度。

将无人机在路径点 W i j W_{ij} Wij处距离基准地形地面的高度记作 h i j h_{ij} hij,即 Z i j Z_{ij} Zij和 T i j T_{ij} Tij 的差,则与无人机当前路径点 W i j W_{ij} Wij相关的成本函数 H i j H_{ij} Hij 为:
H i j = { γ h ( h i j − h max ⁡ ) ( h i j > h max ⁡ ) 0 ( h min ⁡ < h i j < h max ⁡ ) γ h ( h min ⁡ − h i j ) ( 0 < h i j < h min ⁡ ) ∞ ( h i j < 0 ) H_{i j}=\left\{\begin{array}{ll} \gamma_{h}\left(h_{i j}-h_{\max }\right) & \left(h_{i j}>h_{\max }\right) \\ 0 & \left(h_{\min }<h_{i j}<h_{\max }\right) \\ \gamma_{h}\left(h_{\min }-h_{i j}\right) & \left(0<h_{i j}<h_{\min }\right) \\ \infty & \left(h_{i j}<0\right) \end{array}\right. Hij=⎩ ⎨ ⎧γh(hij−hmax)0γh(hmin−hij)∞(hij>hmax)(hmin<hij<hmax)(0<hij<hmin)(hij<0)

同时,将无人机飞行高度超出约束限制条件的惩罚系数记作 γ h γ_{h} γh,则与无人机飞行路径相关的成本函数 F 3 F_{3} F3为:
F 3 ( X i ) = ∑ j = 1 n H i j F_{3}\left(X_{i}\right)=\sum_{j=1}^{n} H_{i j} F3(Xi)=j=1∑nHij

1.4飞行转角威胁成本

无人机的飞行转角控制参数主要包括水平转弯角和竖直俯仰角,这 2 个参数变量必须符合无人机的实际转角约束限制,否则航迹规划模型无法生成具有可行性的飞行路径。如下图所示, ∥ W i j W i , j + 1 → ∥ \left\|\overrightarrow{W_{i j} W_{i, j+1}}\right\| WijWi,j+1 和 ∥ W i j + 1 W i , j + 2 → ∥ \left\|\overrightarrow{W_{i j+1} W_{i, j+2}}\right\| Wij+1Wi,j+2 表示无人机飞行路径中的 2 个连续路径段, W i j ′ W i , j + 1 ′ → \overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}} Wij′Wi,j+1′ 和 W i j + 1 ′ W i , j + 2 ′ → \overrightarrow{W_{i j+1}^{\prime} W_{i, j+2}^{\prime}} Wij+1′Wi,j+2′ 是其在xoy 平面的投影。

记𝒌为轴正方向的单位向量,则 W i j + 1 ′ W i , j + 2 ′ → \overrightarrow{W_{i j+1}^{\prime} W_{i, j+2}^{\prime}} Wij+1′Wi,j+2′ 的计算式和水平转弯角 α i j α_{ij} αij、竖直俯仰角 β i , j + 1 β_{i,j+1} βi,j+1 计算式为:
W i j ′ W i , j + 1 ′ → = k × ( W i j W i , j + 1 → × k ) α i j = arctan ⁡ ( W i j ′ W i , j + 1 ′ → × W i , j + 1 ′ W i , j + 2 ′ ‾ W i j ′ W i , j + 1 ′ → ⋅ W i , j + 1 ′ W i , j + 2 ′ ‾ ) β i j = arctan ⁡ ( z i , j + 1 − z i j ∥ W i j ′ W i , j + 1 ′ → ∥ ) \begin{array}{c} \overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}}=\boldsymbol{k} \times\left(\overrightarrow{W_{i j} W_{i, j+1}} \times \boldsymbol{k}\right) \\ \alpha_{i j}=\arctan \left(\frac{\overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}} \times \overline{W_{i, j+1}^{\prime} W_{i, j+2}^{\prime}}}{\overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}} \cdot \overline{W_{i, j+1}^{\prime} W_{i, j+2}^{\prime}}}\right) \\ \beta_{i j}=\arctan \left(\frac{z_{i, j+1}-z_{i j}}{\left\|\overrightarrow{W_{i j}^{\prime} W_{i, j+1}^{\prime}}\right\|}\right) \end{array} Wij′Wi,j+1′ =k×(WijWi,j+1 ×k)αij=arctan(Wij′Wi,j+1′ ⋅Wi,j+1′Wi,j+2′Wij′Wi,j+1′ ×Wi,j+1′Wi,j+2′)βij=arctan Wij′Wi,j+1′ zi,j+1−zij

同时,将无人机的水平转弯角和竖直俯仰角超出约束限制条件的惩罚系数分别记作 a 1 = 1 a_{1}=1 a1=1和 a 2 = 1 a_{2}=1 a2=1,则与无人机飞行转角相关的成本函数 F 4 F_{4} F4 为:
F 4 ( X i ) = a 1 ∑ j = 1 n − 2 α i j + a 2 ∑ j = 1 n − 1 ∣ β i j − β i , j − 1 ∣ F_{4}\left(X_{i}\right)=a_{1} \sum_{j=1}^{n-2} \alpha_{i j}+a_{2} \sum_{j=1}^{n-1}\left|\beta_{i j}-\beta_{i, j-1}\right| F4(Xi)=a1j=1∑n−2αij+a2j=1∑n−1∣βij−βi,j−1∣

1.5无人机三维路径规划的目标函数

综合考虑与无人机飞行路径 X i X_{i} Xi 相关的最短路径成本、最小威胁成本,以及飞行高度成本和飞行转角成本等限制,基于多因素约束的多目标函数构建如下:其中第一个目标函数 f 1 f_{1} f1为最短路径成本,第二个目标函数 f 2 f_{2} f2为最小威胁成本,为障碍物威胁成本、飞行高度威胁成本和飞行转角威胁成本的总和,具体定义如下为:
f 1 ( X i ) = F 1 ( X i ) f_{1}\left(X_{i}\right)=F_{1}\left(X_{i}\right) f1(Xi)=F1(Xi)
f 2 ( X i ) = F 2 ( X i ) + F 3 ( X i ) + F 4 ( X i ) f_{2}\left(X_{i}\right)=F_{2}\left(X_{i}\right)+F_{3}\left(X_{i}\right)+F_{4}\left(X_{i}\right) f2(Xi)=F2(Xi)+F3(Xi)+F4(Xi)

参考文献:

[1]吕石磊,范仁杰,李震,陈嘉鸿,谢家兴.基于改进蝙蝠算法和圆柱坐标系的农业无人机航迹规划[J].农业机械学报:1-19

[2]褚宏悦,易军凯.无人机安全路径规划的混沌粒子群优化研究[J].控制工程:1-8

[3]MD Phung, Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm Optimization: 2021.

[4]陈明强,李奇峰,冯树娟等.基于改进粒子群算法的无人机三维航迹规划[J].无线电工程,2023,53(02):394-400.

[5]徐建新,孙纬,马超.基于改进粒子群算法的无人机三维路径规划[J].电光与控制:1-10

[6]骆文冠,于小兵.基于强化学习布谷鸟搜索算法的应急无人机路径规划[J].灾害学:1-10

[7]陈先亮,黄元君,范勤勤.基于多模态多目标进化算法的无人机三维路径规划[J].火力与指挥控制, 2023(11):32-39.

二、 多目标蜻蜓算法介绍

多目标蜻蜓算法(Multi-Objective Dragonfly Algorithm,MODA)是一种基于自然界蜻蜓行为的元启发式优化算法,用于解决具有多个冲突目标的优化问题。以下是对这一算法的详细介绍:

算法原理

  1. 模拟行为:算法模拟了蜻蜓的觅食、领地防御和飞行行为,这些行为在算法中转化为搜索策略。
  2. 多目标处理:通过Pareto支配关系来处理多个目标,使得算法能够找到一组Pareto最优解。
  3. 群体智能:算法利用群体中的个体(蜻蜓)之间的相互作用来探索解空间。
  4. 环境适应性:算法考虑了环境因素对蜻蜓行为的影响,如食物的分布和领地的竞争。

算法流程

  1. 初始化:随机生成初始蜻蜓群体,每个蜻蜓代表一个候选解。
  2. 适应度评估:根据多个目标计算每个蜻蜓的适应度。
  3. 领地划分:根据适应度,蜻蜓占据不同的领地,领地大小可能与适应度相关。
  4. 觅食策略:蜻蜓根据食物分布和领地信息进行移动,模拟觅食行为。
  5. 更新位置:根据觅食策略和其他蜻蜓的位置更新蜻蜓的位置。
  6. 交叉和变异:应用交叉和变异操作来生成新的候选解,增加种群多样性。
  7. 环境更新:模拟环境变化,更新食物分布和领地状态。
  8. Pareto排名:使用非支配排序和拥挤度计算来选择优秀的个体。
  9. 迭代:重复上述步骤,直到满足终止条件,如达到最大迭代次数。
  10. 输出:输出Pareto最优解集,为决策者提供多种选择。

特点

  • 多样性和收敛性平衡:通过领地划分和觅食策略,算法在保持多样性的同时实现收敛。
  • 环境适应性:算法能够适应环境变化,模拟蜻蜓对环境的响应。
  • Pareto优化:算法能够找到多个Pareto最优解,为多目标问题提供全面的解决方案。

参考文献:

[1] Mirjalili S .Dragonfly algorithm: a new meta-heuristic optimization technique for solving single-objective, discrete, and multi-objective problems[J].Neural Computing and Applications, 2016, 27(4):1053-1073.DOI:10.1007/s00521-015-1920-1.

三、多目标蜻蜓算法MODA求解无人机路径规划

3.1部分代码

bash 复制代码
close all
clear
clc
dbstop if all error
addpath("./MODA/")
global model
model = CreateModel(); % 创建模型
MultiObj= fun_info();%获取无人机模型信息
params.maxgen=100;  % 最大迭代次数
params.Np=100;      % 种群大小
params.Nr=200;      %外部存档大小(不得小于种群大小)
[Xbest,Fbest] = MODA(params,MultiObj);

3.2部分结果

MODA求解得到的pareto前沿图:

MODA求解得到的路径成本最小和威胁成本最小的路径:



MODA求解得到的所有无人机路径图:



四、完整MATLAB代码

见下方联系方式

相关推荐
不去幼儿园7 分钟前
【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
人工智能·python·算法·机器学习·强化学习
Mr_Xuhhh9 分钟前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
盼海1 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
网易独家音乐人Mike Zhou5 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
Swift社区8 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman9 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法
IT 青年9 小时前
数据结构 (1)基本概念和术语
数据结构·算法
Dong雨10 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
SoraLuna10 小时前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
liujjjiyun10 小时前
小R的随机播放顺序
数据结构·c++·算法