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

基于分布式计算的目标碰撞检测方法

文献发布时间:2023-06-19 19:28:50


基于分布式计算的目标碰撞检测方法

技术领域

本发明涉及装备制造与计算机技术领域,尤其涉及一种基于分布式计算的目标碰撞检测方法。

背景技术

大型复杂装备毁伤性能评估的常用方式包括理论计算、仿真模拟和试验研究。随着计算机技术的不断发展,仿真模拟已经成为计算战斗部作用下目标毁伤效能的主要手段。战斗部的主要毁伤手段包括破片和冲击波。在计算机仿真模拟毁伤评估中,破片和目标之间的碰撞检测决定了仿真结果的准确性和精确性。但是,随着战斗部的结构不断优化,战斗部在装药作用下形成的破片数量不断增加,且目标的复杂程度不断增大,传统的物体和物体包围盒之间的碰撞检测方法远远不能满足大规模破片与复杂目标的碰撞检测仿真计算需求。

计算机仿真物体碰撞的传统方法是通过构建不同物体的包围盒,检测包围盒之间的碰撞。这种方法虽然能实现物体的碰撞检测,但是在应用大规模场景下静爆破片数量较多、目标较为复杂的情况下,会导致计算周期的增长、计算效率低下,甚至会出现计算资源不能满足计算需求导致无法得出计算结果的情况,严重影响研究人员的研究进展。与此同时,利用这种物体与物体之间的碰撞无法传递出碰撞物体的速度、碰撞物体的数量以及碰撞物体的穿透效果。研究人员无法对碰撞数据进行直观的查看,不利于研究人员进行数据对比和分析。

因此,如何能够提升碰撞检测的计算效率成为本领域技术人员亟待解决的技术问题。

发明内容

本发明提供了一种基于分布式计算的目标碰撞检测方法,解决相关技术中存在的碰撞检测计算效率低的问题。

作为本发明的一个方面,提供一种基于分布式计算的目标碰撞检测方法,其中,包括:

将目标划分为多个功能部件;

将仿真破片粒子群的运动轨迹等效为粒子群射线;

对每个功能部件均进行网格划分以获得多个部件网格,并根据部件网格构建面片包围盒;

根据所述粒子群射线与所述面片包围盒以及功能部件是否相交构建碰撞检测任务;

将所述碰撞检测任务分配至多个不同的计算节点进行计算,并获得每个计算节点反馈的计算结果。

进一步地,将目标划分为多个功能部件,包括:

根据目标的功能划分多个目标功能系统;

将每个目标功能系统均划分为多个功能部件,其中,每个功能部件均被配置部件编号;

根据目标功能系统以及功能部件构建目标结构树系统,其中所述目标结构树系统能够显示功能部件与目标功能系统的对应关系。

进一步地,将仿真破片粒子群的运动轨迹等效为粒子群射线,包括:

根据所述仿真破片粒子的运动起点以及运动终点将所述仿真破片粒子的运动轨迹等效为粒子群射线;

将所述粒子群射线划分为多个飞散区间,并对每个飞散区间进行编号;

存储每个飞散区间的粒子群射线的相关数据,其中所述相关数据包括每条粒子群射线的矢量信息、粒子速度衰减信息和粒子质量信息。

进一步地,对每个功能部件均进行网格划分以获得多个部件网格,并根据部件网格构建面片包围盒,包括:

针对每个功能部件根据功能的不同采用不同的网格划分形式进行划分以获得多个部件网格;

根据网格划分形式确定包围盒的构建形式以构建面片包围盒。

进一步地,针对每个功能部件根据功能的不同采用不同的网格划分形式进行划分以获得多个部件网格,包括:

判断功能部件是否属于预设关注部件;

若属于预设关注部件,则根据密集型网格划分方式对功能部件进行网格划分;

若不属于预设关注部件,则根据稀疏型网格划分方式对功能部件进行网格划分;

根据目标所属的模型种类确定网格划分的类型,其中所述网格划分的类型包括三角形网格。

