基于智能优化算法的无人机路径规划(Matlab代码实现)

目录

1 概述

2 运行结果

3 参考文献 

4 Matlab代码实现


1 概述

无人机作为一种现代航空设备,不仅作业速度快,成本低,还具有卓越的灵活性和时效性.常用于完成那些繁冗、危险、对灵活性要求较高、作业范围较大的任务,比如航空拍摄、农药喷洒、边防检查、电力检测、防汛扛旱等领域.随着技术的发展,将无人机独特的优势和不同的行业技术相结合,可以应用到不同的行业.比如,无人机搭载成像传感器,可以组成一种可以捕获目标图像的新型监视设备2'.目前,许多国家都在积极拓展无人机与工业应用相结合的技术,因此无人机应用的研究一直备受关注.
部分代码:

function [fit,result,x0]=aimFcn_1(x,option,data)
x0=x;
%% 
x=reshape(x,data.mapSize0);
%%

S=data.S0;
E=data.E0;
flag=x*0;
path=S;
map=data.map;
while sum(S==E)~=3
    % 可移动点
    nextN=repmat(S,length(data.direction(:,1)),1)+data.direction;
    % 剔除超界点
    flag=nextN(:,1)*0;
    for i=1:length(nextN(:,1))
        for j=1:3
            if nextN(i,j)<=0 ||nextN(i,j)>data.mapSize0(j)
                flag(i)=1;
            end
        end
    end
    position=find(flag==1);
    nextN(position,:)=[];
    % 剔除不可移动点
    flag=nextN(:,1)*0;
    for i=1:length(nextN(:,1))
        no1=nextN(i,1);
        no2=nextN(i,2);
        no3=nextN(i,3);
        if map(no1,no2,no3)==1
            flag(i)=1;
        end
    end
    position=find(flag==1);
    nextN(position,:)=[];
    if isempty(nextN)
        S=path(end-1,:);
        path(end,:)=[];
        continue;
    end
    %
    D1=nextN(:,1)*0;
    D2=nextN(:,1)*0;
    pri=nextN(:,1)*0;
    for i=1:length(nextN(:,1))
        no1=nextN(i,1);
        no2=nextN(i,2);
        no3=nextN(i,3);
        D1(i)=norm(nextN(i,:)-S);
        D2(i)=norm(nextN(i,:)-E);
        pri(i)=x(no1,no2,no3);
    end
    [~,no]=min((D1+D2).*pri.^0.5);
    path=[path;nextN(no,:)];
    S=nextN(no,:);
    map(S(1),S(2),S(3))=1;
end
D=0;
for i=1:length(path(:,1))-1
    D=D+norm(path(i,:)-path(i+1,:));
end
fit=D;
if nargout>1
    result.fit=fit;    %总目标
    result.path=path;
end
end

function [fit,result,x0]=aimFcn_1(x,option,data)
x0=x;
%% 
x=reshape(x,data.mapSize0);
%%

S=data.S0;
E=data.E0;
flag=x*0;
path=S;
map=data.map;
while sum(S==E)~=3
    % 可移动点
    nextN=repmat(S,length(data.direction(:,1)),1)+data.direction;
    % 剔除超界点
    flag=nextN(:,1)*0;
    for i=1:length(nextN(:,1))
        for j=1:3
            if nextN(i,j)<=0 ||nextN(i,j)>data.mapSize0(j)
                flag(i)=1;
            end
        end
    end
    position=find(flag==1);
    nextN(position,:)=[];
    % 剔除不可移动点
    flag=nextN(:,1)*0;
    for i=1:length(nextN(:,1))
        no1=nextN(i,1);
        no2=nextN(i,2);
        no3=nextN(i,3);
        if map(no1,no2,no3)==1
            flag(i)=1;
        end
    end
    position=find(flag==1);
    nextN(position,:)=[];
    if isempty(nextN)
        S=path(end-1,:);
        path(end,:)=[];
        continue;
    end
    %
    D1=nextN(:,1)*0;
    D2=nextN(:,1)*0;
    pri=nextN(:,1)*0;
    for i=1:length(nextN(:,1))
        no1=nextN(i,1);
        no2=nextN(i,2);
        no3=nextN(i,3);
        D1(i)=norm(nextN(i,:)-S);
        D2(i)=norm(nextN(i,:)-E);
        pri(i)=x(no1,no2,no3);
    end
    [~,no]=min((D1+D2).*pri.^0.5);
    path=[path;nextN(no,:)];
    S=nextN(no,:);
    map(S(1),S(2),S(3))=1;
end
D=0;
for i=1:length(path(:,1))-1
    D=D+norm(path(i,:)-path(i+1,:));
end
fit=D;
if nargout>1
    result.fit=fit;    %总目标
    result.path=path;
end
end

2 运行结果

扫描二维码关注公众号,回复: 15102008 查看本文章

 

无人机作为一种现代航空设备,不仅作业速度快,成本低,还具有卓越的灵活性和时效性.常用于完成那些繁冗、危险、对灵活性要求较高、作业范围较大的任务,比如航空拍摄、农药喷洒、边防检查、电力检测、防汛扛旱等领域.随着技术的发展,将无人机独特的优势和不同的行业技术相结合,可以应用到不同的行业.比如,无人机搭载成像传感器,可以组成一种可以捕获目标图像的新型监视设备2'.目前,许多国家都在积极拓展无人机与工业应用相结合的技术,因此无人机应用的研究一直备受关注. 

部分理论引用网络文献,如有侵权请联系删除。 

3 参考文献 

[1]马华伟,马凯,郭君.考虑多投递的带无人机车辆路径规划问题研究[J].计算机工程,2022,48(8):299-305

[2]陈亚青,郑稀元,韩丹,刘成.民用无人机发展管理现状及路径规划研究进展[J].科学技术与工程,2022,22(15):5951-5966

4 Matlab代码实现

猜你喜欢

转载自blog.csdn.net/weixin_46039719/article/details/128097802