掌桥专利:专业的专利平台
掌桥专利
首页

一种多动体仿真系统

文献发布时间:2023-06-19 11:22:42


一种多动体仿真系统

技术领域

本发明涉及计算机仿真技术领域,尤其涉及一种多动体仿真系统。

背景技术

对于大型的物流、交通运输企业,日常都有分布在各地的多种交通运输工具(如汽车、火车、飞机)在实时运行,对于这些以交通运输工具为代表的动体运行,不仅需要实时进行状态监控,也需要进行全景的运行仿真,依此实现对动体运行管理规律的科学预判和最优化的调度管理。

现有技术中缺乏适用于满足多类型、多数量、多地域、多场景的多动体运行仿真系统,不能解决在统一仿真环境下的多种类型和数量较多的多动体同时连续仿真运行的问题,难以满足上述企业对大量动体运行管理的精准规划和科学预判需求,难以为这些企业在宏观管理、投资规划、成本估算、风险管控等方面提供科学数据。

发明内容

本发明主要解决的技术问题是提供一种多动体仿真系统,解决现有技术中多种类型、数量众多条件下多动体运行仿真难以同步运行实施,以及解决动态导调干预、多动体之间相互运行关系、实时进行计算资源调整分配的问题。

为解决上述技术问题,本发明采用的一个技术方案是提供一种多动体仿真系统,包括网络互联的至少一个管理服务器和多个任务服务器,在所述管理服务器中设置有管控模块和导调模块,在所述任务服务器设置有任务模块,所述任务模块又进一步包括多个相互独立且并行计算的任务计算器;所述导调模块产生初始导调数据至所述管控模块,所述初始导调数据包括仿真动体和初始运行参数,所述管控模块进行一阶算子计算,为所述仿真动体分配对应的任务计算器,所述任务计算器进一步根据所述仿真动体的运行计算模型和运行参数,进行二阶算子计算,得到仿真动体仿真运行的动体位置数据。

优选的,所述导调模块以定时间隔的仿真时刻产生导调数据至所述管控模块,包括在第一仿真时刻对应输入的所述初始导调数据,以及在后续仿真时刻对应输入的更新导调数据。

优选的,所述一阶算子还定时计算输出参与仿真计算的仿真动体的类型信息、数量信息、标识信息和仿真时刻信息,随着仿真时刻的不断延续组成了一阶算子向外发布的广播数据流。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行三阶算子计算,所述三阶算子汇聚接收来自多个仿真动体对应的二阶算子计算输出的动体位置数据。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行三阶算子计算,所述三阶算子汇聚接收来自多个仿真动体对应的二阶算子计算输出的动体位置数据,以及通过所述广播数据流,检验多个仿真动体的二阶算子计算输出的动体位置数据的完整性。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行四阶算子计算,所述四阶算子接收来自三阶算子输出的多个仿真动体的动体位置数据,对仿真动体进行选择组合。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行五阶算子计算,所述五阶算子接收来自四阶算子输出的经选择组合后的仿真动体的动体位置数据,计算仿真动体之间的相互运行关系。

优选的,所述更新导调数据包括增加或减少仿真动体,所述管控模块运行的一阶算子,对应为增加的所述仿真动体分配对应的任务计算器,并进行对应的二阶算子计算;或者,对减少的所述仿真动体则关闭回收对应的任务计算器,停止对应的二阶算子计算。

优选的,所述仿真动体包括至少两种类型的仿真动体,仿真运行过程中,不同类型的仿真动体包括共用导调数据,共用一阶算子计算或独立进行一阶算子计算,分别独立进行二阶算子和三阶算子计算,共用四阶算子和五阶算子计算。

优选的,在第一仿真时刻,所述初始导调数据包括第1类动体对应的至少一个仿真动体,还包括所述仿真动体对应的初始运行参数;从第二仿真时刻开始,在第二仿真时刻与第三仿真时刻之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的初始运行参数和运行计算模型进行计算,对所述仿真动体经历从第一仿真时刻到第二仿真时刻的时长后,计算得到所述仿真动体在第二仿真时刻对应的动体位置数据;在第二仿真时刻,若所述更新导调数据中没有记载所述仿真动体的信息,则所述仿真动体保持自动延续仿真运行;从第三仿真时刻开始,在第三仿真时刻与第四仿真时刻之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的运行参数和运行计算模型进行计算,对所述仿真动体经历从第二仿真时刻到第三仿真时刻的时长后,计算得到所述仿真动体在第三仿真时刻对应的动体位置数据;从第三仿真时刻开始,在第三仿真时刻与第四仿真时刻之间的时间段内,所述三阶算子接收来自多个动体对应的二阶算子计算输出的动体位置数据,所述动体位置数据是二阶算子对所述仿真动体经历从第一仿真时刻到第二仿真时刻的时长后,计算得到的仿真动体在第二仿真时刻对应的动体位置数据;在第三仿真时刻与第四仿真时刻之间的时间段内,所述三阶算子根据所述广播数据流检验所述多个仿真动体对应的动体位置数据的完整性,对应的仿真动体是所述一阶算子在第一仿真时刻输出的广播数据中所包括的仿真动体;从第四仿真时刻开始,在第四仿真时刻与第五仿真时刻之间的时间段内,所述四阶算子接收来自三阶算子输出的多个仿真动体的动体位置数据,对仿真动体进行选择组合;从第五仿真时刻开始,在第五仿真时刻与第六仿真时刻之间的时间段内,所述五阶算子接收来自四阶算子输出的经选择组合后的动体位置数据,计算仿真动体之间的相互运行关系。

