(四)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB代码)

news2024/12/26 2:33:53

一、无人机模型简介:

单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客

参考文献:

[1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120

二、高尔夫优化算法GOA简介

高尔夫优化算法(Golf Optimization Algorithm,GOA)由Montazeri Z等人于2023年提出,该算法模拟高尔夫运动过程中的球员击打高尔夫所采取的战术策略,能够有效平衡全局搜索和局部搜索的能力。

多目标优化算法:基于非支配排序的高尔夫优化算法(NSGOA)MATLAB-CSDN博客

参考文献:

[1] Montazeri Z, Niknam T, Aghaei J, Malik OP, Dehghani M, Dhiman G. Golf Optimization Algorithm: A New Game-Based Metaheuristic Algorithm and Its Application to Energy Commitment Problem Considering Resilience. Biomimetics. 2023; 8(5):386. Biomimetics | Free Full-Text | Golf Optimization Algorithm: A New Game-Based Metaheuristic Algorithm and Its Application to Energy Commitment Problem Considering Resilience

三、高尔夫优化算法GOA求解无人机路径规划

(1)部分代码

close all
clear  
clc
addpath('./Algorithm/')%添加算法路径
warning off;
%% 三维路径规划模型定义
global startPos goalPos N
N=2;%待优化点的个数(可以修改)
startPos = [10, 10, 80]; %起点(可以修改)
goalPos = [80, 90, 150]; %终点(可以修改)
SearchAgents_no=30; % 种群大小(可以修改)
Function_name='F1'; %F1:随机产生地图 F2:导入固定地图
Max_iteration=50; %最大迭代次数(可以修改)
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
[Best_score,Best_pos,curve]=GOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);%算法优化求解
AlgorithmName='GOA';%算法名字
figure
semilogy(curve,'Color','r','linewidth',3)
xlabel('迭代次数');
ylabel('飞行路径长度');
legend(AlgorithmName)
display(['算法得到的最优适应度: ', num2str(Best_score)]); 
Position=[Best_pos(1:dim/3); Best_pos(1+dim/3:2*(dim/3)); Best_pos(1+(2*dim/3):end)]'; %优化点的XYZ坐标(每一行是一个点)
plotFigure(Best_pos,AlgorithmName)%画最优路径


(2)部分结果

