基于改进拥挤距离的多模态多目标优化差分进化(MMODE-ICD)求解无人机三维路径规划(MATLAB代码)

news2024/11/14 15:08:59

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

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

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代码

见下方联系方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1974349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D生物打印咋实现?重组弹性蛋白来助力!

Human-Recombinant-Elastin-Based Bioinks for 3D Bioprinting of Vascularized Soft Tissues是发表于《ADVANCED MATERIALS》上的一篇文章&#xff0c;介绍了一种基于重组人原弹性蛋白的生物墨水&#xff0c;用于3D生物打印复杂软组织。该生物墨水由GelMA和MeTro组成&#xff…

人工智能幻觉:记忆能找到答案吗?

欢迎来到雲闪世界。探索记忆机制如何减轻大型语言模型中的幻觉。 幻觉是事实&#xff0c;不是错误&#xff1b;错误的是基于幻觉的判断。——伯特兰罗素 大型语言模型 (LLM)表现出色&#xff0c;但仍受到幻觉的困扰。特别是对于敏感应用来说&#xff0c;这不是一个小问题&#…

文献阅读:细胞分辨率全脑图谱的交互式框架

文献介绍 文献题目&#xff1a; An interactive framework for whole-brain maps at cellular resolution 研究团队&#xff1a; Daniel Frth&#xff08;瑞典卡罗林斯卡学院&#xff09;、Konstantinos Meletis&#xff08;瑞典卡罗林斯卡学院&#xff09; 发表时间&#xff…

最准的期货指标源码 九稳量化系统 趋势指标公式源码 文华财经指标公式源码 标趋势跟踪 全网最火指标公式

8. “世界上没有任何系统或技术交易方法能永保胜利&#xff0c;将来也不会有。”——这句话提醒投资者不要迷信任何交易系统或方法&#xff0c;要保持灵活和适应市场变化的能力。 9. “巨额利润来源于长期的积少成多或者稳坐不动。”——这句话强调了长期稳健交易的重要性&…

最佳HR软件指南:11款高效管理工具

文章介绍了11款人力资源管理工具&#xff1a;Moka、友人才、北森HRSaaS、同鑫eHR、i人事、红海eHR、BambooHR、Skuad、Hibob、OrangeHRM、Verint。 在选择人力资源管理软件时&#xff0c;选错不仅浪费时间和金钱&#xff0c;还会影响团队的工作效率和员工满意度。本文总结了11款…

24年军队文职选岗报名保姆级流程!

24年技能岗已经开始陆陆续续报名了&#xff0c;不知道具体流程的宝子别着急&#xff0c;给大家总结了详细的报名步骤&#xff0c;直接照着选就行&#xff01; ✅详细步骤&#xff1a; 1、在军 队人才网找到工作动态&#xff0c;把岗位表用Excel表格方式下载出来。 2、列出自身条…

不用再重装系统_手把手教你将系统迁移到新硬盘

最近有网友问我怎么将系统迁移到新加的硬盘上面&#xff0c;我们可以使用DiskGenius软件&#xff0c;可以方便地将系统从一个硬盘迁移到另外一个硬盘上&#xff0c;或者更常见的是将系统从硬盘迁移到SSD固态硬盘、U盘等。下面小编就教大家详细的步骤。 系统怎么迁移到新硬盘准备…

python学习之旅(基础篇看这篇足够了!!!)

目录 前言 1.输入输出 1.1 输入 1.2 输出 2. 变量与常量 2.1 变量 2.2 常量 2.3 赋值 2.4格式化输出 3. 数据类型 4. 四则运算 5.“真与假” 5.1 布尔数 5.2 比较运算和逻辑运算 5.3 布尔表达式 6.判断语句 6.1 基本的if语句 6.2 if-else语句 6.3 if-elif-el…

程序员保持健康的 10 个技巧

长时间坐在电脑前&#xff0c;整天甚至通宵编程、处理 bug 和面对 dealine 的压力。作为一名软件工程师绝对不是一个非常健康的职业。 我经常去欧洲和美国会见许多开发人员。我经常注意到的是&#xff1a;许多开发人员把自己当成机器。他们已经完全放弃了感受身体的感觉&#…

重生奇迹MU职业成长三步走