本发明的有益效果是:本发明公开了一种多动体仿真系统,该系统包括网络互联的至少一个管理服务器和多个任务服务器,在管理服务器中设置有管控模块和导调模块,在任务服务器设置有任务模块,任务模块又进一步包括多个相互独立且并行计算的任务计算器;导调模块产生初始导调数据至管控模块,初始导调数据包括仿真动体和初始运行参数,管控模块进行一阶算子计算,为仿真动体分配对应的任务计算器,任务计算器进一步根据所述仿真动体的运行计算模型和运行参数,进行二阶算子计算,得到仿真动体仿真运行的动体位置数据。还可以有选择的进行三阶至五阶算子计算,从而获得更多仿真状态信息结果。该系统适用于多类型、多数量的动体大规模仿真,扩容性强、灵活度高。

附图说明

图1是根据基于流式计算的动体运行仿真方法一实施例的流程图;

图2是根据基于流式计算的动体运行仿真方法另一实施例中分段模型示意图;

图3是根据本发明多动体仿真系统一实施例示意图;

图4是根据基于流式计算的动体运行仿真方法另一实施例中计算资源规划示意图;

图5是根据基于流式计算的动体运行仿真方法另一实施例中单个仿真动体多阶算子时序图;

图6是根据基于流式计算的动体运行仿真方法另一实施例中多类仿真动体多阶算子时序图;

图7是根据基于流式计算的动体运行仿真方法另一实施例中多类仿真动体多阶算子组成示意图;

图8是根据本发明多动体仿真系统另一实施例系统组成运行示意图。

具体实施方式

为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

图1显示了基于流式计算的动体运行仿真方法一实施例的流程图。在图1中,包括:

步骤S1:动体建模,确定动体的类型、数量,为其中每一个所述动体设定对应的运行计算模型;

步骤S2:资源规划,在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;

步骤S3:动态运行,启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出所述动体的多种仿真状态信息。

优选的,在步骤S1动体建模中,所述动体的类型包括地面各种车辆、水面各种船艇、航空飞行器、航天飞行器,各种车辆又可以进一步包括汽车、卡车、特种车辆(如消防车、装甲车、工程车等),各种船艇又可以进一步包括渔船、游艇、快艇、特种舰艇(如潜艇、登陆艇、护卫舰、巡洋舰、补给舰、航空母舰等),各种航空飞行器进一步包括无人机、直升机、支线飞机、民航飞机、特种飞机(如歼击机、轰炸机、预警机、干扰机、加油机等),各种航天飞行器又可以进一步包括火箭、弹道导弹、飞船、空间站、低轨道卫星、中高轨道卫星、静止轨道卫星、深空飞行器等。

优选的,这些动体对应的运行计算模型包括与动体类型相对应的运行参数,包括有速度、航向、线加速度、角加速度,这些参数值进行设置时要根据具体的动体类型而设置和更改。

优选的,运行参数包括加速运行参数、匀速运行参数、减速运行参数,其中动体出发时对应的加速运行参数包括初始速度

进一步优选的,所述运行计算模型的运行参数又进一步受多种因素影响,包括

优选的,运行计算模型还包括基于地理空间信息的运行路线、运行状态、运行规则。

优选的,运行路线是指基于空间地理信息仿真构建的运行轨迹,如一条高速公路、一条城市轨道路线、一条高铁轨道路线、一条飞机飞行航线、一个卫星运行轨道等。优选的,该运行线路既可以是对既有交通设施线路的建模仿真,可以用于实际运行线路的动体运行仿真,并且可以与实际运行情况进行比对来修正优化调整仿真计算,以及为实际运行线路出现意外事故、防灾减灾等进行预演推演等。也可以是对预建运行线路的建模仿真,可以用于预建线路的交通承载力仿真验证等。

优选的,上述运行参数与运行线路相关联,可以根据运行线路的具体空间位置确定对应的运行参数值,也就是说运行参数并不是固定不变的,而是运行参数的具体取值与当前实际运行的线路所在位置相关。

优选的,可以根据该运行路线进一步分地段或分区域,例如一条高速公路可以根据这条高速公路所在空间位置不同,设定该条高速公路的地形参数,进而区分为多种不同地段,包括平原地段高速公路、丘陵地段高速公路、山地地段高速公路等,因为不同地段的高速公路对汽车的运行速度是有不同的限制要求。因此,这也表明了运行参数的具体取值与实际运行的线路所在位置相关。

优选的,运行状态包括加速、减速、匀速、转向、停止,同时该运行状态也与运行线路相关,比如可在运行线路的多个位置设置停止位,如列车轨道上的各个车站,而相对于停止位的运行包括停止时长、减速到达停止位、加速离开停止位、减速时长、加速时长、直线匀速度、转向匀速度。

优选的,运行规则对应的则是为动体设定多种运行条件下的运行策略选择。例如,包括动体是循环往复运行(例如卫星的在规运行),还是单向定时间隔重复运行(例如某一车次的火车的运行)。

优选的,在每一个动体在运行仿真之前,还进一步包括确定该动体的初始运行参数,包括初始位置

优选的,在本申请中,如果设定了动体的初始运行参数,以及构建有该动体对应的运行计算模型,那么启动了该动体的仿真运行后,该动体就会处于连续仿真运行的状态,称之为仿真动体,并且可以基于UTC(协调世界时)对仿真动体进行长时间不间断仿真运行,例如仿真一辆列车每天的在轨运行情况。这是因为,根据该动体的初始运行参数确定了其初始状态和初始位置,而该动体的运行计算模型又确定了其运行路线,以及在该运行路线上运行的运行参数、运行状态和运行规则,仿真动体即可实现基于时间连续变化的自动仿真运行。

优选的,当有大量的仿真动体同时进行仿真时,由于这些仿真动体之间是相互的独立的,因此可以同步并行进行仿真,因此可以实现多类型、多数量的动体同步进行仿真运行。

优选的,同一类型的多个动体可以在同一条运行路线上进行仿真运行,例如仿真不同的列车在同一条轨道上运行,只是这些列车相互之间存在位置间隔,因此这些动体可以复用相同的运行计算模型,区别在于初始运行参数不同而已。由于可以复用相同的运行计算模型,因此运行计算模型可以是对应特定的计算程序代码进行数据存储,仿真计算时可以对该同一段计算程序进行多次重复调用即可,而无需编译多个不同的计算程序,因此有利于节省计算资源。这与下文分配任务计算器进行算子计算相关。

