本技术涉及仿真领域。
背景技术:
1、数字化仿真在航天、航空、汽车等领域的研发过程中得到了广泛的应用。这些仿真实验中会产生大量的仿真数据,如仿真的模型、参数配置和仿真结果等数据,都是宝贵的技术积累与资产,尤其是仿真结果数据。
2、现有技术中,通过固定时钟来同步仿真模型仅仅能够协相同步长的仿真模型来进行仿真解算,而无法协同多个不同步长的仿真模型来进行仿真解算。
3、为此,亟需一种新的数据存储方案来解决现有技术之缺陷。
技术实现思路
1、本发明之目的在于提供一种对仿真模型进行时钟同步的方法、装置及计算设备,以使同一仿真系统能够协同多个不同步长的仿真模型来进行仿真解算。
2、根据本技术的一个方面,提供了一种对仿真模型进行时钟同步的方法包括:自引擎列表中进行主从引擎的选定,来随机选定出预设数量的相应主引擎和相应从引擎。从引擎按预设时间间隔接收主引擎发送的心跳包,来检测当前主引擎是否正常工作。当且仅当主引擎无法工作时,自能够正常工作的所有从引擎中重新选定一个新的主引擎来取代无法正常工作的当前主引擎,以通过新的主引擎来控制此时钟节拍内的全部子引擎的协同仿真运算。各个从引擎继续按预设时间间隔接收新的主引擎发送的心跳包,来检测新的主引擎是否正常工作,以确保若新的主引擎再次无法工作时,再次重复上述主从引擎的选定。若主引擎能正常工作,监控仿真系统状态以判定是否未处理完全部仿真任务。若未处理完全部仿真任务,则主引擎加载模型以计算的基准步长,通过基准步长来判定哪些子引擎的仿真模型需要在此时钟节拍内运行其仿真任务,以解析发送仿真指令给相应子引擎来进行时钟同步,从而控制此时钟节拍内的全部子引擎的协同仿真运算。需要在此时钟节拍内运行的子引擎进行相应仿真模型的解算及仿真结果的输出。当需要在此时钟节拍内运行的子引擎的仿真模型仿真完毕,上报仿真结果。主引擎进行此时钟节拍内运行的子引擎的仿真结果的汇总处理,从而得到所有仿真模型的时钟同步的协同仿真结果。
3、可选地,在根据本技术的方法中,协同仿真运算包括:主引擎在加载模型后,统计参与仿真的各个模型的仿真步长,进而算出所有仿真步长的最大公约数,以该仿真步长作为基准步长来推进各子引擎的协同仿真。主引擎和相应子引擎之间通过dds的发布订阅机制来相互传输仿真数据和时钟同步数据,主引擎等待所有子引擎都回复该时钟节拍内的仿真结束。主引擎发给子引擎仿真命令数据和时钟同步数据,子引擎则发给主引擎仿真结果数据。等待时钟节拍内的所有需要仿真解算的子引擎回复仿真结束的过程中,主引擎推算下一个时钟节拍内需要进行仿真解算的子引擎。并且,子引擎回复仿真结束后,继续推进下一时钟节拍的需要进行仿真的子引擎的仿真解算。
4、可选地,在根据本技术的方法中,推进各子引擎的协同仿真包括:以基准步长为时钟节拍,将时钟节拍的每一拍都发送到相应子引擎的仿真模型中。若当前时钟节拍正好是相应仿真模型步长的整数倍时,则相应仿真模型会进行仿真解算。反之若当前时钟节拍正好不是相应仿真模型步长的整数倍时,则相应仿真模型不会进行仿真解算。
5、可选地,在根据本技术的方法中,自引擎列表中进行主引擎的选定包括:自引擎列表中进行第n次的主从引擎的选定,根据预设的主从模式的判定条件来自引擎列表中选定一个主引擎,其他引擎则自动成为从引擎。并且,主引擎向从引擎发送单向的心跳包,以证明自己能正常控制各个子引擎的仿真运算的时钟同步。倘若没有从引擎在60s内接收到来自主引擎的心跳包,则认为主引擎出现了故障,此时进行第n+1次的主从引擎的选定,并重复进行第n次的主从引擎的选定的步骤直至选定出能正常控制各个子引擎的仿真运算的时钟同步的主引擎。并且,进行第n+1次的主从引擎的选定为当且仅当原主引擎出现了故障时,根据预设的主从模式的判定条件来自引擎列表中再选定一个主引擎。再选定一个主引擎包括:原从引擎转为新主引擎,原主引擎转为新从引擎,原从引擎取代原主引擎来加载模型、进行时钟同步、解析且发送仿真指令及监视仿真系统状态。原主引擎和原从引擎为第n次的主从引擎的选定结果的主引擎和从引擎,且新主引擎和新从引擎为第n+1次的主从引擎的选定结果的主引擎和从引擎。
6、可选地,一种对仿真模型进行时钟同步的方法还包括:子引擎位于每个仿真节点的模型接口中。子引擎随着仿真任务的启动而启动,每个仿真任务都有一个或更多的子引擎来运算处理。子引擎截断仿真求解过程,等待主引擎的时钟同步指令来告知相应子引擎在相应时钟节拍内是否需要进行仿真任务。若主引擎认为相应子引擎此时需要进行仿真解算就会发送时钟同步指令,子引擎在接收到时钟同步指令后自动触发仿真解算。若需要进行仿真解算,则子引擎消耗少量的网络带宽与cpu资源来进行相应的仿真模型的仿真解算。
7、根据本技术的再一方面,提供了一种对仿真模型进行时钟同步的装置,包括:从引擎,用以自引擎列表中进行主从引擎的选定,来随机选定出预设数量的相应主引擎和相应从引擎。从引擎按预设时间间隔接收主引擎发送的心跳包,来检测当前主引擎是否正常工作。并且,当且仅当主引擎无法工作时,自能够正常工作的所有从引擎中重新选定一个新的主引擎来取代无法正常工作的当前主引擎,以通过新的主引擎来控制此时钟节拍内的全部子引擎的协同仿真运算。各个从引擎继续按预设时间间隔接收新的主引擎发送的心跳包,来检测新的主引擎是否正常工作,以确保若新的主引擎再次无法工作时,再次重复上述主从引擎的选定。主引擎,若主引擎能正常工作,监控仿真系统状态以判定是否未处理完全部仿真任务。若未处理完全部仿真任务,则主引擎加载模型以计算的基准步长,通过基准步长来判定哪些子引擎的仿真模型需要在此时钟节拍内运行其仿真任务,以解析发送仿真指令给相应子引擎来进行时钟同步,从而控制此时钟节拍内的全部子引擎的协同仿真运算。主引擎进行此时钟节拍内运行的子引擎的仿真结果的汇总处理,从而得到所有仿真模型的时钟同步的协同仿真结果。子引擎,需要在此时钟节拍内运行的子引擎进行相应仿真模型的解算及仿真结果的输出。当需要在此时钟节拍内运行的子引擎的仿真模型仿真完毕,上报仿真结果。
8、可选地,在根据本技术的装置中,主引擎在加载模型后,统计参与仿真的各个模型的仿真步长,进而算出所有仿真步长的最大公约数,以该仿真步长作为基准步长来推进各子引擎的协同仿真。主引擎和相应子引擎之间通过dds的发布订阅机制来相互传输仿真数据和时钟同步数据,主引擎等待所有子引擎都回复该时钟节拍内的仿真结束。主引擎发给子引擎仿真命令数据和时钟同步数据,子引擎则发给主引擎仿真结果数据。等待时钟节拍内的所有需要仿真解算的子引擎回复仿真结束的过程中,主引擎推算下一个时钟节拍内需要进行仿真解算的子引擎。并且,子引擎回复仿真结束后,继续推进下一时钟节拍的需要进行仿真的子引擎的仿真解算。
9、可选地,在根据本技术的装置中,以基准步长为时钟节拍,将时钟节拍的每一拍都发送到相应子引擎的仿真模型中。若当前时钟节拍正好是相应仿真模型步长的整数倍时,则相应仿真模型会进行仿真解算。反之若当前时钟节拍正好不是相应仿真模型步长的整数倍时,则相应仿真模型不会进行仿真解算。
10、根据本技术的再一方面,提供了一种计算设备,包括:一个或多个处理器存储器。一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行如上任一方法的指令。
11、根据本技术的再一方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令在被计算设备执行时,使得计算设备执行如上的任一方法。
12、综上,根据本技术的方案,采用“主从子”模式架构来实现多个不同步长的仿真模型参与联合仿真时,在同一个时间尺上执行决策,进而保证仿真数据的协同性与一致性。“主从子”模式架构是把原来集中式的仿真引擎解耦,由主引擎向子引擎通过网络协议去推送时钟,主引擎承担加载模型、时钟同步、解析/发送仿真指令、仿真系统状态监视等任务。而子引擎则负责仿真以及解算等任务。本技术通过主引擎以基准步长作为仿真节拍,仿真的同时计算出应当发生数据交互的模型并计算下一节拍需要进行数据交互的模型,以此来推进整个仿真系统的时钟,能够保证多个不同步长的仿真模型均在正确的时间正确的位置收到正确的数据。
13、一般的集中式仿真引擎则不存在本技术这种主从子结构,单一引擎的结构导致一般的集中式仿真引擎无法做大规模分布式仿真,单台机器资源占用消耗大。而本技术的主引擎和子引擎支持分布在不同的机器上,可执行分布式仿真任务。
14、一般的集中式仿真引擎,不具备故障管理机制。本技术的装置的架构采用了主从结构,这种结构提供了主从引擎的选定的故障转移机制,一旦主引擎出现故障或者瘫痪了,从引擎能够立马切换,代替主引擎继续执行任务,进而实现故障自动处理和仿真的无缝衔接,及确保协同仿真结果精确可靠且效率高。
15、与现有技术相比,本发明的方法、装置及计算设备具有以下优点:
16、1、实现了多个不同步长的仿真模型参与联合仿真,确保所有参与仿真的子系统或实体在仿真过程中都使用相同的时间标尺,保证仿真的一致性和协同性。从仿真主引擎入手,易扩展开发对所有仿真模型的状态进行监测的功能,以保证整个仿真系统的实时健康状态。
17、2、整个仿真系统具备冗余管理功能,当仿真主引擎出现问题时,仿真从引擎能动态切换为仿真主引擎,继续推动仿真进行,保证仿真结果正确。
18、3、主引擎和子引擎支持分布在不同的机器上,可执行分布式仿真任务。
1.一种对仿真模型进行时钟同步的方法,其中,包括:
2.如权利要求1所述的方法,其中,协同仿真运算包括:
3.如权利要求2所述的方法,其中,推进各子引擎的协同仿真包括:
4.如权利要求1所述的方法,其中,自引擎列表中进行主引擎的选定包括:
5.如权利要求1所述的方法,其中,还包括:
6.一种对仿真模型进行时钟同步的装置,其特征在于,包括:
7.如权利要求6所述的装置,其中,
8.如权利要求7所述的装置,其中,
9.一种计算设备,包括:
10.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令在被计算设备执行时,使得所述计算设备执行如权利要求1-5中任一项所述的方法。
