Matlab|基于遗传粒子群算法的无人机路径规划【遗传算法|基本粒子群|遗传粒子群三种方法对比】

目录

主要内容   

  模型研究   

  部分代码   

  结果一览   

下载链接


主要内容   

为了更高效地完成复杂未知环境下的无人机快速探索任务,很多智能算法被应用于无人机路径规划方面的研究,但是传统粒子群算法存在粒子更新思路单一、随机性受限、收敛速度慢、 易陷入局部最优等问题,因此,需要结合无人机探索特点,将粒子群算法和遗传算法结合形成改进粒子群算法,提高算法的全局寻优能力,从而增强无人机路径规划的效率。

程序采用遗传粒子群、基本粒子群和遗传算法三种算法进行路径规划,并对比优化效果,在综合考虑路径最优性、平滑性和安全性的基础上构建了聚合适应度函数,程序模块化编程,方便研究学习!

  模型研究   

聚合适应度函数建模

适应度评价函数是衡量当前所选路径优劣的客观标准。为了确保获得最优的路径规划效果,必须根据不同的应用场景选择相适应的评价准则。

路径长度是无人机路径规划首当其冲需要考虑的,因为无人机续航有限,只有在有限的续航范围内利用最短距离完成探索才能最大程度确保规划方案的可行性。不难得出,路径长度计算公式如下:

从而可以看出,总的路径长度值是由所有航段求和得到,该值越小说明路径越短。

航迹平滑度是综合考虑无人机能量有限和飞行加减速的影响,在任务执行时,无人机普遍面临内置能量有限、续航时间短的困难。当规划路径包含过多曲折时,无人机在飞行过程中频繁进行加减速,导致能量加速消耗,从而压缩了有效作业时间。因此,为了最大程度提高任务执行效率,对路径平滑性提出了迫切需求。

因此,无人机飞行高度也需要进行限制,从而保证航迹平滑性。

路径安全性考虑无人机和探测雷达的位置关系,以保证飞行过程的安全性。

  部分代码   

%初始染色体个数
chromosome = repmat(my_chromosome,model.NP,1);
%子代染色体
next_chromosome = repmat(my_chromosome,model.NP,1);
​
%种群的适应度值
seeds_fitness=zeros(1,model.NP);
%全局最优
p_global.cost=inf;
%适应度最优值保留
best=zeros(model.MaxIt+1,1);
best(1)=model.globel.cost;
%种群初始化
for i=1:model.NPchromosome(i).pos=model.chromosome(i).pos;chromosome(i).alpha=model.chromosome(i).alpha;chromosome(i).beta=model.chromosome(i).beta;chromosome(i).atkalpha=model.chromosome(i).atkalpha;chromosome(i).atkbeta=model.chromosome(i).atkbeta;chromosome(i).T=model.chromosome(i).T;chromosome(i).sol=model.chromosome(i).sol;chromosome(i).cost=model.chromosome(i).cost;chromosome(i).IsFeasible=model.chromosome(i).IsFeasible;
​seeds_fitness(i)=model.seeds_fitness(i);for d=1:3chromosome(i).vel(d,:)= zeros(1,model.dim);end%更新历史最优粒子chromosome(i).best.pos =chromosome(i).pos;chromosome(i).best.alpha =chromosome(i).alpha;chromosome(i).best.beta =chromosome(i).beta;chromosome(i).best.T =chromosome(i).T;chromosome(i).best.sol =chromosome(i).sol;chromosome(i).best.cost =chromosome(i).cost;%更新全局最优例子if p_global.cost > chromosome(i).best.costp_global = chromosome(i).best;endend
​
for it=1:model.MaxIt%得到最大和平均适应度值model.f_max =max(seeds_fitness);model.f_avg =mean(seeds_fitness);%按照适应度对染色体排序sort_array =zeros(model.NP,2);for i=1:model.NPsort_array(i,:)= [i,chromosome(i).cost];end%以cost从小到大进行排序sort_array =sortrows(sort_array,2);model.p_global =p_global;%只保留前一半的染色体,后一般抛弃

  结果一览   

下载链接

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

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

相关文章

FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载

小红书技术团队FireRed最近推出了一款名为FireRedTTS的先进语音合成系统,该系统能够基于少量参考音频快速模仿任意音色和说话风格,实现独特的音频内容创造。 FireRedTTS 只需要给定文本和几秒钟参考音频,无需训练,就可模仿任意音色…

【leetcode】 45.跳跃游戏 ||

如果我们「贪心」地进行正向查找,每次找到可到达的最远位置,就可以在线性时间内得到最少的跳跃次数。 例如,对于数组 [2,3,1,2,4,2,3],初始位置是下标 0,从下标 0 出发,最远可到达下标 2。下标 0 可到达的…

如何在IDEA使用git上传代码的时候过滤掉非.java文件

1.情况分析 我们的java上传代码的时候,经常会出现这个xml,等等的无关文件,但是这个时候我们使用这个里面的git上传的时候无法过滤掉,我们在自己的这个代码仓库查看的时候经常显示无关文件,这个时候我们就可以通过相关配置进行文件…