优选的,同一类型的多个动体可以在不同的运行路线上进行仿真运行,例如仿真不同的列车在多条不同的轨道上运行,那么这些仿真动体不同的地方主要在于运行计算模型中的运行路线不同和初始运行参数不同而已,而其他方面则相同,因此对于这些动体在仿真时也是可以共用相同的计算程序,而对于运行路线不同,则只需要将运行路线单独做成路线数据库,从中选择相应的路线参数即可,因此也可以实现对计算资源的节省。这与下文分配任务计算器进行算子计算相关。

进一步优选的,不同类型的动体可以在不同的运行路线上进行仿真运行,例如多列火车在多条铁路上运行,同时还有多辆汽车在多条高速公路上运行。那么针对不同类型的动体,将同一类型的动体共用对应的运行计算模型,并且尽可能把共用的部分(如相同的运行规则、运行参数)作为共享的计算资源使用(例如相同的计算程序),仿真过程中可以重复多次使用,而对于没有共用的部分(如运行线路),则可以单独的部分或参数进行存储,仿真运行时根据需要分别进行调用。

优选的,在运行计算模型中包括基于运行线路的分地段或分区间运行模型,如图2所示,在起点

优选的,在步骤S1中,还可以对动体的数量进行设置,由于有多种类型动体,每一种动体的数量又可以有多个,当这些动体同时在进行仿真运行时,对于仿真计算的计算机服务器就有较高的要求,特别是动体数量不断增加时,单个服务器的计算资源将会不能满足仿真的实时性要求,这样就会需要有多个服务器同时运行,来满足动体数量增加对服务器计算资源的需求。

优选的,这里的计算资源主要是指服务器的CPU数量、CPU运行速度、内存空间、硬盘空间等硬件资源能够同时进行仿真计算所满足的计算需求。例如,单个动体的仿真运行的程序在执行过程中,需要在单位时间内(如1秒钟内)完成相应的程序执行,这就需要CPU在该单位时间内执行完该程序,还要完成程序执行过程中的数据访问、计算与存储,需要相应的内存空间用于程序的存放和运行,需要相应的内存和硬盘空间缓存和存储数据。当有多个动体同时仿真运行时,则就需要这些计算资源能够满足同时仿真运行的需求。

优选的,在资源规划S2步骤中,如图3所示,包括网络互联的多个服务器,其中包括至少一个管理服务器1和多个任务服务器2,这些服务器之间通过网络3互联。

优选的,这些服务器通常是具有计算机的硬件组成,但是在CPU数量、并行处理能力等方面要优于普通的计算机,例如如下硬件配置的服务器: 128G 内存,20 核物理 CPU,40 线程,8THDD 和2TSSD硬盘。

优选的,如图4所示,在所述管理服务器1中设置有管控模块11,以及导调模块,在所述任务服务器2设置有任务模块21,这些管控模块11、导调模块和任务模块21均是安装在服务器中的计算机软件系统,通过执行计算机程序运行来完成相互之间的信息交互和任务调度管理。

进一步优选的,在任务模块21中又进一步划分为多个相互独立且并行计算的任务计算器211。优选的,这里的任务计算器211并不是都需要执行计算功能,而是根据来自管控模块11的需求,调度开启不同数量的任务计算器211进行计算。而对于一个任务服务器2而言,其中的任务模块21中所包括的任务计算器211的数量是有限的,主要是取决于该任务服务器2的计算资源所限,包括其中CPU的数量、运行速度、可以并行执行的线程数量等。每个任务服务器2中的任务模块21主要是要与管理服务器1中的管控模块进行通信交互,以及接收管控模块的指令后,对所属的任务计算器进行任务分配、回收等管理工作。

优选的,在计算资源分配规划过程中,主要是根据参与仿真的动体类型和数量,来确定计算资源的规模,包括确定参与仿真计算的管理服务器和任务服务器的数量,其次就是要根据动体仿真所需要的运行计算模型,包括动体仿真过程中的各个阶段(对应后文中各阶段的算子)的运行计算模型,分配规划相应的任务计算器的数量,以及这些任务计算器在针对不同的运行计算模型的具体配置,包括程序大小、运行周期等。由于不同的运行计算模型对应的程序大小、运行周期等不同,这样对应的任务计算器的具体配置在占用计算资源的分配方面也是根据运行计算模型相适配。这些也是各任务服务器中的任务模块在收到管控模块的规划指令后,对所属的任务计算器进行相应的计算资源分配。因此,图4中的任务计算器并不是完全相同的,而是根据其中驻留的运行计算模型的程序,以及运行周期等进行合理规划设置。

在资源规划S2步骤中,主要是静态的计算资源规划,实际上这种规划主要是根据多种运行计算模型,以及参与运行的动体类型和数量规模,对计算资源整体需求进行规划,以及为每种运行计算模型分配对应的计算资源大小,可以对应为不同规模大小的任务计算器。而在后续的动态运行S3步骤,对这些计算资源的动态使用,则要根据仿真过程的实时需求而进行动态分配:包括当参与仿真的动体数量增多时,相应的计算资源需求增多,当管理服务器1调度其中一个任务服务器2中的任务模块21中的所有任务计算器211不能满足计算需求时,则管理服务器1将会调度另一个任务服务器2中的任务模块21开启一个或多个任务计算器211进行计算,来满足计算需求增多的要求。

进一步的,当计算需求减少时,管理服务器1也会调度任务服务器2中的任务模块21中关闭多余的任务计算器211而停止计算,并且还会回收这些任务计算器,留待需要增加计算任务时,重新启用这些任务计算器。但是,这些任务计算器211的总体数量及分别占用的计算资源都已经在资源规划S2步骤中进行了预先规划,不论后续如何动态使用,都应该能够满足实时仿真的需求。通过这种方式,既可以保证计算资源的合理规划和满足计算需求,又可以保证动态运行过程中按需使用,也不会浪费计算资源而空转运行,可以最佳化的降低能耗。

