【无人机路径规划】实现有效的水陆两栖无人机任务规划和执行(Matlab实现)(含粒子群优化和遗传算法)

“在代码的海洋里,有无尽的知识等待你去发现。我就是那艘领航的船,带你乘风破浪,驶向代码的彼岸。

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

随着无人机在各个领域的广泛应用,实现能量优化的无人机路径规划变得至关重要。1.通过优化路径减少能量消耗,可以显著延长无人机的续航时间,使其能够执行更长时间的任务或覆盖更大的区域。 2. 提高任务效率:减少不必要的能量浪费,确保无人机能够以更高效的方式完成任务,如监测、巡检、物流配送等。 3. 降低运营成本:减少对电池的频繁更换或充电需求,降低无人机的运营成本和维护工作量。总之,实现能量优化的无人机路径规划对于提高无人机的性能和应用价值具有重要意义,需要综合考虑环境因素、无人机性能参数和路径规划算法等多个方面,以找到最优的路径和飞行策略。

📚2 运行结果

主函数部分代码:

clc
clear
close all

%% 三维路径规划模型
startPos = [1, 1, 1];          %起始位置坐标
goalPos = [100, 100, 80];      %终止位置坐标

% 定义山峰地图
posBound = [0,100; 0,100; 0,100;];

% 定义海洋参数
h_ocean = 30;    %定义海洋深度
d_ocean = 1.5;   %海洋中航行能源消耗系数        
d_air = 1;       %大气中飞行能源消耗系数

% 地图长、宽、高范围
[X,Y,Z] = defMap(posBound);

% 定义威胁模型坐标
radar = [40 20 15];   %雷达威胁
H_gun = [70 70 15];   %高炮威胁坐标
biology = [60 20;80 30;10 60];    %水下不规则生物威胁坐标
air = [50 66];        %大气威胁坐标

%% 设置超参数
chromLength = 5;     % 染色体长度,代表路线的控制点数,未加首末两点
p_select = 0.5;      % 选择概率
p_crs = 0.8;         % 交叉概率
p_mut = 0.2;         % 变异概率
popNum = 50;         % 种群规模
iterMax = 100;       % 最大迭代数

%% 种群初始化
% 产生初始种群   
pop = initPop(popNum,chromLength,posBound);

% 计算种群适应度
pop = calFitness(startPos,goalPos,X,Y,Z,pop,d_ocean,d_air,h_ocean,radar,H_gun,air,biology);

% 更新种群最优
GlobalBest.fitness = inf; % 初始化每一代的最优粒子 inf为无穷大量∞
[pop,GlobalBest] = calBest(pop,GlobalBest); 

% 生成雷达模型
[x_radar,y_radar,z_radar] = sphere_threat(radar,h_ocean);

% 生成高炮模型
[x_H_gun,y_H_gun,z_H_gun] = sphere_threat(H_gun,h_ocean);

%最优适应度数组预分配内存
fitness_beat_iters = zeros(1,iterMax);

%% 主程序
for i = 1:iterMax  
    
    tic
    
    % 选择操作
    parentPop = select(pop, p_select);

    % 交叉操作
    childPop = crossover(parentPop,p_crs);
    
    % 变异操作
    childPop = mutation(childPop,p_mut,posBound);
    
    % 将父代和子代组合得到新的种群
    pop = [parentPop, childPop];
    
    % 计算种群适应度
    pop = calFitness(startPos, goalPos, X,Y,Z,pop,d_ocean,d_air,h_ocean,radar,H_gun,air,biology);

    % 更新种群最优
    [pop,GlobalBest] = calBest(pop,GlobalBest);
    
    % 把每一代的最优粒子赋值给fitness_beat_iters
    fitness_beat_iters(i) = GlobalBest.fitness;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]薛均晓,张世文,陆亚飞,等.基于深度强化学习的无人机博弈路径规划[J/OL].郑州大学学报(理学版):1-7[2024-09-13].https://doi.org/10.13705/j.issn.1671-6841.2024033.

[2]柳汀,周国鑫,徐扬,等.融合信息图的优化哈里斯鹰多无人机动态目标搜索[J/OL].航空学报:1-13[2024-09-13].http://kns.cnki.net/kcms/detail/11.1929.V.20240826.1203.003.html.

🌈4 Matlab代码实现

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值