欢迎光临散文网 会员登陆 & 注册

【路径规划】基于粒子群的无人机三维路径规划含障碍matlab源码

2021-08-08 10:01 作者:Matlab工程师  | 我要投稿

粒子群算法

1.1 研究背景

粒子群算法的发展过程。粒子群优化算法(Partical Swarm Optimization PSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。由于PSO操作简单、收敛速度快,因此在函数优化、 图像处理、大地测量等众多领域都得到了广泛的应用。 随着应用范围的扩大,PSO算法存在早熟收敛、维数灾难、易于陷入局部极值等问题需要解决,主要有以下几种发展方向。

(1)调整PSO的参数来平衡算法的全局探测和局部开采能力。如Shi和Eberhart对PSO算法的速度项引入了惯性权重,并依据迭代进程及粒子飞行情况对惯性权重进行线性(或非线性)的动态调整,以平衡搜索的全局性和收敛速度。2009年张玮等在对标准粒子群算法位置期望及方差进行稳定性分析的基础上,研究了加速因子对位置期望及方差的影响,得出了一组较好的加速因子取值。

(2)设计不同类型的拓扑结构,改变粒子学习模式,从而提高种群的多样性,Kennedy等人研究了不同的拓扑结构对SPSO性能的影响。针对SPSO存在易早熟收敛,寻优精度不高的缺点,于2003年提出了一种更为明晰的粒子群算法的形式:骨干粒子群算法(Bare Bones PSO,BBPSO)。

(3)将PSO和其他优化算法(或策略)相结合,形成混合PSO算法。如曾毅等将模式搜索算法嵌入到PSO算法中,实现了模式搜索算法的局部搜索能力与PSO算法的全局寻优能力的优势互补。

(4)采用小生境技术。小生境是模拟生态平衡的一种仿生技术,适用于多峰函数和多目标函数的优化问题。例如,在PSO算法中,通过构造小生境拓扑,将种群分成若干个子种群,动态地形成相对独立的搜索空间,实现对多个极值区域的同步搜索,从而可以避免算法在求解多峰函数优化问题时出现早熟收敛现象。 Parsopoulos提出一种基于“分而治之”思想的多种群PSO算法,其核心思想是将高维的目标函数分解成多个低维函数,然后每个低维的子函数由一个子粒子群进行优化,该算法对高维问题的求解提供了一个较好的思路。

不同的发展方向代表不同的应用领域,有的需要不断进行全局探测,有的需要提高寻优精度,有的需要全局搜索和局部搜索相互之间的平衡,还有的需要对高维问题进行求解。这些方向没有谁好谁坏的可比性,只有针对不同领域的不同问题求解时选择最合适的方法的区别。

1.2 相关模型和思想

粒子群算法( Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究。设想这样一个场景:一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是它们知道当前的位置离食物还有多远。最简单有效的策略?寻找鸟群中离食物最近的个体来进行搜素。PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。

用一种粒子来模拟上述的鸟类个体,每个粒子可视为N维搜索空间中的一个搜索个体,粒子的当前位置即为对应优化问题的一个候选解,粒子的飞行过程即为该个体的搜索过程.粒子的飞行速度可根据粒子历史最优位置和种群历史最优位置进行动态调整.粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子单独搜寻的最优解叫做个体极值,粒子群中最优的个体极值作为当前全局最优解。不断迭代,更新速度和位置。最终得到满足终止条件的最优解。

算法流程如下:

1、初始化

首先,我们设置最大迭代次数,目标函数的自变量个数,粒子的最大速度,位置信息为整个搜索空间,我们在速度区间和搜索空间上随机初始化速度和位置,设置粒子群规模为M,每个粒子随机初始化一个飞翔速度。

2、 个体极值与全局最优解

定义适应度函数,个体极值为每个粒子找到的最优解,从这些最优解找到一个全局值,叫做本次全局最优解。与历史全局最优比较,进行更新。

3、 更新速度和位置的公式



4、 终止条件

(1)达到设定迭代次数;(2)代数之间的差值满足最小界限


以上就是最基本的一个标准PSO算法流程。和其它群智能算法一样,PSO算法在优化过程中,种群的多样性和算法的收敛速度之间始终存在着矛盾.对标准PSO算法的改进,无论是参数的选取、小生境技术的采用或是其他技术与PSO的融合,其目的都是希望在加强算法局部搜索能力的同时,保持种群的多样性,防止算法在快速收敛的同时出现早熟收敛。

%%  PSO 三维路径规划 clc,clear , close all feature jit off %% 模型基本参数 % 载入地形  矩阵 filename = 'TestData1.xlsx' ; model.x_data  = xlsread(  filename  , 'Xi') ; model.y_data = xlsread(filename, 'Yi') ; model.z_data  = xlsread( filename , 'Zi') ; model.x_grid =  model.x_data(1,:) ; model.y_grid =model.y_data(:, 1) ; model.xs =  10  ;  %起点   相关信息 model.ys = 90  ; model.zs  =   interp2(  model.x_data ,  model.y_data,   model.z_data   ,  ...    model.xs ,     model.ys   ,'linear' ) ;  %  高度为插值得到 model.xt  =  150 ; % 终点 相关信息 model.yt  = 40 ; model.zt = interp2(  model.x_data ,  model.y_data, model.z_data   ,  ...    model.xt  ,    model.yt  ,  'linear');  %  高度为插值得到 model.n=   5  ;  %  粗略导航点设置 model.nn=  80 ;  %  插值法获得的导航点总数 model.Safeh = 0.01 ;  %  与障碍物的最低飞行高度   % 导航点   边界值 model.xmin=  min(  model.x_data(  :  ) ) ; model.xmax= max (  model.x_data(  :  ) ) ; model.ymin= min(  model.y_data(  :  ) ) ; model.ymax= max(  model.y_data(  :  ) ) ; model.zmin= min(  model.z_data(  :  ) ) ; model.zmax =model.zmin + (1+ 0.1)*( max( model.z_data(:) )-model.zmin ) ; % 模型的其他参数 model.nVar  =  3*model.n ; % 编码长度 model.pf = 10^7 ; % 惩罚系数 %  障碍物 位置坐标及半径 model.Barrier =  [10,60 , 8 ;      100, 40,  15 ] ; model.Num_Barrier  =  size(model.Barrier , 1 ); %  障碍物的数目 model.weight1 = 0.5; % 权重1 飞行线路长度权重 model.weight2 = 0.3; % 权重2  飞行高度相关权重 model.weight3 = 0.2; % 权重3  Jsmooth  指标权重 %%  算法参数设置 param.MaxIt =  400;          %    迭代次数 param.nPop= 20;           %  种群数目 param.w=1;                %   权重 param.wdamp=0.99;         %    退化率 param.c1=1.5;             % Personal Learning Coefficient param.c2=2 ;             % Global Learning Coefficient % 局部搜索部分参数 param.MaxSubIt= 0;    % Maximum Number of Sub-iterations ( 内循环迭代次数  ) param.T =  25;  % param.alpha1=0.99;     % Temp. Reduction Rate param.ShowIteration = 50; % 每过  多少次迭代显示一次图 %%  运行算法 CostFunction=@(x) MyCost(x,model);    %   设置目标函数 [ GlobalBest  , BestCost ] =  pso( param   , model , CostFunction ) ;

QQ1575304183

参考文献



  1. O. Wilson, E., Sociobiology: The New Synthesis. 1976.




  2. J Matari’c, M. and A. Brooks, Interaction and Intelligent Behavior. 1999.




  3. Trelea, I.C., The particle swarm optimization algorithm: convergence
    analysis and parameter selection. Information Processing Letters, 2003.
    85(6): p. 317-325.




  4. Kennedy, J. and R. Eberhart. Particle swarm optimization. in Proceedings
    of ICNN’95 - International Conference on Neural Networks. 1995.




  5. Zhan, Z., et al. Adaptive control of acceleration coefficients for particle
    swarm optimization based on clustering analysis. in 2007 IEEE Congress on
    Evolutionary Computation. 2007.



【路径规划】基于粒子群的无人机三维路径规划含障碍matlab源码的评论 (共 条)

分享到微博请遵守国家法律