进一步地,根据所述粒子群射线与所述面片包围盒是否相交构建碰撞检测任务,包括:

根据所述粒子群射线与所述面片包围盒所在平面是否相交以排除未发生碰撞的粒子群射线;

根据所述粒子群射线的平面投影与所述功能部件的平面投影是否相交以排除未发生碰撞的功能部件。

进一步地,根据所述粒子群射线与所述面片包围盒所在平面是否相交以排除未发生碰撞的粒子群射线,包括:

获取粒子群射线在不同飞散区间的最大飞散射线矢量极值和最小飞散射线矢量极值;

将每个飞散区间的最大飞散射线矢量极值和最小飞散射线矢量极值均与面片包围盒所在平面进行相交计算;

若所述最大飞散射线矢量极值和最小飞散射线矢量极值均未处于所述面片包围盒所在平面的坐标区间内,则判断该飞散区间未与所述面片包围盒所在平面相交,并排除该飞散区间;

若所述最大飞散射线矢量极值和最小飞散射线矢量极值均处于所述面片包围盒所在平面的坐标区间内,则判断该飞散区间与所述面片包围盒所在平面相交,并保留该飞散区间。

进一步地,根据所述粒子群射线的平面投影与所述功能部件的平面投影是否相交以排除未发生碰撞的功能部件,包括:

将所述粒子群射线向平面进行投影获得第一投影区域,以及将所述面片包围盒向平面进行投影获得第二投影区域;

根据所述第二投影区域与所述第一投影区域的相交区域确定发生碰撞的功能部件,并将所述第二投影区域中未与所述第一投影区域发生相交的区域所对应的功能部件排除。

进一步地,将所述碰撞检测任务分配至多个不同的计算节点进行计算,并获得每个计算节点反馈的计算结果,包括:

确定计算节点的计算能力等级;

根据单个粒子与所述面片包围盒碰撞检测计算量的大小对所述碰撞检测任务进行排序;

将所述碰撞检测任务按照单个粒子与所述面片包围盒碰撞检测计算量的不同分配至具有不同计算能力等级的计算节点,其中所述计算能力等级的高低与所述碰撞检测任务按照单个粒子与所述面片包围盒碰撞检测计算量的大小成正比;

获取并汇总每个计算节点反馈的计算结果。

进一步地,获取并汇总每个计算节点反馈的计算结果,包括:

以功能部件为名称存储每个面片包围盒的被碰撞信息,其中所述被碰撞信息包括碰撞次数、碰撞破片编号、碰撞破片速度、碰撞破片时间以及破片碰撞坐标数据,且碰撞次数表示该面片包围盒被所有破片粒子碰撞的总次数,碰撞破片编号表示该面片包围盒的破片编号,碰撞破片速度表示破片碰撞该面片包围盒的速度,碰撞破片时间表示破片碰撞该面片包围盒的时间,破片碰撞坐标表示破片碰撞该面片包围盒的碰撞点坐标。

本发明提供的基于分布式计算的目标碰撞检测方法,通过将目标划分为多个功能部件,并将仿真破片粒子群的运动轨迹等效为粒子群射线,进而通过粒子群射线与面片包围盒以及功能部件是否相交构建碰撞检测任务,都在一定程度上降低了计算量,最后通过分布式方式对碰撞检测任务进行计算则进一步提升了计算效率,为普通计算硬件环境下实现大规模复杂装备性能研究提供可能,节省研究人员对破片与目标碰撞检测的仿真模拟时间。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。

图1为本发明提供的基于分布式计算的目标碰撞检测方法的流程图。

图2为本发明提供的目标划分为多个功能部件的流程图。

图3为本发明提供的仿真破片粒子群等效为粒子群射线的流程图。

图4为本发明提供的破片飞散区间划分的二维视图。

图5为本发明提供的破片飞散区域划分的三维视图。

图6为本发明提供的构建面片包围盒的流程图。

图7a为本发明提供的单个破片轴向包围盒AABB的示意图。

图7b为本发明提供的多个破片轴向包围盒AABB的示意图。

