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

一、无人机模型简介:

单个无人机三维路径规划问题及其建模_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.0637597e+01   1.0948916e+01   8.0637496e+01
   1.1250104e+01   1.1826722e+01   8.1229036e+01
   1.1838745e+01   1.2636252e+01   8.1776657e+01
   1.2404748e+01   1.3380341e+01   8.2282399e+01
   1.2949338e+01   1.4061821e+01   8.2748300e+01
   1.3473740e+01   1.4683529e+01   8.3176400e+01
   1.3979180e+01   1.5248297e+01   8.3568738e+01
   1.4466884e+01   1.5758961e+01   8.3927352e+01
   1.4938079e+01   1.6218354e+01   8.4254280e+01
   1.5393989e+01   1.6629310e+01   8.4551563e+01
   1.5835840e+01   1.6994664e+01   8.4821239e+01
   1.6264859e+01   1.7317250e+01   8.5065346e+01
   1.6682271e+01   1.7599902e+01   8.5285924e+01
   1.7089302e+01   1.7845455e+01   8.5485011e+01
   1.7487177e+01   1.8056741e+01   8.5664646e+01
   1.7877123e+01   1.8236597e+01   8.5826869e+01
   1.8260364e+01   1.8387856e+01   8.5973718e+01
   1.8638128e+01   1.8513351e+01   8.6107231e+01
   1.9011640e+01   1.8615918e+01   8.6229448e+01
   1.9382125e+01   1.8698391e+01   8.6342408e+01
   1.9750810e+01   1.8763603e+01   8.6448149e+01
   2.0118919e+01   1.8814389e+01   8.6548710e+01
   2.0487680e+01   1.8853583e+01   8.6646131e+01
   2.0858317e+01   1.8884020e+01   8.6742449e+01
   2.1232057e+01   1.8908533e+01   8.6839705e+01
   2.1610125e+01   1.8929957e+01   8.6939936e+01
   2.1993747e+01   1.8951126e+01   8.7045182e+01
   2.2384149e+01   1.8974874e+01   8.7157481e+01
   2.2782557e+01   1.9004035e+01   8.7278872e+01
   2.3190196e+01   1.9041444e+01   8.7411395e+01
   2.3608292e+01   1.9089935e+01   8.7557088e+01
   2.4038071e+01   1.9152341e+01   8.7717990e+01
   2.4480759e+01   1.9231498e+01   8.7896139e+01
   2.4937582e+01   1.9330239e+01   8.8093575e+01
   2.5409764e+01   1.9451399e+01   8.8312337e+01
   2.5898533e+01   1.9597811e+01   8.8554463e+01
   2.6405114e+01   1.9772311e+01   8.8821992e+01
   2.6930733e+01   1.9977731e+01   8.9116963e+01
   2.7476615e+01   2.0216907e+01   8.9441415e+01
   2.8043987e+01   2.0492673e+01   8.9797387e+01
   2.8634073e+01   2.0807862e+01   9.0186918e+01
   2.9248101e+01   2.1165310e+01   9.0612046e+01
   2.9887295e+01   2.1567849e+01   9.1074810e+01
   3.0552881e+01   2.2018315e+01   9.1577250e+01
   3.1246086e+01   2.2519541e+01   9.2121404e+01
   3.1968134e+01   2.3074363e+01   9.2709311e+01
   3.2720253e+01   2.3685613e+01   9.3343009e+01
   3.3503667e+01   2.4356126e+01   9.4024539e+01
   3.4319602e+01   2.5088737e+01   9.4755938e+01
   3.5169285e+01   2.5886280e+01   9.5539245e+01
   3.6053940e+01   2.6751588e+01   9.6376499e+01
   3.6974795e+01   2.7687496e+01   9.7269740e+01
   3.7933073e+01   2.8696839e+01   9.8221006e+01
   3.8930002e+01   2.9782450e+01   9.9232335e+01
   3.9966808e+01   3.0947163e+01   1.0030577e+02
   4.1044715e+01   3.2193814e+01   1.0144334e+02
   4.2164949e+01   3.3525235e+01   1.0264710e+02
   4.3328737e+01   3.4944262e+01   1.0391907e+02
   4.4537305e+01   3.6453728e+01   1.0526130e+02
   4.5791877e+01   3.8056467e+01   1.0667583e+02
   4.7093680e+01   3.9755315e+01   1.0816470e+02
   4.8443940e+01   4.1553104e+01   1.0972993e+02
   4.9843882e+01   4.3452670e+01   1.1137359e+02
   5.1294732e+01   4.5456846e+01   1.1309769e+02
   5.2797716e+01   4.7568467e+01   1.1490429e+02
   5.4354060e+01   4.9790367e+01   1.1679542e+02
   5.5964990e+01   5.2125380e+01   1.1877311e+02
   5.7631730e+01   5.4576340e+01   1.2083942e+02
   5.9355508e+01   5.7146081e+01   1.2299637e+02
   6.1137549e+01   5.9837438e+01   1.2524600e+02
   6.2979078e+01   6.2653245e+01   1.2759037e+02
   6.4881322e+01   6.5596336e+01   1.3003149e+02
   6.6845506e+01   6.8669545e+01   1.3257142e+02
   6.8872856e+01   7.1875707e+01   1.3521218e+02
   7.0964598e+01   7.5217656e+01   1.3795583e+02
   7.3121958e+01   7.8698225e+01   1.4080440e+02
   7.5346161e+01   8.2320249e+01   1.4375992e+02
   7.7638433e+01   8.6086563e+01   1.4682444e+02
   8.0000000e+01   9.0000000e+01   1.5000000e+02