无人机飞行路径坐标:

   1.0000000e+01   1.0000000e+01   8.0000000e+01
   1.1376377e+01   1.1081252e+01   8.1066953e+01
   1.2685431e+01   1.2078936e+01   8.2073506e+01
   1.3929295e+01   1.2996239e+01   8.3021832e+01
   1.5110102e+01   1.3836349e+01   8.3914103e+01
   1.6229985e+01   1.4602452e+01   8.4752492e+01
   1.7291078e+01   1.5297736e+01   8.5539171e+01
   1.8295514e+01   1.5925389e+01   8.6276314e+01
   1.9245426e+01   1.6488598e+01   8.6966091e+01
   2.0142946e+01   1.6990550e+01   8.7610677e+01
   2.0990209e+01   1.7434432e+01   8.8212243e+01
   2.1789347e+01   1.7823433e+01   8.8772963e+01
   2.2542493e+01   1.8160739e+01   8.9295007e+01
   2.3251782e+01   1.8449538e+01   8.9780551e+01
   2.3919345e+01   1.8693017e+01   9.0231764e+01
   2.4547316e+01   1.8894364e+01   9.0650822e+01
   2.5137828e+01   1.9056766e+01   9.1039894e+01
   2.5693015e+01   1.9183410e+01   9.1401156e+01
   2.6215009e+01   1.9277484e+01   9.1736778e+01
   2.6705944e+01   1.9342175e+01   9.2048933e+01
   2.7167953e+01   1.9380671e+01   9.2339795e+01
   2.7603169e+01   1.9396159e+01   9.2611535e+01
   2.8013725e+01   1.9391826e+01   9.2866326e+01
   2.8401755e+01   1.9370859e+01   9.3106341e+01
   2.8769391e+01   1.9336447e+01   9.3333752e+01
   2.9118766e+01   1.9291776e+01   9.3550731e+01
   2.9452015e+01   1.9240034e+01   9.3759452e+01
   2.9771270e+01   1.9184409e+01   9.3962086e+01
   3.0078664e+01   1.9128087e+01   9.4160807e+01
   3.0376330e+01   1.9074256e+01   9.4357787e+01
   3.0666402e+01   1.9026103e+01   9.4555198e+01
   3.0951013e+01   1.8986816e+01   9.4755213e+01
   3.1232295e+01   1.8959583e+01   9.4960004e+01
   3.1512383e+01   1.8947590e+01   9.5171745e+01
   3.1793409e+01   1.8954024e+01   9.5392607e+01
   3.2077506e+01   1.8982075e+01   9.5624763e+01
   3.2366808e+01   1.9034928e+01   9.5870386e+01
   3.2663448e+01   1.9115771e+01   9.6131648e+01
   3.2969559e+01   1.9227791e+01   9.6410722e+01
   3.3287273e+01   1.9374177e+01   9.6709780e+01
   3.3618725e+01   1.9558115e+01   9.7030995e+01
   3.3966048e+01   1.9782792e+01   9.7376539e+01
   3.4331374e+01   2.0051396e+01   9.7748585e+01
   3.4716836e+01   2.0367115e+01   9.8149306e+01
   3.5124569e+01   2.0733136e+01   9.8580873e+01
   3.5556705e+01   2.1152646e+01   9.9045460e+01
   3.6015377e+01   2.1628832e+01   9.9545239e+01
   3.6502719e+01   2.2164883e+01   1.0008238e+02
   3.7020863e+01   2.2763985e+01   1.0065906e+02
   3.7571943e+01   2.3429325e+01   1.0127745e+02
   3.8158092e+01   2.4164092e+01   1.0193973e+02
   3.8781443e+01   2.4971472e+01   1.0264806e+02
   3.9444129e+01   2.5854653e+01   1.0340461e+02
   4.0148284e+01   2.6816823e+01   1.0421157e+02
   4.0896040e+01   2.7861168e+01   1.0507109e+02
   4.1689531e+01   2.8990876e+01   1.0598537e+02
   4.2530890e+01   3.0209135e+01   1.0695656e+02
   4.3422251e+01   3.1519132e+01   1.0798683e+02
   4.4365745e+01   3.2924053e+01   1.0907838e+02
   4.5363507e+01   3.4427088e+01   1.1023335e+02
   4.6417670e+01   3.6031422e+01   1.1145394e+02
   4.7530367e+01   3.7740244e+01   1.1274231e+02
   4.8703730e+01   3.9556740e+01   1.1410062e+02
   4.9939894e+01   4.1484099e+01   1.1553107e+02
   5.1240991e+01   4.3525507e+01   1.1703581e+02
   5.2609155e+01   4.5684153e+01   1.1861702e+02
   5.4046518e+01   4.7963222e+01   1.2027688e+02
   5.5555214e+01   5.0365903e+01   1.2201755e+02
   5.7137376e+01   5.2895384e+01   1.2384120e+02
   5.8795137e+01   5.5554850e+01   1.2575002e+02
   6.0530630e+01   5.8347491e+01   1.2774617e+02
   6.2345989e+01   6.1276493e+01   1.2983183e+02
   6.4243347e+01   6.4345044e+01   1.3200917e+02
   6.6224837e+01   6.7556330e+01   1.3428035e+02
   6.8292591e+01   7.0913540e+01   1.3664756e+02
   7.0448744e+01   7.4419861e+01   1.3911297e+02
   7.2695428e+01   7.8078480e+01   1.4167874e+02
   7.5034777e+01   8.1892585e+01   1.4434706e+02
   7.7468923e+01   8.5865362e+01   1.4712009e+02
   8.0000000e+01   9.0000000e+01   1.5000000e+02


四、完整MATLAB代码

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

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

相关文章

C语言二叉树与堆的实现(一)

目录 二叉树 二叉树的分类(目前只谈两种) 满二叉树 完全二叉树 二叉树的性质(其余的可以自己总结) 选择练习 二叉树的存储结构 顺序存储方式 链式存储方式 一种完全二叉树:堆 堆的概念 堆的性质 建堆的时…

如何在服务器上运行python文件

目录 前置准备 详细步骤 一,在服务器安装Anaconda 下载安装包 上传文件到服务器 安装环境 二,创建虚拟环境 创建环境 三,测试执行python文件 执行python文件 查看进程状态 总结 前置准备 如何在个人服务器上运行python文件&#x…

熟悉SVN基本操作-(SVN相关介绍使用以及冲突解决)

一、SVN相关介绍 1、SVN是什么? 代码版本管理工具它能记住你每次的修改查看所有的修改记录恢复到任何历史版本恢复已经删除的文件 2、SVN跟Git比,有什么优势 使用简单,上手快目录级权限控制,企业安全必备子目录checkout,减少…