由此可见,通过这种动态调度机制确保最佳的使用任务服务器,让计算增多时,可以调度开启任务服务器中的任务计算器参与计算,而当计算需求减少时,可以调度关闭和回收任务服务器中的任务计算器结束计算。由此既能满足计算增加的需求,也能在计算需求减少时通过关闭计算而降低功耗。

优选的,在动态运行步骤S3中,所述管控模块接收导调数据,进而产生需要进行仿真运行的仿真动体,即仿真实体对象,所述仿真实体对象表示仿真所针对的动体,例如仿真车辆、飞机、卫星等运动体的运行,即参与仿真的一个具体的动体。那么将会为每一个动体提供一个仿真实体对象,来仿真该对象的空间运行轨迹,以及相互之间的运行关系,例如位置关系、相对速度关系、相对距离关系、相对方位关系等。

优选的,所述导调数据是随着时间不断进行更新,优选以选定的时间间隔不断更新导调数据,例如在第一仿真时刻t1提供的导调数据包括:

其中,有第1类动体

进一步的,导调数据的更新时间间隔可以进行设定,例如可以控制每秒更新一次导调数据,或者每10毫秒、每100毫秒更新一次,该更新频度或更新时间间隔的控制可以根据仿真的逼真度或者仿真调控速度的需要而调整。

优选的,对于导调数据中的任意一个动体,例如

优选的,导调数据在第一仿真时刻t1提供相应的仿真动体参与仿真后,由于导调数据只是对需要改变的参数随时间不断进行更新,对于在各个时刻正常运行的动体,导调数据通常不再对这些动体进行干预,而是由各个动体自行进行仿真运行,只有需要进行导调控制的动体才在导调数据中出现。例如,在第二仿真时刻t2,导调数据为空白,在第三仿真时刻t3,导调数据仅仅增加一个动体

优选的,为了实现大规模的动体运行仿真,本申请采用了多阶算子分别独立进行计算,相互之间通过数据流进行数据传输的技术方案。这里的算子对应是一个计算功能单元,通过运行该计算功能单元对应的程序代码来实现其对应的功能。

如图4所示,所述管控模块主要完成一阶算子的功能,主要是接收导调数据,产生仿真的动体、终止仿真的动体或干预仿真的动体。优选的,该一阶算子在得到仿真动体(也称之为仿真实体对象)增加或减少的信息后,对应修改仿真动体的记录信息,该记录信息包括仿真动体的唯一识别号,以及全部当前运行的仿真动体的数量。

优选的,一阶算子根据仿真动体的类型、数量和识别号,并发产生与所述仿真动体相对应的一阶计算数据,所述管控模块根据一阶计算数据对应调度分配给任务服务器的任务计算器进行计算,即为二阶算子计算。

优选的,该一阶计算数据包括与其对应的仿真动体相关的对象类型和参数数据。例如,该仿真动体对应的对象类型是卫星,或者对象类型是轮式车辆,或者对象类型是航船等,不同的对象类型其在运行仿真时,对应的运行参数及运行计算模型也不同,比如速度参数、初始位置参数等均不相同。该调度分配工作是由管控模块根据仿真动体类型、数量和各个任务服务器所能提供的任务计算器的数量情况进行动态任务分配。

优选的,一阶算子根据进行仿真动体的还产生输出对应的广播流数据,所述广播流数据主要包括当前仿真动体的数量以及识别号、类型、时刻等数据信息。优选的,二阶算子根据仿真动体的类型和识别号,调用与所述仿真动体运行相关的运行计算模型,计算对应的所述仿真的动体的位置坐标信息。

优选的,所述二阶算子用于计算动体实时仿真过程中的动体位置数据,也就是根据所述动体的初始运动参数、运动计算模型和地理空间信息,随着时间的变化,计算动体实时变化的动体位置数据。

优选的,二阶算子包括完成对应功能的二阶算子程序,执行该程序是由任务计算器完成,并且执行完成一次该二阶算子程序的计算周期,也就是说执行一次二阶算子程序所需要的时间开销,这与任务服务器的CPU主频相关。举例而言,如果CPU的主频是

优选的,任务模块可以根据二阶算子对应的二阶算子程序的数据量,来确定二阶算子对应的任务计算器的数据存储空间;以及还进一步根据二阶算子对应的二阶算子执行周期,来确定二阶算子对应的任务计算器的计算时间开销。由此可以为二阶算子规划得到对应的任务计算器,即二阶算子对应的任务计算器,专门用于进行二阶算子计算所需要的数据存储需求和计算时间需求。由此也可以看出,对于任务模块中的任务计算器并不是固定不变的计算资源,而是根据相对独立的计算需求,例如二阶算子的计算需求来确定对应的任务计算器所需的计算资源。同样也适用于其他算子的计算资源规划需求计算,这些计算资源的需求计算对应可以在步骤2中进行规划。

进一步的,同时参与仿真的动体类型包括有多种类型,即第1类动体、第2类动体至第N类动体,N大于或等于2,而对于每一种类型的动体而言,包括不同阶的算子,其中一阶算子可以是这些不同种类的动体共用的,或者也可以是为每一类型的动体对应该类型的一阶算子。而对于不同类型的动体而言,虽然都具有二阶算子,由于各自的二阶算子所对应的运行计算模型不同,因此不同类型的动体的二阶算子所对应的任务运算器占有的计算资源也不尽相同,因此在步骤2资源规划中,会为不同类型的动体的二阶算子,分配与之适配的计算资源,这也是步骤2资源规划所要完成的主要工作。因此,虽然第1类动体二阶算子对应的有多个任务计算器,第N类动体二阶算子对应的也有多个任务计算器,但是第1类动体二阶算子对应的任务计算器与第N类动体二阶算子对应的任务计算器却可以是不同的。第1类动体三阶算子、第N类动体三阶算子,以及四阶算子中的任务计算器也都具有这样的差异性特点。