MySQL连接查询:联合查询

先看我的表结构 emp表 联合查询的关键字(union all, union) 联合查询 基本语法 select 字段列表 表A union all select 字段列表 表B 例子:将薪资低于5000的员工, 和 年龄大于50 岁的员工全部查询出来 第一种 select * fr…

Java版本的SSE服务端实现样例

简单记录一下使用netty方式实现SSE的服务端功能 目录 简要说明基于Netty功能需求后端代码1. 创建一个SpringBoot 应用2. 创建服务端功能3. 创建前端功能4. 测试SSE 封装为组件 简要说明 Server-Sent Events (SSE) 是一种用于在客户端和服务器之间建立单向通信的技术。 它允许服…

通信工程学习:什么是RFID射频识别

RFID:射频识别 RFID射频识别(Radio Frequency Identification),又称为无线射频识别,是一种非接触式的自动识别技术。它通过无线电信号来识别特定目标并读写相关数据,而无需在识别系统与特定目标之间建立机械…

任务【浦语提示词工程实践】

0.1 环境配置 首先点击左上角图标,打开Terminal,运行如下脚本创建虚拟环境: # 创建虚拟环境 conda create -n langgpt python3.10 -y 运行下面的命令,激活虚拟环境: conda activate langgpt 之后的操作都要在这个环境…

【EXCEL数据处理】000013 案例 EXCEL筛选与高级筛选。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000013 案例 EXCEL筛选与高级筛选。使用的软件&#…

【华为OD机试真题】95、最少面试官数

package mainimport ("fmt""sort" )type s struct {start intend intworkCount int }type duration struct {start intend int }// 查询时间段内是否有可用的面试官 func getFreeS(sList []*s, d *duration, workCountLimit int) (sIndex int)…

案例:问题处理与原因分析报告的模板

系统上线后暴露的问题也是一种财富,我们需要从中吸收经验教训,规避其他类似的问题。对于上线后的问题如何进行原因分析,我提供两个分析报告的模板,供大家参考。 模板案例1:共性现象的原因分析报告 模板案例二&#xf…

Java后端面试很水的,7天就能搞定!

随着Java的越来越卷,面试也直接上难度了,从以前的八股文到场景题了,尤其是有经验的去面试,场景题都是会问的,近期面试过的应该都深有体会! 场景题230道: 1.分布式锁加锁失败后的等待逻辑是如何…

人脸表情行为识别系统源码分享

人脸表情行为识别系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Webstorm 中对 Node.js 后端项目进行断点调试

首先,肯定需要有一个启动服务器的命令脚本。 然后,写一个 debug 的配置: 然后,debug 模式 启动项目和 启动调试服务: 最后,发送请求,即可调试: 这几个关键按钮含义: 重启…

基于单片机的智能浇花系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采样DHT11温湿度传感器检测温湿度,通过LCD1602显示 4*4按键矩阵可以设置温度湿度阈值,温度大于阈值则开启水泵,湿度大于阈值则开启风扇…

关于PPT生成的开源大模型总结

目前需要开源的PPT生成模型,在这里对github上的一些模型进行筛选 搜索关键词:ppt generate(more starts) williamfzc/chat-gpt-ppt: 支持直接生成PPT支持中英文需要调用ChatGPT(Add your token (official openai api k…

【Matlab】Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表

Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表 初始数据 filename C:\Users\jia\Desktop\yadian\data\1Hz 2024_09_12 17_10_06.csv; 代码: clc;clear close all; % 读取Excel文件 filename C:\Users\jia\Desktop\yadian\data\1Hz …

智能手表(Smart Watch)项目

文章目录 前言一、智能手表(Smart Watch)简介二、系统组成三、软件框架四、IAP_F411 App4.1 MDK工程结构4.2 设计思路 五、Smart Watch App5.1 MDK工程结构5.2 片上外设5.3 板载驱动BSP5.4 硬件访问机制-HWDataAccess5.4.1 LVGL仿真和MDK工程的互相移植5…

注意,学会解决路由问题!(未完)

文章目录 Abstract1 Introduction2 相关工作3 注意力模型3.1 编码器3.2 解码器Abstract 最近提出的为组合优化问题学习启发式方法的想法很有前景,因为它可以节省昂贵的开发成本。然而,要将这一想法推向实际应用,我们需要更好的模型和更好的训练方法。我们在这两个方向都做出…

Java_Se 容器2(Set 接口)

Set接口继承自Collection接口,Set接口中没有新增方法,它和Collection接口保持完全一致。我们在前面学习List接口的使用方式,在Set中仍然适用。因此,学习Set的使用将没有任何难度。Set接口特点Set特点:无序、不可重复。…

国庆作业

day1 1.开发环境 Linux系统GCCFDBmakefilesqlite3 2.功能描述 项目功能: 服务器:处理客户端的请求,并将数据存入数据库中,客户端请求的数据从数据库进行获取,服务器转发给客户端。 用户客户端:实现账号的注册、登…