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

基于改进拥挤距离的多模态多目标优化差分进化(MMODE-ICD)求解无人机三维路径规划(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=1n1 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=1n1k=1KTk(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(hijhmax)0γh(hminhij)(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=1nHij

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}} WijWi,j+1 W i j + 1 ′ W i , j + 2 ′ → \overrightarrow{W_{i j+1}^{\prime} W_{i, j+2}^{\prime}} Wij+1Wi,j+2 是其在xoy 平面的投影。
在这里插入图片描述

记𝒌为轴正方向的单位向量,则 W i j + 1 ′ W i , j + 2 ′ → \overrightarrow{W_{i j+1}^{\prime} W_{i, j+2}^{\prime}} Wij+1Wi,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} WijWi,j+1 =k×(WijWi,j+1 ×k)αij=arctan(WijWi,j+1 Wi,j+1Wi,j+2WijWi,j+1 ×Wi,j+1Wi,j+2)βij=arctan WijWi,j+1 zi,j+1zij
同时,将无人机的水平转弯角和竖直俯仰角超出约束限制条件的惩罚系数分别记作 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=1n2αij+a2j=1n1βijβi,j1

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.

二、MMODE-ICD介绍

基于改进拥挤距离的多模态多目标优化差分进化(Differential Evolution Using Improved Crowding Distance for Multimodal Multiobjective Optimization,MMODE-ICD)是一种多模态多目标优化算法。在多目标优化问题中,通常假设决策空间和目标空间之间存在一一映射关系,但并非总是如此。在某些问题中,不同的变量可能具有相同或相似的目标值,这意味着存在多对一的映射。这种情况下,存在多个Pareto集合(PS)映射到相同的Pareto前沿(PF),这些问题被称为多模态多目标问题(MMOPs)。

MMODE-ICD算法原理

  1. 差分向量的生成:在提出的方法中,差分向量的生成考虑了决策空间和目标空间的多样性。
  2. 拥挤距离的计算:与其他方法不同,所提出的拥挤距离计算过程中考虑了所有选定个体,而不是单独考虑每个Pareto等级。决策空间中的拥挤距离被替换为与邻居的欧几里得距离的加权和。
  3. 环境选择过程:并非所有高等级个体都被选中,因为其中一些可能非常拥挤。相反,底层等级中的潜在解决方案有机会进化。通过这些操作,所提出的算法可以维持多模态多目标优化问题的多个PS,并提高决策和目标空间的多样性。

MMODE-ICD算法流程

  1. 初始化:初始化种群,并定义算法参数。
  2. 差分向量生成:根据决策空间和目标空间的拥挤距离自适应地选择父代来生成差分向量。
  3. 拥挤距离计算:重新设计拥挤距离的计算方法,以更好地反映真实的拥挤程度,并平衡多样性和收敛性。
  4. 环境选择:在环境选择阶段,不是简单地选择所有高等级个体,而是根据拥挤距离自适应地选择一定比例的个体。
  5. 迭代更新:通过上述步骤,更新种群,并重复迭代过程直到满足终止条件。
  6. 输出:最终输出Pareto最优解集。

参考文献:
[1] Yue C , Suganthan P N , Liang J ,et al.Differential Evolution Using Improved Crowding Distance for Multimodal Multiobjective Optimization[J].Swarm and Evolutionary Computation, 2021, 62(9):100849.DOI:10.1016/j.swevo.2021.100849.

三、MMODE-ICD求解无人机路径规划

3.1部分代码

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

3.2部分结果

MMODE-ICD求解得到的pareto前沿图:

在这里插入图片描述

MMODE-ICD求解得到的所有无人机路径图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MMODE-ICD求解得到的路径成本最小和威胁成本最小的路径:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、完整MATLAB代码

见下方联系方式

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 云计算学习——5G网络技术
  • 前端开发者必备:揭秘谷歌F12调试的隐藏技巧!
  • PixelMaster - 图片像素化终极利器 !
  • U盘数据恢复不再难:2024年4款工具,找回你“躲藏”的记忆
  • BootStrap前端面试常见问题
  • 【刷题汇总 -- 爱吃素、相差不超过k的最多数、最长公共子序列(一)】
  • 常回家看看之fastbin_attack
  • JVM知识体系梳理
  • PTA—基础编程题目集(7-18)
  • 【2024蓝桥杯/C++/B组/小球反弹】
  • 第五十八天 第十一章:图论part08 拓扑排序精讲 dijkstra(朴素版)精讲
  • 工业大数据通过哪些方式实现价值?详解实施工业大数据的难点!
  • 数据采集器
  • Python变量和简单的数据类型
  • AUTOSAR介绍
  • #Java异常处理
  • hadoop集群管理系统搭建规划说明
  • HomeBrew常规使用教程
  • JavaScript设计模式之工厂模式
  • Just for fun——迅速写完快速排序
  • PAT A1017 优先队列
  • spring security oauth2 password授权模式
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 飞驰在Mesos的涡轮引擎上
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 聊聊sentinel的DegradeSlot
  • 前端临床手札——文件上传
  • 三栏布局总结
  • 我的zsh配置, 2019最新方案
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 学习Vue.js的五个小例子
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #nginx配置案例
  • #NOIP 2014# day.1 T2 联合权值
  • #QT(QCharts绘制曲线)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (回溯) LeetCode 131. 分割回文串
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)WLAN定义和基本架构转
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (轉貼) UML中文FAQ (OO) (UML)
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET Reactor简单使用教程
  • .NET/C# 使窗口永不获得焦点
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NetCore发布到IIS
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET未来路在何方?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /usr/bin/env: node: No such file or directory
  • @PreAuthorize与@Secured注解的区别是什么?