vivado实现分析与收敛技巧2-创建智能设计运行

智能设计运行 (IDR) 是基于标准实现运行创建的。在“ Design Runs ” ( 设计运行 ) 窗口中 , 右键单击实现运行 , 然后选择“Close Timing using Intelligent Design Runs ” ( 使用智能设计运行收敛时序 &#xff09…

深度学习手势检测与识别算法 - opencv python 计算机竞赛

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…

C++调用python: VS2017 + Anaconda + pypi第三方库

步骤一:在Anaconda中创建虚拟环境 这一点对大家来说应该很简单,简单介绍一下,不做过多解释。值得注意的是,要用conda命令创建环境,用pip install配置环境。 conda create -n c_python_env python3.9 # 用conda创建pyt…

Java 的第二十章:多线程

创建线程 继承Thread 类 Thread 类时 java.lang 包中的一个类,从类中实例化的对象代表线程,程序员启动一个新线程需要建立 Thread 实例。 Thread 对象需要一个任务来执行,任务是指线程在启动时执行的工作,start() 方法启动线程&am…

Docker 使用心得

创建一个docker 镜像,相关运行代码,放在docker镜像文件同级, pm2 不能与 docker一起使用() # node 服务docker FROM node:10.16.3LABEL author"sj"RUN mkdir -p /var/nodeCOPY ./node /var/nodeWORKDIR /va…

Vue实现图片预览(Viewer.js)

摘要: vue项目开发中遇到一个图片预览的需求,可以切换下一张,就是花里胡哨的,所以找viewer.js的插件 npm install v-viewer -S在项目main.js中加入: Viewer.setDefaults用于更改默认配置,比如我不想要显示…

基于AT89C51单片机的倒数计时器设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。 本设计采用单片机为主控芯片,结合周边电路组成LED彩灯的闪烁控制系统器,用来控制红色…

Paraformer 语音识别原理

Paraformer(Parallel Transformer)非自回归端到端语音系统需要解决两个问题: 准确预测输出序列长度,送入预测语音信号判断包含多少文字。 如何从encoder 的输出中提取隐层表征,作为decoder的输入。 采用一个预测器(Predictor&…

【Node.js】笔记整理 5 - Express框架

写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识,需要格外注重实战和官方技术文档,文档建议作为手册使用 系列文章 【Node.js】笔记整理 1 - 基础知识【Node.js】笔记整理 2 - 常用模块【Node.js】笔记整理 3 - n…

IDEA maven无法下载源代码处理

1、使用idea内置maven 在idea中新增一个mvn运行项,截图如下: 输入命令: dependency:resolve -Dclassifiersources 2、如果外部maven,不使用idea内部maven 在工程目录下命令行执行命令: mvn dependency:resolve -Dclassifiersources

HX3002入耳检测光感驱动调试-感0x08 寄存器溢出,不变化错误问题解决方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 读取光感0x08 寄存器溢出,不变化错误问题?原因 原因:没有读取到0x08数据,没有读0x…

2的幂运算

2的幂 描述 : 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 题目 : LeetCode 231.2的幂 : 231. 2 的幂 分…

vue3实现element table缓存滚动条

背景 对于后台管理系统,数据的展示形式大多都是通过表格,常常会出现的一种场景,从表格跳到二级页面,再返回上一页时,需要缓存当前的页码和滚动条的位置,以为使用keep-alive就能实现这两种诉求,…

centos服务器安装docker和Rabbitmq

centos服务器 一 centos安装docker1 安装docker所需要的依赖包2配置yum源3查看仓库中所有的docker版本4安装docker5 设置docker为开机自启6验证docker是否安装成功 二 使用docker安装RabbitMQ拉取RabbitMQ镜像创建并运行容器 一 centos安装docker 1 安装docker所需要的依赖包 …

RocketMQ-快速实战

MQ简介 MQ:MessageQueue,消息队列。是在互联网中使用非常广泛的一系列服务中间件。 Message:消息。消息是在不同进程之间传递的数据。这些进程可以部署在同一台机器上,也可以分布在不同机器上。(数据形式&#xff1a…

NASM安装和结合nodepad++进行编译的过程

mov ax,0x30 mov bx,0xc0 add ax,bx times 502 db 0 db 0x55 db 0xAA nasm安装地址: https://www.nasm.us/ 下载exe安装 在命令行提示符输入nasm编译命令 nasm exam.asm -f bin -o exam.bin 此时输入回车将会执行编译过程。 1,启动NotePad,在菜单上选…