单目标应用:海鸥优化算法(Seagull optimization algorithm,SOA)求解无人机路径规划(提供MATLAB代码) |
您所在的位置:网站首页 › 海鸥长度 › 单目标应用:海鸥优化算法(Seagull optimization algorithm,SOA)求解无人机路径规划(提供MATLAB代码) |
一、海鸥优化算法
海鸥优化算法(Seagull optimization algorithm,SOA)由Gaurav Dhiman等人于2019年提出。 海鸥是候鸟。繁殖期主要栖息于北极苔原、森林苔原、荒漠、草地的河流、湖泊、水塘和沼泽中,冬季主要栖息于海岸、河口和港湾。成对或成小群活动或在空中飞翔。在海边和海港,成群的漂浮在水面上,游泳和觅食。海鸥以海滨小鱼、昆虫、软体动物、甲壳类以及耕地里的蠕虫和蛴螬为食。 海鸥优化算法原理 二、无人机(UAV)三维路径规划无人机三维路径规划数学模型参考如下文献: Phung M D , Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm Optimization[J]. arXiv e-prints, 2021. 目标函数由路径长度成本,安全性与可行性成本、飞行高度成本和路径平滑成本共同组成: (1)路径长度成本路径长度成本由相邻两个节点之间的欧氏距离和构成,其计算公式如下: 路径安全性与可行性成本通过下式计算: 飞行高度成本通过如下公式计算所得: 投影向量通过如下公式计算: 转弯角度的计算公式为: 爬坡角度的计算公式为: 平滑成本的计算公式为: 总成本由最优路径成本,安全性与可行性成本、飞行高度成本和路径平滑成本的线性加权所得。其中,b为加权系数。 三、实验结果在三维无人机路径规划中,无人机的路径由起点,终点以及起始点间的点共同连接而成。因此,自变量为无人机起始点间的各点坐标,目标函数为总成本(公式9)。 3.1参数设置(1)设8个柱状障碍物的位置及半径: R1=80; % Radius 80 x1 = 400; y1 = 500; z1 = 100; % center R2=70; % Radius 70 x2 = 600; y2 = 200; z2 = 150; % center R3=80; % Radius 80 x3 = 500; y3 = 350; z3 = 150; % center R4=70; % Radius 70 x4 = 350; y4 = 200; z4 = 150; % center R5=70; % Radius 70 x5 = 700; y5 = 550; z5 = 150; % center R6=80; % Radius 80 x6 = 650; y6 = 750; z6 = 150; % center R7=100; % Radius 100 x7 = 750; y7 = 350; z7 = 150; % center R8=50; % Radius 50 x8 = 300; y8 = 350; z8 = 150; % center(2)起始点位置为: start_location = [200;100;150]; end_location = [800;800;150];(3)起始点间共10个待求点。 (4)加权系数b=[5 1 10 1]。 (5)海鸥优化算法的种群大小为50,最大迭代次数为50。 4.2求解结果 close all clear clc dbstop if all error global model model = CreateModel(); % Create search map and parameters F='F1'; [Xmin,Xmax,dim,fobj] = fun_info(F); pop=50; maxgen=50; [fMin , bestX,Convergence_curve ] = SOA(pop, maxgen,Xmin,Xmax,dim,fobj); % save bestX bestX % load('bestX.mat'); BestPosition = SphericalToCart(bestX); PlotSolution(BestPosition); figure plot(Convergence_curve) xlabel('Iteration'); ylabel('Best Cost'); grid on;其中一次结果:(黑色正方形是起点,黑色圆圈是终点,共有8个柱状障碍物,红线为优化得到的无人机路线。) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |