一种无中心环境下无人机协同模拟平台的控制方法及系统
技术领域
[0001] 本发明涉及计算机智能控制技术领域,尤其是涉及一种无中心环境下无人机协同模拟平台的控制方法及其系统。
背景技术
[0002] 目前国内已有的关于无人机的模拟仿真平台都是以对无人机飞行控制的模拟为主。主要分为两类:一是精确模拟无人机飞行状态。即此类模拟器完全模拟无人机的飞行控制系统、环境系统、动力系统、武器系统等。此类模拟器一般用于工程人员了解无人机的飞行特性,也可以用于飞机控制人员训练如何利用无人机执行任务。此类系统以开源的FlightGear和波音公司的航空模拟器为代表。二是模拟无人机的指挥作战系统。即对现有的指挥系统进行模拟。而现有的指挥系统是由指挥中心控制无人机执行任务,并不存在无人机自行协同的问题。这种模拟系统一般也不仅仅针对无人机开发,而是针对各种兵种和装备。此类系统以军队内部使用的军事指挥推演系统为代表。首先根据飞行动力学和气动学对无人机的运动进行建模,再通过引入一个虚拟的地面控制中心向参与模拟的无人机提供飞行策略,并在其控制之下实现对单个无人机或无人机编队飞行过程的模拟。 [0003] 而当前对无人机技术的研究热点趋向于离散化和智能化,即一组分布式的自主无人机节点如何在无中心控制单元的条件下更有效地协同完成预定任务。这是一个多智能体分布式协同决策的过程,上述有中心控制节点式的模拟仿真平台显然不适用于此种情形。
因此需要一种模拟仿真平台能将模拟的重点由无人机的物理特性转到算法层上来,并能通过直观的形式对算法进行模拟和评估,以确定其在实际情况下的可行性及可能的改进措施。
发明内容
[0004] 为了解决无中心环境下无人机协同作战的模拟平台的控制问题,本发明提出了一种新的无中心环境下无人机协同模拟平台的控制方法。该方法利用无中心元组空间进行通讯,实现无人机自主协同。
[0005] 为达到上述目的,本发明提供了如下所述的技术方案。一种无中心环境下无人机协同模拟平台的控制方法,包括如下步骤:
[0006] A1)根据模拟配置文件建立模拟环境;
[0007] A2)根据所述的模拟配置文件设置无人机的状态;
[0008] A3)启动无人机,利用无中心节点的元组空间通信,技术定时采集所有无人机的状态数据;
[0009] A4)中止无人机的运行,将采集到的所有无人机的状态数据以帧的形式传输至界面层;
[0010] A5)通过所述界面层来演示整个模拟过程。
[0011] 在本发明的一个实施例中,所述步骤A1)中的模拟配置信息通过配置文件编辑和通过界面层进行输入的方式之一,用来指定敌我双方无人机的数量、采用的协同算法以及初始化状态信息。
[0012] 在本发明的另一个实施例中,所述步骤A1)中的建立模拟环境通过控制台进行操作,包括初始化每个参与模拟的无人机、设置执行任务时所采用的协同算法以及设置禁飞区信息。
[0013] 在本发明的另一个实施例中,所述协同算法包括任务分配算法、路径规划算法。 [0014] 在本发明的另一个实施例中,所述步骤A3)包括如下步骤:
[0015] A31)判断模拟是否结束,如果是,则进入所述步骤A4);如果否,则进入步骤A32);
[0016] A32)判断所述无人机是否被击毁,如果是,则进入所述步骤A4);如果否,则进入步骤A33);
[0017] A33)若所述无人机满足继续运行的条件,则进入决策阶段;
[0018] A34)通过所述步骤A33),为无人机确定任务目标后,无人机进入运动阶段。 [0019] 在本发明的又一个实施例中,所述步骤A33)包括如下步骤:
[0020] A331)向周围广播本无人机的当前位置信息;
[0021] A332)收集周围临近的友机和敌机信息;
[0022] A333)根据策略进行任务分配。
[0023] 在本发明的又一个实施例中,所述步骤A34)包括如下步骤:
[0024] A341)确定无人机是否已到达执行任务的目的地,如果是,则结束运动,否则进入步骤A342);
[0025] A342)判断无人机是否到达巡航点,如果是,则规划巡航飞行路径,否则根据当前位置和目标点,规划飞行路径;
[0026] A343)无人机按照规划的飞行路径运动;
[0027] A344)判断飞行周期是否结束,如果是,则结束运动,否则进入步骤A345); [0028] A345)验证当前路径是否有效,如果是,则进入步骤A346),否则返回所述步骤A341);
[0029] A346)继续模拟飞行,计算并更新自己的位置信息;
[0030] A347)判断当前目标是否在自己的攻击范围内,如果是,则发起攻击,否则返回所述步骤A344)。
[0031] 在本发明的又一个实施例中,所述无人机之间采用元组空间原语进行通讯。 [0032] 一种无中心环境下无人机协同模拟平台控制系统,包括:
[0033] 界面层模块,用于输入模拟配置文件以及演示模拟过程;
[0034] 控制台模块,用于根据模拟配置文件建立模拟环境;
[0035] 无人机,根据模拟环境进行任务分配;
[0036] 算法模块,用于在模拟配置文件中为无人机指定模拟过程中的具体算法。 [0037] 在本发明的一个实施例中,所述无人机包括决策模型单元与运动模型单元,其中,所述决策模型单元模拟为无人机分配目标,所述运动模型单元根据分配的目标模拟无人机的运动。
[0038] 在本发明的另一个实施例中,所述算法模块提供任务分配算法和路径规划算法。 [0039] 通过上述的技术方案,本发明将模拟的重点由无人机的物理特性转到算法层上来,并能通过直观的形式对算法进行模拟和评估,而且利用元组空间的通信,使平台具有更好的扩展性。
附图说明
[0040] 图1是根据本发明的无中心环境下无人机协同模拟平台的控制方法的流程图; [0041] 图2是根据本发明的控制方法中步骤A3)的流程图;
[0042] 图3是根据本发明的控制方法步骤A3)中的步骤A33)的流程图; [0043] 图4是根据本发明的控制方法步骤A3)中的步骤A34)的流程图; [0044] 图5是根据本发明的无中心环境下无人机协同模拟平台的控制系统的体系构成图;以及
[0045] 图6是根据本发明的无人机Ri和目标Bi间的空战几何态势。
具体实施方式
[0046] 下面将参照附图更加详细地描述根据本发明的无中心环境下无人机协同模拟平台的控制方法的具体实施例。
[0047] 如图1所示的一种无中心环境下无人机协同模拟平台的控制方法,包括如下步骤:
[0048] A1)根据模拟配置文件建立模拟环境;
[0049] A2)根据所述的模拟配置文件设置无人机的状态;
[0050] A3)启动无人机,通过无中心节点的元组空间技术定时采集所有无人机的状态数据;
[0051] A4)中止无人机的运行,将采集到的所有无人机的状态数据以帧的形式传输至界面层;
[0052] A5)通过界面层来演示整个模拟过程。
[0053] 其中,步骤A1)中的模拟配置信息通过配置文件编辑和通过界面层进行输入的方式之一,用来指定敌我双方无人机的数量、采用的协同算法以及初始化状态信息;建立模拟环境通过控制台进行操作,包括初始化每个参与模拟的 无人机、设置执行任务时所采用的协同算法以及设置禁飞区信息。
[0054] 如图2所示,步骤A3)还包括如下步骤:
[0055] A31)判断模拟是否结束,如果是,则进入所述步骤A4);如果否,则进入步骤A32);
[0056] A32)判断所述无人机是否被击毁,如果是,则进入所述步骤A4);如果否,则进入步骤A33);
[0057] A33)若所述无人机满足继续运行的条件,则进入决策阶段;
[0058] A34)根据所述步骤A33)确定的任务目标,无人机进入运动阶段。 [0059] 其中,无人机继续运行的条件为:当前无人机未被击毁,并且敌我双方的无人机均存在(即不能出现我方或者敌方无人机全部被击毁的情况)。
[0060] 另外,如图3所示,步骤A33)包括如下步骤:
[0061] A331)向周围广播本无人机的当前位置信息;
[0062] A332)收集周围临近的友机和敌机信息;
[0063] A333)根据策略进行任务分配。
[0064] 此外,如图4所示,步骤A34)包括如下步骤:
[0065] A341)确定无人机是否已到达执行任务的目的地,如果是,则结束运动,否则进入步骤A342);
[0066] A342)判断无人机是否到达巡航点,如果是,则规划巡航飞行路径,否则进入步骤A343);
[0067] A343)根据当前位置和目标点,路径无人机按照规划的飞行路径运动; [0068] A344)判断飞行周期是否结束,如果是,则结束运动,否则进入步骤A345); [0069] A345)验证当前路径是否有效,如果是,则进入步骤A346),否则返回所述步骤A341);
[0070] A346)计算并更新自己的位置信息;
[0071] A347)判断当前目标是否在自己的攻击范围内,如果是,则发起攻击,否则返回所述步骤A344)。
[0072] 在本发明中,飞行周期为5ms。
[0073] 如图5所示的一种无中心环境下无人机协同模拟平台控制系统,包括: [0074] 界面层模块,用于输入模拟配置文件以及演示模拟过程;
[0075] 控制台模块,用于根据模拟配置文件建立模拟环境;
[0076] 无人机,根据模拟环境进行任务分配;
[0077] 算法模块,用于在模拟配置文件中为无人机指定模拟过程中的具体算法; [0078] 其中,无人机包括决策模型单元与运动模型单元;决策模型单元模拟为无人机分配目标,运动模型单元根据分配的目标模拟无人机的运动。
[0079] 首先通过配置文件编辑和通过界面层输入模拟配置文件的方式之一,指定参与模拟的我方和敌方无人机的数量、采用的协同算法以及初始状态信息等(如初始位置、初始航向角等),控制台模块根据配置文件在仿真计算机群上布置一组无人机。模拟开始后,控制台模块会启动这些无人机。然后,各个无人机独立运行,控制台模块负责对模拟过程的管理以及以帧的形式采集各个无人机的状态数据。当模拟结束时,各个无人机终止运行,控制台模块将所有的采集的状态帧递交至界面层模块,由界面层模块负责模拟演示。 [0080] 此时,控制台模块进入模拟过程管理阶段。在此阶段,控制台模块需要并行处理以下三方面工作:
[0081] 定时采集所有无人机的状态数据,形成该时刻的无人机状态帧。每一帧中包含了当前所有无人机个体的状态信息,包括名字、当前位置、航向角、以及已分配的目标等。 [0082] 由于模拟过程中,敌我双方无人机之间会相互攻击,因此控制台需要根据一次攻击的参数信息(如两架无人机之间的距离等)对攻击的结果做出仲裁,判定被攻击的无人机是否被击毁。
[0083] 模拟过程中会产生一些日志信息,控制台模块需对日志信息流进行管理,将其输出至界面层模块,同时也将其写入日志文件,以作备份。
[0084] 模拟结束的条件包括以下三种:
[0085] (1)我方无人机全部被击毁;
[0086] (2)我方无人机完成预定任务;
[0087] (3)模拟运行超时(一般时限为10-30秒)。
[0088] 当其中任何一种满足时,控制台模块会结束此次模拟。首先,控制台模块需终止各个无人机的运行,然后将模拟过程中采集的所有无人机状态帧传递至 界面层模块,并清理内核。
[0089] 算法模块集中了模拟过程中无人机可选的算法,包括任务分配算法和路径规划算法,用户可以根据本仿真平台提供的开发接口往算法库中添加特定的无人机协同算法。下面将详细介绍任务分配算法以及路径规划算法的涉及思路。
[0090] 任务分配算法库设计:
[0091] 任务分配算法库中的算法类都继承于统一的抽象任务分配模型,各自再实现不同的具体分配策略。在抽象任务分配模型中,对多无人机多目标分配问题建模如下: [0092] 记所有红方机群为R,R={Ri,i=0,1,...,M-1},其中Ri表示第i架战机;记所有蓝方目标集为B,B={Bj,j=0,1,...,N-1},其中Bj表示第j个蓝方目标。红方机群R的总导弹数量为:Z=M·L。在图6中,LOS为目标线,即红机Ri和目标Bj间的连线;Dij为Ri相对于Bj的距离;xi与vi分别为Ri的机体轴线和速度矢量;εij为Bj相对于Ri的离轴发射角;xj、vj和εji用类似的方法定义。定义战机Ri对目标Bj的威胁为 [0093]
[0094] 其中,ω1、ω2和ω3为非负的权重系数,其值由专家给出,且满足ω1+ω2+ω3=D ε v
1。Pij 定义为距离威胁, Pij 定义为角度威胁, Pij 定义为速度威胁, E
Pij 定义为空战能力威胁; 以同样的方式定义Bj对Ri的威胁thji。
[0095] 根据上述威胁估计,多战机目标分配可描述为:寻找一个合适的战机目标分配方*
案π,使完成一个目标集的效能最优,即
[0096]
[0097] 式中:π为红方对蓝方目标的导弹目标分配方案;Ω为所有可行导弹目标分配方案构成的解空间;G(π)为衡量协同攻击效能的效用函数,表示整个目标集在战机集协同攻击后总剩余威胁。
[0098]
[0099] 可见,G(π)越小越好。
[0100] 根据应用,设定约束条件为:①每个目标集可分配不多于2枚的导弹;②参与攻击目标集的战机挂载的Z枚导弹均进行分配。
[0101] 设机群R的Z枚导弹构成导弹集合K,且K={k,k=0,1,...,Z-1}。设Xkj为布尔值,Xkj=1表示导弹k攻击目标Bj,Xkj=0表示k没有攻击目标Bj。Sij表示红机Ri攻击目标Bj的数量。则
[0102]
[0103] 式中,ik表示红机Ri挂载的第k枚导弹。约束条件可形式化为
[0104]
[0105]
[0106] 基于上述模型,本发明集成了一种改进的基于组合拍卖的任务分配方法——MCABOB。MCABOB算法源于CABOB算法。CABOB算法是目前组合拍卖算法中解决胜者确定问题(WDP)整体性能最好的算法,本质上是基于冲突图数据结构的搜索树算法。MCABOB算法对其进行了以下四个方面的改进,以使其适合于分布式环境下多无人机的协同任务拍卖。 [0107] i.设计了新的投标元组格式,如下:
[0108] i∈{0,1,...,M-1},
[0109]
[0110] (7)q∈{1,2,...,Qmax},
[0111] h∈{1,2,...,Hi}
[0112] 式中:BIDhi表示红机Ri的第h个投标; 表示该投标对应的物品组合,编号为q;pi∈R,pi≥0,表示投标的价格;Qmax表示物品组合的最大数目;h为投标红机Ri的竞标序号,Hi表示Ri可提出的最大竞标数。
[0113] ii.预审核投标战机的任务完成能力
[0114] 在对投标集的处理中,审核当前投标战机已获得的目标数与当前投标的目标数之和是否小于等于投标战机挂载的总导弹数,确保不出现分配的目标数大于挂载的导弹数。
对目标设置底价设置底价审核限制了战机参与目标分配的范围,使得战机仅关注于能力范围内的目标。
[0115] iii.扩展算法为非0-1投标
[0116] 根据动态价格设计动态规则选取节点,新规则如下
[0117]
[0118] 式中:j表示目标,i表示当前目标j的所有者,k表示之前目标j的所有者。因此r
ψ′q实际上即为协同攻击物品组合的SETq动态价格。其中Xj 满足以下 条件 [0119]
[0120] 式中:Alloced(r)表示红机Rr可攻击的目标集;Arms(r)表示红机Rr的武器集。
r
式(9)表示,当目标Bj之前所有者为Rr时,Xj 为1,否则为0。在节点选取中,选取ψ′q最大的节点。
[0121] iv.限制投标
[0122] 具体方法是对每架红机R1,按如下方法进行投标:
[0123] ①根据我方战机对战区内目标集的威胁构造投标集SET。
[0124] ②选择距R1最近的两架友机,记为R2,R3。
[0125] ③构造一个R1对目标集的攻击效用评价集(用数组表示),R1对每个目标Bj的攻击效用按如下规则计算:
[0126] a)若R1对Bj的威胁大于R2、R3对Bj的威胁,则对目标Bj的攻击效用评价不变。 [0127] b)若R2或R3中仅有一个对Bj的威胁大于R1对Bj的威胁,设为R2,则R1对目标的攻击效用为R1与R2对目标Bj的协同威胁。
[0128] c)若R2与R3均对Bj的威胁大于R1对Bj的威胁,则R1对目标Bj的威胁设为0。 [0129] ④使用新的对目标的攻击效用更新评价集并由小到大排序。
[0130] ⑤选取满足设定阈值的投标集,记为SETt,将SETt中所有投标的攻击威胁还原为原来的攻击效用值。
[0131] ⑥将SETt提交给MCABOB算法进行处理。
[0132] 路径规划算法库设计:
[0133] 路径规划算法库中的算法实现了共同的接口,在运动模型的路径规划模块中可以根据需要动态指定所用的算法。
[0134] 路径规划算法首先要求对禁飞区信息建模。禁飞区集合NFZ={NFZi|i=1,
2,...,n},NFZi=(Pi,Thi(p)),其中Pi是代表禁飞区的形状区域,Thi(p)是威胁程度分布函数,表示点p受禁飞区i的威胁程度,其值域为[0,1],0表示当无人机位于点p时不会受到禁飞区i的威胁,1表示无人机在此点会因为禁飞区i的缘故而坠毁(禁飞区为高山或建筑物)或被击毁(禁飞区表示敌方火力密集区)。无人机j的飞行路径Pathj可以用一k
系列路径点表示,即Pathj={pj|k =0,1,...,m-1,m>=2},m是指路径点的最大个数
0 m-1
(包括起点psrc和终点pdes),其中pj=psrc,p j=pdes。
[0135] 综上所述,无人机的路径规划问题即为寻找最优路径Path*,使得 [0136] ,Ω表示路径的解空间
[0137] 很多时候由于路径的解空间太大,求解最优路径复杂度过大,从算法执行效率上考虑,会转而寻求次优路径Path’。
[0138] 本发明集成了一种基于单源最短路径的无人机路径规划方法,该方法中对禁飞区采用规则多边形建模,并假设Thi(p)=1,p∈Pi。算法流程如下:
[0139] 1.将所有多边形禁飞区的顶点与无人机的起点psrc和目的地点pdes一起构成集合V;
[0140] 2.以V为图G的顶点集,再构造G的边集E:若V中任意两点vi,vj间的连线不与任何一个禁飞区相交,则vivj∈E;
[0141] 3.求出图G中从Psrc到Pdes的单源最短路径Pathtemp;
[0142] 根据无人机的运动特性,如最小转弯半径等对Pathtemp进行平滑处理,使其转换为无人机的可飞行路径。
[0143] 此外,各个无人机之间以及无人机设计模块与控制台模块之间的通信都是通过往同一个元组空间中写入或读出元组来进行的。具体说明如下:
[0144] 首先定义一组元组类型,如下表所示。表中 表示己方无人机集合(红方)。 表示未分配的目标无人机集合(蓝方)。 则表示
将任务Sj分配给Ai的出价。表中的后两种元组类型仅仅用于模拟控制,不是真正协同算法的一部分。
[0145]
[0146] 在每轮循环中,无人机Ai首先查看自身能够观察到的未分配目标集合 如果 非空的话,就从中挑选一个价格最高的目标SJ作为Proposal的目标。之后Ai将这个Proposal元组发给它的邻居以及它自己 发送采用元组空间的原语
(
);,此后Ai将利用元组空间原语 (< double?>);收集所有由其邻居和自己发来的Proposal。并开始选择其中最大的。在决定之后该将Sk分配给 后,它向 发送包含“接受(r=1)”的Reply元组,即 ();,而向其他的也要求得到目标Sk的无人机发送“拒绝(r=0)”的Reply元组,即 ();。
随后,Ai利用 ();得到所有的回复给自己的Reply元组,并且查看回复中是否全是“接受”。如果是的话,就将这个目标SJ加入到自己的待执行任务列表中。
然后,路径规划器会根据这个任务列表规划出最优的路径。
[0147] 可以看到上述算法中,临近的无人机是通过相互协作的方式来运行的。如果一个无人机发现其未分配目标集合为空,不能简单的停止工作,而是要基于利用一个DUMMY目标来继续保持此循环的不间断运行。
[0148] 上述算法中采用了元组空间的两种原语out和in。而元组空间DracoTS提供四种原语,如下表所示( 为元组匹配元组模板,详见DracoTS的介绍内容)。 [0149]
[0150] 在无人机通讯中引入无中心元组空间的好处是,无人机可以忽略掉任何底层的通讯问题,例如邻居节点的维护、发送和接收的失败。无人机可以与单个无人机(包括自己)、多个无人机、邻居无人机甚至是整个元组空间的所有无人机进行通讯。 [0151] 本发明将模拟的重点由无人机的物理特性转到算法层上来,并能通过直观的形式对算法进行模拟和评估,而且利用元组空间的通信完全屏蔽了底层的通信细节,使平台具有更好的扩展性。
[0152] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0153] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0154] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。