由此也体现了本申请在同时适应多种类型动体仿真的灵活性,同时也采用的统一的架构体系,能够预先进行计算资源规划,满足所需的多种类型、多数量的动体同步仿真需要。同时这种体系架构,也有利于在仿真的过程中,灵活调度使用预先规划的这些不同类型和数量的动体可以独立增加、减少、改变参数等仿真进程,满足了动态仿真的实时性要求和导调复杂度的需求。

优选的,在动态运行步骤S3中,又可以进一步分解为以下子步骤:

子步骤1:一阶算子运行计算,导调数据输入管控模块,所述管控模块运行一阶算子,根据导调数据生成需要仿真运行的仿真动体,并将导调数据中的参数输入所述仿真动体对应的二阶算子;

子步骤2:二阶算子运行计算,所述二阶算子接收所述导调数据中对应的参数,根据运行计算模型,计算所述仿真动体运行的动体位置数据,输出动体位置数据给三阶算子;

子步骤3:三阶算子运行计算,所述三阶算子汇聚接收来自多个仿真动体对应的动体位置数据,然后将这些仿真动体的动体位置数据进行验证,以及进一步选择组合后发送给四阶算子;

子步骤4:四阶算子运行计算,所述四阶算子根据选择组合后的动体位置数据,计算至少两个仿真动体之间的相对距离。

以下结合图5和图6进一步说明,上述四个子步骤的运行计算过程。优选的,如图5所示,该图显示了针对同一种类型动体中的一个仿真动体随时间变化而进行的仿真过程。

优选的,仿真开始后,在第一仿真时刻t1,导调数据中包括第1类动体

优选的,在第一仿真时刻t1,导调数据t1输入给一阶算子,由一阶算子为导调数据中的每一个动体确定为一个仿真实体对象,并将这些仿真实体对象分配给二阶算子对应的任务计算器,以及将每一个仿真实体对象的初始运行参数也发送给这些二阶算子任务计算器。

可以看出一阶算子具有根据导调数据对任务计算器进行选择、启用、关闭等作用,如前所述,这是对任务计算器的动态使用,可以根据需要对网络互联的任务服务器进行计算资源的动态分配,由此最佳的利用计算资源来完成仿真运行。

优选的,对应每一仿真时刻,一阶算子在计算后还会输出进行仿真计算的仿真动体的类型信息、数量信息、标识信息和仿真时刻信息。这些信息组合成广播数据,随着仿真时刻的不断延续组成了一阶算子向外发布的广播数据流。

优选的,一阶算子输出的广播数据流通常是包括该时刻之前广播数据的集合,例如第一仿真时刻t1对应的广播数据集合只有该时刻对应的广播数据,而第二仿真时刻t2对应的广播数据集合则既包括第一仿真时刻t1对应的广播数据,也包括第二仿真时刻t2新产生的广播数据,第三仿真时刻t3对应的广播数据集合则既包括第一仿真时刻t1、第二仿真时刻t2和第三仿真时刻t3分别对应的广播数据。

优选的,广播数据和导调数据相关,如果在一个仿真时刻对应的导调数据没有新的变化,则对应的广播数据也通常没有变化,该时刻对应的是没有变化的广播数据,这种情况下该时刻发出的广播数据集合也可以保持不变,或者说广播数据集合中的广播数据,当有在一个仿真时刻对应的广播数据与前一个时刻的广播数据发生变化后,才增加新的广播数据,并与之前的广播数据一起进行发送。需要注意的是,每一个广播数据中都包括与其对应的仿真时刻。

优选的,如图5所示,所述导调数据以定时间隔(如t2-t1、t3-t2等)的仿真时刻输入,包括在第一仿真时刻t1对应输入的初始导调数据,即导调数据t1,以及在后续仿真时刻对应输入的更新导调数据,如后续时刻t2、t3、t4……对应的导调数据t1、导调数据t1、导调数据t1……。

优选的,这些相邻仿真时刻的间隔时长是相同的,例如第二仿真时刻t2与第一仿真时刻t1的间隔时长t2-t1,与第三仿真时刻t3与第二仿真时刻t2的间隔时长t3-t2相等,即t2-t1=t3-t2=t4-t3等,以此类推。仿真过程中,该间隔时长可以进行设置和更改。

优选的,在第二仿真时刻t2,参与第1类动体

优选的,二阶算子计算的是动体随时间变化的空间位置,那么随着不同仿真时刻的到来,各个标识的仿真动体根据其初始运行参数和运行计算模型,连续进行不同仿真时刻对应的位置计算。

优选的,当导调数据在不同的仿真时刻改变仿真动体的运行参数后,二阶算子则根据改变后的运行参数继续进行位置计算,例如对速度参数的改变。而当导调数据没有改变动体的运行参数时,二阶算子则自动保留仿真动体原有的运行参数和运行计算模型,自动运行位置计算,也就是说当没有导调数据干预时,动体按照既定的运行计算模型自动随时间变化而计算仿真动体的运行位置。

也就是说,虽然在图5中显示在每个仿真时刻都对应有导调数据,如导调数据t1、导调数据t2等,实际上并不是代表每个仿真时刻的导调数据都会发生改变,在实际应用中,在一个仿真时刻如果导调数据不变,通常是默认没有出现导调数据,只有当导调数据改变时,在一个仿真时刻才会有变化后的导调数据发送给一阶算子。

优选的,对于每一个动体而言,如图5所示,在第一仿真时刻t1,所述初始导调数据t1包括第1类动体对应的至少一个仿真动体,还包括所述仿真动体对应的初始运行参数;从第二仿真时刻t2开始,在第二仿真时刻t2与第三仿真时刻t3之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的初始运行参数和运行计算模型进行计算,对所述仿真动体经历从第一仿真时刻t1到第二仿真时刻t2的时长后,计算得到所述仿真动体在第二仿真时刻t2对应的动体位置数据。