在重生奇迹MU游戏中&#xff0c;转职是最重要的玩法之一。每个职业在转职后都会发生巨大的变化&#xff0c;经过三次转职后&#xff0c;你才有资格成为该游戏中最强大的冒险者。 一转&#xff0c;一切才刚刚开始 玩家完成第一次转职任务后&#xff0c;标志着我们成功度过了游…

使用Spring Initializr创建Spring Boot项目没有JDK1.8的解决办法

很久没单独创建springboot项目,今天使用idea的Spring Initializr 创建 Spring Boot项目时,发现java版本里,无法选择jdk1.8,只有17、21、22,所以本文介绍了使用Spring Initializr创建Spring Boot项目没有JDK1.8的解决办法,需要的朋友可以参考下&#xff0c;本人自己做个笔记 解…

【源码分析】之 线程池工具类 Executors详解

​ 快捷导航 一、提供了什么功能&#xff1f;源码中的定义&#xff1a;此类支持以下几种方法&#xff1a; 二、源码中是怎么实现的&#xff1f;1、创建并返回一个配置了常用设置的ExecutorServicenewFixedThreadPool()newSingleThreadExecutor()newCachedThreadPool()newWorkS…

JAVA项目基于SSM的教师管理系统

目录 一、前言 二、技术介绍 三、项目实现流程 四、论文流程参考 五、核心代码截图 专注于大学生实战开发、讲解和毕业答疑等辅导&#xff0c;获取源码后台 一、前言 随着教育事业的蓬勃发展&#xff0c;教师作为教育工作的核心力量&#xff0c;其管理的高效性、科学性日…

十大人力资源SAAS软件:企业管理的革新者

本文将介绍以下10款工具&#xff1a;Moka、北森云计算、智能人事、蓝凌OA、人瑞人才、Rippling、Sage HR、Deel、Gusto、TriNet。 在管理人力资源时&#xff0c;选择正确的工具至关重要。市场上的众多SAAS软件选项可能会让你感到不知所措&#xff0c;特别是在试图找到能够提升团…

RMAN-06618不同版本之间RMAN无法连接

RMAN Active Duplicate Between Two Oracle Versions (Doc ID 2346507.1)​编辑To Bottom In this Document Goal Solution References APPLIES TO: Oracle Database Cloud Schema Service - Version N/A and later Oracle Database Exadata Cloud Machine - Version N/A and…

接口测试知识点1

接口测试 软件接口&#xff0c;是指软件不同模块之间交互的接口&#xff0c;我们通常所说的API&#xff08;Application Programming Interface 应用程序接口&#xff09;&#xff0c;即是软件系统不同模块之间衔接的约定。 接口测试即是对软件各个模块的接口进行的测试。 接…

深入理解 HTTP 状态码

HTTP 状态码是服务器在收到客户端请求后返回的响应代码&#xff0c;用来表示请求的处理结果。这些状态码帮助用户理解请求是否成功以及服务器的响应状态。HTTP 状态码分为五大类&#xff0c;每一类都有特定的含义。下面&#xff0c;我们来详细解读这些状态码&#xff0c;帮助你…

前端的学习-CSS(弹性布局-flex)

一&#xff1a;什么是弹性布局-Flex flex 是 Flexible Box 的缩写&#xff0c;意为"弹性布局"&#xff0c;用来为盒状模型提供最大的灵活性。 语法&#xff1a; .box{display: flex; } .box{display: inline-flex; } 注意&#xff0c;设为 Flex 布局以后&#xff0…

MySQL之delete 、truncate与drop区别

快速使用 drop&#xff1a;‌删除表及其所有数据【drop 表名】 truncate&#xff1a;‌仅删除表中的所有数据【truncate 表名】 delete&#xff1a;‌删除表中的特定行数据&#xff0c;‌可以指定条件删除 【delete from 表名】 1、功能差异 drop&#xff1a;‌删除表及其所有…

【Yolov8】实战三:手把手教你使用YOLOv8以及pyqt搭建中医耳穴辅助诊断项目原理及模型部署(下)

今天&#xff0c;学习RTMPose关键点检测实战。教大家如何安装安装MMDetection和MMPose。 实战项目以三角板关键点检测场景为例&#xff0c;结合OpenMMLab开源目标检测算法库MMDetection、开源关键点检测算法库MMPose、开源模型部署算法库MMDeploy&#xff0c;全面讲解项目全流程…