首页 > 其他分享 >基于PSO优化的路径规划避障系统仿真,沿着障碍物边缘平滑的进行转向

基于PSO优化的路径规划避障系统仿真,沿着障碍物边缘平滑的进行转向

时间:2023-04-03 14:32:01浏览次数:39  
标签:仿真 避障 粒子 PSO particle Position model id empty

1.算法描述 粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解, 通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。

   在求解TSP这种整数规划问题的时候, PSO显然与ACO不同, PSO需要对算法本身进行一定的修改, 毕竟PSO刚开始是应用在求解连续优化问题上的. 

    在路径规划中,我们将每一条路径规划为一个粒子,每个粒子群群有 n 个粒 子,即有 n 条路径,同时,每个粒子又有 m 个染色体,即中间过渡点的个数,每 个点(染色体)又有两个维度(x,y),在代码中用 posx 和 posy 表示一个种群。 通过每一代的演化,对粒子群进行演化操作,选择合适个体(最优路径)。

1.png

最终算法伪代码如下:

初始化: 每个粒子获得一个随机解和一个随机的SS (命名为速度)

For 在位置 X_{id} 的所有粒子, 计算新的位置 X_{id}':

计算 P_{id} 与 X_{id} 之间的差 A = P_{id} - X_{id}, 其中 A 为 BSS

计算 B = P_{gd} - X_{id}, 其中 B 为 BSS

根据速度更新公式计算新的速度 V_{id}', 并将 V_{id}' 转换为一个 BSS

计算新的解 X_{id}' = X_{id} + V_{id} (也就是 V_{id} 作用在 X_{id} 上)

更新 P_{id} 如果新的解更好

更新 P_{gd} 若出现新的全局最好的解

2.仿真效果预览 matlab2022a仿真结果如下:

2.png3.png

3.MATLAB核心程序

nPop=150;           % Population Size (Swarm Size)
w=1;                % Inertia Weight
wdamp=0.98;         % Inertia Weight Damping Ratio
c1=1.5;             % Personal Learning Coefficient
c2=1.5;             % Global Learning Coefficient
alpha=0.1;
VelMax.x=alpha*(VarMax.x-VarMin.x);    % Maximum Velocity
VelMin.x=-VelMax.x;                    % Minimum Velocity
VelMax.y=alpha*(VarMax.y-VarMin.y);    % Maximum Velocity
VelMin.y=-VelMax.y;                    % Minimum Velocity
%% Initialization
% Create Empty Particle Structure
empty_particle.Position=[];
empty_particle.Velocity=[];
empty_particle.Cost=[];
empty_particle.Sol=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
empty_particle.Best.Sol=[];
 
% Initialize Global Best
GlobalBest.Cost=inf;
 
% Create Particles Matrix
particle=repmat(empty_particle,nPop,1);
 
% Initialization Loop
for i=1:nPop
    
    % Initialize Position
    if i > 1
        particle(i).Position=CreateRandomSolution(model);
    else
        % Straight line from source to destination
        xx = linspace(model.xs, model.xt, model.n+2);
        yy = linspace(model.ys, model.yt, model.n+2);
        particle(i).Position.x = xx(2:end-1);
        particle(i).Position.y = yy(2:end-1);
    end
    

标签:仿真,避障,粒子,PSO,particle,Position,model,id,empty
From: https://blog.51cto.com/matworld/6166358

相关文章

  • 基于LSTM网络的空调功耗数据预测matlab仿真
    1.算法描述       长短期记忆网络(LSTM,LongShort-TermMemory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个t......
  • m基于AlexNet神经网络和GEI步态能量图的步态识别算法MATLAB仿真
    1.算法描述        AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生AlexKrizhevsky设计的。也是在那年之后,更多的更深的神经网络被提出,比如优秀的vgg,GoogLeNet。这对于传统的机器学习分类算法而言,已经相当的出色。Alexnet网络模型于2012年提出。它具有更高维......
  • 基于matlab的GPS信号相关检测算法仿真
    1.算法描述       全球定位系统(GlobalPositioningSystem,GPS),是一种以人造地球卫星为基础的高精度无线电导航的定位系统,它在全球任何地方以及近地空间都能够提供准确的地理位置、车行速度及精确的时间信息。GPS自问世以来,就以其高精度、全天候、全球覆盖、方便灵活吸引......
  • 基于matlab的CQMFB单带滤波器设计仿真
    1.算法描述QMF         在滤波器的某些附加条件下,与分析滤波器组和合成滤波器组相关联的变换是正交的。正态性意味着样品的能量在转换过程中保持不变。如果满足这些条件,滤波器具有以下显著特性:合成滤波器是分析滤波器的时间反转版本,高通滤波器是低通滤波器的调制版本,......
  • m基于最小生成树算法的无线传感器网络MCDS生成matlab仿真
    1.算法描述       一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树(Minimu......
  • m基于WOA优化的SVM乳腺癌细胞和正常细胞分类识别算法matlab仿真,对比BP网络,SVM,PSO+S
    1.算法描述       SVM是有监督的学习模型,我们需要事先对数据打上分类标签,通过求解最大分类间隔来求解二分类问题。如果要求解多分类问题,可以将多个二分类器组合起来形成一个多分类器。        WOA算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行......
  • Turtlebot机器人仿真实践
    使用catkin_create_pkg创建一个新的catkin程序包。换到之前创建的catkin工作空间中的src目录下,使用catkin_create_pkg命令来创建一个名为'myPKG'的新程序包,这个程序包依赖于std_msgs和roscpp环境配置在Ubuntu中的操作指令:$source/opt/ros/indigo/setup.bash。    ......
  • 蜂鸟E203 仿真之路
    本文记录自己在学习蜂鸟E203的过程。下面简单介绍一下仿真之路所遇到的困难和走过的坑。1、环境开发:一般选择ubuntu18.04这个版本,安装这个教程很多,可以自行学习。2、在Linux中安装工具:sudoapt-getinstallautoconfautomakeautotools-devcurldevice-tree-compilerlib......
  • ADS "is an instance of undefined model"仿真报错
    前情提要我遇到的问题如下所示:原理图上直接拖了工艺库里的东西来搭,之后报错如下。解决办法我内网外网搜了很多,都说要加一个include的控件。但是他们举的例子几乎都是同一个,而且我用的这个工艺库也没有很明显的带有include字样的元件,而我的工艺是老师发给我的,不是网上可以下载......
  • m基于强化学习的PID控制器simulink仿真,对比PI控制器和变结构PI控制器
    1.算法描述       PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制器适用于各种控制对象无法进行测量获得系统参数的情况,其根据控制对......