【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 2645期】

您所在的位置:网站首页 gremlins无人机参考文献 【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 2645期】

【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 2645期】

2023-06-12 11:55| 来源: 网络整理| 查看: 265

⛄一、无人机简介

0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化、完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下救援的白鲨MIX水下无人机等,决定飞行器性能主要是内部的飞控系统和外部的路径规划问题。就路径问题而言,在具体实施任务时仅靠操作员手中的遥控器控制无人飞行器执行相应的工作,可能会对操作员心理以及技术提出极高的要求,为了避免个人操作失误,进而造成飞行器损坏的危险,一种解决问题的方法就是对飞行器进行航迹规划。 飞行器的测量精度,航迹路径的合理规划,飞行器工作时的稳定性、安全性等这些变化对飞行器的综合控制系统要求越来越高。无人机航路规划是为了保证无人机完成特定的飞行任务,并且能够在完成任务的过程中躲避各种障碍、威胁区域而设计出最优航迹路线的问题。

1 常见的航迹规划算法 在这里插入图片描述 图1 常见路径规划算法 文中主要对无人机巡航阶段的航迹规划进行研究,假设无人机在飞行中维持高度与速度不变,那么航迹规划成为一个二维平面的规划问题。在航迹规划算法中,A算法计算简单,容易实现。在改进A算法基础上,提出一种新的、易于理解的改进A算法的无人机航迹规划方法。传统A算法将规划区域栅格化,节点扩展只限于栅格线的交叉点,在栅格线的交叉点与交叉点之间往往存在一定角度的两个运动方向。将存在角度的两段路径无限放大、细化,然后分别用两段上的相应路径规划点作为切点,找到相对应的组成内切圆的圆心,然后作弧,并求出相对应的两切点之间的弧所对应的圆心角,根据下式计算出弧线的长度 在这里插入图片描述 式中:R———内切圆的半径; α———切点之间弧线对应的圆心角。

⛄二、遗传算法简介

1 引言 在这里插入图片描述 在这里插入图片描述 2 遗传算法理论 2.1 遗传算法的生物学基础 在这里插入图片描述 在这里插入图片描述 2.2 遗传算法的理论基础 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 2.3 遗传算法的基本概念 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 2.4 标准的遗传算法 在这里插入图片描述 在这里插入图片描述 2.5 遗传算法的特点 在这里插入图片描述 在这里插入图片描述 2.6 遗传算法的改进方向 在这里插入图片描述 3 遗传算法流程 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 4 关键参数说明 在这里插入图片描述

⛄三、部分源代码

clc clear close all

%% 三维路径规划模型 startPos = [1, 1, 1]; goalPos = [100, 100, 20];

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

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

%% 设置超参数 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);

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

%% 主程序 for i = 1:iterMax % 选择操作 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); % 更新种群最优 [pop,GlobalBest] = calBest(pop,GlobalBest); % 把每一代的最优粒子赋值给fitness_beat_iters fitness_beat_iters(i) = GlobalBest.fitness; % 在命令行窗口显示每一代的信息 disp(['第' num2str(i) '代:' '最优适应度 = ' num2str(fitness_beat_iters(i))]); % 画图 plotFigure(startPos,goalPos,X,Y,Z,GlobalBest); pause(0.001);

end

⛄四、运行结果

在这里插入图片描述 在这里插入图片描述

⛄五、matlab版本及参考文献

1 matlab版本 2014a

2 参考文献 [1]何光勤,朱一飞,张才然.基于遗传算法的无人机三维航迹规划研究[J].价值工程. 2020,39(07)

3 备注 简介此部分摘自互联网,仅供参考,若侵权,联系删除



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3