买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种支持联合作战的多核并行仿真引擎系统_北京航空航天大学_201710417606.9 

申请/专利权人:北京航空航天大学

申请日:2017-06-05

公开(公告)日:2020-11-24

公开(公告)号:CN107193639B

主分类号:G06F9/455(20060101)

分类号:G06F9/455(20060101);G06Q50/26(20120101)

优先权:

专利状态码:有效-授权

法律状态:2020.11.24#授权;2017.10.24#实质审查的生效;2017.09.22#公开

摘要:本发明公开了一种支持联合作战的多核并行仿真引擎系统,解决传统联合作战系统在采用步长推进逻辑时间时,实时性容易受影响的问题。该系统包括调度模型管理模块、线程管理模块、外部接口管理模块和高层体系结构管理模块。该系统首先为仿真实体分配目标节点,使得每个节点上模型的总运算量相当;然后通过调度模型管理模块基于负载均衡的原则产生各节点的调度计划表,为模型分配仿真步长,并在仿真过程中调整调度计划表,对销毁实体和产生的新实体的仿真步长进行调整。本发明可以根据模型的运行周期和系统步长自主划分调度表,允许实体按需求采用不同的物理模型或行为模型进行仿真,支持大规模仿真和高逼真度作战模型的实时调度。

主权项:1.一种支持联合作战的多核并行仿真引擎系统,运行在采用以太网分布式布置的节点上,其特征在于,该系统包括调度模型管理模块、线程管理模块、外部接口管理模块和高层体系结构管理模块;调度模型管理模块对模型的仿真过程进行管理和调度,把模型以队列的方式管理起来供线程管理模块调用,在模型仿真结算完成时发送信号给线程管理模块;线程管理模块创建和调度线程,多线程调度从模型队列里取出模型进行仿真结算;外部接口管理模块是调度模型管理模块与外界交互的接口;高层体系结构管理模块提供高层体系结构HLA集成接口,与运行支撑环境进行对外仿真交互,实现与成员节点的协同仿真;所述的多核并行仿真引擎系统首先为仿真实体分配目标节点,使得每个节点上模型的总运算量相当;然后通过调度模型管理模块产生各节点的调度计划表,为模型分配仿真步长,并在仿真过程中调整调度计划表,对销毁实体和产生的新实体的仿真步长进行调整;所述的调度模型管理模块为模型分配仿真步长,包括:将模型的运行周期对齐;初始化调度周期内各个系统步长的处理器空闲率为1;产生调度计划表,调度计划表按照不同的模型运行周期来组织,包括模型步长和该模型步长包含的系统步长数;其中,所述的调度模型管理模块将各模型的运行周期按2对齐,表示如下:Ti=2i·Tstep,i=1,2,…,s其中,Ti表示节点上模型的第i种运行周期,Tstep为系统步长,s表示节点上模型共使用s种不同的运行周期;所述的调度模型管理模块还设置每个模型首次运行的时刻,设调度计划表中元素Mpq表示在某个运行周期中第p个系统步长内调度编号为q的模型,设置所调度的该模型运行时间的初始值Pk为:Pk=-q+1Tstep设Tk是仿真时间的某一时刻,模型Mpq的仿真时间为ΔT,如果满足以下的条件:ΔT-Pk≥Tk则执行该模型,当模型执行完毕后Pk被设置为ΔT;所述的模型的内部均包含一个黑板结构;模型之间的通信使用黑板结构;一个行为Agent形式化地表示为:Agent=ID,Meta,Subscription,Publications,Data,ProvidedCap,RequiredCap,其中,ID是模型的唯一标志;Meta包含适用的平台、编制级别、名称、描述信息;Subscription是感兴趣的黑板元素类型集合;Publications是公布的黑板元素类型集合;Data是模型使用的数据,对于行为模型是作战规则,对于物理模型是装备的性能参数;ProvidedCap是Agent提供的能力;RequiredCap是Agent需要的能力;由于黑板部件对实体内部与外部采用了相似的交互协作方式,因此实体本身也表现出Agent特性,实体之间的交互在本质上仍然是Agent组件的交互;每个实体的Agent模块都具有独立性,各实体的Agent模块一起工作,并通过黑板完成了响应与协作,当某个实体被损毁,那么只需要删除或停止该实体的Agent模块,实体就自动失去了探测能力。