所述仿真动体对应的二阶算子在第二仿真时刻t2对应的计算方法包括:在第二仿真时刻t2,若所述更新导调数据中没有记载所述仿真动体的信息,则所述仿真动体保持自动延续仿真运行;从第三仿真时刻t3开始,在第三仿真时刻t3与第四仿真时刻t4之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的运行参数和运行计算模型进行计算,对所述仿真动体经历从第二仿真时刻t2到第三仿真时刻t3的时长后,计算得到所述仿真动体在第三仿真时刻t3对应的动体位置数据;在第三仿真时刻t3和后续仿真时刻,若所述更新导调数据中没有记载所述仿真动体的信息,则所述仿真动体对应的二阶算子按照相似于在第二仿真时刻t2对应的计算方法进行延续计算。

也就是说,二阶算子t3在第三仿真时刻t3与第四仿真时刻t4之间的时间段内进行的仿真计算的内容,是对第二仿真时刻t2导调数据对应的动体参数进行仿真,对于第二仿真时刻t2导调数据中没有出现的动体标识,则这些动体保持原有运行计算模型继续计算,而对于第二仿真时刻t2导调数据中增加或减少的动体标识,或者原有动体标识对应的修改后的运行参数,则根据这些新变化对应进行仿真计算,并且在经历时刻间隔(t3-t2)对应的固定时长后,根据运行计算模型,计算动体在第三仿真时刻t3对应的位置。在接下来的仿真时刻,以此类推,不再赘述。

优选的,二阶算子计算完成的动体位置数据以数据流的方式传输给下一阶算子,即三阶算子。

优选的,从第三仿真时刻t3开始,在第三仿真时刻t3与第四仿真时刻之间的时间段内,所述三阶算子接收来自多个动体对应的二阶算子计算输出的动体位置数据,所述动体位置数据是二阶算子对所述仿真动体经历从第一仿真时刻t1到第二仿真时刻t2的时长后,计算得到的仿真动体在第二仿真时刻t2对应的动体位置数据;在第三仿真时刻t3与第四仿真时刻t4之间的时间段内,所述三阶算子根据所述广播数据流检验所述多个仿真动体对应的动体位置数据的完整性,对应的仿真动体是所述一阶算子在第一仿真时刻t1输出的广播数据中所包括的仿真动体。

也就是说,如图5所示,在第三仿真时刻t3,三阶算子接收来自二阶算子的数据流,三阶算子检验参与二阶算子任务的任务计算器是否全部完成二阶算子的任务计算,也就是说对于同一类动体而言,当有多个动体同时进行仿真时,三阶算子用于检验二阶算子在前一个时间间隔内,如在t3-t2的时间间隔内,是否这些动体均完成了对动体位置的计算。进一步的,还对二阶算子的计算结果进行存储管理,并且三阶算子还接收来自一阶算子在不同仿真时刻发出的广播数据流,从中根据第1类动体

优选的,在第三仿真时刻t3与第四仿真时刻t4之间的时间段内,三阶算子是对二阶算子(t2)在第二仿真时刻t2与第三仿真时刻t3之间的时间段内的仿真计算结果进行存储和检验,而该时间间隔t3-t2内,二阶算子(t2)进行仿真的动体对象则是一阶算子在第一仿真时刻t1对应的导调数据,因此三阶算子在其进行校验时,实际上需要对一阶算子在第一仿真时刻t1输出的广播数据为依据进行校验,因此三阶算子(t3)存储和校验的动体对象是一阶算子在之前两个时刻,即一阶算子(t1)对应的动体对象。并且,随着时间的推移,这种固定的时刻对应关系将会保持。

优选的,在第二仿真时刻t2到来时,导调数据(t2)中发生变化,包括增加或减少第1类动体中的动体的仿真个数、改变动体的仿真参数,例如在t2时刻第1类动体

同样,在第二仿真时刻t2与第三仿真时刻t3之间,一阶算子计算后也会输出参与仿真计算的第1类动体

在图5中,还进一步显示了第四仿真时刻t4对应的导调数据、一阶算子、二阶算子和三阶算子,与之前仿真时刻各阶算子的作用关系,这些作用关系与之前的说明相类似,这里不再赘述。

通过以上三阶算子,可以动态的根据导调数据的变化和时间的推移而对动体进行连续不断的仿真。并且,相邻的每阶算子既接收上一阶算子的计算结果,同时又独立完成本阶算子的独立计算功能,并向下一阶算子输送数据流,实现了各自独立又相互系统的数据流动态计算。

进一步优选的,对于同一类动体经过上述三阶算子计算后,仅仅是得到各个动体的位置仿真结果,还可以进一步计算动体之间的相对距离、相对速度,这些进一步的计算仿真则可以通过进一步构建下一阶的算子来完成。

优选的,如图5所示,从第四仿真时刻t4开始,在第四仿真时刻t4与第五仿真时刻t4之间的时间段内,所述四阶算子接收三阶算子输出的对仿真动体选择组合后的动体位置数据,计算至少两个仿真动体之间的相对距离。

优选的,对于这里的四阶算子而言,由于三阶算子得到的位置数据都是同一类动体的动体位置数据,因此,三阶算子在进行数据存储和检验之后,还可以对这些仿真动体进行选择组合,就是从中选择所需的仿真动体进行组合,包括多个仿真动体之间的两两组合,就是任意两个仿真动体进行组合,或者三三组合,任意三个仿真动体进行组合,或者选择所需要的两个或更多个仿真动体进行组合。然后再把组合后的结果,既包括动体识别号,又包括动体位置数据,由此四阶算子就可以对动体之间的相互运行关系进行计算。

