实体网络分布式物理仿真方法、装置、设备及存储介质与流程

文档序号:33504017发布日期:2023-03-17 23:01阅读:27来源:国知局
实体网络分布式物理仿真方法、装置、设备及存储介质与流程

1.本发明涉及分布式计算和工业仿真技术领域,特别涉及一种实体网络分布式物理仿真方法、装置、设备及存储介质。


背景技术:

2.现有技术中的物理仿真方法,通常是将需要模拟的物理数据分为“第一类数据”和“第二类数据”,定义和虚拟角色相关的物理模拟数据为第一类数据并放在本地进行模拟,其他物理模拟数据为第二类数据并交给多个远端设备进行模拟。
3.但是,现有技术中的数据分类方法并非分布式物理结算的核心难点,分布式物理结算核心难点在于交给多个远端设备进行模拟的数据如何进行实时同步和纠错,并且保证稳定的帧率。分布式物理仿真之所以始终没有突破,原因和数据如何划分无关,而在于如何在多终端之间同步物理信息并确保固定帧率以及模拟的稳定性。


技术实现要素:

4.本技术实施例提供了一种实体网络分布式物理仿真方法、装置、设备及存储介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
5.第一方面,本技术实施例提供了一种实体网络分布式物理仿真方法,包括:
6.对实体网络进行动态网格划分;
7.在每个网格内部署节点服务器,根据节点服务器并行计算不同网格上的物理仿真数据;
8.将节点服务器与一个或多个聚合服务器相连,将物理仿真数据存储在聚合服务器中,通过聚合服务器发送到客户端。
9.在一个可选地实施例中,对实体网络进行动态网格划分,包括:
10.获取实体网络;
11.根据预设的网格划分参数将实体网络划分为多个网格,每个网格内的计算负载小于等于预设负载阈值;
12.当网格内的负载大于预设负载阈值时,将大于预设负载阈值的网格继续划分为多个网格,直到每个网格内的负载小于等于预设负载阈值。
13.在一个可选地实施例中,在每个网格内部署节点服务器,根据节点服务器计算不同网格上的物理仿真数据,包括:
14.通过节点服务器以及物体约束信息对所属网格内的物体进行位置解算,得到第一位置解算信息,向周围相邻节点服务器广播第一位置解算信息,等待周围相邻节点服务器返回的第二位置解算信息,合并第一位置解算信息和第二位置解算信息,得到第三位置解算信息;
15.通过节点服务器以及物体约束信息对所属网格内的物体进行速度解算,得到第一速度解算信息,并向周围相邻节点服务器广播第一速度解算信息,等待周围相邻节点服务器返回的第二速度解算信息,合并第一速度解算信息和第二速度解算信息,得到第三速度解算信息;
16.根据第三位置解算信息以及第三速度解算信息,确定物体和物体的约束信息所属的新网格,根据新网格中的节点服务器再次计算物体的物理仿真数据。
17.在一个可选地实施例中,根据第三位置解算信息以及第三速度解算信息,确定物体所属的新网格,包括:
18.根据第三位置解算信息以及第三速度解算信息,确定物体的迁移信息;
19.根据迁移信息得到物体当前所属的网格,将物体加入到所有存在相交节点网格的节点服务器中。
20.在一个可选地实施例中,根据第三位置解算信息以及第三速度解算信息,确定物体的约束信息所属的新网格,包括:
21.根据第三位置解算信息以及第三速度解算信息,确定与物体存在约束信息的物体;
22.当物体之间存在约束信息时,查找存在约束信息的物体之间共有的节点服务器;
23.将约束信息加入到共有的节点服务器中。
24.在一个可选地实施例中,将约束信息加入到共有的节点服务器中,包括:
25.当共有的节点服务器有多个时,对多个共有的节点服务器按照预设编号进行从小到大排序;
26.将约束信息加入到编号最小的共有的节点服务器中。
27.在一个可选地实施例中,确定物体和物体的约束信息所属的新网格之后,还包括:
28.向周围相邻的节点服务器广播物体和约束信息的新网格信息。
29.第二方面,本技术实施例提供了一种实体网络分布式物理仿真装置,包括:
30.网格划分模块,用于对实体网络进行动态网格划分;
31.并行计算模块,用于在每个网格内部署节点服务器,根据节点服务器并行计算不同网格上的物理仿真数据;
32.数据发送模块,用于将节点服务器与一个或多个聚合服务器相连,将物理仿真数据存储在聚合服务器中,通过聚合服务器发送到客户端。
33.第三方面,本技术实施例提供了一种电子设备,包括处理器和存储有程序指令的存储器,处理器被配置为在执行程序指令时,执行上述实施例提供的一种实体网络分布式物理仿真方法。
34.第四方面,本技术实施例提供了一种计算机可读介质,其上存储有计算机可读指令,计算机可读指令被处理器执行以实现上述实施例提供的一种实体网络分布式物理仿真方法。
35.本技术实施例提供的技术方案可以包括以下有益效果:
36.本技术实施例提供的实体网络分布式物理仿真方法,通过将实体网络划分为多个网格,在网格内负载增大时,还可以动态改变网格的数量,解决超大规模实体网络无限扩展的问题。通过在每个网格内部署节点服务器,通过多个节点服务器并行计算仿真数据,实现
在不同终端之间同步物理仿真数据。且采用数据和计算分离的架构,设计了聚合服务器存储不同节点的仿真数据,避免了客户端和节点服务器之间频繁的连接切换,确保客户端可稳定获得物理模拟数据。
37.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
38.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
39.图1是根据一示例性实施例示出的一种实体网络分布式物理仿真方法的流程示意图;
40.图2是根据一示例性实施例示出的一种节点服务器进行并行计算的流程示意图;
41.图3是根据一示例性实施例示出的一种确定物体归属的示意图;
42.图4是根据一示例性实施例示出的一种节点服务器与聚合服务器相连的示意图;
43.图5是根据一示例性实施例示出的一种实体网络分布式物理仿真装置的结构示意图;
44.图6是根据一示例性实施例示出的一种电子设备的结构示意图;
45.图7根据一示例性实施例示出的一种计算机存储介质的示意图。
具体实施方式
46.以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
47.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
48.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。
49.目前,分布式物理仿真之所以始终没有突破,原因和数据如何划分无关,而在于如何在多终端之间同步物理信息并确保固定帧率以及模拟的稳定性。
50.基于此,本技术实施例提供了一种实体网络分布式物理仿真方法,使用分布式物理仿真技术解决可无限拓展超大规模虚拟世界的物理仿真,在不同终端之间同步物理仿真数据,并保证模拟的正确性、稳定性;将不同终端之间仿真得到的数据进行整合,并实时稳定反馈给客户端。
51.下面将结合附图1对本技术实施例提供的实体网络分布式物理仿真方法进行详细介绍。参见图1,该方法具体包括以下步骤。
52.s101对实体网络进行动态网格划分。
53.在一种可能的实现方式中,获取实体网络,根据预设的网格划分参数将实体网络
划分为多个网格,每个网格内的计算负载小于等于预设负载阈值。
54.具体地,对实体网络构成的虚拟大世界进行网格剖分,每个格子是对应一台计算服务器,称作节点服务器。这里要确保划分格子的大小大于实体网络内所有物体的最大刚体的尺度,避免大型刚体横跨一整个节点服务器区域。
55.在进行网格划分时,可以划分成正方形网格、长方形网格、平面四边形网格、菱形等多种形状,本技术实施例不做具体限定,根据划分的网格形状和大小得到网格划分参数,根据网格划分参数对实体网络进行网格划分。确保每个网格内的计算负载低于预设负载阈值。其中,预设负载阈值可根据实际情况自行设定。
56.每个网格的大小有限,当局部负载过大物理约束过多时,可以对网格数量进行动态调整,确保运算负载均衡,当网格内的负载大于预设负载阈值时,将大于预设负载阈值的网格继续划分为多个网格,直到每个网格内的负载小于等于预设负载阈值。因此随着网络的扩展,每个节点服务器的通信和运算负载不会增大,只需要加入新的节点服务器即可,因此该方案可以对无限拓展超大规模世界进行物理仿真。
57.根据该步骤,通过进行动态网格划分,可对大规模实体网络进行扩展。
58.s102在每个网格内部署节点服务器,根据节点服务器并行计算不同网格上的物理仿真数据。
59.在一种可能的实现方式中,每个网格包含一个节点服务器,通过节点服务器计算网格内的物理仿真数据。在一个示例性实施例中,网格为正方形,由于每个网格的物体最多收到来自相邻网格的约束作用,因此每个节点服务器只需要与自己周围8个格子的节点服务器进行双向连接通信。
60.伴随着上述技术方案,出现了两个新的问题。首先该方案需要不同节点同时处理物理世界约束,传统约束迭代算法有严格的前后依赖关系,难以拆分到不同节点进行并行化运算。为此,本技术采用了新的迭代算法,使得物理约束可以被并行处理,每个网格同时进行计算,并将计算的物理仿真数据在周围网格之间同步。
61.在一个实施例中,根据节点服务器并行计算不同网格上的物理仿真数据,包括:通过节点服务器以及物体约束信息对所属网格内的物体进行位置解算,得到第一位置解算信息,向周围相邻节点服务器广播第一位置解算信息,等待周围相邻节点服务器返回的第二位置解算信息,合并第一位置解算信息和第二位置解算信息,得到第三位置解算信息。
62.通过节点服务器以及物体约束信息对所属网格内的物体进行速度解算,得到第一速度解算信息,并向周围相邻节点服务器广播第一速度解算信息,等待周围相邻节点服务器返回的第二速度解算信息,合并第一速度解算信息和第二速度解算信息,得到第三速度解算信息。
63.根据第三位置解算信息以及第三速度解算信息,确定物体和物体的约束信息所属的新网格,根据新网格中的节点服务器再次计算物体的物理仿真数据。得到物体的实时仿真数据。
64.具体地,采用sub-stepping+jacobi方案进行迭代计算,如图2所示,当前网格内的节点服务器,根据当前位置,预测节点服务器中物体下一帧的位置,根据预测位置,生成本节点服务器约束,求解服务器内所有约束,包括碰撞约束或物体和物体之间的约束等,得到解算的第一位置信息。向周边相邻的节点服务器广播第一位置信息,并等待周边节点服务
器返回的求解结果,合并周边相邻节点服务器求解的所有结果,得到新的位置信息。
65.进一步地,计算本节点服务器速度更新结果,向周围节点服务器广播速度更新结果,并等待周围节点服务器返回的速度求解结果,合并所有速度求解信息,得到新的速度信息。
66.进一步地,根据新的速度信息和位置信息重新确定物体和物体约束的网格归属,向周边节点服务器更新物体和物体约束的归属信息。整个流程中有3次等待,分别对应位置解算同步,速度解算同步和物体迁移信息同步。
67.其中,根据第三位置解算信息以及第三速度解算信息,确定物体所属的新网格,包括:根据第三位置解算信息以及第三速度解算信息,确定物体的迁移信息,根据迁移信息得到物体当前所属的网格,将物体加入到所有存在相交节点网格的节点服务器中。
68.在一个实施例中,根据物体新的速度信息和新的位置信息,确定物体可能发生的迁移,根据迁移信息重新确定物体的网格归属。在坐标系中将物体用矩形包围起来,计算物体的包围盒与格子相交情况,并将其加入到所有存在相交的节点服务器中。图3是根据一示例性实施例示出的一种确定物体归属的示意图,如图3所示,物体a与网格1、网格2、网格4以及网格5相交,将同时属于1、2、4、5四个节点服务器。
69.根据第三位置解算信息以及第三速度解算信息,确定物体的约束信息所属的新网格,包括:根据第三位置解算信息以及第三速度解算信息,确定与物体存在约束信息的物体,当物体之间存在约束信息时,查找存在约束信息的物体之间共有的节点服务器,将约束信息加入到共有的节点服务器中。
70.在一个可选地实施例中,当共有的节点服务器有多个时,对多个共有的节点服务器按照预设编号进行从小到大排序,将约束信息加入到编号最小的共有的节点服务器中。
71.例如,假设物体a和b之间存在约束k,查找a和b共存的节点服务器,对这些服务器按照编号进行排序,由编号最小的节点服务器负责该约束k的解算。例如,物体a和物体b共存的节点服务器只有2号节点服务器,因此约束k归属2号节点服务器;物体a和物体c共存的节点服务器有4号、5号、6号,按照排序规则,约束归属于4号节点服务器。其中,节点服务器的序号本领域技术人员可预先配置。
72.在一种可能的实现方式中,约束分为常驻约束和临时约束,常驻约束为一些预先配置的约束,常驻约束会随着物体在服务器之间迁移而同步发生迁移。临时约束例如碰撞约束,为每个节点服务器在自己的计算步骤里全量生成,因此不需要考虑迁移。但同样需要考虑其所有权应当只属于一个节点服务器。
73.不同节点服务器的计算结果合并起来,才能构成整个实体网络的计算结果,根据该步骤,多个节点服务器并行计算物理仿真数据,并将计算的仿真数据在不同节点服务器之间传播,实现在不同终端之间同步物理仿真数据。
74.s103将节点服务器与一个或多个聚合服务器相连,将物理仿真数据存储在聚合服务器中,通过聚合服务器发送到客户端。
75.在一种可能的实现方式中,物体角色可以在实体网络中移动迁移,由于网络被划分成了不同的网格,而不同网格是由不同节点构成的,可能会在不同节点之间频繁跳跃,当通过节点服务器向客户端传输数据时,会导致客户端和节点服务器之间的频繁重连,这可能会影响客户端帧率的稳定性。
76.为了解决这个问题,本技术实施例采用了数据和计算分离的架构,分别设立节点服务器和聚合服务器,将节点服务器的计算结果储存在聚合服务器中,每个聚合服务器负责多个节点服务器,聚合服务器会有节点重合,客户端只需要连接聚合服务器,这样就避免了客户端频繁切换连接的问题。
77.图4是根据一示例性实施例示出的一种节点服务器与聚合服务器相连的示意图。
78.如图4所示,本技术实施例设计了聚合服务器来保存多个节点服务器的运算结果。一个节点服务器的运算结果可以被多个聚合服务器保存,例如,图中的1号节点服务器的数据就同时保存在0号聚合服务器和1号聚合服务器中,客户端只需要在离开聚合服务器时进行连接切换。
79.在一个示例性场景中,考虑如下用户行为路径,用户从0号节点经过1号节点走到2号节点,然后再原路返回。行进过程中路径可能存在抖动。如果不设计聚合服务器,那么用户在经过服务器边界(例如0-1)边界时,就需要频繁在0号节点服务器和1号节点服务器之间进行切换来获得正确数据,这样会导致数据不稳定。
80.设计聚合服务器时,用户只需要在离开1号聚合服务器到2号聚合服务器的时候切换一次聚合服务器,以及在返回时离开1号聚合服务器到0号聚合服务器的时候切换一次聚合服务器,这样就避免了连接的不稳定。
81.本技术通过聚合服务器与客户端相连,可以将稳定的物理仿真数据,例如物体速度、位置等物理状态信息传送到客户端。
82.根据本技术实施例提供的实体网络分布式物理仿真方法,通过动态网格划分,可支持超大实际的物理仿真,并将仿真结果实时传递给客户端;该方案对大规模物理世界进行动态网格划分,使用不同的节点服务器处理不同网格上的物理模拟。对于网格之间的物理模拟,设计了一套约束和物体归属的规则。实现了同一物理世界物理约束的分布式计算。保证数据在多个客户端之间同步。
83.此外,本技术实施例还设计了聚合服务器存储不同节点服务器的仿真数据,避免了客户端和节点服务器之间频繁的连接切换,确保客户端可稳定获得物理模拟数据。
84.本技术实施例还提供一种实体网络分布式物理仿真装置,该装置用于执行上述实施例的实体网络分布式物理仿真方法,如图5所示,该装置包括:
85.网格划分模块501,用于对实体网络进行动态网格划分;
86.并行计算模块502,用于在每个网格内部署节点服务器,根据节点服务器并行计算不同网格上的物理仿真数据;
87.数据发送模块503,用于将节点服务器与一个或多个聚合服务器相连,将物理仿真数据存储在聚合服务器中,通过聚合服务器发送到客户端。
88.需要说明的是,上述实施例提供的实体网络分布式物理仿真装置在执行实体网络分布式物理仿真方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实体网络分布式物理仿真装置与实体网络分布式物理仿真方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
89.本技术实施例还提供一种与前述实施例所提供的实体网络分布式物理仿真方法
对应的电子设备,以执行上述实体网络分布式物理仿真方法。
90.请参考图6,其示出了本技术的一些实施例所提供的一种电子设备的示意图。如图6所示,电子设备包括:处理器600,存储器601,总线602和通信接口603,处理器600、通信接口603和存储器601通过总线602连接;存储器601中存储有可在处理器600上运行的计算机程序,处理器600运行计算机程序时执行本技术前述任一实施例所提供的实体网络分布式物理仿真方法。
91.其中,存储器601可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口603(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
92.总线602可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器601用于存储程序,处理器600在接收到执行指令后,执行程序,前述本技术实施例任一实施方式揭示的实体网络分布式物理仿真方法可以应用于处理器600中,或者由处理器600实现。
93.处理器600可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器600中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器600可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器601,处理器600读取存储器601中的信息,结合其硬件完成上述方法的步骤。
94.本技术实施例提供的电子设备与本技术实施例提供的实体网络分布式物理仿真方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
95.本技术实施例还提供一种与前述实施例所提供的实体网络分布式物理仿真方法对应的计算机可读存储介质,请参考图7,其示出的计算机可读存储介质为光盘700,其上存储有计算机程序(即程序产品),计算机程序在被处理器运行时,会执行前述任意实施例所提供的实体网络分布式物理仿真方法。
96.需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
97.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的实体网络分布式物理仿真方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
98.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
99.以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1