【SSA三维路径规划】基于matlab麻雀算法无人机三维路径规划【含Matlab源码 171期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、无人机简介

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

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

⛄二、麻雀搜索算法简介

1 麻雀搜索算法
(以下描述,均不是学术用语,仅供大家快乐的阅读)
  麻雀搜索算法(sparrow search algorithm)是根据麻雀觅食并逃避捕食者的行为而提出的群智能优化算法。提出时间是2020年,也就是今年,这是一个新鲜热乎的新算法,相关的论文和研究还比较少,有可能还有一些正在发表中,受疫情影响需要论文的同学抓紧时间水论文了。
  麻雀搜索算法主要模拟了麻雀群觅食的过程。麻雀群觅食过程也是发现者-跟随者模型的一种,同时还叠加了侦查预警机制。麻雀中找到食物较好的个体作为发现者,其他个体作为跟随者,同时种群中选取一定比例的个体进行侦查预警,如果发现危险则放弃食物,安全第一。
  麻雀搜索算法的具体实现其实和人工蜂群算法非常相似,基本结构几乎一致,但是搜索算子有一定的差异,可以说是一种人工蜂群算法的改进算法。
  麻雀搜索算法的相关论文比较少,只看了原始论文,算法的描述比较详细,不过可以看出论文编排的比较匆忙,有部分公式显得过于复杂,影响理解。下面我会根据自己的理解对其中的部分公式进行简化,如果有不对的地方,欢迎大家留言。

2 算法流程
这次我们的主角是一群麻雀。
在这里插入图片描述
 麻雀虽小五脏俱全,每只麻雀只有一个属性:位置,代表它找到的食物的位置。每只麻雀有三种可能的行为:1.作为发现者,继续搜索食物,2,作为跟随者,跟随一个发现者觅食,3.警戒侦查,有危险则放弃食物。
  在D维解空间内每只麻雀的位置为 ,适应度值 。
  这群麻雀中有N只麻雀,每代选取种群中位置最好的PN只麻雀作为发现者,剩余的N-PN只麻雀作为跟随者。
2.1 更新发现者位置
每代发现者的位置更新公式如下:
在这里插入图片描述
上图为文中的公式描述,有些不准确,更加精确的描述如下:
在这里插入图片描述
 其中表示种群中第t代中第i个个体的第d维位置, 为(0,1]中的均匀随机数,Q为一个标准正态分布随机数。为[0,1]中的均匀随机数,ST为警戒阈值,取值范围为[0.5,1.0]。
  可以看出,当大于ST时,该发现者将按正态分布随机移动到当前位置附近。(其值收敛于最优位置)。
  当小于ST时是什么情况呢,我们先看看函数 的图像,其中取值为1000。
在这里插入图片描述
可以看出在其分布随着x的变大,取值范围逐渐由(0,1)慢慢缩小为约(0,0.4)。
X值较小时,取值靠近1的概率较高,随着X的增大,取值的分布变得较为均匀。
所以当 小于ST,麻雀的每一维都在变小,当然,这不是一个好策略。(其值收敛于0)。

2.2更新跟随者位置
文中跟随者的位置更新公式及描述如下图:
在这里插入图片描述
首先我们先看看是一个大小为1*D的矩阵(1行D列),其每一维都随机从{-1,1}中选取 。
  举个简单的例子,假设 ,X=(x1,x2,x3)=(1,2,3),则
在这里插入图片描述
 由于是行向量与矩阵运算,所以文中公式两边不应该出现公式j,出现公式j则表示该变量是一个数值而非一个向量。
  简化可得其位置更新公式如下:
在这里插入图片描述
其中xw为当前种群中麻雀的最差位置,xb则为种群中麻雀的最有位置。
从公式(2)中可以看出,若i>n/2时,其值为一个标准正态分布随机数与一个以自然对数为底数的指数函数的积,当种群收敛时其取值符合标准正态分布随机数。(其值会收敛于0)。
若i<=n/2时,其取值为当前最优的麻雀的位置加上该麻雀与最优位置每一维距离随机加减后,将总和均分到每一维上。解释有点绕口,请结合公式自行理解。该过程可以描述为在当前最优位置附近随机找一个位置,且每一维距最优位置的方差将会变得更小,即不会出现在某一维上与最优位置相差较大,而其他位置相差较小。(其值收敛于最优位置)。

2.3 侦查预警行为
在麻雀觅食的同时他们中的部分会负责警戒,当危险靠近时,他们会放弃当前的食物,即无论该麻雀是发现者还是跟随者,都将放弃当前的食物而移动到一个新的位置。
每代将从种群中随机选择SD个个体进行预警行为。
其位置更新公式如下:
在这里插入图片描述
其中为符合标准正态分布的随机数,K为[-1,1]的均匀随机数,为一个较小的数防止分母唯一。与原文中的公式相比,我去除了原绝对值符号,因为两个随机数均是关于原点中心对称,增加的分母绝对值,防止分母取值为0。其中为最差位置的麻雀的适应度值。
从公式(3)中可以看出,如果该预警的麻雀处于当前的最优位置时,它会逃离到自身附近的一个位置,具体有多近取决于自身距离最差位置与自身位置食物与最差食物的差别的比值;如果该麻雀不是处于最优位置的那一只,它讲逃到当前最优位置附近。(其值收敛于最优位置)。
麻雀搜索算法的流程图如下:
在这里插入图片描述
流程图
可以看出麻雀搜索算法的流程非常的简单。但是根据上面对这三个更新公式的分析可以看出,麻雀搜索算法的更新方式可大致分为两种:1.向当前最优位置靠近;2.向原点靠近。
使用这两种方式来更新麻雀的位置将会使算法容易陷入局部最优。直觉告诉我拥有这样的更新规则的算法不是一个优秀的算法。具体的问题下面实验中进行详述。

⛄三、部分源代码

close all;
clear all;
clc;
addpath(genpath(‘./’));

%% Plan path
disp(‘Planning …’);
map = load_map(‘maps/map4.txt’, 0.1, 0.5, 0.25);
start = { [1 7 1]};
stop = {[0.1 17 3]};
%start = {[0 1 5]};
%stop = {[19 1 5]};
nquad = length(start);
for qn = 1:nquad
v = cputime;
path{qn} = dijkstra(map, start{qn}, stop{qn});
c = cputime - v;
fprintf(‘Algo Execution time = %d \n’,c);
end
if nquad == 1
plot_path(map, path{1});
else
% you could modify your plot_path to handle cell input for multiple robots
end

%% Additional init script
init_script;

%% Run trajectory
trajectory = test_trajectory(start, stop, map, path, true); % with visualization

⛄四、运行结果

在这里插入图片描述

⛄五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 汤安迪,韩统,徐登武,谢磊.基于混沌麻雀搜索算法的无人机航迹规划方法[J].计算机应用. 2021,41(07)

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

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值