【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】

这篇具有很好参考价值的文章主要介绍了【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【任务分配】基于matlab无人机实时最优任务分配【含Matlab源码 2271期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab路径规划(初级版)

备注:
点击上面蓝色字体付费专栏Matlab路径规划(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab路径规划(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、多无人机协同作业简介

0 引言
多架无人机组成无人机集群可以协同完成任务,是未来无人机的发展方向。组成无人机集群的多架无人机通过机间链路互相通信实现协作,可以迅速准确地执行路径规划、协同侦察、协同感知和协同攻击等复杂任务。
为实现无人机集群协作的诱人前景,国内外都积极开展了相关研究工作。美国方面,美国国防预先研究计划局(DARPA)于2015年推出“小精灵”项目,计划研制具备自组织和智能协同能力的无人机蜂群系统。美国防部战略能力办公室(SCO)2014年启动了“无人机蜂群”项目,旨在通过有人机空射“灰山鹑”微型无人机蜂群执行低空态势感知和干扰任务。美国海军研究局(ONR)于2015年公布了“低成本无人机蜂群”(LOCUST)项目,研发可快速连续发射的无人机蜂群,无人机之间利用近距离射频网络共享态势信息,协同执行掩护、攻击或防御任务。2017年,在 DARPA 会议中心举办“进攻性集群战术”(OFFSET)项目的提案人活动,目标是发展基于游戏的开放架构,为城市作战的无人集群系统生成、评估和集成集群战术。
欧洲方面,2016 年,欧洲防务局启动了“欧洲蜂群”项目,开展了无人机蜂群的自主决策、协同飞行等关键技术研究。2016年,英国国防部发起无人机蜂群竞赛,参赛的多个团队控制无人机蜂群实现了通信中继、协同干扰、目标跟踪定位和区域测绘等任务。2017 年,俄罗斯无线电电子技术集团对外发表研究计划称,在战斗机上装载多架蜂群无人机可实现协同侦察和攻击的新型作战样式。
国内也相继展开相关研究。最近,中国电科(CETC)电子科学研究院发布了陆军协同无人机“蜂群”视频,引起广泛关注。
面对这一重要课题,本文研究总结了无人机协同应用的发展趋势,对其当前研究进展和发展方向进行了探讨,并提出无人机集群任务协作的发展趋势是多智能体协同。

1 无人机协同应用发展趋势
对现有研究工作的分析如图1所示,无人机协同应用大体上可以分为3个阶段,分别是分布式协同,群体智能协同和未来的多智能体协同。
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
图1 无人机协同技术的发展趋势
无人机集群协同发展的第1个阶段是简单分布式协同。在该阶段,协同任务根据执行条件,预先在简单连接和组合的集群成员之间经过计算处理后分配执行。集群基本没有能力根据环境与目标的变化动态调整任务分配,各无人机分担的任务通常是确定的。

鉴于预分配方式的局限性,受生物集群活动的启发,群体智能被应用于无人机集群,使无人机集群协同发展到第2个阶段——群体智能协同。在该阶段中,各个无人机节点被赋予初级智能,能够进行简单的认知和决策;通过集群个体之间更为紧密的耦合,可以根据执行中的反馈调整优化方式或者优化目标,使整个无人机集群系统有能力构成自组织、高稳定的分布式系统。群体智能协同阶段当前正处于研究和应用迅速发展时期。

随着节点计算能力的进一步提升和人工智能技术的飞速发展,无人机协同即将进入发展的第3个阶段——多智能体协同。在多智能体协同发展阶段,集群中的各个无人机都将是一个独立的综合智能体,具有多维度认知计算和高级智能处理能力,从而实现更高效的自主学习和决策,并在此基础上,完成更复杂、更艰巨的任务。

2 分布式协同
从无人机集群出现开始就被用于解决协同路径规划、协同感知和协同任务规划等分布式协作任务。早期的无人机分布式协同任务通常都是提前进行充分的计算和分配,无人机节点按照既定算法或者方案予以执行。根据计算结果,分布式协同无人机群可组织执行配置好的任务,如图2所示。
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
图2 分布式协同阶段的任务执行方式
2.1 协同路径规划
协同路径规划中,要求在给定目标或者搜索目标后,无人机节点根据当前的任务状态来确定飞行路径。针对协同搜索和跟踪任务的路线规划,无人机集群可采用最大化目标功能来检测最重要的目标,并在关键时刻对其进行跟踪,从而获得最有价值的信息。而协同搜索的路径规划可以分成无人机工作区间划分和全区域覆盖搜索路径规划2个子问题,将多机协同搜索转化为子区域上的单机搜索,对目标区域快速进行划分并生成飞行路线。基于改进遗传算法的多无人机协同侦察航迹规划算法,可用于解决面向复杂战场环境中高效侦察多种类型目标过程中的路径规划问题,并能够有效地提高航迹规划精度和效率。

2.2 协同感知
协同感知是多无人机集群共同探测感知某一目标区域状态的任务形式。在这类任务中最常见的是协同频谱感知。针对协同频谱感知任务特点,采用最佳融合准则的分布式协同任务执行方案可以优化检测性能,使协作频谱感知总错误率达到最小,并能降低协作感知时间,节省感知过程开销。

2.3 协同任务规划
协同任务规划要求集群系统能够根据目标任务和执行情况,对任务进行系统分配。例如,针对协同打击任务,通过建立无人机毁伤代价指标函数、航程代价指标函数和价值收益指标函数,可以实现多无人机协同打击任务的分配[5];而通过建立多目标优化模型并采用遗传算法,能有效提高任务的完成效率。针对协同搜救任务,使用一种新的基于通信保持的拍卖方法的自适应反馈调节遗传算法,能够改善传统遗传算法存在易陷入局部最优的弱点。

通过以上3种类型协同任务的相关研究工作可以看出,无人机集群的分布式协同方式虽然充分考虑了“分布式”特点,能够根据任务目标和集群特征,设置有效的目标函数和优化方法去寻求最优或者较优的结果,但是其任务执行环境和求解目标需要在任务执行之前进行优化计算,然后分配执行,不能适应实际中动态的任务目标和环境变化,缺乏“智能性”的感知和适应性行为。随着人们对“蜂群”“鸟群”等生物群体智能研究的深入,群体智能协同被进一步引入到无人机的协同中。

3 群体智能协同
“鸟群”“蚁群”等生物群体,虽然其中的个体智能有限,但是群体却展现出高度的自组织性,这一特点与无人机集群自主协同的需求相符,因而群体智能在无人机协同应用领域也得到了广泛研究,使无人机集群协同具有了初步的智能性。具备群体智能的无人机集群系统在任务拆解和执行过程中引入了群体反馈和适变能力,可执行较复杂的动态任务,其过程如图3所示。
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
图3 群体智能协同阶段的任务执行方式
3.1 协同路径规划
山区路径规划任务受到地形特征的强烈影响,难以预先确定性分配执行,简单的分布式协同无法胜任。例如,为了执行山区应急物资运输的路径规划任务,一种考虑路径安全度的改进蚁群算法可快速收敛并生成更短路径。蚁群算法也被用于无人机协同飞抵空战场的航迹规划任务中;一种基于改进混沌蚁群算法更能克服传统蚁群智能算法中易出现局部极值、收敛效率低的缺陷,提升算法的全局寻优能力和搜索效率。针对协同攻击移动目标场景的航迹规划,另一种改进的蚁群算法建立了结合任务分配的无人机群协同航迹规划模型,可以快速地对地面多个移动目标规划出有效的航迹。

3.2 协同感知
在协同感知任务中,群体智能也得到应用。针对无人机集群通信场景和需求,出现了考虑结合认知无线电技术指导下的智能通信思想和汇聚有限智慧的群体智能理论方法,构建了群体智能协同通信模型和智能协同感知模型。

3.3 协同任务规划
协同作战是协同任务规划中的典型场景,结合群体智能优化算法的优势,基于粒子群-整数编码狼群算法的集群组网任务分配算法适合解决此类协同问题;由于无人机集群协同决策困难,还可以结合狼群算法的认知与协作能力,实现在复杂环境下迅速对目标进行跟踪和包围。这种协同任务,是第一类简单协同所不能胜任的。

虽然无人机集群和群体智能的结合可以充分发挥无人机集群优势,增强分布式协同智能性,可在任务执行过程中与环境和任务执行中间过程产生一定交互和反馈,使之具备一定的自适应能力,但是,这种智能仍然是非常有限的,其本质仍然是基于特定计算模式和反馈模式下的分布式优化算法。

4 多智能体协同
随着人工智能技术和节点自身算力的不断增强,未来无人机集群中的个体将具备更强的智能性,能够独立对环境和任务进行感知和评估,实现多个智能体之间的交互和协同,从而具备多智能体协同能力。

近年来,人工智能领域研究取得了突破性进展。其中,深度强化学习在诸多领域得到了成功应用。无线通信网络基于多智能体深度强化学习的资源分配技术也得到了深入研究。多智能体深度强化学习模型早已被用于解决车联网中频谱资源分配问题,这种应用已经与无人机集群系统颇为接近。例如一种基于多智能体深度强化学习的分布式动态功率分配方案。基于多智能体深度强化学习的策略还可被用于二者的结合——用无人机辅助车辆网络进行多维资源管理。

虽然基于强化学习的多智能体通信网络资源分配问题已经得到了广泛研究,但是由于网络特性的不同,传统的针对其他通信网络的研究成果不能直接用于无人机集群网络。因而基于强化学习的多智能体自主协同应用逐渐成为未来无人机多智能体自主协同的一个研究热点。针对无人机群的通信网络资源动态分配问题而提出的多智能体深度强化学习方案也陆续出现,例如,一种基于多智能体深度强化学习的分布式干扰协调策略被用于受到干扰的无人机网络中的文件下载业务。智能体在适用于无人机网络特点的独立强化学习中,其行为策略通常只能根据它们对全局环境的局部个体观察来制定。针对这种局限性,联合采用2种不同规模的智能体可解决智能体之间的通信问题。

无人机集群协同,经常会处理动态高维离散和连续动作状态空间的优化求解问题,近来出现的演员-评论家算法是深度强化学习的一个新兴方向,结合了基于值函数和基于策略函数的深度强化学习两大分支的优势,非常适用于无人机集群的智能协同。利用演员-评论家算法,在无线信道和可再生能源再生率都是随机变化,且环境动态变化条件下,可寻求资源分配最佳策略,如用于解决车联网中复杂动态环境下的资源分配问题。应用设备到设备(D2D)网络的异构蜂窝网络环境下,基于演员-评论家算法的策略可用于智能化节能模式选择和资源分配。

随着节点智能算力的不断增强,无人机集群中的每架无人机可以作为一个具有深度强化学习能力的智能体,而整个集群可通过合作构成多智能体。相邻无人机之间通过通信网络进行信息交换与分发。如图4所示,每架无人机都与局部环境相互作用,根据从周围环境或者同伴无人机得到的信息,针对承载的任务需求,通过深度强化学习,智能地产生动作策略,进行自身资源与行为的分配与调整,进而与环境和同伴互动,并获得个体奖励。
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
图4 基于多智能体的无人机集群
每架无人机的深度强化学习智能体由2个深度神经网络构成,包括演员网络和评论家网络,如图5所示。
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
图5 基于演员评论家算法的无人机智能体
演员网络负责输出动作,评论家网络负责评价演员的动作,以获得相互促进的效果。与传统的深度强化学习方法相比,演员-评论家算法同时吸取了基于值函数方法和基于策略函数方法的优点,从价值和策略两方面来训练提升智能体,训练的更快,效果也更好。通过训练和学习,期望智能体的评论家网络可以获得最佳效用评估函数:
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
智能体从周围环境中观察得到状态信息St ,例如干扰状态、相邻无人机等。演员网络拟合动作策略函数π(St;ωπ),根据状态信息St,动作策略函数输出当前时隙的动作at,也就是资源分配结果,并应用到环境中得到个体的即时奖励rt。奖励由奖励函数计算得到,负责反馈一个即时的、合理的、具有指导意义的奖励值,从而激励智能体向目标更新策略。评论家网络拟合效用评估函数Q(St,at,ω),负责预测和评估在当前状态St采用动作at所能得到的状态动作价值,即长期性回报Rt为:
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
式中,γ是折扣因子,γ表示了当前对于未来收益的重视程度,取值在0~1之间,取值0则表示智能体忽视未来收益,只看重当前的收益rt,取值1则表示智能体将未来每个时刻的收益都视为与当前时刻收益一样的重要性。获得最大的长期性回报是智能体的最终目的,这个目标可以根据任务的性质被定义为不同的评判标准。

评论家网络的最佳效用评估函数对应的演员网络动作策略即为最佳动作策略π*。动作策略函数的参数通过策略梯度的方法进行更新,效用评估函数的参数采用最小化损失函数进行更新:
【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab
式中,yt为优势函数,用来衡量计算执行动作后的实际效用评估值。通过更新,智能体的演员网络的动作策略输出的动作越来越好,而评论家网络的效用评估也会越来越准确。基于多智能体的无人机群的每架无人机都会朝着收益最大的方向执行动作,从而实现集群的收益最大化。

⛄三、部分源代码

clc
close all
clear all
disp(‘无人机优化模型’)
%参数准备
%区域用户位置
d1=100; %区域A长度
d2=80; %区域A长度
N=30;%用户个数
C=6;%天线个数
bc=1;%电池损耗/每个内容—假设容量相等 电池消耗相同
Bm=[10 10 10];%无人机容量
%索引位置tuple={content k,UAV m,location q}
height=10;
h_max=20;
delta_d=0.5;%location interval
n1=3;%无人机个数
%discrete the location
%用户位置
%discrete the location
d1a=0:delta_d:d1;
d2a=0:delta_d:d2;
%离散位置
index=[];
for i=1:1:length(d1a)
for j=1:1:length(d2a)
index=[index;[d1a(i),d2a(j)]];
end
end
num_index=size(index,1);%number of location
%新增人群位置计算
%新增人群不可能出现位置
d1a1=[5,d1-5];
d2a1=[5,d2-5];
[len,~]=find((index(:,1)>=d1a1(1) & index(:,1)<=d1a1(2)) & (index(:,2)>=d2a1(1) & index(:,2)<=d2a1(2)));
id_new=setdiff(1:1:size(index,1),len’); %新增用户编号
new_candi=index(id_new’😅;%新增人群位置
%随机生成用户
user_index=randperm(num_index,N);
user_location=[];
for i=1:1:length(user_index)
user_location=[user_location;index(user_index(i)😅];%%N2
end
%仿真时间T
T=5;%仿真时间T
v=1;%用户行走速度
delta_p=2;%单位时间变化人数
theta_max=2
pi;%用户随机行走方向
best_uav=cell(1,T);
best_task=zeros(1,T);
[x_ind,task]=one_step(user_location,height,h_max,C,N,n1,bc,Bm); %主程序
best_uav{1,1}=x_ind;
best_task(1,1)=task;
old_ind=x_ind;%设置就得无人机位置
for t=2:1:T
%更新用户
new_user_location=[];
%考虑原始用户行走
for i=1:1:size(user_location,1)
user_location(i,1)=user_location(i,1)+vcos(random(‘unif’,0,theta_max));
user_location(i,2)=user_location(i,2)+v
sin(random(‘unif’,0,theta_max));
%边界更新,如果超出边界 则认为用户离开
if (user_location(i,1)>d1) | (user_location(i,1)<0) | (user_location(i,2)<0)|(user_location(i,2)>d2)
continue;%用户离开不管
else
new_user_location=[new_user_location;user_location(i,:)]; %用户没离开保留
end
end
%当前时刻新来客户
num_new=random(‘poiss’,delta_p);
if num_new==0
new_user_location=new_user_location;
else
new_id=randperm(length(id_new),num_new);
new_coming=new_candi(new_id’😅;
new_user_location=[new_user_location; new_coming];
end
%用户个数更新
N=size(new_user_location,1);
%计算当前无人机位置
[x_ind,task]=one_step(new_user_location,height,h_max,C,N,n1,bc,Bm); %主程序
%无人机位置分配–中心服务器向无人机分配无人机更新位置
x_ind=allot_uav(x_ind,old_ind);
best_uav{1,t}=x_ind;
best_task(1,t)=task;
%我下一时刻用户位置更新
user_location=new_user_location;%上一时刻用户位置
old_ind=x_ind;
if mod(t,20)==0
figure,
plot(user_location(:,1),user_location(:,2),‘r*’)
xlabel(‘x’)
ylabel(‘y’)
title(num2str(t))
end
end
figure,plot(1:1:T,best_task,‘->’)
xlabel(‘T/(min)’)
ylabel(‘Task/(n)’)
grid on
ylim([0 40])
Q1=[];Q2=[];Q3=[];
for i=1:1:T
Q1=[Q1,(best_uav{1,i}(1,:))‘];
Q2=[Q2,(best_uav{1,i}(2,:))’];
Q3=[Q3,(best_uav{1,i}(3,:))'];
end

⛄四、运行结果

【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】,Matlab路径规划(初级版),matlab

⛄五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]邓叶,姜香菊.基于改进人工势场法的四旋翼无人机航迹规划算法[J].传感器与微系统. 2021,40(07)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除文章来源地址https://www.toymoban.com/news/detail-795769.html

到了这里,关于【任务分配】无人机实时最优任务分配【含Matlab源码 2271期】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包