图8为本发明提供的构建碰撞检测任务的流程图。

图9为本发明提供的排除未发生碰撞的粒子群射线的流程图。

图10为本发明提供的粒子区间相交判断示意图。

图11为本发明提供的排除未发生碰撞的功能部件的流程图。

图12为本发明提供的功能部件相交判断示意图。

图13为本发明提供的分布式计算的流程图。

图14为本发明提供的计算节点匹配的结构框图。

图15为本发明提供的碰撞检测计算的结果示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。下面将参考附图并结合实施例来详细说明本发明。

为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本实施例中提供了一种基于分布式计算的目标碰撞检测方法,图1是根据本发明实施例的基于分布式计算的目标碰撞检测方法的流程图,如图1所示,包括:

S100、将目标划分为多个功能部件;

对于超大复杂目标而言,目标是由不同的部件组成的。不同的部件组成了不同的功能系统,满足目标的使用需求。依据目标的不同功能功能可以划分为不同的功能部件。

在本发明实施例中,将目标划分为多个功能部件,如图2所示,包括:

S110、根据目标的功能划分多个目标功能系统;

根据目标的功能划分出目标的不同系统等级和名称;目标的系统等级可以独立划分为单个系统,也可划分成多个系统。

S120、将每个目标功能系统均划分为多个功能部件,其中,每个功能部件均被配置部件编号;

依据目标功能系统的实现功能将目标划分为不同的部件;目标功能系统的功能实现通常由不同的部件协同实现,将这些目标功能系统进行功能拆分,即可得到不同的功能部件。

S130、根据目标功能系统以及功能部件构建目标结构树系统,其中所述目标结构树系统能够显示功能部件与目标功能系统的对应关系。

应当理解的是,通过建立目标的结构树系统,可以直观的查看目标被拆分成部件数量和部件名称,以及直观地查看目标部件所属系统。

在将目标拆分成不同部件后,需要对部件进行编号,编号使用int类型,id_i为参数类型。编号的规则是依据不同的目标功能系统以及不同的功能部件进行设置。

S200、将仿真破片粒子群的运动轨迹等效为粒子群射线;

在本发明实施例中,为了便于后续的相交计算,将仿真破片粒子群的运动轨迹等效为粒子群射线。

具体地,如图3所示,包括:

S210、根据所述仿真破片粒子的运动起点以及运动终点将所述仿真破片粒子的运动轨迹等效为粒子群射线;

在本发明实施例中,等效破片运动轨迹为射线;仿真破片粒子的运动数据可以通过理论经验公式计算得到。仿真破片粒子运动存在起点和终点,起点即为战斗部壳体上一点,终点为仿真破片粒子运动速度为0m/s的点。将仿真破片粒子运动的起始点连接,即可将粒子的运动轨迹等效为射线。

S220、将所述粒子群射线划分为多个飞散区间,并对每个飞散区间进行编号;

对粒子群射线进行分组与编号,存储破片相关数据;如图4所示,粒子群的飞散在二维空间呈现周向分布和轴向分布;如图5所示,在三维空间内呈现出近似柱型分布。

如表1所示,本发明实施例可以在三维空间中切分粒子群为12个区间,每个区间的周向角度为30°。

S230、存储每个飞散区间的粒子群射线的相关数据,其中所述相关数据包括每条粒子群射线的矢量信息、粒子速度衰减信息和粒子质量信息。

对不同区间的射线进行编号,编号形式为“区间X+id_i”。区间X代表射线所处的空间,id_i代表射线的序号。针对任意一条粒子群射线,需要存储粒子群射线的矢量信息、粒子的速度衰减信息以及粒子的质量信息。

表1 粒子飞散区间划分表

S300、对每个功能部件均进行网格划分以获得多个部件网格,并根据部件网格构建面片包围盒;

在本发明实施例中,为了方便后续相交碰撞的检测,对每个功能部件进行网格划分,即每个功能部件均可以划分为多个部件网格。