优选的,对于相互运行关系,四阶算子可以直接计算仿真动体之间的位置距离,还可以根据这种位置距离的变化关系,计算仿真动体之间的相对运行航向(如接近或远离),以及进一步计算预测仿真动体在未来时刻的重逢关系,从而进一步反馈给导调数据进行干预调控。

在图5所示基础上,图6同时显示了第1类动体中的一个仿真动体的仿真运行过程,以及第N类动体中的一个仿真动体的仿真运行过程。该图6示意说明,在有N类动体,以及每一类动体中又具有多个仿真动体同时在进行仿真时,本申请的仿真方法能够满足这种多类型、多数量动体的同步仿真的运行需求。其中的导调数据是面向全体仿真动体,而一阶算子是根据动体类型不同而分别设置对应的一阶算子,或者一阶算子也可以是整体的一个一阶算子,但是该一阶算子在进行广播数据流输出时,则需要根据动体类型分别输出不同动体类型对应的广播数据流。这种根据动体类型而有区分的广播数据流更具有针对性,以及降低每种动体对应的广播数据流的数据量。

进一步的,在图6中,与图5所示实施例的主要区别在于:在这里是通过五阶算子来计算不同类型动体之间的相互运行关系,其中对于每一个仿真动体而言,对应的三阶算子主要进行对本类型的仿真动体的位置数据的完整性进行验证,然后由所有仿真动体的三阶算子输出数据到四阶算子,因此图6中的四阶算子是所有仿真动体共用的算子,或者说该四阶算子是面向所有仿真动体,包括不同类型的仿真动体。四阶算子对输入的仿真动体进行选择组合,然后再把选择组合的结果输出到五阶算子,由五阶算子再进一步对这些仿真动体之间的相互运行关系进行计算输出。

因此,图6中第N类动体对应的四阶算子和五阶算子均用虚线框标示,其含义是指对应分别只有一个四阶算子和一个五阶算子。同样,根据四阶算子和五阶算子的计算资源需求,又可以对这两阶算子实际对应的任务计算器进行动态分配,来满足实时计算需要。

基于前述图5和图6的说明,可以看出本发明技术方案采用的多阶算子之间的运行具有严格的时序运行关系,不同算子之间进行数据传输进行了明确的规定,由此可以确保动体仿真运行的时间精准度和数据传输的精准度。而对于同一个算子而言,例如二阶算子,可以根据仿真动体的数量增加或减少,对应增加或减少实现二阶算子计算功能的任务计算器的数量,因此该技术方案在满足仿真动体规模容量方面又具有很好的动态调控的优势,同时并不会影响仿真运行的速度。另一方面,由于导调数据中可以包括对仿真动体运行参数的更改,因此又可以使得本技术方案的动体仿真能够适应复杂多变的仿真环境,提高了本申请技术方案的应用广度,有利于解决复杂多变的仿真应用。

结合图7,进一步对图6所示实施例进行说明。图6主要是基于两种类型中的单个动体沿着时间轴上的运行仿真说明,图7主要是从每一类动体中包括有多个动体进行仿真的说明。可以看出,导调数据中的数据按动体类型分别发送给不同类型动体对应的一阶算子,例如第1类动体对应的一阶算子71,第N类动体对应的一阶算子72。对于第1类动体而言,其参与仿真的仿真动体数量是M个,因此对应有M个二阶算子,这里的每一个二阶算子对应一个仿真动体,这些仿真动体的类型相同。优选的,这些二阶算子作为仿真运算的功能单位,在应用于计算资源时,可以是一个任务计算器对应完成多个二阶算子的计算任务,也就是说在相邻的仿真时刻间隔内,一个任务计算器可以重复多次二阶算子的计算功能,从而对应多个仿真动体的二阶算子计算任务。当然,这些仿真动体的个数可以根据导调数据进行增加或减少,对应二阶算子的个数也会增加或减少。

同样,对于图7中的第N类动体,其中有F个二阶算子,对应有F个仿真动体,这些二阶算子的运行特性与第1类动体中的二阶算子相同,这里不再赘述。并且,结合图6,在时间顺序上,第N类动体中的各个仿真动体运行仿真时序与第1类动体中的各个仿真动体运行仿真时序保持同步。

进一步的,图7中第1类动体中的M个二阶算子的计算后的仿真动体的动体位置数据发送给三阶算子73,同时一阶算子71还发送广播数据到三阶算子,由此三阶算子对多个二阶算子的运算的完成情况进行验证,确保各个仿真动体分阶运算的可靠性和同步性。同样,图7中第N类动体中的F个二阶算子计算后的仿真动体的动体位置数据对应发送给三阶算子74,完成与前述三阶算子73相同的功能,这里不再赘述。

优选的,图7中还进一步包括四阶算子75,可以看出该四阶算子接收来自第1类动体的三阶算子73输出的数据,还接收来自第N类动体的三阶算子74输出的数据,以及还接收其他类型动体的三阶算子的输出数据。由此该四阶算子75可以对所有当前进行仿真运算的仿真动体进行选择组合,就是从这些仿真动体中选择两个或多个,来组合成对应的分组对象。然后,再将这种分组对象和对应的动体位置数据,发送给五阶算子76,由五阶算子计算得到这些仿真动体之间的相互运行关系。

优选的,五阶算子计算得到的这些仿真动体之间的相互运行关系可以进行存储,因此可以通过状态查询的方式来实时查询不同仿真动体之间的相互运行关系。同样,三阶算子对于每个仿真动体的动体位置数据也实时进行存储,也可以通过状态查询的方式来实时查询不同仿真动体的实时空间位置。这就是对应输出所述动体的多种仿真状态信息。

基于同一构思,本发明还提供了一种多动体运行仿真系统。结合前述的图3、图4,图8进一步显示了该多动体运行仿真系统实施例的组成。