四、完整MATLAB代码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决:ValueError: the first two maketrans arguments must have equal length

解决:ValueError: the first two maketrans arguments must have equal length 文章目录 解决:ValueError: the first two maketrans arguments must have equal length背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在…

数据可视化:用图表和图形展示数据

写在开头 在当今信息爆炸的时代,海量的数据如同一座沉默的宝库,等待着我们挖掘和理解。然而,这些庞大的数据集本身可能令人望而生畏。在这个时候,数据可视化成为了解数据、发现模式和传达信息的强大工具。本篇博客将带领你探索数据可视化的奇妙世界,学习如何在python中使…

win10 tensorrt源码编译onnx

直接利用官方源码,如下图,trtexec源码在TensorRT安装目录下,双击trtexec.sln文件,使用vs2019打开源码工程。 如下图,以yolov8为例子,编译成功项目之后,设置命令行参数: --onnxd:/yo…

程序员养生之道

程序员养生之道——如何保持健康的生活方式 摘要: 随着互联网行业的快速发展,越来越多的人选择从事程序员这个职业。然而,长时间的工作和高强度的压力容易导致程序员出现亚健康状况,如头发稀疏、视力下降、肥胖等问题。因此&#…

【Lustre相关】功能实践-01-Lustre集群部署配置

文章目录 一、前言1、关于io5002、关于HPC3、软件架构4、部署方式 二、软件安装1、配置yum源2、内核安装2、服务端安装3、客户端安装4、zfs安装 三、集群部署1、关闭防火墙及SELinux2、配置网络2.1、通用格式2.2、参考示例 3、配置zfs(可选)3.1、通用格式…

uni-app 自带返回方法onBackPress,返回上一级并且刷新页面内容获取最新的数据

onBackPress 返回上一级并且刷新页面内容获取最新的数据 onBackPress 方法是uinapp自带返回键方法,也就是在app和H5返回键 onBackPress() {setTimeout(() > {uni.switchTab({url: /pages/Users/index,})}, 300)return true}, methods: {}在这里 uni.switchTab…

制作rpm安装包时如何处理升级

博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录 升级命令执行顺序重要参数版本问题注意事项 升级命令 rpm安装包的升级…

【SparkSQL】DataFrame入门(重点:df代码操作、数据清洗API、通过JDBC读写数据库)

