CN113254149B - 一种基于流式计算的动体运行仿真方法 - Google Patents

一种基于流式计算的动体运行仿真方法 Download PDF

Info

Publication number
CN113254149B
CN113254149B CN202110520528.1A CN202110520528A CN113254149B CN 113254149 B CN113254149 B CN 113254149B CN 202110520528 A CN202110520528 A CN 202110520528A CN 113254149 B CN113254149 B CN 113254149B
Authority
CN
China
Prior art keywords
simulation
moving body
calculation
order operator
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110520528.1A
Other languages
English (en)
Other versions
CN113254149A (zh
Inventor
孙靖
韦洋
戴文志
陈家文
朱震宇
刘伟伟
刘莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Yutianzhiyun Simulation Technology Co ltd
Original Assignee
Nanjing Yutianzhiyun Simulation Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Yutianzhiyun Simulation Technology Co ltd filed Critical Nanjing Yutianzhiyun Simulation Technology Co ltd
Priority to CN202110520528.1A priority Critical patent/CN113254149B/zh
Publication of CN113254149A publication Critical patent/CN113254149A/zh
Application granted granted Critical
Publication of CN113254149B publication Critical patent/CN113254149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于流式计算的动体运行仿真方法。该方法包括步骤动体建模、资源规划和动态运行,首先是确定动体的类型、数量,为动体设定标识和初始运行参数,以及选择对应的运行计算模型;然后在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出动体的多种仿真状态信息。该方法可以利用网络互联的多个服务器实现计算资源的动态分配,满足数量较多动体的同步仿真,采用多阶算子进行流式计算,既能够适应导调数据带来的调整变化,又能够确保实时得到各种仿真结果的输出。

Description

一种基于流式计算的动体运行仿真方法
技术领域
本发明涉及计算机仿真技术领域,尤其涉及一种基于流式计算的动体运行仿真方法。
背景技术
对于大型的物流、交通运输企业,日常都有分布在各地的多种交通运输工具(如汽车、火车、飞机)在实时运行,对于这些以交通运输工具为代表的动体运行,不仅需要实时进行状态监控,也需要进行全景的运行仿真,依此实现对动体运行管理规律的科学预判和最优化的调度管理。
现有技术中缺乏适用于满足多类型、多数量、多地域、多场景的动体运行仿真方法,不能解决在统一仿真环境下的多种类型和数量较多的动体同时连续仿真运行的问题,难以满足上述企业对大量动体运行管理的精准规划和科学预判需求,难以为这些企业在宏观管理、投资规划、成本估算、风险管控等方面提供科学数据。
发明内容
本发明主要解决的技术问题是提供一种基于流式计算的动体运行仿真方法,解决现有技术中多种类型、数量众多条件下动体运行仿真难以同步运行实施,以及解决动态导调干预、多动体之间相互关联、实时进行计算资源调整分配的问题。
为解决上述技术问题,本发明采用的一个技术方案是提供一种基于流式计算的动体运行仿真方法,包括以下步骤:动体建模,确定动体的类型、数量,为其中每一个所述动体设定对应的运行计算模型;资源规划,在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;动态运行,启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出所述动体的多种仿真状态信息。
优选的,在所述动体建模步骤中,所述运行计算模型包括运行参数,以及基于地理空间信息的运行路线、运行状态和运行规则。
优选的,所述运行参数包括加速运行参数、匀速运行参数、减速运行参数,其中动体出发时对应的加速运行参数包括初始速度
Figure 961001DEST_PATH_IMAGE001
、正加速度
Figure 939321DEST_PATH_IMAGE002
,动体中段匀速运行对应的匀速运行参数为匀速度
Figure DEST_PATH_IMAGE003
,动体到达停靠站时对应的减速运行参数为负加速度
Figure 925732DEST_PATH_IMAGE004
;所述运行计算模型的运行参数又进一步受多种因素影响,包括
Figure DEST_PATH_IMAGE005
Figure 592598DEST_PATH_IMAGE006
Figure DEST_PATH_IMAGE007
Figure 689867DEST_PATH_IMAGE008
,其中
Figure DEST_PATH_IMAGE009
表示地形因素,
Figure 522694DEST_PATH_IMAGE010
表示气象因素,
Figure DEST_PATH_IMAGE011
表示昼夜因素,
Figure 414427DEST_PATH_IMAGE012
表示交通拥堵因素。
优选的,在所述资源规划步骤中,网络互联的服务器包括至少一个管理服务器和多个任务服务器,在所述管理服务器中设置有管控模块,在所述任务服务器设置有任务模块,在所述任务模块中又进一步划分为多个相互独立且并行计算的任务计算器。
优选的,在所述资源规划步骤中,在计算资源分配规划过程中,根据参与仿真的动体类型和数量,确定计算资源的规模,包括确定参与仿真计算的管理服务器和任务服务器的数量,根据动体仿真所需要的运行计算模型,分配规划相应的任务计算器的数量,以及这些任务计算器在针对不同的运行计算模型的具体配置。
优选的,在所述动态运行步骤中,所述管控模块接收导调数据,进而产生需要进行仿真的动体,所述导调数据以选定的时间间隔不断更新,包括在第一仿真时刻提供的初始导调数据:
Figure DEST_PATH_IMAGE013
其中,t1表示第一仿真时刻,第1类动体
Figure 332704DEST_PATH_IMAGE014
的集合为
Figure DEST_PATH_IMAGE015
,第1类动体数量为
Figure 968085DEST_PATH_IMAGE016
个,其中每一个第1类动体对应标识分别为
Figure DEST_PATH_IMAGE017
;第2类动体
Figure 655418DEST_PATH_IMAGE018
的集合为
Figure DEST_PATH_IMAGE019
,第2类动体数量为
Figure 983631DEST_PATH_IMAGE020
个,其中每一个第2类动体对应标识分别为
Figure DEST_PATH_IMAGE021
,以及包括第3类动体
Figure 622161DEST_PATH_IMAGE022
的集合为
Figure DEST_PATH_IMAGE023
,第3类动体数量为
Figure 326812DEST_PATH_IMAGE024
个,其中每一个第3类动体对应标识分别为
Figure DEST_PATH_IMAGE025
优选的,所述管控模块接收导调数据,完成一阶算子计算,根据仿真动体的类型、数量和识别号,并发产生与所述仿真动体相对应的一阶计算数据,所述管控模块根据一阶计算数据对应调度分配给任务计算器进行二阶算子计算。
优选的,一阶算子在每一个仿真时刻都会输出参与仿真计算的仿真动体的类型信息、数量信息、标识信息和仿真时刻信息,这些信息组合成广播信息,随着仿真时刻的不断延续组成了一阶算子向外发布的广播数据流。
优选的,在第二仿真时刻,参与第1类动体的二阶算子计算的任务计算器开始进行二阶算子计算,对第1类动体在经历第一仿真时刻到第二仿真时刻的时段后,对第1类动体在第二仿真时刻所在的地理位置进行计算;并且,在第二仿真时刻与第三仿真时刻之间的时间段内,第1类动体的二阶算子对应的任务计算器,全部完成第1类动体在第二仿真时刻所在的地理位置的计算,输出的动体位置数据以数据流的方式传输给下一阶算子,即三阶算子。
优选的,在第三仿真时刻,三阶算子接收来自二阶算子的数据流,三阶算子检验参与二阶算子任务的任务计算器是否全部完成前一个仿真时刻间隔内对应的二阶算子的计算任务,对二阶算子的计算结果进行存储管理,并且三阶算子还接收来自一阶算子在不同仿真时刻发出的广播数据流,从中根据第1类动体的数量信息、标识信息和仿真时刻信息来校验二阶算子是否全部完成了前一个仿真时刻间隔内对应的动体仿真计算。
本发明的有益效果是:本发明公开了一种基于流式计算的动体运行仿真方法。该方法包括步骤动体建模、资源规划和动态运行,首先是确定动体的类型、数量,为动体设定标识和初始参数,以及选择对应的运行计算模型;然后在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出动体的多种仿真状态信息。该方法可以利用网络互联的多个服务器实现计算资源的动态分配,满足数量较多动体的同步仿真,采用多阶算子进行流式计算,既能够适应导调数据带来的调整变化,又能够确保实时得到各种仿真结果的输出。
附图说明
图1是根据本发明基于流式计算的动体运行仿真方法一实施例的流程图;
图2是根据本发明基于流式计算的动体运行仿真方法另一实施例中分段模型示意图;
图3是根据多动体仿真系统一实施例示意图;
图4是根据本发明基于流式计算的动体运行仿真方法另一实施例中计算资源规划示意图;
图5是根据本发明基于流式计算的动体运行仿真方法另一实施例中单个仿真动体多阶算子时序图;
图6是根据本发明基于流式计算的动体运行仿真方法另一实施例中多类仿真动体多阶算子时序图;
图7是根据本发明基于流式计算的动体运行仿真方法另一实施例中多类仿真动体多阶算子组成示意图;
图8是根据多动体仿真系统另一实施例系统组成运行示意图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1显示了本发明基于流式计算的动体运行仿真方法一实施例的流程图。在图1中,包括:
步骤S1:动体建模,确定动体的类型、数量,为其中每一个所述动体设定对应的运行计算模型;
步骤S2:资源规划,在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;
步骤S3:动态运行,启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出所述动体的多种仿真状态信息。
优选的,在步骤S1动体建模中,所述动体的类型包括地面各种车辆、水面各种船艇、航空飞行器、航天飞行器,各种车辆又可以进一步包括汽车、卡车、特种车辆(如消防车、装甲车、工程车等),各种船艇又可以进一步包括渔船、游艇、快艇、特种舰艇(如潜艇、登陆艇、护卫舰、巡洋舰、补给舰、航空母舰等),各种航空飞行器进一步包括无人机、直升机、支线飞机、民航飞机、特种飞机(如歼击机、轰炸机、预警机、干扰机、加油机等),各种航天飞行器又可以进一步包括火箭、弹道导弹、飞船、空间站、低轨道卫星、中高轨道卫星、静止轨道卫星、深空飞行器等。
优选的,这些动体对应的运行计算模型包括与动体类型相对应的运行参数,包括有速度、航向、线加速度、角加速度,这些参数值进行设置时要根据具体的动体类型而设置和更改。
优选的,运行参数包括加速运行参数、匀速运行参数、减速运行参数,其中动体出发时对应的加速运行参数包括初始速度
Figure 868652DEST_PATH_IMAGE026
、正加速度
Figure 633345DEST_PATH_IMAGE027
,动体中段匀速运行对应的匀速运行参数为匀速度
Figure 463898DEST_PATH_IMAGE028
,动体到达停止站时对应的减速运行参数为负加速度
Figure 706661DEST_PATH_IMAGE029
,并且这些参数还要满足连续运行的关系,包括以初始速度
Figure 571848DEST_PATH_IMAGE030
、正加速度
Figure 507443DEST_PATH_IMAGE031
运行一定时长后要等于匀速度
Figure 825292DEST_PATH_IMAGE032
,而在接近停止站开始减速后由匀速度
Figure 871746DEST_PATH_IMAGE033
,在负加速度
Figure 591440DEST_PATH_IMAGE034
作用下,到达目的地后速度刚好为0。
进一步优选的,所述运行计算模型的运行参数又进一步受多种因素影响,包括
Figure 697936DEST_PATH_IMAGE035
Figure 503081DEST_PATH_IMAGE036
Figure 589111DEST_PATH_IMAGE037
Figure 225629DEST_PATH_IMAGE038
,其中
Figure 440709DEST_PATH_IMAGE039
表示地形因素,
Figure 529888DEST_PATH_IMAGE040
表示气象因素,
Figure 918144DEST_PATH_IMAGE041
表示昼夜因素,
Figure 346852DEST_PATH_IMAGE042
表示交通拥堵因素。优选的,当这些因素均有多种选择时,对应的参数值也会不同,如地形因素就包括平原、丘陵、山区等不同地形,气象因素包括晴天、雾天、雨天、雪天等,昼夜因素包括白天、晚上,交通拥堵因素可以分为一般拥堵、中等拥堵和严重拥堵。当考虑这些影响因素时,可以对动体的运行仿真进行导调干预,从而仿真动体在不同条件因素下的运行情况。
优选的,运行计算模型还包括基于地理空间信息的运行路线、运行状态、运行规则。
优选的,运行路线是指基于空间地理信息仿真构建的运行轨迹,如一条高速公路、一条城市轨道路线、一条高铁轨道路线、一条飞机飞行航线、一个卫星运行轨道等。优选的,该运行线路既可以是对既有交通设施线路的建模仿真,可以用于实际运行线路的动体运行仿真,并且可以与实际运行情况进行比对来修正优化调整仿真计算,以及为实际运行线路出现意外事故、防灾减灾等进行预演推演等。也可以是对预建运行线路的建模仿真,可以用于预建线路的交通承载力仿真验证等。
优选的,上述运行参数与运行线路相关联,可以根据运行线路的具体空间位置确定对应的运行参数值,也就是说运行参数并不是固定不变的,而是运行参数的具体取值与当前实际运行的线路所在位置相关。
优选的,可以根据该运行路线进一步分地段或分区域,例如一条高速公路可以根据这条高速公路所在空间位置不同,设定该条高速公路的地形参数,进而区分为多种不同地段,包括平原地段高速公路、丘陵地段高速公路、山地地段高速公路等,因为不同地段的高速公路对汽车的运行速度是有不同的限制要求。因此,这也表明了运行参数的具体取值与实际运行的线路所在位置相关。
优选的,运行状态包括加速、减速、匀速、转向、停止,同时该运行状态也与运行线路相关,比如可在运行线路的多个位置设置停止位,如列车轨道上的各个车站,而相对于停止位的运行包括停止时长、减速到达停止位、加速离开停止位、减速时长、加速时长、直线匀速度、转向匀速度。
优选的,运行规则对应的则是为动体设定多种运行条件下的运行策略选择。例如,包括动体是循环往复运行(例如卫星的在规运行),还是单向定时间隔重复运行(例如某一车次的火车的运行)。
优选的,在每一个动体在运行仿真之前,还进一步包括确定该动体的初始运行参数,包括初始位置
Figure 795150DEST_PATH_IMAGE043
、初始速度
Figure 574888DEST_PATH_IMAGE044
、初始航向
Figure 766834DEST_PATH_IMAGE045
,然后进一步结合运行计算模型,就可以使得动体随着仿真时间的变化自动运行仿真。
优选的,在本申请中,如果设定了动体的初始运行参数,以及构建有该动体对应的运行计算模型,那么启动了该动体的仿真运行后,该动体就会处于连续仿真运行的状态,称之为仿真动体,并且可以基于UTC(协调世界时)对仿真动体进行长时间不间断仿真运行,例如仿真一辆列车每天的在轨运行情况。这是因为,根据该动体的初始运行参数确定了其初始状态和初始位置,而该动体的运行计算模型又确定了其运行路线,以及在该运行路线上运行的运行参数、运行状态和运行规则,仿真动体即可实现基于时间连续变化的自动仿真运行。
优选的,当有大量的仿真动体同时进行仿真时,由于这些仿真动体之间是相互的独立的,因此可以同步并行进行仿真,因此可以实现多类型、多数量的动体同步进行仿真运行。
优选的,同一类型的多个动体可以在同一条运行路线上进行仿真运行,例如仿真不同的列车在同一条轨道上运行,只是这些列车相互之间存在位置间隔,因此这些动体可以复用相同的运行计算模型,区别在于初始运行参数不同而已。由于可以复用相同的运行计算模型,因此运行计算模型可以是对应特定的计算程序代码进行数据存储,仿真计算时可以对该同一段计算程序进行多次重复调用即可,而无需编译多个不同的计算程序,因此有利于节省计算资源。这与下文分配任务计算器进行算子计算相关。
优选的,同一类型的多个动体可以在不同的运行路线上进行仿真运行,例如仿真不同的列车在多条不同的轨道上运行,那么这些仿真动体不同的地方主要在于运行计算模型中的运行路线不同和初始运行参数不同而已,而其他方面则相同,因此对于这些动体在仿真时也是可以共用相同的计算程序,而对于运行路线不同,则只需要将运行路线单独做成路线数据库,从中选择相应的路线参数即可,因此也可以实现对计算资源的节省。这与下文分配任务计算器进行算子计算相关。
进一步优选的,不同类型的动体可以在不同的运行路线上进行仿真运行,例如多列火车在多条铁路上运行,同时还有多辆汽车在多条高速公路上运行。那么针对不同类型的动体,将同一类型的动体共用对应的运行计算模型,并且尽可能把共用的部分(如相同的运行规则、运行参数)作为共享的计算资源使用(例如相同的计算程序),仿真过程中可以重复多次使用,而对于没有共用的部分(如运行线路),则可以单独的部分或参数进行存储,仿真运行时根据需要分别进行调用。
优选的,在运行计算模型中包括基于运行线路的分地段或分区间运行模型,如图2所示,在起点
Figure 50048DEST_PATH_IMAGE046
和终点
Figure 669248DEST_PATH_IMAGE047
之间还可以细化为多个中间节点
Figure 733019DEST_PATH_IMAGE048
Figure 666340DEST_PATH_IMAGE049
Figure 69640DEST_PATH_IMAGE050
Figure 358276DEST_PATH_IMAGE051
,而在任意两个相邻节点(包括起点和终点)之间均可以按照前述的分段运行模型进行运行仿真,例如在起点
Figure 643764DEST_PATH_IMAGE052
和中间节点
Figure 380776DEST_PATH_IMAGE053
之间的区间,中间节点
Figure 700899DEST_PATH_IMAGE054
是该区间的终点,同时节点
Figure 599585DEST_PATH_IMAGE055
也是节点
Figure 637948DEST_PATH_IMAGE056
与节点
Figure 913072DEST_PATH_IMAGE057
之间构成区间的起点。对于起点
Figure 87701DEST_PATH_IMAGE058
和中间节点
Figure 422867DEST_PATH_IMAGE059
之间的区间,对应的第一组分段运行模型的参数值包括
{
Figure 682947DEST_PATH_IMAGE060
Figure 761762DEST_PATH_IMAGE061
Figure 56477DEST_PATH_IMAGE062
Figure 296965DEST_PATH_IMAGE063
};对于起点
Figure 309921DEST_PATH_IMAGE064
和中间节点
Figure 926847DEST_PATH_IMAGE065
之间的区间,对应的第二组分段运行模型的参数值包括{
Figure 577533DEST_PATH_IMAGE066
Figure 988923DEST_PATH_IMAGE067
Figure 223595DEST_PATH_IMAGE068
Figure 644212DEST_PATH_IMAGE069
};显然这里的参数值
Figure 647941DEST_PATH_IMAGE070
Figure 495811DEST_PATH_IMAGE071
可以根据运行线路的不同分区间进行设置。
优选的,在步骤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提供的导调数据包括:
Figure 217779DEST_PATH_IMAGE072
其中,有第1类动体
Figure 176508DEST_PATH_IMAGE073
的集合为
Figure 34743DEST_PATH_IMAGE074
,其中包括第1类动体数量为
Figure 115831DEST_PATH_IMAGE075
个,其中每一个动体对应标识分别为
Figure 997199DEST_PATH_IMAGE076
,其中的
Figure 821936DEST_PATH_IMAGE077
表示第一仿真时刻。优选的,还包括第2类动体
Figure 737939DEST_PATH_IMAGE078
的集合为
Figure 989929DEST_PATH_IMAGE079
,其中包括第2类动体数量为
Figure 889752DEST_PATH_IMAGE080
个,其中每一个动体对应标识分别为
Figure 485556DEST_PATH_IMAGE081
,以及包括第3类动体
Figure 256066DEST_PATH_IMAGE082
的集合为
Figure 678957DEST_PATH_IMAGE083
,其中包括动体数量为
Figure 534918DEST_PATH_IMAGE084
个,每一个动体对应标识分别为
Figure 701457DEST_PATH_IMAGE085
进一步的,导调数据的更新时间间隔可以进行设定,例如可以控制每秒更新一次导调数据,或者每10毫秒、每100毫秒更新一次,该更新频度或更新时间间隔的控制可以根据仿真的逼真度或者仿真调控速度的需要而调整。
优选的,对于导调数据中的任意一个动体,例如
Figure 592052DEST_PATH_IMAGE086
,又具体包括该动体的类型和初始运行参数,所述管控模块根据该动体的类型和初始运行参数即可为该动体的运行仿真确定对应的运行计算模型,进而进行运行仿真。
优选的,导调数据在第一仿真时刻t1提供相应的仿真动体参与仿真后,由于导调数据只是对需要改变的参数随时间不断进行更新,对于在各个时刻正常运行的动体,导调数据通常不再对这些动体进行干预,而是由各个动体自行进行仿真运行,只有需要进行导调控制的动体才在导调数据中出现。例如,在第二仿真时刻t2,导调数据为空白,在第三仿真时刻t3,导调数据仅仅增加一个动体
Figure 185845DEST_PATH_IMAGE087
,其他动体继续保持仿真运行,无需导调数据干预,。
优选的,为了实现大规模的动体运行仿真,本申请采用了多阶算子分别独立进行计算,相互之间通过数据流进行数据传输的技术方案。这里的算子对应是一个计算功能单元,通过运行该计算功能单元对应的程序代码来实现其对应的功能。
如图4所示,所述管控模块主要完成一阶算子的功能,主要是接收导调数据,产生仿真的动体、终止仿真的动体或干预仿真的动体。优选的,该一阶算子在得到仿真动体(也称之为仿真实体对象)增加或减少的信息后,对应修改仿真动体的记录信息,该记录信息包括仿真动体的唯一识别号,以及全部当前运行的仿真动体的数量。
优选的,一阶算子根据仿真动体的类型、数量和识别号,并发产生与所述仿真动体相对应的一阶计算数据,所述管控模块根据一阶计算数据对应调度分配给任务服务器的任务计算器进行计算,即为二阶算子计算。
优选的,该一阶计算数据包括与其对应的仿真动体相关的对象类型和参数数据。例如,该仿真动体对应的对象类型是卫星,或者对象类型是轮式车辆,或者对象类型是航船等,不同的对象类型其在运行仿真时,对应的运行参数及运行计算模型也不同,比如速度参数、初始位置参数等均不相同。该调度分配工作是由管控模块根据仿真动体类型、数量和各个任务服务器所能提供的任务计算器的数量情况进行动态任务分配。
优选的,一阶算子根据进行仿真动体的还产生输出对应的广播数据流,所述广播数据流主要包括当前仿真动体的数量以及识别号、类型、时刻等数据信息。优选的,二阶算子根据仿真动体的类型和识别号,调用与所述仿真动体运行相关的运行计算模型,计算对应的所述仿真的动体的位置坐标信息。
优选的,所述二阶算子用于计算动体实时仿真过程中的动体位置数据,也就是根据所述动体的初始运动参数、运动计算模型和地理空间信息,随着时间的变化,计算动体实时变化的动体位置数据。
优选的,二阶算子包括完成对应功能的二阶算子程序,执行该程序是由任务计算器完成,并且执行完成一次该二阶算子程序的计算周期,也就是说执行一次二阶算子程序所需要的时间开销,这与任务服务器的CPU主频相关。举例而言,如果CPU的主频是
Figure 325839DEST_PATH_IMAGE088
,对应的主频周期是
Figure 968173DEST_PATH_IMAGE089
,执行一个程序语句需要
Figure 775592DEST_PATH_IMAGE090
个主频周期,若二阶算子程序可以编译成
Figure 9127DEST_PATH_IMAGE091
个程序语句,则执行一次二阶算子程序的计算周期是
Figure 901997DEST_PATH_IMAGE092
,那么在1秒钟内可以完成的二阶算子程序执行的次数是
Figure 348022DEST_PATH_IMAGE093
,也就是说在1秒钟内可以有
Figure 776991DEST_PATH_IMAGE094
个二阶算子程序被执行完毕。这是针对1个CPU的情况,如果有多核的CPU,例如有
Figure 650269DEST_PATH_IMAGE095
个,那么这些CPU由于是并行计算,因此会在1秒钟可以有
Figure 764856DEST_PATH_IMAGE096
个二阶算子程序被执行完毕。其他算子对应的程序执行也有类似的特点。
优选的,任务模块可以根据二阶算子对应的二阶算子程序的数据量,来确定二阶算子对应的任务计算器的数据存储空间;以及还进一步根据二阶算子对应的二阶算子执行周期,来确定二阶算子对应的任务计算器的计算时间开销。由此可以为二阶算子规划得到对应的任务计算器,即二阶算子对应的任务计算器,专门用于进行二阶算子计算所需要的数据存储需求和计算时间需求。由此也可以看出,对于任务模块中的任务计算器并不是固定不变的计算资源,而是根据相对独立的计算需求,例如二阶算子的计算需求来确定对应的任务计算器所需的计算资源。同样也适用于其他算子的计算资源规划需求计算,这些计算资源的需求计算对应可以在步骤2中进行规划。
进一步的,同时参与仿真的动体类型包括有多种类型,即第1类动体、第2类动体至第N类动体,N大于或等于2,而对于每一种类型的动体而言,包括不同阶的算子,其中一阶算子可以是这些不同种类的动体共用的,或者也可以是为每一类型的动体对应该类型的一阶算子。而对于不同类型的动体而言,虽然都具有二阶算子,由于各自的二阶算子所对应的运行计算模型不同,因此不同类型的动体的二阶算子所对应的任务运算器占有的计算资源也不尽相同,因此在步骤2资源规划中,会为不同类型的动体的二阶算子,分配与之适配的计算资源,这也是步骤2资源规划所要完成的主要工作。因此,虽然第1类动体二阶算子对应的有多个任务计算器,第N类动体二阶算子对应的也有多个任务计算器,但是第1类动体二阶算子对应的任务计算器与第N类动体二阶算子对应的任务计算器却可以是不同的。第1类动体三阶算子、第N类动体三阶算子,以及四阶算子中的任务计算器也都具有这样的差异性特点。
由此也体现了本申请在同时适应多种类型动体仿真的灵活性,同时也采用的统一的架构体系,能够预先进行计算资源规划,满足所需的多种类型、多数量的动体同步仿真需要。同时这种体系架构,也有利于在仿真的过程中,灵活调度使用预先规划的这些不同类型和数量的动体可以独立增加、减少、改变参数等仿真进程,满足了动态仿真的实时性要求和导调复杂度的需求。
优选的,在动态运行步骤S3中,又可以进一步分解为以下子步骤:
子步骤1:一阶算子运行计算,导调数据输入管控模块,所述管控模块运行一阶算子,根据导调数据生成需要仿真运行的仿真动体,并将导调数据中的参数输入所述仿真动体对应的二阶算子;
子步骤2:二阶算子运行计算,所述二阶算子接收所述导调数据中对应的参数,根据运行计算模型,计算所述仿真动体运行的动体位置数据,输出动体位置数据给三阶算子;
子步骤3:三阶算子运行计算,所述三阶算子汇聚接收来自多个仿真动体对应的动体位置数据,然后将这些仿真动体的动体位置数据进行验证,以及进一步选择组合后发送给四阶算子;
子步骤4:四阶算子运行计算,所述四阶算子根据选择组合后的动体位置数据,计算至少两个仿真动体之间的相对距离。
以下结合图5和图6进一步说明,上述四个子步骤的运行计算过程。优选的,如图5所示,该图显示了针对同一种类型动体中的一个仿真动体随时间变化而进行的仿真过程。
优选的,仿真开始后,在第一仿真时刻t1,导调数据中包括第1类动体
Figure 14572DEST_PATH_IMAGE097
的个数
Figure 796583DEST_PATH_IMAGE098
,以及第1类动体
Figure 637500DEST_PATH_IMAGE097
中每一个动体的初始运行参数,对应在第一仿真时刻t1,第1类动体
Figure 177066DEST_PATH_IMAGE097
进行仿真的集合为
Figure 558368DEST_PATH_IMAGE099
,其中
Figure 929307DEST_PATH_IMAGE100
分别表示第1类动体
Figure 144388DEST_PATH_IMAGE101
中的前三个不同标识的动体,
Figure 233566DEST_PATH_IMAGE102
表示第1类动体
Figure 917095DEST_PATH_IMAGE103
中的第
Figure 204857DEST_PATH_IMAGE104
个标识的动体。图5仅是显示了其中一个动体的仿真运行,如对动体
Figure 27057DEST_PATH_IMAGE105
进行仿真,同样适用于并行运行仿真的其他仿真动体。
优选的,在第一仿真时刻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类动体
Figure 603532DEST_PATH_IMAGE103
的二阶算子计算任务的任务计算器开始进行二阶算子计算,对第1类动体在经历第一仿真时刻到第二仿真时刻的时段后,对第1类动体在第二仿真时刻所在的地理位置进行计算。正常情况下,在第二仿真时刻t2与第三仿真时刻t3之间的时间段内,这些进行二阶算子计算的任务计算器应当全部完成该时段内对应的二阶算子计算,也即是在第二仿真时刻与第三仿真时刻之间的时间段内,第1类动体的二阶算子对应的任务计算器,在这个时间段内,应当全部完成第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类动体
Figure 733162DEST_PATH_IMAGE106
的数量信息、标识信息和仿真时刻信息来校验校验二阶算子是否全部完成了前一个仿真时刻间隔内对应的动体仿真计算。
优选的,在第三仿真时刻t3与第四仿真时刻t4之间的时间段内,三阶算子是对二阶算子(t2)在第二仿真时刻t2与第三仿真时刻t3之间的时间段内的仿真计算结果进行存储和检验,而该时间间隔t3-t2内,二阶算子(t2)进行仿真的动体对象则是一阶算子在第一仿真时刻t1对应的导调数据,因此三阶算子在其进行校验时,实际上需要对一阶算子在第一仿真时刻t1输出的广播数据为依据进行校验,因此三阶算子(t3)存储和校验的动体对象是一阶算子在之前两个时刻,即一阶算子(t1)对应的动体对象。并且,随着时间的推移,这种固定的时刻对应关系将会保持。
优选的,在第二仿真时刻t2到来时,导调数据(t2)中发生变化,包括增加或减少第1类动体中的动体的仿真个数、改变动体的仿真参数,例如在t2时刻第1类动体
Figure 344272DEST_PATH_IMAGE107
进行仿真的集合增加为
Figure 901155DEST_PATH_IMAGE108
,其中增加了标识为第
Figure 964926DEST_PATH_IMAGE109
的动体,那么在第二仿真时刻t2与第三仿真时刻t3之间的时间段内,一阶算子还要为第
Figure 898247DEST_PATH_IMAGE110
动体分配任务计算器,在第三仿真时刻t3与第四仿真时刻t4之间的时间段内,参与二阶算子(t3)任务计算的任务计算器除了继续进行原有的
Figure 363864DEST_PATH_IMAGE111
个动体的仿真计算外,还要对第
Figure 91648DEST_PATH_IMAGE112
动体进行二阶算子对应的任务计算。
同样,在第二仿真时刻t2与第三仿真时刻t3之间,一阶算子计算后也会输出参与仿真计算的第1类动体
Figure 377136DEST_PATH_IMAGE113
的数量信息、标识信息和仿真时刻信息。由于增加了标识为第
Figure 677930DEST_PATH_IMAGE114
的动体,因此一阶算子(t2)在第二仿真时刻t2与第三仿真时刻t3之间输出的广播数据中增加了第
Figure 935736DEST_PATH_IMAGE115
的动体的相关信息。同样,该广播数据传输给下一仿真时刻对应的三阶算子(t3)。
在图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类动体对应的至少一个仿真动体,还包括所述仿真动体对应的初始运行参数;从第二仿真时刻开始,在第二仿真时刻与第三仿真时刻之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的初始运行参数和运行计算模型进行计算,对所述仿真动体经历从第一仿真时刻到第二仿真时刻的时长后,计算得到所述仿真动体在第二仿真时刻对应的动体位置数据;
在第二仿真时刻,若所述更新导调数据中没有记载所述仿真动体的信息,则所述仿真动体保持自动延续仿真运行;
从第三仿真时刻开始,在第三仿真时刻与第四仿真时刻之间的时间段内,所述仿真动体对应的二阶算子利用所述仿真动体对应的运行参数和运行计算模型进行计算,对所述仿真动体经历从第二仿真时刻到第三仿真时刻的时长后,计算得到所述仿真动体在第三仿真时刻对应的动体位置数据;
从第三仿真时刻开始,在第三仿真时刻与第四仿真时刻之间的时间段内,所述三阶算子接收来自多个动体对应的二阶算子计算输出的动体位置数据,所述动体位置数据是二阶算子对所述仿真动体经历从第一仿真时刻到第二仿真时刻的时长后,计算得到的仿真动体在第二仿真时刻对应的动体位置数据;
在第三仿真时刻与第四仿真时刻之间的时间段内,所述三阶算子根据所述广播数据流检验所述多个仿真动体对应的动体位置数据的完整性,对应的仿真动体是所述一阶算子在第一仿真时刻输出的广播数据中所包括的仿真动体;
从第四仿真时刻开始,在第四仿真时刻与第五仿真时刻之间的时间段内,所述四阶算子接收来自三阶算子输出的多个仿真动体的动体位置数据,对仿真动体进行选择组合;
从第五仿真时刻开始,在第五仿真时刻与第六仿真时刻之间的时间段内,所述五阶算子接收来自四阶算子输出的经选择组合后的动体位置数据,计算仿真动体之间的相互运行关系。
以上对所述多动体运行仿真系统的说明,还可以具体参考前述对仿真方法的说明,这里不再赘述。
由此可见,本发明公开了一种基于流式计算的动体运行仿真方法。该方法包括步骤动体建模、资源规划和动态运行,首先是确定动体的类型、数量,为动体设定标识和初始参数,以及选择对应的运行计算模型;然后在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出动体的多种仿真状态信息。该方法可以利用网络互联的多个服务器实现计算资源的动态分配,满足数量较多动体的同步仿真,采用多阶算子进行流式计算,既能够适应导调数据带来的调整变化,又能够确保实时得到各种仿真结果的输出。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种基于流式计算的动体运行仿真方法,其特征在于,包括以下步骤:
动体建模,确定动体的类型、数量,为其中每一个所述动体设定对应的运行计算模型;
资源规划,在网络互联的服务器上确定所有动体运行仿真的计算资源分配规划;
动态运行,启动仿真运行,动态输入导调数据,设立多阶算子进行流式计算,输出所述动体的多种仿真状态信息;
在所述资源规划步骤中,网络互联的服务器包括至少一个管理服务器和多个任务服务器,在所述管理服务器中设置有管控模块,在所述任务服务器设置有任务模块,在所述任务模块中又进一步划分为多个相互独立且并行计算的任务计算器;
在所述动态运行步骤中,所述管控模块接收导调数据,进而产生需要进行仿真的动体,所述导调数据以选定的时间间隔不断更新,包括在第一仿真时刻提供的初始导调数据:
Figure FDA0003751951910000011
其中,t1表示第一仿真时刻,第1类动体A的集合为
Figure FDA0003751951910000012
第1类动体数量为QA1个,其中每一个第1类动体对应标识分别为
Figure FDA0003751951910000013
第2类动体B的集合为
Figure FDA0003751951910000014
第2类动体数量为QB1个,其中每一个第2类动体对应标识分别为
Figure FDA0003751951910000015
以及包括第3类动体C的集合为
Figure FDA0003751951910000016
第3类动体数量为QC1个,其中每一个第3类动体对应标识分别为
Figure FDA0003751951910000017
所述管控模块接收导调数据,还完成一阶算子计算,根据仿真动体的类型、数量和识别号,并发产生与所述仿真动体相对应的一阶计算数据,所述管控模块根据一阶计算数据对应调度分配给任务计算器进行二阶算子计算;
在第二仿真时刻,参与第1类动体的二阶算子计算的任务计算器开始进行二阶算子计算,对第1类动体在经历第一仿真时刻到第二仿真时刻的时段后,对第1类动体在第二仿真时刻所在的地理位置进行计算;并且,在第二仿真时刻与第三仿真时刻之间的时间段内,第1类动体的二阶算子对应的任务计算器,全部完成第1类动体在第二仿真时刻所在的地理位置的计算,输出的动体位置数据以数据流的方式传输给下一阶算子,即三阶算子。
2.根据权利要求1所述的基于流式计算的动体运行仿真方法,其特征在于,在所述动体建模步骤中,所述运行计算模型包括运行参数,以及基于地理空间信息的运行路线、运行状态和运行规则。
3.根据权利要求2所述的基于流式计算的动体运行仿真方法,其特征在于,所述运行参数包括加速运行参数、匀速运行参数、减速运行参数,其中动体出发时对应的加速运行参数包括初始速度
Figure FDA0003751951910000021
正加速度
Figure FDA0003751951910000022
动体中段匀速运行对应的匀速运行参数为匀速度
Figure FDA0003751951910000023
动体到达停靠站时对应的减速运行参数为负加速度
Figure FDA0003751951910000024
所述运行计算模型的运行参数又进一步受多种因素影响,包括
Figure FDA0003751951910000025
Figure FDA0003751951910000026
其中
Figure FDA0003751951910000027
表示地形因素,
Figure FDA0003751951910000028
表示气象因素,
Figure FDA0003751951910000029
表示昼夜因素,
Figure FDA00037519519100000210
表示交通拥堵因素。
4.根据权利要求1所述的基于流式计算的动体运行仿真方法,其特征在于,在所述资源规划步骤中,在计算资源分配规划过程中,根据参与仿真的动体类型和数量,确定计算资源的规模,包括确定参与仿真计算的管理服务器和任务服务器的数量,根据动体仿真所需要的运行计算模型,分配规划相应的任务计算器的数量,以及这些任务计算器在针对不同的运行计算模型的具体配置。
5.根据权利要求1所述的基于流式计算的动体运行仿真方法,其特征在于,一阶算子在每一个仿真时刻都会输出参与仿真计算的仿真动体的类型信息、数量信息、标识信息和仿真时刻信息,这些信息组合成广播信息,随着仿真时刻的不断延续组成了一阶算子向外发布的广播数据流。
6.根据权利要求5所述的基于流式计算的动体运行仿真方法,其特征在于,在第三仿真时刻,三阶算子接收来自二阶算子的数据流,三阶算子检验参与二阶算子任务的任务计算器是否全部完成前一个仿真时刻间隔内对应的二阶算子的计算任务,对二阶算子的计算结果进行存储管理,并且三阶算子还接收来自一阶算子在不同仿真时刻发出的广播数据流,从中根据第1类动体的数量信息、标识信息和仿真时刻信息来校验二阶算子是否全部完成了前一个仿真时刻间隔内对应的动体仿真计算。
CN202110520528.1A 2021-05-13 2021-05-13 一种基于流式计算的动体运行仿真方法 Active CN113254149B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110520528.1A CN113254149B (zh) 2021-05-13 2021-05-13 一种基于流式计算的动体运行仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110520528.1A CN113254149B (zh) 2021-05-13 2021-05-13 一种基于流式计算的动体运行仿真方法

Publications (2)

Publication Number Publication Date
CN113254149A CN113254149A (zh) 2021-08-13
CN113254149B true CN113254149B (zh) 2022-10-21

Family

ID=77181548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110520528.1A Active CN113254149B (zh) 2021-05-13 2021-05-13 一种基于流式计算的动体运行仿真方法

Country Status (1)

Country Link
CN (1) CN113254149B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012173957A (ja) * 2011-02-21 2012-09-10 Yokogawa Electric Corp エネルギー供給状態のシミュレーションシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122136B (zh) * 2010-12-23 2013-07-17 重庆大学 一种同步控制多架飞机的仿真方法
US10074283B1 (en) * 2017-03-09 2018-09-11 The Boeing Company Resilient enhancement of trajectory-based operations in aviation
CN110059335B (zh) * 2019-01-24 2023-04-07 四川大学 一种基于元胞自动机的机场场面运行仿真方法
CN110929422B (zh) * 2019-12-09 2020-09-22 中国人民解放军军事科学院国防科技创新研究院 一种机器人集群仿真方法及装置
CN111858055B (zh) * 2020-07-23 2023-02-03 平安普惠企业管理有限公司 任务处理方法、服务器及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012173957A (ja) * 2011-02-21 2012-09-10 Yokogawa Electric Corp エネルギー供給状態のシミュレーションシステム

Also Published As

Publication number Publication date
CN113254149A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
Besselink et al. Cyber–physical control of road freight transport
Dong et al. Cooperative control synthesis and stability analysis of multiple trains under moving signaling systems
CN113741518B (zh) 基于领航跟随模式的固定翼无人机集群仿射编队控制方法
Tomlin et al. Hybrid control in air traffic management systems
US6122572A (en) Autonomous command and control unit for mobile platform
CN109613931A (zh) 基于生物社会力的异构无人机集群目标跟踪系统及方法
Robinson, III et al. A fuzzy reasoning-based sequencing of arrival aircraft in the terminal area
CN111651705B (zh) 集群编队跟踪控制方法
Li et al. Traffic signal timing optimization in connected vehicles environment
CN112437502B (zh) 基于多任务无人机集群信息交互的分层分簇网络拓扑结构生成方法
CN109191925A (zh) 一种面向四维航迹运行的多空域轨迹规划与协商方法
CN109002056B (zh) 一种大型固定翼无人机编队方法
Baldi et al. Simulation-based synthesis for approximately optimal urban traffic light management
Tomlin et al. Hybrid control models of next generation air traffic management
CN113312702B (zh) 一种定制化box判据的航天器碰撞预警优化方法
Pan et al. Dynamic control of high-speed train following operation
CN113254149B (zh) 一种基于流式计算的动体运行仿真方法
CN112948100B (zh) 一种多动体仿真系统
Perez-Leon et al. Integration of a 4D-trajectory follower to improve multi-UAV conflict management within the U-space context
CN117170410B (zh) 用于无人机编队飞行的控制方法及相关产品
Dalmau et al. Comparison of various guidance strategies to achieve time constraints in optimal descents
Saraf et al. An efficient combinatorial optimization algorithm for optimal scheduling of aircraft arrivals at congested airports
Meyn et al. Airport arrival capacity benefits due to improved scheduling accuracy
Bahabry et al. Space-time low complexity algorithms for scheduling a fleet of UAVs in smart cities using dimensionality reduction approaches
Bicchi et al. Decentralized air traffic management systems: performance and fault tolerance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant