单目标应用:蜣螂优化算法DBO与麻雀搜索算法SSA求解无人机三维航迹规划(提供Matlab代码)

news2024/11/25 20:23:35

一、无人机三维航迹规划

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

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,外围为碰撞威胁区 D D D,则无人机的避障威胁成本与其路径段 ∥ 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 成反比。
在这里插入图片描述

将飞行环境下的障碍物威胁区集合记作 K K K,障碍物威胁成本惩罚系数记作 γ c γ_{c} γc ,则与无人机避障威胁相关的成本函数 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 > D + R k ) γ c ( ( D + R k ) − d k ) ( R k < d k < D + R k ) ∞ ( d k < R k ) T_{k}\left(\overrightarrow{W_{i j} W_{i, j+1}}\right)=\left\{\begin{array}{ll} 0 & \left(d_{k}>D+R_{k}\right) \\ \gamma_{c}\left(\left(D+R_{k}\right)-d_{k}\right) & \left(R_{k}<d_{k}<D+R_{k}\right) \\ \infty & \left(d_{k}<R_{k}\right) \end{array}\right. Tk(WijWi,j+1 )= 0γc((D+Rk)dk)(dk>D+Rk)(Rk<dk<D+Rk)(dk<Rk)

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 a_{1} a1 a 2 a_{2} a2,则与无人机飞行转角相关的成本函数 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

3.5多因素约束的飞行成本函数

综合考虑与无人机飞行路径 X i X_{i} Xi 相关的最短路径、最小威胁,以及飞行高度和飞行转角等限制,基于多因素约束的飞行成本函数 F F F 为:
F ( X i ) = ∑ k = 1 4 b k F k ( X i ) F\left(X_{i}\right)=\sum_{k=1}^{4} b_{k} F_{k}\left(X_{i}\right) F(Xi)=k=14bkFk(Xi)
式中 b k b_{k} bk为各因素的权重系数。
参考文献:
[1]吕石磊,范仁杰,李震,陈嘉鸿,谢家兴.基于改进蝙蝠算法和圆柱坐标系的农业无人机航迹规划[J/OL].农业机械学报:1-19
[2]褚宏悦,易军凯.无人机安全路径规划的混沌粒子群优化研究[J/OL].控制工程:1-8
[3]MD Phung, Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm Optimization: arXiv, 10.1016/j.asoc.2021.107376[P]. 2021.

二、蜣螂优化算法DBO

蜣螂优化算法原理

三、麻雀搜索算法SSA

麻雀搜索算法原理

四、求解结果

将蜣螂优化算法DBO和麻雀搜索算法SSA求解三维无人机路径规划:


完整MATLAB代码路径:https://mbd.pub/o/bread/mbd-Y56WlZxy

dbstop if all error
global model
model = CreateModel(); % 创建模型
F='F1';
[Xmin,Xmax,dim,fobj] = fun_info(F);%获取函数信息
pop=100;%种群大小(可以自己修改)
maxgen=500;%最大迭代次数(可以自己修改)
[fMin4,bestX4,ConvergenceCurve4] = SSA(pop, maxgen,Xmin,Xmax,dim,fobj);
[fMin5,bestX5,ConvergenceCurve5] = DBO(pop, maxgen,Xmin,Xmax,dim,fobj);

一次结果如下:

4.1收敛曲线图

在这里插入图片描述

4.2三维路径规划图

在这里插入图片描述

4.3二维航线平面图

在这里插入图片描述

五、参考代码

完整MATLAB代码路径:https://mbd.pub/o/bread/mbd-Y56WlZxy

文件夹内包含完整代码及使用说明,点击main.m即可运行。
在这里插入图片描述

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

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

相关文章

一文搞定visual studio code远程服务器的配置和文件上传

在跑大型程序的时候需要用到服务器&#xff0c;因此如何远程操作服务器就至关重要了。 很多教程教如何使用putty来操作&#xff0c;但是我的安装时候就出现错误了。再加上我用的visual studio code提供远程服务器控制以及文件传输功能。 因此我就使用vscode来配置相应的环境并…

Unity学习笔记--FixedUpdate真的是固定时间调用一次吗?

前言 我相信大家在学习Unity的时候&#xff0c;Update是每一帧调用&#xff0c;而FixedUpdate是固定时间调用一次。 一开始我们对这个知识深信不疑&#xff08;楼主也是 .| &#xff09; 不过当我们学的更深入时&#xff0c;发现Unity其实是单线程的&#xff0c;所以它的生命…

解决d2l包下载不了的问题

目录 关于d2l包 1、在pypi网站的找到d2l包 2、cmd下载文件 3、检测d2l包的下载是否成功 4、在虚拟环境中完成安装 关于d2l包 d2l包是李沐老师等人开发的《动手深度学习》配套的包&#xff0c;最初的时候&#xff0c;我并没有安装的想法&#xff0c;可在代码实现方面&…

如何使用 max_fanout

在 逻辑层级不多&#xff0c;但是延时较高的 net 中&#xff0c;可以使用 max_fanout 来设置扇出&#xff0c; 但是要注意&#xff0c;还要如果驱动与负载不在同一层&#xff0c;一定要约束到负载的input&#xff0c;否则不生效 并且还要在 例化负载模块时加上 (* keep_hiera…

nacos安装及配置

本文介绍nacos的安装、配置&#xff0c;使用mysql存储数据。 1.下载 在github上下载对应的压缩包。地址&#xff1a;https://github.com/alibaba/nacos/releases 本文下载的是2.0.2版本&#xff1a; 2.解压 进入下载文件所在的目录&#xff0c;并执行以下语句&#xff1a; t…

GEE10:Earth Engine Reducers的图像矢栅转换及区域统计

目录1. Raster to Vector Conversion&#xff1a;image.reduceToVectors()2. Vector to Raster Conversion&#xff1a;featureCollection.reduceToImage()3. Grouped reductions3.1 Grouped reduceRegions (aka Zonal Statistics)4. Weighted Reductions1. Raster to Vector C…

SSM整合案例[企业权限管理系统]-学习笔记01【SVN的基本介绍】

Java后端-学习路线-笔记汇总表【黑马程序员】SSM整合案例[企业权限管理系统]-学习笔记01【SVN的基本介绍】【day01】SSM整合案例[企业权限管理系统]-学习笔记02【TortoiseSVN的基本操作】SSM整合案例[企业权限管理系统]-学习笔记03【TortoiseSVN及IDEA下SVN的使用】SSM整合案例…

四旋翼无人机学习第21节--allergo软件中的元器件高亮显示与丝印3D显示设置

1 allergo软件中的元器件高亮显示 在设计PCB的时候&#xff0c;会出现元器件高亮的情况&#xff0c;并且在项目重启后&#xff0c;这种现象依然存在。现在终于找到了原因的所以。点击高亮的元器件&#xff0c;右键选择选择Dehighlight即可。 取消高亮后的元器件显示。 2 解决…

已解决Building wheels for collected packages: lxml

已解决&#xff08;pip安装第三方模块lxml模块报错&#xff09;Building wheels for collected packages: lxml Building wheel for lxml (setup.py) … error error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. note: This error o…

Polar vector and axial vector(极矢量和轴向矢量)

Polar vector and axial vector引言Polar vector中文翻译定义第一种第二种第三种性质举例Axial vector中文翻译定义性质举例讨论引言 今天来给大家介绍一下Polar vector和axial vector&#xff0c;即极矢量和轴向矢量。 Polar vector 中文翻译 极矢量 定义 第一种 在基础…

倍增算法讲解——序列、RMQ和LCA

倍增算法 文章目录倍增算法定义倍增在序列上的应用查找例一例二快速幂RMQ&#xff08;区间最值&#xff09;天才的记忆LCA&#xff08;最近公共祖先&#xff09;向上标记法树上倍增法祖孙询问Tarjan算法距离总结定义 倍增 从字面的上意思看就是成倍的增长 ,这是指我们在进行递…

C++系列案例-大数据减法-绘制余弦曲线-兔子数量-快速排序

文章目录关于C的几个经典案例代码大数减法问题绘制余弦曲线兔子数量问题快速排序问题函数运行全部源码关于C的几个经典案例代码 大数减法问题 因为较大整数的相加很可能超出整型的32位限制&#xff0c;或者本身就是超出限制的大数之间的加减运算。 所以我们需要单独写一个能大…

C语言程序设计易混、易错知识点(下篇)

有环的单向链表跟无环的单向链表不可能相交 -正确 有环的单向链表和无环的单向链表不能相交&#xff0c;因为当相交的时候&#xff0c;无环的单向链表也会被迫存在一个环&#xff0c;只不过这个环的”起点“可能不是原来单向链表的头结点 如果两个单向链表相交&#xff0c;那这…

Vmware Pro 17 设置共享文件夹

目录 一、概述 二、在VMware设置共享文件夹详细步骤 一、概述 VMware 是运行在Windows系统上的&#xff0c;很多时候需要将 Windows 系统上的资料或代码复制到运行在VMware上的虚拟机&#xff0c;通常有两种方法可以完成复制&#xff0c;一个是在Vmware软件上设置共享文件夹&…

网络分层模型和应用协议

网络分层模型和应用协议 分层模型 分层模型的意义 当遇到一个复杂问题的时候&#xff0c;可以使用分层的思想把问题简单化。 比如&#xff0c; 你有一杯82年的可乐&#xff0c;想要分享给你的朋友张富贵&#xff0c;但你们已经很久没有联系&#xff0c;要完成这件事&#xf…

《深入浅出计算机组成原理》学习笔记 Day2

文章目录指令篇1. 从高级语言到机器指令1.1 CPU的作用1.2 代码如何变为机器码1.3 指令的分类2. 指令跳转2.1 CPU 是如何执行指令2.2 条件和循环的本质3. 函数调用3.1 栈的作用3.2 Stack Overflow指令篇 1. 从高级语言到机器指令 计算机或者说CPU本身并没有能力去理解这些高级…

配置远程服务器时候sftp的配置以及注意事项【在本地配置sftp】

我之所以不用PutTy是因为这个工具有问题&#xff0c;在我的电脑上怎么也安装不上&#xff0c;也找了很多办法根本没用。如这个 我试过修改权限以及各种安装办法连安装都不行。 所以才决定直接使用vscode自带的上传工具上传到服务器。 想要上传到服务器&#xff0c;需要使用vsc…

2023牛客寒假算法基础集训营1 -- G-鸡格线(map + 内置二分写法)

题目如下&#xff1a; 示例1 输入 3 5 0 2 114514 2 1 1 2 2 2 1 1 3 1 2输出 114516 114551 3445思路 or 题解&#xff1a; 通过 f(x)round(10∗x)f(x) round(10*\sqrt{x})f(x)round(10∗x​) 我们可得到&#xff1a; 经过至多 111111 次 0 -> 01~99 -> 99100 ~ i…

如何利用jar命令把前端代码打进jar包

目录背景介绍简单介绍几个常用的jar命令参数查询一个文件在jar包中的位置将文件解压到当前目录把一个目录打包进jar把一个文件打包进jar更新jar的shell脚本update.sh命令执行过程部分截图背景介绍 前后端分离是目前主流的开发模式&#xff0c;部署的时候也是利用类似nginx实现…

C++之多态

文章目录一、多态的理解二、多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写/覆盖4. C11 的 override 和 final5.重载、重写/覆盖、隐藏/重定义三、抽象类四、多态的原理1.虚函数表2.多态的原理3.动态绑定与静态绑定五、单继承和多继承关系的虚函数表1.单继承中的虚函…