具体地,如图6所示,对每个功能部件均进行网格划分以获得多个部件网格,并根据部件网格构建面片包围盒,包括:

S310、针对每个功能部件根据功能的不同采用不同的网格划分形式进行划分以获得多个部件网格;

应当理解的是,划分部件网格首先需要区分所关注的重要部件。针对这些重要部件采用密集型网格的划分方式,针对其他非重要部件采用稀疏型网格划分方式。然后确定网格划分的类型;由于目标采用的是面面模型,采用三角形网格进行划分;最后,分别依次导出不同部件的网格模型文件。

进一步具体地,针对每个功能部件根据功能的不同采用不同的网格划分形式进行划分以获得多个部件网格,包括:

判断功能部件是否属于预设关注部件;

若属于预设关注部件,则根据密集型网格划分方式对功能部件进行网格划分;

若不属于预设关注部件,则根据稀疏型网格划分方式对功能部件进行网格划分;

根据目标所属的模型种类确定网格划分的类型,其中所述网格划分的类型包括三角形网格。

应当理解的是,此处的预设关注部件具体可以为所关注的重要部件,通过构建一个预设关注部件表,将功能部件与该预设关注部件表中的预设关注部件进行比对以判断是否属于预设关注部件,如属于预设关注部件,则采用密集型网格划分方式,否则采用稀疏网格划分方式。

S320、根据网格划分形式确定包围盒的构建形式以构建面片包围盒。

在本发明实施例中,如图7a和图7b所示,首先可以采用轴向包围盒AABB的构建每个面片的包围盒,采用这种包围盒构建的原因在于部件网格采用的是三角形网格划分的方式。轴向包围盒AABB可以包络三角形网格的特征,提高碰撞检测的效率;然后构建不同面片的结构体,存储面片的点、线、面等特征;最后将面片信息保存在不同的部件中。

S400、根据所述粒子群射线与所述面片包围盒以及功能部件是否相交构建碰撞检测任务;

在本发明实施例中,通过粒子群射线与面片包围盒以及功能部件是否相交来排除未碰撞破片粒子群和未碰撞的功能部件,能够有效降低破片粒子群与部件不同面片的碰撞检测的次数,提高检测的效率。

即本发明实施例以是否与部件发生碰撞为标准,降低碰撞检测的破片粒子群数量;以及以是否与破片粒子发生碰撞为标准,降低碰撞检测的目标部件数量。

具体地,如图8所示,根据所述粒子群射线与所述面片包围盒是否相交构建碰撞检测任务,包括:

S410、根据所述粒子群射线与所述面片包围盒所在平面是否相交以排除未发生碰撞的粒子群射线;

在本发明实施例中,如图9所示,包括:

S411、获取粒子群射线在不同飞散区间的最大飞散射线矢量极值和最小飞散射线矢量极值;

在本发明实施例中,获取粒子群的不同飞散区间的破片飞散射线矢量极值,判断是否与功能部件相交。

S412、将每个飞散区间的最大飞散射线矢量极值和最小飞散射线矢量极值均与面片包围盒所在平面进行相交计算;

对于任一个粒子飞散区间而言,存在着最小射线矢量和最大射线矢量。通过判断破片极值射线矢量与部件面元所在平面的交点,判断交点是否处于部件面片构建的坐标区间内。

S413、若所述最大飞散射线矢量极值和最小飞散射线矢量极值均未处于所述面片包围盒所在平面的坐标区间内,则判断该飞散区间未与所述面片包围盒所在平面相交,并排除该飞散区间;

S414、若所述最大飞散射线矢量极值和最小飞散射线矢量极值均处于所述面片包围盒所在平面的坐标区间内,则判断该飞散区间与所述面片包围盒所在平面相交,并保留该飞散区间。

