【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)

news/2024/4/27 17:27:23/文章来源:https://blog.csdn.net/Ke_Yan_She/article/details/130095687

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

 随着各种新兴技术的发展,无人机在灾后救援、物资运输、环境监测、军事作战等多个领域起着广泛的应用[1]。航迹规划是无人机执行任务中最重要的部分之一,是指在一定的约束条件下,找到一条能从起点抵达终点且安全、快速、消耗代价小的路线[2]。因此,航迹规划问题经常被当作优化问题来处理,但传统的优化方法无法得到较为精确的解。近年来,受到自然界现象的启发,国内外学者提出了许多生物智能算法如人工蜂群算法、蚁 群 算 法 、天牛须搜索算法 等。它们具有原理简 单、易收敛到最优解、参数设置简单等优点,因此在优化问题中有着广泛的应用。

灰 狼 优 化 算 法是一种群体智能搜索算法,借鉴了灰狼群体中的社会等级制度和捕食行为模式,具有较强的收敛性能和探索能力[4]。但是随着维度和复杂性的增加,GWO 算法 会出

现收敛速度慢、易陷入局部最优、寻优效果较差等问题,于是一些改进的算法被相继提出,一定程度上解决了上述问题。

 在无人机航迹规划问题中,建立无人机的规划空间环境和航迹评价指标是进行航迹规划的前提准备。

 不同的环境信息能够直接影响航迹规划的结果,也会影响执行任务的效果,因此对规划空间环境进行精准建模是十分重要的。考虑到数据存储和计算量的问题,本文采用栅格法来建立规划空间环境模型。

📚2 运行结果

部分代码:

% Calculating theta base on start and target points
theta = atand((target(2) - start(2))/(target(1) - start(1)));
% Parameter to control size of bounds
delta_d = 0;
% Number of wolfs
N = 50;
% Number of point generation for each wolf
d = 10;
% Constant for Cost_Function
mhio = 0.4;
% Optimization itteration
t_max = 100;

%% Initialization

% Transofrm point and threats to the new coordination
start_transform = Coordinate_Transfromation(start, start, theta);
target_transform = Coordinate_Transfromation(target, start, theta);
threats_tranform = threats;
for i = 1:size(threats, 1)
    threats_tranform(i, 1:3) = Coordinate_Transfromation(threats(i, 1:3), start, theta);
end

% Calculating bounds for initialization and producing N random intial points
[P_min, P_max] = UL_Bounds(threats_tranform, delta_d);

wolfs_positions = Initialization(N, d, target_transform, start_transform, P_min, P_max);

% calculating fittness of each wolf
fitness = Inf;
for i=1:N
    % wolfs_positions(:, :, i) is a set of d points' coordinates for the ith wolf
    fitness_wolf = Cost_Function(wolfs_positions(:, :, i),  threats_tranform, mhio, d);
    if fitness_wolf < fitness
        fitness = fitness_wolf;
        X_alpha = wolfs_positions(:, :, i);
        X_alpha_index = i;
    end
end

% Generating matrix for Xi(t). 
X_t = zeros(d, 3, N, t_max);

for i = 1:N
    for t = 1:t_max
        if t==1
            % We have Xi(1) for different all i. So we fill the X_t(:,:,i,1)
            % with the known positions.
            X_t(:,:,i,1) = wolfs_positions(:, :, i);
        else
            % Also since all the time for all wolfs, the x coordinate
            % should be the same, we fill it so !
            X_t(:,1,i,t) = wolfs_positions(:, 1, i);
            
            % Also the last row (d) for all X_t should be the target
            X_t(d,:,i,t) = target_transform;
        end
    end
end 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]许乐,赵文龙.基于新型灰狼优化算法的无人机航迹规划[J].电子测量技术,2022,45(05):55-61.DOI:10.19651/j.cnki.emt.2108509.