【大家好,我是爱干饭的猿,本文重点介绍DataFrame的组成、DataFrame的代码构建、DataFrame的入门操作、词频统计案例、电影数据分析、SparkSQL Shuffle 分区数目、SparkSQL 数据清洗API、DataFrame数据写出、DataFrame 通过JDBC读写数据库(MyS…

压力测试+接口测试

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因 为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是…

记i18n ally工具检测语言失败的一则思路

情况 只有某个文件检测不到汉字,其余都可以检测出来,困扰许久,发个博客记一下思路 解决方法: 1、肯定不是i18n ally工具的问题,因为其他的vue都能检测成功 2、是这个文件的问题 采用排除法 先删掉所有代码&#…

容器有挂载目录的时候,容器反向生成为镜像,挂载的内容不会保留。只有实打实拷贝进容器的反向生成镜像才会保留。

无容器目录挂载 1、也就是说宿主机未与容器进行路径映射,故我们可以直接使用指令: docker commit 容器名称/容器ID 像名:标签号,把容器保存为镜像; (其中镜像名和标签号是我们随机取的,新镜像名以及我们的标签号!) 2、我们在不能判断容器与宿…

甘草书店记:2023年10月24日 星期二 「在完美和高效之间寻求平衡」

书店装修设计图出了第一版,不能够完全满意也在不在预料之外。 中国人的哲学是中庸的哲学。在高效中去追逐完美,在追逐完美中提升效率。 分享余华先生在节目中的一段话: 一种阅读和一本书的相遇有时候也是一种缘分。但也可能就是所有人都说…

Diffusion:通过扩散和逆扩散过程生成图像的生成式模型

在当今人工智能大火的时代,AIGC 可以帮助用户完成各种任务。作为 AIGC 主流模型的 DDPM,也时常在各种论文中被提起。DDPM 本质就是一种扩散模型,可以用来生成图片或者为图片去噪。 扩散模型定义了一个扩散的马尔科夫过程,每一步逐…

【C++】了解模板

这里是目录 前言函数模板函数模板的实例化类模板 前言 如果我们要交换两个数字,那么我们就需要写一个Swap函数来进行交换,那如果我们要交换char类型的数据呢?那又要写一份Swap的函数重载,参数的两个类型是char,那我们…

Rocketmq架构

NameServer:作为注册中心,提供路由注册、路由踢出、路由发现功能,舍弃强一致,保证高可用,集群中各个节点不会实时通讯,其中一个节点下线之后,会提供另外一个节点保证路由功能。 Rocket mq name…

AI视觉识别有哪些工业应用

AI视觉识别,主要是利用人工智能算法对图像或视频数据进行分析和处理,以提取关键信息并执行筛选、判断、预警等任务。AI视觉识别涵盖多种应用,如人脸识别、目标检测和识别、图像分割、行为识别、视频分析等。本篇就简单介绍一下AI视觉识别的应…

传智杯第五届题解

B.莲子的机械动力学 分析&#xff1a;这题有个小坑&#xff0c;如果是00 0&#xff0c;结果记得要输出0。 得到的教训是&#xff0c;避免前导0出现时&#xff0c;要注意答案为0的情况。否则有可能会没有输出 #include<assert.h> #include<cstdio> #include<…

J签证、移民、绿卡都是怎么回事?

随着全球化的不断推进&#xff0c;越来越多的人开始关注国际间的移民与签证政策&#xff0c;其中包括J签证、移民以及绿卡的申请问题。本文将简要介绍J签证、移民绿卡的基本概念&#xff0c;并提供相关申请的一般步骤&#xff0c;以帮助读者更好地了解这些程序。 首先&#xff…

【raect.js + hooks】useRef 搭配 Houdini 创造 useRipple

水波纹点击特效 really cool&#xff0c;实现水波纹的方案也有很多&#xff0c;笔者经常使用 material 组件&#xff0c;非常喜欢 mui 中的 ripple&#xff0c;他家的 ripple 特效就是通过 css Houdini 实现的。 今天&#xff0c;我们将复刻一个 ripple&#xff0c;并封装成 ho…

vue3 router-view 使用keep-alive报错parentcomponent.ctx.deactivate is not a function

问题 如下图&#xff0c;在component组件上添加v-if判断&#xff0c;会报错: parentcomponent.ctx.deactivate is not a function 解决方法 去除v-if&#xff0c;将key直接添加上。由于有的公用页面&#xff0c;需要刷新&#xff0c;不希望缓存&#xff0c;所以需要添加key…
最新文章