优选的,如3和图4所示,所述多动体运行仿真系统包括网络互联至少一个管理服务器1和多个任务服务器2,在所述管理服务器1中设置有管控模块11,在所述任务服务器2设置有任务模块21,所述任务模块21中又进一步划分为多个相互独立且并行计算的任务计算器211。进一步,如图8所示,所述管理服务器1还包括导调模块。所述导调模块产生初始导调数据至所述管控模块,所述初始导调数据包括仿真动体和初始运行参数,所述管控模块进行一阶算子计算,为所述仿真动体分配对应的任务计算器,所述任务计算器进一步根据所述仿真动体的运行计算模型和运行参数,进行二阶算子计算,得到仿真动体仿真运行的动体位置数据。图8中显示,二阶算子的计算功能是由多个任务计算器来实现的。

优选的,所述导调模块以定时间隔的仿真时刻产生导调数据至所述管控模块,包括在第一仿真时刻对应输入的所述初始导调数据,以及在后续仿真时刻对应输入的更新导调数据。

优选的,所述一阶算子还定时计算输出参与仿真计算的仿真动体的类型信息、数量信息、标识信息和仿真时刻信息,随着仿真时刻的不断延续组成了一阶算子向外发布的广播数据流。图8中显示了,一阶算子是由管控模块实现其计算功能,并且根据动体类型不同,分别输出了相互独立的第1类动体广播数据流和第N类动体广播数据流,到各自相关的三阶算子中。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行三阶算子计算,所述三阶算子汇聚接收来自多个仿真动体对应的二阶算子计算输出的动体位置数据。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行三阶算子计算,所述三阶算子汇聚接收来自多个仿真动体对应的二阶算子计算输出的动体位置数据,以及通过所述广播数据流,检验多个仿真动体的二阶算子计算输出的动体位置数据的完整性。图8中显示,三阶算子的计算功能是由多个任务计算器来实现的。在实际应用中,可以根据具体的计算任务量来合理分配任务计算器的数量。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行四阶算子计算,所述四阶算子接收来自三阶算子输出的多个仿真动体的动体位置数据,对仿真动体进行选择组合。图8中显示,四阶算子的计算功能是由多个任务计算器来实现的。

优选的,所述管控模块还为所述仿真动体分配对应的任务计算器进行五阶算子计算,所述五阶算子接收来自四阶算子输出的经选择组合后的仿真动体的动体位置数据,计算仿真动体之间的相互运行关系。图8中显示,五阶算子的计算功能是由多个任务计算器来实现的。

对图8相应功能的描述说明还可以结合图5-图7进行描述说明,这里不再赘述。

优选的,所述更新导调数据包括增加或减少仿真动体,所述管控模块运行的一阶算子,对应为增加的所述仿真动体分配对应的任务计算器,并进行对应的二阶算子计算;或者,对减少的所述仿真动体则关闭回收对应的任务计算器,停止对应的二阶算子计算。

优选的,如图8所示,所述仿真动体包括至少两种类型的仿真动体,仿真运行过程中,不同类型的仿真动体包括共用导调数据,共用一阶算子计算或独立进行一阶算子计算,分别独立进行二阶算子和三阶算子计算,共用四阶算子和五阶算子计算。

优选的,在第一仿真时刻,所述初始导调数据包括第1类动体对应的至少一个仿真动体,还包括所述仿真动体对应的初始运行参数;从第二仿真时刻开始,在第二仿真时刻与第三仿真时刻之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的初始运行参数和运行计算模型进行计算,对所述仿真动体经历从第一仿真时刻到第二仿真时刻的时长后,计算得到所述仿真动体在第二仿真时刻对应的动体位置数据;

在第二仿真时刻,若所述更新导调数据中没有记载所述仿真动体的信息,则所述仿真动体保持自动延续仿真运行;

从第三仿真时刻开始,在第三仿真时刻与第四仿真时刻之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的运行参数和运行计算模型进行计算,对所述仿真动体经历从第二仿真时刻到第三仿真时刻的时长后,计算得到所述仿真动体在第三仿真时刻对应的动体位置数据;

从第三仿真时刻开始,在第三仿真时刻与第四仿真时刻之间的时间段内,所述三阶算子接收来自多个动体对应的二阶算子计算输出的动体位置数据,所述动体位置数据是二阶算子对所述仿真动体经历从第一仿真时刻到第二仿真时刻的时长后,计算得到的仿真动体在第二仿真时刻对应的动体位置数据;

在第三仿真时刻与第四仿真时刻之间的时间段内,所述三阶算子根据所述广播数据流检验所述多个仿真动体对应的动体位置数据的完整性,对应的仿真动体是所述一阶算子在第一仿真时刻输出的广播数据中所包括的仿真动体;

从第四仿真时刻开始,在第四仿真时刻与第五仿真时刻之间的时间段内,所述四阶算子接收来自三阶算子输出的多个仿真动体的动体位置数据,对仿真动体进行选择组合;

从第五仿真时刻开始,在第五仿真时刻与第六仿真时刻之间的时间段内,所述五阶算子接收来自四阶算子输出的经选择组合后的动体位置数据,计算仿真动体之间的相互运行关系。

以上对所述多动体运行仿真系统的说明,还可以具体参考前述对仿真方法的说明,这里不再赘述。

由此可见,本发明公开了一种多动体仿真系统。该系统包括网络互联的至少一个管理服务器和多个任务服务器,在管理服务器中设置有管控模块和导调模块,在任务服务器设置有任务模块,任务模块又进一步包括多个相互独立且并行计算的任务计算器;导调模块产生初始导调数据至管控模块,初始导调数据包括仿真动体和初始运行参数,管控模块进行一阶算子计算,为仿真动体分配对应的任务计算器,任务计算器进一步根据所述仿真动体的运行计算模型和运行参数,进行二阶算子计算,得到仿真动体仿真运行的动体位置数据。还可以有选择的进行三阶至五阶算子计算,从而获得更多仿真状态信息结果。该系统适用于多类型、多数量的动体大规模仿真,扩容性强、灵活度高。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种多动体仿真系统
  • 沉浸式情景互动体验仿真系统
技术分类

06120112901514