如图10所示,若最大极值射线和最小极值射线未处于区间内,则判断此破片区间与目标部件未碰撞,从12个粒子飞散区间内排除此区间。假定粒子飞散数量为m,功能部件的数量为n,则原碰撞次数为m*n;经过排除未与部件发生碰撞的粒子飞散区间,碰撞次数下降为x*n(其中x<

S420、根据所述粒子群射线的平面投影与所述功能部件的平面投影是否相交以排除未发生碰撞的功能部件。

在本发明实施例中,通过粒子群射线与功能部件的平面投影,判断目标的功能部件是否与粒子群相交。

具体地,如图11所示,根据所述粒子群射线的平面投影与所述功能部件的平面投影是否相交以排除未发生碰撞的功能部件,包括:

S421、将所述粒子群射线向平面进行投影获得第一投影区域,以及将所述面片包围盒向平面进行投影获得第二投影区域;

S422、根据所述第二投影区域与所述第一投影区域的相交区域确定发生碰撞的功能部件,并将所述第二投影区域中未与所述第一投影区域发生相交的区域所对应的功能部件排除。

如图12所示,将预处理后的粒子群向xy平面投影,同时将目标的功能部件向xy平面投影。判断目标各个功能部件是否与分散区间的粒子群射线方向相交,若不相交,则排除此功能部件。经过排除未与粒子群碰撞的目标功能部件,碰撞次数下降为x*y(其中y<

最后,将x个飞散区间的粒子群飞散与y个目标部件的碰撞检测事件存储为独立的碰撞检测任务。

S500、将所述碰撞检测任务分配至多个不同的计算节点进行计算,并获得每个计算节点反馈的计算结果。

在本发明实施例中,为了提升计算效率,将预处理后的粒子群射线x与目标部件y的碰撞检测任务分配到不同的计算节点计算。

具体地,如图13所示,将所述碰撞检测任务分配至多个不同的计算节点进行计算,并获得每个计算节点反馈的计算结果,包括:

S510、确定计算节点的计算能力等级;

S520、根据单个粒子与所述面片包围盒碰撞检测计算量的大小对所述碰撞检测任务进行排序;

S530、将所述碰撞检测任务按照单个粒子与所述面片包围盒碰撞检测计算量的不同分配至具有不同计算能力等级的计算节点,其中所述计算能力等级的高低与所述碰撞检测任务按照单个粒子与所述面片包围盒碰撞检测计算量的大小成正比;

S540、获取并汇总每个计算节点反馈的计算结果。

在本发明实施例中,首先需要划分计算节点能力等级,具体地通过遍历所有计算节点,获取不同计算节点的资源可调配情况;以CPU负载和内存为指标,划分计算节点能力等级为五个等级,分别为优秀,良好,中等,合格,不合格。其中优秀的CPU负载为70%以上+内存90%以上;良好的CPU负载为50%以上+内存70%以上;中等的CPU负载为30%以上+内存50%以上;合格的CPU负载为10%以上+内存30%以上;不合格的CPU负载为10%以下+内存30%以下。

其次,如图14所示,依据单个粒子与所述面片包围盒碰撞检测计算量大小为指标对计算任务进行排序。排序划分为五个等级,分别为计算量非常大、较大、一般、较小、非常小。其中,非常大的计算量为粒子射线与80%×y部件发生碰撞检测以上;较大的计算量为粒子射线与60%×y部件发生碰撞检测以上;一般的计算量为粒子射线与40%×y部件发生碰撞检测以上;较小的计算量为粒子射线与20%×y部件发生碰撞检测以上;非常小的计算量为粒子射线与20%×y部件发生碰撞检测以下。

再次,针对不同计算节点分配不同的计算任务。由于不同的任务的计算量不同,所需要的计算时间和计算资源也不同。将计算量等级和计算节点的性能进行匹配,将计算量大的任务分配到计算性能高的节点,将计算量小的任务分配到计算性能低的节点。这种分配方式可以实现最少的计算时间得出碰撞检测的结果。

最后,分配完成后,不同计算节点共同开展计算。通过粒子射线在三维场景中的的飞散轨迹,判断粒子射线与目标部件面片轴向包围盒之间的碰撞,记录粒子碰撞信息。任务节点管理器会同时监控各计算节点状态,将运行完成的任务结果反馈给主计算机节点。主计算机节点依据当前计算任务需要分配新的计算资源给空闲的计算节点,保证所有计算节点充分得到利用,如图15所示。

在本发明实施例中,获取并汇总每个计算节点反馈的计算结果,包括:

以功能部件为名称存储每个面片包围盒的被碰撞信息,其中所述被碰撞信息包括碰撞次数、碰撞破片编号、碰撞破片速度、碰撞破片时间以及破片碰撞坐标数据,且碰撞次数表示该面片包围盒被所有破片粒子碰撞的总次数,碰撞破片编号表示该面片包围盒的破片编号,碰撞破片速度表示破片碰撞该面片包围盒的速度,碰撞破片时间表示破片碰撞该面片包围盒的时间,破片碰撞坐标表示破片碰撞该面片包围盒的碰撞点坐标。如表2所示为结果汇总表。

表2 结果汇总表

综上,本发明提供的基于分布式计算的目标碰撞检测方法,通过将目标划分为多个功能部件,并将仿真破片粒子群的运动轨迹等效为粒子群射线,进而通过粒子群射线与面片包围盒以及功能部件是否相交构建碰撞检测任务,都在一定程度上降低了计算量,最后通过分布式方式对碰撞检测任务进行计算则进一步提升了计算效率,为普通计算硬件环境下实现大规模复杂装备性能研究提供可能,节省研究人员对破片与目标碰撞检测的仿真模拟时间。

另外,本发明提供的基于分布式计算的目标碰撞检测方法还具有以下优势:

(1)等效有向粒子群为射线并编号,更容易进行管理。

战斗部在装药作用下形成的破片数量都是十几万数量级以上的。虽然这些破片的飞散总体上呈现球形扩散,且这些破片都是数据控制的,但是用户无法直观地查看破片运动的轨迹路线,无法在仿真界面上查看破片碰撞目标面片的动态过程。这对于研究破片侵彻目标是十分不利的。通过将破片粒子群等效为射线,并按照法向30度划分为12组的方法,用户可以直观地查看射线与目标网格的碰撞交点。同时,编号的方式使得用户更好地对破片粒子群进行管理。

(2)采用分布式计算破片与目标的碰撞检测,提高了仿真的效率。

分布式计算在触发大量碰撞耦合任务时将会把任务传递给任务节点管理器,任务节点管理器会依据计算节点负载内存的指标去评估和排序可调配的计算机资源,通过分析计算量大小确定计算任务量,统筹匹配不同的子任务到各计算机节点。根据这种分配任务节点的方式可以充分地调动可支配的计算节点资源,所有的计算节点可以同时开展计算。同时,计算完成后节点会接收新的任务进行计算,保证不出现空闲节点。分布式计算有效地提高了仿真的效率,缩短了仿真的时间。

(3)预处理判断区间极值,降低碰撞检测的次数。

将破片粒子群矢量射线依据周向30°为一组的特定规则进行等比例划分,通过计算每组的极值判断该组内射线是否与目标的不同破片的网格面片发生碰撞,以此排除未碰撞粒子。另一方面,通过将破片粒子射线与目标功能部件向xy平面投影,判断目标功能部件是否与粒子射线相交,以此排除未相交的目标部件。通过降低破片碰撞粒子数量和目标碰撞部件数量,从而降低整体的破片碰撞检测数量,提高碰撞检测的效率。

(4)所有破片的运动都是数据控制,保证了结果的准确性。

碰撞检测算法中所有的破片运动都是基于数据驱动的,通过理论经验计算公式计算得到破片的飞散周向角和轴向角以及破片运动的速度衰减。破片的飞散周向角和轴向角是确定了破片的六个自由度在空间位置的变化,而破片的速度衰减是控制破片到达下一个位置的运动时间。将破片数据赋予到粒子群不同破片,实现了破片运动真实模拟,从而保证了碰撞检测结果的准确性。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

相关技术
  • 基于真实场景建模的虚拟驾驶目标碰撞检测方法
  • 一种基于目标行为的碰撞检测方法
技术分类

06120115925448