[2]芦方旭,米志超,李艾静,王海,田雨露.基于灰狼算法的无人机基站三维空间优化部署[J].兵器装备工程学报,2021,42(07):185-189.

🌈4 Matlab代码实现

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

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

相关文章

LeetCode——二叉树的非递归遍历

144. 二叉树的前序遍历 给你二叉树的根节点root&#xff0c;返回它节点值的前序遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1…

PDF怎么转CAD文件?(免费!高效转换方法汇总)

一般而言&#xff0c;PDF图纸是不能修改的。若需修改&#xff0c;则需将PDF转CAD&#xff0c;此时如何满足PDF转CAD的需求呢&#xff1f;今天&#xff0c;我将教你两种免费的PDF转CAD的方法&#xff0c;助力高效办公。 1.本地软件转换法 这是用本地软件转换方法&#xff0c;支…

JVM之GC日志解读

通过阅读Gc日志&#xff0c;我们可以了解Java虚拟机内存分配与回收策略。 内存分配与垃圾回收的参数列表 -XX:PrintGC 输出GC日志。类似&#xff1a;-verbose:gc-XX:PrintGCDetails 输出GC的详细日志-XX:PrintGCTimestamps 输出GC的时间戳&#xff08;以基准时间的形式&#xf…

软件企业利用ChatGPT的正确姿势

先来看一下现在市场环境 ChatGPT作为现象级产品横空出世之后&#xff0c;极大地带动了大语言模型产业和生成式AI&#xff08;AIGC&#xff09;产业的蓬勃发展。海外市场上&#xff0c;OpenAI、微软、谷歌、Meta等巨头动作频频。中国市场更是风起云涌&#xff0c;百度、阿里、华…

Golang每日一练(leetDay0034) 二叉树专题(3)

目录 100. 相同的树 Same Tree &#x1f31f; 101. 对称二叉树 Symmetric Tree &#x1f31f; 102. 二叉树的层序遍历 Binary Tree Level-order Traversal &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一…

Talk预告 | 清华大学交叉信息研究院助理教授赵行:基于视觉感知的自动驾驶运动预测

本期为TechBeat人工智能社区第481期线上Talk&#xff01; 北京时间3月15日(周三)20:00&#xff0c;清华大学交叉信息研究院助理教授——赵行的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “基于视觉感知的自动驾驶运动预测”&#xff0c;届时将…

AIGC大模型时代下,该如何应用高性能计算PC集群打造游戏开发新模式?

ACT | SIM | ETC | FTG | RAC AVG | RPG | FPS | MUG | PUZ ACT、SIM、ETC、FTG、RAC、RTS、STG、AVG、RPG、FPS、MUG、PUZ、SLG、SPG等游戏类型&#xff0c;需要高性能的计算机来支持运行。为了满足这些游戏的需求&#xff0c;国内服务器厂商不断推出新的产品&#xff0c;采用…

AD20的PCB布线规则设定

目录 1、最小安全间距 2、线宽规则 3、过孔 4、盖油工艺设计 5、内电层焊盘模式设置 6、反焊盘间距设计 7、焊盘与覆铜连接类型 AD20的规则库设定是PCB布线的首要工作&#xff0c;在布线初期就要设置好&#xff0c;布线的过程中还需要动态的变更&#xff0c;因此本篇总结了PCB的…

基于逻辑回归构建肿瘤预测模型

使用逻辑回归构建肿瘤预测模型 描述 乳腺癌数据集包括569个样本&#xff0c;每个样本有30个特征值&#xff08;病灶特征数据&#xff09;&#xff0c;每个样本都属于恶性&#xff08;0&#xff09;或良性&#xff08;1&#xff09;两个类别之一&#xff0c;要求使用逻辑回归&…

九龙证券|服务器龙头获资金连续抢筹,尾盘主力抢筹前期大热门股

