1.算法描述
随着无人机作业自主性、智能化、多任务等方面要求的提高,无人机从单机作业发展到集群作业,对多机集群通信技术提出了更高的要求。采用多架无人机协同方式,无人机之间通过通讯,进行信息共享,扩大对环境态势的感知,实现协同任务分配、协同搜索、协同侦察与攻击,能有效提高无人机集群的生存能力和整体作战效能。
随着无人机作业自主性、智能化、多任务等方面要求的提高,无人机从单机作业发展到集群作业,对多机集群通信技术提出了更高的要求。采用多架无人机协同方式,无人机之间通过通讯,进行信息共享,扩大对环境态势的感知,实现协同任务分配、协同搜索、协同侦察与攻击,能有效提高无人机集群的生存能力和整体作战效能。
集中式控制无人机集群方案采用飞思实验室自研的点对多点高带宽数据链,针对不同的载荷和应用场景实现最大30架无人机控制。在集中式控制体系中,由地面控制站中的操作人员制定任务分配方案和无人机具体飞行航路,无人机本身不具备决策能力,完全按照地面控制站发出的任务指令和航路执行任务。其优点是整系统构成简单成本低、分配算法实现简单且具备产生全局最优解的潜力。系统拓扑如图:
无人机的飞行控制信息、吊舱等负载信息通过数据链回传到地面控制站,地面控制站同时可对所有无人机进行实时控制和任务分配。无人机相互之间不进行数据交换,所有数据下发到地面控制站后完成数据处理。分布式控制无人机集群方案各无人机搭载自研的自组网高带宽数据链和高性能机载板卡,可实现各机之间相互通信,任意组网,可实现星型、网状、链式等多种组网方式,实现去中心化组网,各机均可和地面控制站通信,飞行个体之间具备位置共享及路径规划、感知规避能力,且任何一架无人机脱离集群,剩余无人机可快速形成新的稳定的集群网络,系统抗毁伤能力强。机载板卡可实现无人机间信息交互处理、目标识别、航迹自主规划、任务协同分配,最终实现无人机集群协同任务分配、协同搜索、协同侦察与攻击。
2.仿真效果预览
matlab2022a仿真结果如下:
3.MATLAB核心程序
addpath 'uavA1'
uavW = 1;
save('uavW.mat','uavW');
sim('New_mavsim_chap12');
ii = 1;
eval(['x' num2str(ii) '= x;'])
eval(['path' num2str(ii) '= path;'])
eval(['waypoints' num2str(ii) '= waypoints;'])
save('x1.mat','x1','path1','waypoints1');
%----------------
clear;
uavW = 2;
uavi = uavW;
save('uavW.mat','uavW');
sim('New_mavsim_chap12');
ii = 2;
eval(['x' num2str(ii) '= x;'])
eval(['path' num2str(ii) '= path;'])
eval(['waypoints' num2str(ii) '= waypoints;'])
save('x2.mat','x2','path2','waypoints2');
%----------------
clear;
uavW = 3;
save('uavW.mat','uavW');
sim('New_mavsim_chap12');
ii = 3;
eval(['x' num2str(ii) '= x;'])
eval(['path' num2str(ii) '= path;'])
eval(['waypoints' num2str(ii) '= waypoints;'])
save('x3.mat','x3','path3','waypoints3');
%----------------
clear;
uavW = 4;
save('uavW.mat','uavW');
sim('New_mavsim_chap12');
ii = 4;
eval(['x' num2str(ii) '= x;'])
eval(['path' num2str(ii) '= path;'])
eval(['waypoints' num2str(ii) '= waypoints;'])
save('x4.mat','x4','path4','waypoints4');
%----------------
clear;
uavW = 5;
save('uavW.mat','uavW');
sim('New_mavsim_chap12');
ii = 5;
eval(['x' num2str(ii) '= x;'])
eval(['path' num2str(ii) '= path;'])
eval(['waypoints' num2str(ii) '= waypoints;'])
save('x5.mat','x5','path5','waypoints5');
% Show part
%----------------
close all;clear;
load 'x1'
load 'x2'
load 'x3'
load 'x4'
load 'x5'
addpath 'uavShow'
sim('mavsim_show');