【路径规划】基于蚁群算法的三维路径动态仿真

一、简介

1 蚁群算法的提出
蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。遗传算法在模式识别、神经网络、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。
2 算法的基本原理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、源代码

function [sys,x0,str,ts] = quadrotor_plot(t,x,u,flag,s,plot,enable,vehicle)
 
    ts = [-1 0];
    
    if ~isfield(vehicle, 'nrotors')
        vehicle.nrotors = 4;    % sensible default for quadrotor function
    end
    
    switch flag,
        case 0
            [sys,x0,str,ts] = mdlInitializeSizes(ts,plot,enable); % Initialization
        case 3
            sys = mdlOutputs(t,u,s,plot,enable, vehicle); % Calculate outputs
        case {1,2, 4, 9} % Unused flags
            sys = [];
        otherwise
            error(['unhandled flag = ',num2str(flag)]); % Error handling
    end
    
    
    % Initialize
function [sys,x0,str,ts] = mdlInitializeSizes(ts,plot,enable)
    % Call simsizes for a sizes structure, fill it in, and convert it
    % to a sizes array.
    sizes = simsizes;
    sizes.NumContStates  = 0;
    sizes.NumDiscStates  = 0;
    sizes.NumOutputs     = 0;
    sizes.NumInputs      = 6;
    sizes.DirFeedthrough = 1;
    sizes.NumSampleTimes = 1;
    sys = simsizes(sizes);
    x0  = [];
    str = [];          % Set str to an empty matrix.
    ts = [0.05 0];
    
    if enable == 1
        figure(plot);
        clf;
        %colordef(1,'none');
    end
    % End of mdlInitializeSizes.
    
    
function sys = mdlOutputs(t,u,s, plot, enable, quad)
    global a1s b1s
    
    % not quite sure what this is about -- PIC
    if numel(a1s) == [0];
        a1s = zeros(1, quad.nrotors);
        b1s = zeros(1, quad.nrotors);
    end
    
    % vehicle dimensons
    d = quad.d; %Hub displacement from COG
    r = quad.r; %Rotor radius

    for i = 1:quad.nrotors
        theta = (i-1)/quad.nrotors*2*pi;
        %   Di      Rotor hub displacements (1x3)
        D(:,i) = [ d*cos(theta); d*sin(theta); 0];
        scal = s(1)/4;
        %Attitude center displacements
        C(:,i) = [ scal*cos(theta); scal*sin(theta); 0];
    end

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ1575304183

往期回顾>>>>>>

【路径规划】基于BBO算法的无人机三维路径规划matlab源码

【路径规划】基于SSA算法的无人机三维路径规划matlab 源码

【路径规划】基于A星算法的三维路径规划matlab源码

【路径规划】基于蚁群算法的无人机路径规划matlab源码

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

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

【路径规划】基于nsga的无人机路径规划matlab源码

【路径规划】基于人工蜂群的无人机三维路径规划matlab源码

【路径规划】A*算法解决三维路径规划问题matlab源码

【路径规划】基于人工势场的无人机编队协同路径规划matlab源码

【路径规划】考虑分配次序的多无人机协同目标分配建模与遗传算法求解matlab源码

【路径规划】基于改进差分之三维多 无人机协同航迹规划matlab源码

【路径规划】基于人工势场的无人机三维路径规划matlab源码

【路径规划】基于狼群算法之三维路径规划matlab源码

【三维路径规划】基于RRT三维路径规划matlab源码​​​​​​​

【路径规划】基于人工势场无人机编队路径规划matlab源码​​​​​​​

【路径规划】基于蚁群算法和匈牙利算法的三维多无人机路径规划matlab源码

【路径规划】基于蚁群算法和匈牙利算法的二维多无人机路径规划matlab源码

猜你喜欢

转载自blog.csdn.net/qq_34763204/article/details/113785387