今天&#xff0c;核算机职业取得主力大手笔抢筹。 今天主力资金净流出53.89亿元&#xff0c;其间创业板净流出3.19亿元&#xff0c;沪深300成份股净流出7.61亿元。 申万一级职业中&#xff0c;今天有19个职业上涨&#xff0c;传媒职业接连两日均涨近5%&#xff0c;居首位&…

解密HTTP协议:探索其组成部分与工作原理

前言 欢迎来到今天的每日一题&#xff0c;每日一提。昨天有聊到&#xff0c;HTTP 和 HTTPS 之间有什么区别&#xff1f;面试官基本秉承着刨根问题的原则&#xff0c;肯定是不会轻易放过我们的&#xff0c;那么自然是要继续拷问了。所以我们今天就聊聊什么是 HTTP&#xff0c;它…

ERTEC200P-2 PROFINET设备完全开发手册(5-2)

5.2 TIA 数据记录操作 在PLC的程序中&#xff0c;可以通过指令RDREC和WRREC读写数据记录&#xff0c;在参考代码里可以看到读写操作都实现了index 2的记录数据&#xff0c;并且初始化为&#xff1a; #define DEMO_RECORD "ABCDEFGH" 首先定义要写入和读出的数据…

让技术造福残障人士,让开发助力无障碍

前言 随着互联网技术的快速发展&#xff0c;越来越多的领先技术运用到公益领域中来。运用科技来造福残障人士&#xff0c;比如前几年比较智能化的自动行走轮椅&#xff0c;盲人阅读器&#xff0c;以及聋哑人助听器等&#xff0c;都是通过科技来帮助残障人士方便生活的例子。作为…

pandas之DataFrame基础

pandas之DataFrame基础1. DataFrame定义2. DataFrame的创建形式3. DataFrame的属性4. DataFrame的运算5. pandas访问相关操作5.1 使用 loc[]显示访问5.2 iloc[] 隐式访问5.3 总结6. 单层索引和多层级索引6.1 索引种类与使用6.2 索引相关设置6.3 索引构造6.4 索引访问6.5 索引变…

【排序算法 上】带你手撕常见排序 (插入,希尔,选择,堆排序) (动图详解)

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; “东风随春归&#xff0c;发我枝上花。” 前言&#xff1a; 排序是日常生活中极其常见的一种算法&#xff0c;它的功能很简单&#xff0c;就是将数字按照升序/降序排列&#xff0c;最终形成一组有序的数字&a…

NumPy 秘籍中文第二版:五、音频和图像处理

原文&#xff1a;NumPy Cookbook - Second Edition 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 在本章中&#xff0c;我们将介绍 NumPy 和 SciPy 的基本图像和音频&#xff08;WAV 文件&#xff09;处理。 在以下秘籍中&#xff0c;我们将使用 NumPy 对声音和图像进…

Redis锁的租约问题

目录Redis的租约问题Redis租约问题的想法Redis租约问题的解决方案Redis的租约问题 首先我们先来说一说什么是Redis的租约问题。   在我们实现Redis分布式锁的时候&#xff0c;我们会出现Redis锁的时间<业务执行执行时间&#xff0c;这其实就是一个典型的租约问题&#xf…

ChatGPT背后的AI背景、技术门道和商业应用(万字长文,建议收藏)

作者&#xff1a;京东科技 李俊兵 各位看官好&#xff0c;我是球神&#xff08;江湖代号&#xff09;。 自去年11月30日ChatGPT问世以来&#xff0c;迅速爆火出圈。 起初我依然以为这是和当年Transformer, Bert一样的“热点”模型&#xff0c;但是当一篇篇文章/报告不断推送…

LAMP架构的配置

一.LAMP概述 1、LAMP的概念 LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态web站点服务及其应用开发环境 LAMP是一个缩写词&#xff0c;具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、…

【Unity入门】11.脚本控制物体旋转

【Unity入门】脚本控制物体旋转 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;控制物体自转 &#xff08;1&#xff09;创建RotateLogic脚本 上一篇文章我们学习了如何在脚本中获取物体对象…