全文数据:一种支持联合作战的多核并行仿真引擎系统技术领域[0001]本发明属于计算机仿真技术领域,涉及一种支持联合作战的多核并行仿真引擎系统。背景技术[0002]随着军事变革的深入发展,对于多兵种联合作战仿真系统而言,在辅助决策、指挥训练等多个军事领域发挥着十分重要的作用。信息化战争成为未来战争的主要形态。[0003]传统开发的作战仿真引擎具有其局限性,例如不支持模型的参数化组装、不支持模型的重用、模型仿真速度慢、无法为模型开发人员提供通用接口服务、系统不支持可灵活扩展等。由于当前对多兵种联合作战的仿真规模和逼真度需求的进一步提升,及每次虚拟作战战场的仿真具有其特有的兵力分配方式和作战环境,找到一个具有高效实时的引擎调度算法对整个战场的模拟仿真就显得十分重要,同时也比较困难。[0004]仿真引擎系统的调度问题是一个由定性、定量各种因素组成的决策问题,尤其是应用在多兵种联合作战的情况下。目前的仿真引擎在运用到多兵种联合作战领域还有很多限制,与仿真引擎实时调度相关的研究包括运行支撑环境、应用的性能改进、模型的实时调度3个方面,其中起决定作用的是模型的实时调度。[0005]模型的实时调度是对模型执行进行合理安排以满足其截止期要求,可分为静态和动态两类:前者指在运行前就安排好运行时刻表;后者指在运行时动态确定需要执行的模型,例如最早截止期算法将具有最早截止期的任务赋予最高优先级。最早截止期算法是最常使用的实时调度算法,并且针对不同应用进行了优化。最近有研究将最早截止期算法直接应用到HLA高层体系结构环境,但并不针对作战仿真应用,性能也未经过验证。[0006]新一代的联合作战采用组装和复用技术来支持模型的快速开发,例如美军的JSAF和OneSAF。它的主要特点是支持多分辨率的模型并进行验证,使用符合军事想定描述语言标准规范的想定,能够同时支持武器研发采办、演习训练和分析三个领域。但是目前国内并没有掌握能够应用于多兵种联合作战的仿真引擎系统,在模拟作战时,本领域工作人员受到很大的技术限制。发明内容[0007]本发明为了解决仿真引擎在联合作战系统中的应用问题,对传统的作战仿真引擎系统进行了多核分布式与并行改造,提出了一种支持联合作战的多核并行仿真引擎系统,主要适合于兵力模型。本发明仿真引擎系统根据模型运行周期和系统步长划分调度表,并基于负载均衡的原则为模型分配仿真步长,采用一种动态与静态结合的调度算法为该引擎系统的有效运行提供支撑。[0008]本发明提供的支持联合作战的多核并行仿真引擎系统,运行在采用以太网分布式布置的节点上。系统包括调度模型管理模块、线程管理模块、外部接口管理模块和高层体系结构管理模块。调度模型管理模块对模型的仿真过程进行管理和调度,把模型以队列的方式管理起来供线程管理模块调用,在模型仿真结算完成时发送信号给线程管理模块。线程管理模块创建和调度线程,多线程调度从模型队列里取出模型进行仿真结算。外部接口管理模块是调度模型管理模块与外界交互的接口。高层体系结构管理模块提供高层体系结构HLA集成接口,与运行支撑环境进行对外仿真交互,实现与成员节点的协同仿真。[0009]所述的多核并行仿真引擎系统首先为仿真实体分配目标节点,使得每个节点上模型的总运算量相当;然后通过调度模型管理模块产生各节点的调度计划表,为模型分配仿真步长,并在仿真过程中调整调度表,对销毁实体和产生的新实体的仿真步长进行调整。[0010]所述的调度模型管理模块为模型分配仿真步长的步骤包括:将模型的运行周期对齐;初始化调度周期内各个系统步长的处理器空闲率为1;产生调度计划表,调度计划表按照不同的模型运行周期来组织,包括模型步长和该模型步长包含的系统步长数。[0011]所述的调度模型管理模块产生调度计划表,是按从小到大的顺序对模型的不同种运行周期T1J2,…,!^进行遍历,创建各运行周期内各系统步长的调度表,最终形成调度计划表。对运行周期T1,计算运行周期1\内所包含的系统步长数巨将具有运行周期!^的所有模型按执行时间从大到小排序形成队列,遍历模型队列,执行下面1〜3创建运行周期!\内各系统步长的调度表[0012]1从运行周期!\的各系统步长的处理器空闲率中选择最大值idlem;[0013]⑵将当前模型分配给第m个系统步长,记录在Tableim中;[0014]3更新第m个系统步长和后续受影响系统步长的处理器空闲率;第m+L*l个系统步长的处理器空闲率更新为:[0015]当系统步长的处理器空闲率小于0时,则停止为该系统步长分配模型。[0016]本发明的优点及带来的有益效果在于:[0017]1本发明支持联合作战的多核并行仿真引擎系统,以联合作战模型的仿真引擎的实时调度为目标,支持大规模仿真和高逼真度作战模型的实时调度。同时,允许实体按需求采用不同的物理模型或行为模型进行仿真。解决了传统的调度方法中,联合作战系统在采用步长推进逻辑时间时,实时性容易受影响的问题。[0018]2本发明支持联合作战的多核并行仿真引擎系统,在动态与静态结合的仿真调度方法中,可以根据模型的运行周期和系统步长自主划分调度表。[0019]3本发明支持联合作战的多核并行仿真引擎系统,各个节点独立性强,一般不存在一个中心节点用于动态分发负载,每个节点运行的仿真实体都被预先部署好;仿真引擎位于各个节点上,用于节点自身的调度。[0020]4本发明支持联合作战的多核并行仿真引擎系统,对于作战实体的毁伤及产生新实体飞机发射导弹)的情况,可以直接输入到仿真调度方法中,对仿真引擎的调度表进行调整,避免负载过剩的情况发生。[0021]5本发明支持联合作战的多核并行仿真引擎系统,不仅可以应用于联合作战仿真引擎调度,同时也可以应用于对其他背景模型的实时调度。[0022]6本发明支持联合作战的多核并行仿真引擎系统,利用HLA集成接口提高原有仿真平台的可扩展性,实现基于HLA标准的网络分布式仿真和异构仿真资源重用,不仅能适应联合作战任务复杂性需要,还将提高仿真系统的搭建和运行效率,促进仿真资源融合与仿真响应能力。[0023]7本发明支持联合作战的多核并行仿真引擎系统,支持仿真系统的运行,可对作战过程和兵力推演进行模拟并研究检验作战策略,根据存储的仿真数据进行作战系统效能评估,为真实复杂的多兵种联合作战提供决策参考。[0024]8本发明支持联合作战的多核并行仿真引擎系统,主要满足国内各家单位武器装备研制及部队演习训练的需求。本发明的仿真系统不仅包含兵力模型,同时实现了仿真想定、仿真部署、可视化、数据采集、效能评估等功能。附图说明[0025]图1为本发明各组件的描述及仿真系统的模块组成示意图;[0026]图2为本发明的用户界面与仿真引擎的模型调度交互关系图;[0027]图3为本发明采用的调度方法的负载均衡原理图;[0028]图4为本发明产生的调度计划表示例图;[0029]图5为本发明仿真调度框架;[0030]图6为本发明仿真引擎的逻辑框架图;[0031]图7为本发明仿真系统核心部件图;[0032]图8为本发明仿真系统中实体模型框架;[0033]图9为本发明实施例的联合作战模型作战实例图。具体实施方式[0034]下面将结合附图和具体实施例对本发明进行详细说明。[0035]在以下描述中,将从多个不同的方面对本发明进行描述,本领域的开发人员可根据开发需要,利用一部分或者是全部结构或者流程实施本发明。为使开发使用人员明确地理解,本发明阐述了构建框架、顺序等,但是很明显,在没有特定细节的情况下也可以实施本发明。在其他情况下,为了不混淆本发明,对于一些周知性特征不再详述。[0036]本发明主要研究多兵种联合作战模型实时调度问题,以及引入运行支撑环境后必须考虑的时间推进问题。运行支撑环境的逻辑时间和仿真步长概念为调度施加了限制。本发明提出了将时间推进和模型调度过程分离的框架,并设计了基于步长的负载平衡的动态与静态结合的调度算法,从而获得良好的实时性和调度性能。[0037]针对目前多兵种联合作战中仿真引擎系统的实时调度方法的缺点和不足,本发明提出支持模块、集成和复用的多核并行仿真引擎系统。多兵种联合作战模型具有如下特点:①仿真实体由多个模型组装而成,例如舰船、潜艇、坦克、步战车、高炮、直升机、飞机等物理模型;同时,它包含行进、开火、指控等行为模型;②部分模型按周期执行,这类模型通常使用了仿真引擎系统中大部分的计算资源;③设定初始的实体集合,该集合在仿真过程中会发生变化;④本发明采用动态与静态结合的负载分配方式,即按需分配。本发明结合作战模型的以上4点特征获得了良好的超实时性效果,提高了调度运行效率。[0038]本发明所述的作战仿真引擎系统如图1所示,从功能实现上来分,主要包括的功能模块有:调度模型管理模块、线程管理模块、外部接口管理模块、高层体系结构管理模块、可视化模块、评估模块及数据记录模块。[0039]调度模型管理模块:主要负责解析试验模型和加载模型动态库等,并把模型以队列的方式管理起来供线程管理模块调用,在模型仿真结算完成时发送信号给线程管理模块。调度模型管理模块实现了仿真时间管理、仿真模型的推进,响应仿真用户操作,对仿真过程进行管理和调度。其中仿真时间管理提供了时间推进管理功能,使得真实世界时间的推进不受仿真暂时或停止或仿真变步长的限制,从而支持仿真实体的并行推进;同时支持基于时间步长和事件步长的推进。联合作战仿真模型主要包括坦克、飞机、雷达、火炮、壳体舰船等一系列实体类,每个基本的实体类对应一个实体管理类,它控制着实体的创建、销毁、配置、用户界面和相关数据。[0040]线程管理模块:负责创建和调度线程,仿真开始后多线程调度从模型队列里取出模型进行模型仿真结算,并且获取外部接口管理模块的操作信号进行对线程和模型的调度。为了减小多线程之间存在的相互抢占问题,可以在线程池的基础上通过主动分担负载的方式来适应负载动态变化的现象。即通过实时地主动获取待执行的实体,保证资源被充分利用,从而适应实体解算时间的动态变化。[0041]外部接口管理模块:调度模型管理模块与外界交互的接口,实现用户界面与仿真引擎系统的模型调度之间的交互。[0042]调度模型管理模块、线程管理模块和外部接口管理模块组成仿真引擎系统的调度模块。[0043]高层体系结构管理模块:提供HLA集成接口,与运行支撑环境进行对外仿真交互,提高仿真平台的可扩展性,实现基于HLA标准的网络分布式仿真和异构仿真资源重用。[0044]可视化模块:主要用于动态表现仿真过程,它可以接收来自仿真引擎中的实体状态变更消息,从而改变相应的图标位置或状态,并且可通过以太网将仿真数据发送给可视化计算机。[0045]评估模块:用于为分析人员提供分析和评估界面,如动态统计各方的各种战损,评估未来可能发展趋势等。它可以接收来自仿真引擎的各种实体状态变化,从而对统计数据进行动态更新。[0046]数据记录模块:采用基于黑板的交互模式,用于记录系统运行期间所有模型应用的操作。[0047]本发明支持联合作战的多核并行仿真引擎系统,运行在采用以太网分布式模式布置的节点上。在每个节点上系统运行如图2所示,通过总控平台来实现人机交互。总控平台所在计算机作为以太网的一个节点,节点内部采用多核并行仿真模式,同时该节点作为一个HLA仿真联邦成员在运行支撑环境上运行,总控平台通过HLA集成接口与运行支撑环境进行对外仿真交互,在HLA总控的控制下与其他成员节点进行协同仿真。多个节点的总控平台可同时参与到同一个高层体系结构仿真联邦进行协同仿真。[0048]本发明的多核并行仿真引擎系统采用的仿真策略包括如下步骤一到三,为仿真实体及其模型组件安排空间与时间资源。[0049]步骤一:为仿真实体分配目标节点,是对各节点的仿真实体模型进行分配,使得每个节点上模型的总运算量相当。[0050]具体实现包括;1计算每个仿真实体的处理器利用率,并按照从大到小的顺序依次排列;2初始化各个节点的空闲率为1;3取下实体队列的首个仿真实体,将其分配给空闲率最大的节点,更新节点空闲率;4重复步骤3,直到待分配实体队列的链表为空。如果出现某个节点的空闲率小于0,则停止为该节点分配增加仿真实体。[0051]步骤二:调度模型管理模块产生各节点的调度计划表,就是为模型分配仿真步长。使得满足单个节点可包含成百上千个模型的大规模仿真的需要,同时还具有较高的处理器利用率,尤其适合于大量小模型,这符合大规模仿真的特点,因为如果单个模型运行时间过长,仿真规模将会降级。[0052]步骤三:调度模型管理模块调整调度表,是指对销毁实体和产生的新实体仿真步长进行调整,将全局调度问题转化为局部调度问题,保证分布式与并行仿真引擎的稳定性特征,同时最大程度减小负载。[0053]所述的仿真引擎系统运行在高层体系结构上,实时调度方法基于负载均衡原理,所述的负载均衡原理如图3所示,通过仿真步长的改变来优化调度以减少仿真运行时间。在模型调度开始后,模型调度队列测试模型,产生η个线程进行处理,在各线程内取模型进行仿真,首先判断模型是否为空,若是,则此线程的调度完毕,若否,则调用模型函数,结算该模型的输出,根据输出的结果更新数据库,再重复上述取模型和判断模型是否为空的过程,当所有线程取模型仿真的操作完毕,调度结束。[0054]本发明基于负载均衡原理为模型分配仿真步长,根据模型的先验信息进行静态调度,即运行前事先确定好调度表。调度模型管理模块产生节点的调度计划表的方法包括如下步骤1〜8。设某个节点上所有实体的周期性模型构成集合,1!为节点上模型总数,节点上的模型共使用s种不同的运行周期,s$n,n和s均为正整数。[0055]步骤1:将模型的运行周期对齐,以实现高效调度。本发明是对模型的运行周期1\增加一个约束,即按2对齐:[0057]其中,T1为模型的第i种运行周期,运行周期即模型步长。Tstep为系统步长,表示仿真进程以步长方式推进时使用的时间间隔。例如系统步长TstepS50ms,那么模型步长Tk可以是50ms、100ms、200ms、400ms、800ms等。[0058]步骤2:初始化调度周期内每个系统步长的处理器空闲率idlek为I,KkSTotalSteps,以保证每个步长的处理器具有全部的处理能力。TotalSteps为一个调度周期Tk内含有的系统步长总数,如下:[0060]步骤3:产生调度计划表Table。调度计划表Table按照不同的模型周期来组织,包括模型步长和该步长包含的系统步长数,即子步长。使用链表作为数据结构,调度计划表Table可表示为:[0062]其中,p为模型运行周期内的系统步长号,1行为_物理执行模型以减少因调度引起的仿真结果不确定现象,因此对同一实体内的模型采用串行执行方式。[0097]引擎调度功能的基本结构如图5所示,其中,引擎调度的主要部件包括:[0098]1.线程池ThreadPool,在初始化时通过配置文件确定工作线程数量,并创建线程对象。由于仿真引擎还包含其它服务线程,工作线程数量一般为CPU核心数减1。[0099]2.主线程MainThread,在一个步长开始时通知线程池开始模型解算,并在其结束后推进一个步长。同时还负责通过仿真中间件收发消息。[0Ί00]3.负载集合WorkloadSet,维护了所有待执行的实体单元,实体单元包含了各种模型组件:物理模型、自主行为行为模型1、任务。[0101]4.工作线程Thread图中的工作负载),从WorkloadQueue模型库中获取单元或实体,然后执行其Tick功能,最终陷入具体模型的Tick。在完成所有实体解算后,线程池需要反向通知主线程,以便主线程推进到下一个步长。[0102]本发明仿真引擎的逻辑框架如图6所示,具有灰色背景的模块代表用户实现的模型,由引擎在初始化阶段根据想定进行实例化。所有可执行的模块都继承自“模型”类别,它提供了初始化Init、步长调度Tick、事件调度OnNotify等标准接口。行为Agent可以使用“推理引擎”完成规则推理或动作规划。通过以太网动态仿真实验系统,能够动态地反映以太网数据通信中协议之间的相互协作过程,更好地通过以太网完成数据通信过程。数据封装是协议工作的重要阶段,在实验系统中动态、真实再现数据的封装过程。[0103]本发明同时支持多兵种海、陆、空联合作战仿真系统的实现。可对作战过程及战场态势进行仿真模拟。基于本发明提出的作战模型,实现了相应的模型开发、仿真引擎以及想定编辑工具。如图7所示,给出了系统各个部件之间的关系。作战实体的行为涉及到大量元素,例如实体的角色、实体的状态、实体之间的交互、战术规则等等,如何正确认识这些元素是进行建模工作前必须解决的问题。这一环节被称为模型开发,模型开发位于真实世界与计算机模型之间,架起了领域用户和建模人员之间的桥梁。原子行为、组合行为、状态机行为是计算机实现层面的。[0104]在仿真系统中,本发明使用黑板结构来实现作战模型之间的通信。黑板提供了一个公共的工作区来管理不同联邦成员之间的数据交互,用于作战任务的共享系统和结果共享系统。如图8给出了实体模型框架,当一个任务中的活动被执行时,原子行为可以发送触发器到黑板上,通知感兴趣的行为模型开始工作,最终由行为模型间接地调用物理模型产生实际动作。由于物理模型的功能可以从外部精确地刻画,因此可使用规范化的接口提供服务。这里的调用是通过仿真引擎间接实现的,以保证模型与模型之间的透明性。[0105]每个实体模型的内部均包含一个黑板结构。实体模型既可以通过黑板事件来驱动工作如毁伤),也可以按周期调度如机动)。黑板的可用元素有:[0106]1.触发器Trigger,表示来自任务或内部模型的处理要求,使用后即被删除。[0107]2.事实Fact,表示态势感知数据,持久存在并可被更新。[0108]3.命令Order,来自上级的命令数据,使用后即被删除。[0109]4.消息Message,用于实体间协作,使用后即被删除。[0110]黑板系统提供的操作包括:[0111]1.订购Subscribe,订购感兴趣的黑板元素。[0112]2.公布Publish,公布短时存在的数据,如触发器、消息。[0113]3.更新Update,更新事实。[0114]4.通知Notify,当黑板上产生事件时,通知感兴趣的作战模型。[0115]—个行为Agent可形式化地表示为:[0117]其中,ID是模型的唯一标志;Meta包含适用的平台、编制级别、名称、描述等信息;Subscription是感兴趣的黑板元素类型集合;Publications是公布的黑板元素类型集合;Data是模型使用的数据,对于行为模型它可以是作战规则,对于物理模型它可以是装备的性能参数;ProvidedCap是Agent提供的能力。例如:驾驶;RequiredCap是Agent需要的能力。例如:机动。[0118]由于黑板部件对实体内部与外部采用了相似的交互协作方式,因此实体本身也能够表现出Agent特性。实体之间的交互在本质上仍然是Agent组件的交互。就此而言,这里的实体涵盖了传统作战Agent模型的内涵。[0119]对于一个仿真运行时的作战实体,可被定义为:[0120]Entity=ID,Type,Superior,Role,Capabilities,Tasks,Agents,Blackboard[0121]其中,ID是实体在想定中唯一的标识;Type是实体类型,通常以装备的型号来表示;它由实体组装工具生成,并定义了该类装备需要的Agent!Superior是上级标识;Role是实体在组织中的角色,例如长机、僚机、长车;CapabiIities是实体具备的能力集合,量化表不,可为行为决策提供支持;Tasks是实体需要执行的任务列表;Agents是实体包含的行为与物理模型组件的集合,根据Type确定;Blackboard是实体内各个Agent以及任务模型所共享的黑板结构。[0122]类似地,可以定义作战单元Unit:[0124]单元的Type由单元组装工具生成,它定义了构成单元的Agent类型。Subordinates包含了下级,下级可以是子单元或实体。此外,对于非聚合级的单元,Agents仅仅包含行为Agent模型。单元本身对应了一个虚拟的对象,它代表指挥实体例如长车执行指挥。这样做的好处是,当长车被击毁后,指挥角色的接替仅仅需要对另一个实体进行标记和用户逻辑处理如果需要),而无需在仿真系统层面进行模型的迀移。[0125]实施例[0126]如图9所示,给出了飞机编队空中拦截任务的模型结构,包括作战任务、编队单元、飞机实体长机和僚机三个部分。[0127]在空对空作战中,防守一方通过巡逻机或地面雷达在探测到敌方进攻企图后,会根据敌机的速度、方向等信息,规划战斗机的航路,一般以最短遭遇时间为目标计算得出,然后战斗机沿指定航路飞行,当快接近敌机时需要打开机载雷达以开启搜索模式,准备接敌。任务本身可分为航路规划、沿航路飞行、雷达作业、空对空交战四个活动。其中雷达开机是在飞行过程中完成的,因此两者需要并行。拦截任务中的这四个活动具有比较固定的模式,可以采用流程图进行刻画。假设当前正在执行交战活动。交战本身具有相当大的不确定性,具体过程依赖飞机实体自主完成。[0128]进入交战活动时,相应的触发器被发送到单元的黑板,“指挥Agent”将收到通知并做相应处理。这里假设“指挥Agent”仅仅进行标记,以便后续发现敌机时允许攻击。当飞机实体在交战区域飞行时,“传感器Agent”(雷达将发现的敌机信息作为“敌情”事实存入实体的黑板,稍后由“消息Agent”将敌情以规定格式上报给编队单元。单元的“情报Agent”则对两架飞机汇报的信息进行融合与态势评估,形成“态势”事实存入黑板;然后“指挥Agent”根据态势和战术规则集进行决策,决定采用超视距或近视距的作战方案,以及配合的机动战术,最后以命令形式分别下发给长机与僚机。[0129]飞机黑板在收到“执行战术机动”的命令后,将触发“驾驶Agent”按照动作集定义的机动知识,调用“机动Agent”设置方向、速度等,从而完成指定的战术机动。随着“敌情”不断变化,“火力控制Agent”一旦发现满足攻击条件,便调用“武器Agent”发射武器。如果飞机的“传感器Agent”(雷达告警系统接收到来自敌方的威胁,例如导弹来袭,那么“威胁”数据会被发送到黑板,并触发“驾驶Agent”进行躲避。“驾驶Agent”具有多目标的优先排序、冲突解决能力。如果有导弹爆炸,爆炸事件被发送到黑板,以触发“毁伤Agent”计算飞机的损伤情况。[0130]在这个例子中,可以看到飞机的行为并非固化的,而是根据具体情况进行应变。每个Agent模块都具有独立性,它们一起工作,并通过黑板完成了响应与协作。假设传感器部件被损毁,那么只需要删除或停止“传感器Agent”组件,实体就自动失去了探测能力;更进一步,实体反应行为将受到影响,甚至会影响编队的行为。[0131]最后说明:以上实例仅用来描述本发明的技术方案不是对本技术方法进行限制,本发明在应用上可以进行延伸和修改,因此所有修改、变化的实例都在本发明的精神和教导范围内。

权利要求:1.一种支持联合作战的多核并行仿真引擎系统,运行在采用以太网分布式布置的节点上,其特征在于,该系统包括调度模型管理模块、线程管理模块、外部接口管理模块和高层体系结构管理模块;调度模型管理模块对模型的仿真过程进行管理和调度,把模型以队列的方式管理起来供线程管理模块调用,在模型仿真结算完成时发送信号给线程管理模块;线程管理模块创建和调度线程,多线程调度从模型队列里取出模型进行仿真结算;外部接口管理模块是调度模型管理模块与外界交互的接口;高层体系结构管理模块提供高层体系结构HLA集成接口,与运行支撑环境进行对外仿真交互,实现与成员节点的协同仿真;所述的多核并行仿真引擎系统首先为仿真实体分配目标节点,使得每个节点上模型的总运算量相当;然后通过调度模型管理模块产生各节点的调度计划表,为模型分配仿真步长,并在仿真过程中调整调度计划表,对销毁实体和产生的新实体的仿真步长进行调整;所述的调度模型管理模块为模型分配仿真步长,包括:将模型的运行周期对齐;初始化调度周期内各个系统步长的处理器空闲率为1;产生调度计划表,调度计划表按照不同的模型运行周期来组织,包括模型步长和该模型步长包含的系统步长数。2.根据权利要求1所述的仿真引擎系统,其特征在于,所述的为仿真实体分配目标节点,具体为:1计算每个仿真实体的处理器利用率,并按照从大到小的顺序依次排列;2初始化各个节点的空闲率为1;3取待分配实体队列的首个仿真实体,将其分配给空闲率最大的节点,更新节点空闲率;4重复3,直到待分配实体队列为空;如果某个节点的空闲率小于O时,停止为该节点分配增加仿真实体。3.根据权利要求1所述的仿真引擎系统,其特征在于,所述的调度模型管理模块将各模型的运行周期按2对齐,表示如下:其中,T1表示节点上模型的第i种运行周期,Tstep为系统步长,s表示节点上模型共使用8种不同的运行周期。4.根据权利要求1或3所述的仿真引擎系统,其特征在于,所述的调度模型管理模块产生调度计划表,是按从小到大的顺序对模型的不同种运行周期T1J2,…,!^进行遍历,创建各运行周期内各系统步长的调度表,最终形成调度计划表;对运行周期T1,计算运行周期1\内所包含的系统步长数目LzlVTstepi=^,···,^将具有运行周期T1的所有模型按执行时间从大到小排序形^遍历模型队列,执行下面1〜3创建运行周期Ti内各系统步长的调度表Tableij,:1从运行周期!\的各系统步长的处理器空闲率中选择最大值idlem;⑵将当前模型分配给第m个系统步长,记录在Tableim中;3更新第m个系统步长和后续受影响系统步长的处理器空闲率;第m+L*l个系统步长的处理器空闲率更新为:idlem+L*i-TTstep;其中,当系统步长的处理器空闲率小于〇时,则停止为该系统步长分配模型。5.根据权利要求1或3所述的仿真引擎系统,其特征在于,所述的调度模型管理模块在调度计划表创建后,仿真运行时直接查表执行,对运行周期Ti当前应执行的系统步长号S⑴计算为:其中,TsdPTst表示某个模型的仿真开始时间和结束时间,mod为取余数操作。6.根据权利要求1或3所述的仿真引擎系统,其特征在于,所述的调度模型管理模块还设置每个模型首次运行的时刻,设调度计划表中元素Mpq表示在某个运行周期中第p个系统步长内调度编号为q的模型,设置所调度的该模型运行时间的初始值Pk为:设Tk是仿真时间的某一时刻,模型Mpq的仿真时间为ΔΤ,如果满足以下的条件:则执行该模型,当模型执行完毕后Pk被设置为ΔT。7.根据权利要求1或3所述的仿真引擎系统,其特征在于,所述的调度模型管理模块根据下式计算运行周期T1的失衡程度Q1:其中Llj表示T1内第j个系统步长的负载,和分别是第j个系统步长的负载的最大值和最小值;调度模型管理模块根据下式计算所有运行周期的失衡程度μ:其中,P1是运行周期T1内所调度的模型的最长执行时间;当所有运行周期的局部负载平衡时,所有运行周期达到负载平衡。8.根据权利要求1或3所述的仿真引擎系统,其特征在于,所述的调度模型管理模块调整调度计划表,包括:在销毁实体前进行检测,若运行周期T1的失衡程度超过失衡阈值,则在运行周期1\对应的调度表上,将其中负载最尚和负载最低的系统步长之间的t旲型进彳丁迁移;新建实体时,先选择负载最低的节点,再选择负载最低的系统步长,在对应调度表上添加模型。9.根据权利要求1或3所述的仿真引擎系统,其特征在于,所述的模型的内部均包含一个黑板结构;模型通过黑板事件来驱动工作,或者按周期调度;模型之间的通信使用黑板结构。10.根据权利要求1所述的仿真引擎系统,其特征在于,所述的系统还包括、可视化模块、评估模块和数据记录模块;所述评估模块用于为分析人员提供分析和评估界面。

百度查询: 北京航空航天大学 一种支持联合作战的多核并行仿真引擎系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。