CN113888668A - 并行化的车辆碰撞分析 - Google Patents

并行化的车辆碰撞分析 Download PDF

Info

Publication number
CN113888668A
CN113888668A CN202110748575.1A CN202110748575A CN113888668A CN 113888668 A CN113888668 A CN 113888668A CN 202110748575 A CN202110748575 A CN 202110748575A CN 113888668 A CN113888668 A CN 113888668A
Authority
CN
China
Prior art keywords
rep
point contact
algorithm
point
sphere
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.)
Pending
Application number
CN202110748575.1A
Other languages
English (en)
Inventor
M·黑内尔特
H·蒂尔赫姆
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.)
Dassault Systemes Deutschland GmbH
Original Assignee
Dassault Systemes Deutschland GmbH
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 Dassault Systemes Deutschland GmbH filed Critical Dassault Systemes Deutschland GmbH
Publication of CN113888668A publication Critical patent/CN113888668A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/66Analysis of geometric attributes of image moments or centre of gravity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Processing Or Creating Images (AREA)
  • Automobile Manufacture Line, Endless Track Vehicle, Trailer (AREA)

Abstract

本发明特别涉及一种用于车辆碰撞分析的计算机实现的方法。该方法包括提供表示车辆外表面的B‑Rep,该B‑Rep具有面。该方法包括为接触球体提供半径值。该方法还包括针对半径值确定B‑Rep的一个或多个两点接触曲线。该确定包括,对于B‑Rep的多个部分对中的每个相应部分对,相应的两点接触曲线计算算法。该计算算法基于相应的部分对。该计算算法在多个部分对上并行化。该方法形成了用于车辆碰撞分析的改进解决方案。

Description

并行化的车辆碰撞分析
技术领域
本发明涉及计算机程序和系统领域,并且更具体地说,涉及一种用于车辆碰撞分析的方法、系统和程序。
背景技术
市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩略词,例如它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的缩写,例如它涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩略词,例如它涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要的作用。这些技术可能嵌入在产品生命周期管理(PLM)系统中。PLM指的是一种商业战略,其帮助企业共享产品数据,应用通用流程,并利用企业知识进行从概念到产品生命尽头的跨越扩展企业概念的产品开发。达索系统(Dassault Systèmes)(以CATIA、ENOVIA和DELMIA为商标)提供的PLM解决方案提供了一个组织产品工程知识的工程中心、一个管理制造工程知识的制造中心和一个使企业集成和连接工程和制造中心的企业中心。整个系统提供了一个开放的对象模型,其链接产品、流程和资源,以实现动态的、基于知识的产品创建和决策支持,从而推动优化的产品定义、制造准备、生产和服务。
CAD解决方案可用于车辆碰撞分析,特别是为了分析易发生在车辆(内部或外部)外表面上的人体部位(例如,头部或膝盖)的影响(基于代表外表面的车辆的CAD模型)。达索系统提供的软件解决方案尤其提供了此类功能(商标为ICEM Surf)。
车辆碰撞分析可以包括车辆碰撞诊断,其本质上可以是头部碰撞诊断(为方便起见,在下文中也称为“HID”,在考虑与头部以外的其他人体部位(例如,膝盖)的碰撞时也使用相同的首字母缩略词)。这种诊断属于汽车或其他乘用车和商用车的安全分析范围。在这种上下文下,汽车公司必须遵守某些规范和/或规定。此类条款的示例在欧盟和美国由以下法规规定:
-ECE-R 26乘用车(欧盟,外部);
-ECE-R 61商用车(欧盟,外部);
-FMVSS 208正面碰撞(美国,外部);
-ECE-R21驾驶舱结构(欧盟,内部);
-FMVSS 201仪表板(美国,内部)。
在批准车辆批量生产之前,必须在每辆新车的设计过程中彻底检查这些规范,并接受相关当局的控制过程。规范特别关注车辆内部和外部的静态几何分析,其中人体部位(例如,头部或膝盖)被建模为具有适当尺寸的球体。然后分析会考虑几何情况,这些情况被描述为附接在车辆外部/内部的接触球体。接触球体针对行人或乘客的头部/膝盖对车辆的碰撞进行建模。这些情况特别重要,因为它们代表了精确的时间点,其中,可以基于接触点的数量、他们彼此之间的距离以及车辆外表面在接触点处的曲率来估计施加到人体上的力。
因此,已经开发了软件解决方案以提供用于车辆碰撞分析的计算机实施方法,其中该方法包括提供表示车辆外表面的CAD模型、提供接触球体的半径值以及针对半径值确定CAD模型的一个或多个接触几何体。
特定的现有解决方案特别允许自动确定表示车辆外表面的网格的单点接触顶点和非接触顶点。这些特定的现有解决方案提供了一个全局HID,它仅适用于输入几何体的细分。其他特定的现有解决方案允许确定代表车辆外表面的网格的两点接触位置。然而,这些其他特定的现有解决方案不准确且不符合人体工程学,因为它们特别依赖于大量的手动预处理和后处理。
在此上下文下,仍然需要改进的用于车辆碰撞分析的解决方案。
发明内容
因此,提供了一种用于车辆碰撞分析的计算机实现的方法。该方法包括提供代表车辆外表面的B-Rep,B-Rep具有面。该方法包括为接触球体提供半径值。该方法还包括针对半径值确定B-Rep的一个或多个两点接触曲线。该确定包括,对于B-Rep的多个部分对中的每个相应的部分对,相应两点接触曲线计算算法。该计算算法包括相应的部分对。该计算算法在多个部分对上并行化。
该方法可以包括以下一项或多项:
-所述多个部分对中的每个部分对的每个部分是所述B-Rep的相应面;
-该确定包括细分B-Rep以及处理所述细分,所述处理包括:
○针对半径值,识别单点接触顶点和非接触顶点;
○定义过渡边,每个过渡边由相应的单点接触顶点和相应的非接触顶点界定;以及
该计算算法对于每个相应的部分对,将相应的部分对的相应过渡边集合作为输入;
-所述细分在所述部分集合上并行化,所述处理和所述计算算法在所述细分已经结束之后被执行;
-所述处理在所述部分集合上并行化,在所述处理已经结束之后执行所述计算算法;
○对于每个相应的部分对,该计算算法包括,迭代地并且直到相应的过渡边集合为空:
○从相应的过渡边集合中选择一条过渡边;
○尝试基于所选择的过渡边跟踪两点接触曲线;
○如果该跟踪尝试成功,则从相应的过渡边集合中删除与所跟踪的两点接触曲线相交的所有过渡边;以及
○从相应的过渡边集合中删除所选择的过渡边。
-B-Rep的每个面由相应的表面参数化支持,所述跟踪包括积分相应的微分方程,该微分方程基于相应的部分对的表面参数化对。
-确定(S30)包括:
○尝试建立一对或多对候选起始点,每个候选起始点属于相应部分对的相应部分,每对候选起始点被尝试基于相应部分对的相应过渡边缘来建立;以及
如果建立尝试成功,则在所述计算算法中:
○所选择的过渡边是相应的过渡边,基于该过渡边,确定(S30)成功地建立了相应的候选起始点对;并且
○跟踪尝试包括:
■尝试从相应的候选起始点对开始寻找属于两点接触曲线的相应的初始点;以及
■如果该寻找尝试成功,则从相应的初始点开始跟踪两点接触曲线。
-该建立尝试包括二等分所述相应部分对的每个相应的过渡边;和/或
-该建立尝试在多个部分对或在部分集合上并行化。
还提供了一种包括指令的计算机程序,当由处理器执行时,所述指令使处理器执行该方法。
还提供了一种其上记录有计算机程序的计算机可读存储介质。
还提供了一种系统,该系统包括耦合到存储器的处理器,该存储器在其上记录有计算机程序。
附图说明
现在将通过非限制性示例并参考附图描述本发明的实施例,其中:
-图1示出了该方法的示例的流程图;
-图2示出了系统的图形用户界面的示例;
-图3示出了系统的示例;
-图4-8示出了B-Rep格式;以及
-图9-50示出了该方法的实现,包括测试原型的屏幕截图(作为真实屏幕截图,其可以是彩色的和/或可以包含小字符)。
具体实施方式
参考图1,它提供了一种用于车辆碰撞分析的计算机实现的方法。该方法包括提供S10表示车辆外表面的B-Rep。B-Rep具有面。该方法还包括提供S20接触球体的半径值。该方法然后包括针对半径值确定S30 B-Rep的一条或多条两点接触曲线。这已经形成了车辆碰撞分析的改进解决方案。
由于在S30处针对半径值确定一条或多条两点接触曲线,该方法允许分析对车辆的两点接触碰撞。多点接触碰撞对于分析特别重要,因为这些是碰撞期间时间点的几何模型,其中大部分碰撞力卸载在人体的考虑部分上。
由于该方法在S10提供车辆外表面的CAD模型,特别是B-Rep,所确定的曲线是B-Rep的曲线。结果,该方法输出两点接触碰撞的相对准确的几何表示。实际上,B-Rep是车辆外表面的连续的(因此特别精确的)表示,使得该方法的输出相对准确,因为曲线至少准确地定位在所述精确表示上。相对于外表面的网格表示,精度显著提高。实际上,网格通常源于更精确的CAD模型(甚至可能是B-Rep)的细分,并且在任何情况下都会通过构造呈现近似/离散化误差(即细分精度)来呈现。
根据该方法的第一方面,确定S30可以包括,对于每个相应的两点接触曲线(其在S30处被确定),求解相应的微分方程。相应的微分方程基于B-Rep。这进一步改进了车辆碰撞分析。
由于求解每条两点接触曲线的微分方程,该方法以明确定义的方式确定每条两点接触曲线,从而产生准确的结果。此外,由于微分方程基于B-Rep,即基于车辆外表面的连续的(因此特别精确的)表示,因此两点接触曲线形成了两点接触碰撞的特别准确表示。实际上,求解基于所述精确表示,从而产生特别准确的结果。
与基于外表面的网格表示的求解相比,精度显著提高。这与两点碰撞分析特别相关。
根据该方法的第二方面,确定S30可以包括,对于B-Rep的多对部分中的相应的每一对部分,基于相应对的部分的相应两点接触曲线计算算法。计算算法在多对部分上并行化。这进一步改进了车辆碰撞分析。
由于计算算法的并行化,该方法实现了计算效率。由于并行化是在B-Rep的多对部分上进行的,因此来自并行计算的增益特别高,并且计算算法的并行线程特别安全。实际上,两点接触碰撞发生在车辆外表面的一对部分之间。该方法考虑到这一点以充分并行化计算。
该方法的第一方面和第二方面可以组合。在这种情况下,根据第二方面,确定S30包括针对B-Rep的多对部分中的相应的每一对部分,基于相应对部分的两点接触曲线计算算法。并且确定还包括,根据第一方面,对于在计算算法的并行化线程内确定的一个或多个相应的两点接触曲线(例如,对于每个这样的相应的两点接触曲线),求解基于B-Rep的相应的微分方程。
可替代地,该方法可以呈现第一方面但不呈现第二方面。在这种情况下,计算算法可能是非并行化的,或者是在不同线程上并行化的。可替代地,该方法可以呈现第二方面而不呈现第一方面。在这种情况下,两点接触曲线计算算法可能会排除任何基于B-Rep的微分方程的求解,甚至完全排除任何微分方程。
该方法是计算机实现的。这意味着该方法的步骤(或实质上所有步骤)由至少一台计算机或任何类似系统执行。方法的计算机实现的典型示例是用适合此目的的系统来执行该方法。该系统可以包括耦合到存储器的处理器,该存储器上记录有包括用于执行该方法的指令的计算机程序。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括几个不同的物理部分(例如,一个用于程序,并且一个可能用于数据库)。该系统还可以包括耦合到处理器的图形用户界面(GUI)。
因此,该方法的步骤由计算机执行,可能是全自动的,或半自动的。在示例中,该方法的至少一些步骤的触发可以通过用户-计算机交互来执行。所需的用户与计算机交互的级别可能取决于可预见的自动化级别,并与实现用户愿望的需要保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
具体地,该方法可以通过用户交互执行B-Rep的提供S10和半径的提供S20。然后,该方法可以完全自动地执行确定S30。换言之,该方法可以完全自动地执行根据第一方面的微分方程的设置和/或求解,和/或并行线程的设置(包括B-Rep的部分对的定义)和/或根据第二方面的点接触曲线计算算法的执行(在每个并行线程内,即,在每个定义的对上)。
在示例中,该方法可以包括:
-通过用户交互提供S10 B-Rep;
-由用户触发车辆碰撞分析功能;
-通过用户交互提供S20半径;并且然后
-全自动确定S30。
B-Rep是3D CAD建模对象,即已经设计或正在用CAD系统设计的3D建模对象。因此,该方法是3D CAD设计过程的一部分,而3D CAD设计过程本身就是制造过程的一部分。
建模对象是由存储的数据(例如,在数据库中)定义的任何对象。通过扩展,表述“建模对象”指的是数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。该系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的任何组合。在那些不同的系统中,建模对象由对应的数据定义。因此可以说CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统并不是相互排斥的,因为建模对象可以由对应于这些系统的任意组合的数据来定义。因此,一个系统很可能既是CAD系统又是PLM系统。
CAD系统还意味着至少适用于基于建模对象的图形表示设计建模对象的任何系统,例如CATIA。在这种情况下,定义建模对象的数据包括允许表示建模对象的数据。例如,CAD系统可以使用边或线(在某些情况下使用面或表面)来提供CAD建模对象的表示。线、边、面或表面可以以各种方式表示,例如非均匀有理B样条(NURBS)。具体而言,CAD文件包含规范,从中可以生成几何图形,进而允许生成表示。建模对象的规范可以存储在单个CAD文件或多个CAD文件中。代表CAD系统中建模对象的文件的典型大小在每个部件1兆字节的范围内。并且,车辆通常可能是由数千个部件组成的组件。
在CAD的上下文中,建模对象通常可以是3D建模对象。“3D建模对象”是指通过允许其3D表示的数据建模的任何对象。3D表示允许从相应角度查看对象。例如,一个3D建模对象,当以3D表示时,可以被处理并绕其任何轴转动,或绕显示该表示的屏幕中的任何轴转动。这尤其排除不是3D建模的2D图标。
3D建模对象可以表示在完成车辆碰撞分析之后要在现实世界中制造的车辆的几何体。车辆可以是乘用车和/或商用车。车辆可以是陆地车辆,例如汽车、卡车、摩托车、公共汽车或火车。车辆可以是飞行载具,例如飞机、直升机或空域载具。车辆可以是海上载具,例如商船、近海设备、游艇或工作船。
图2示出了系统的GUI的示例,其中该系统是CAD系统。在图中,3D建模对象是制动组件,而不是车辆的外表面。但是,该图仅用于说明CAD系统及其功能。
GUI 2100可以是典型的类似CAD的界面,具有标准菜单栏2110、2120以及底部和侧边工具栏2140、2150。这样的菜单和工具栏包含一组用户可选择的图标,每个图标与如本领域已知的一种或多种操作或功能相关联。这些图标中的一些与软件工具相关联,适用于编辑和/或工作于GUI 2100中显示的3D建模对象2000。软件工具可以分组到工作台中。每个工作台都包含一个软件工具子集。特别地,其中一个工作台是编辑工作台,适用于编辑被建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分,并且然后发起操作(例如,改变尺寸、颜色等)或通过选择适当的图标来编辑几何约束。例如,典型的CAD操作是对屏幕上显示的3D建模对象的冲压或折叠进行建模。GUI可以例如显示与显示的产品2000相关的数据2500。在图中的示例中,显示为“特征树”的数据2500及其3D表示2000属于包括制动钳和制动盘的制动组件。GUI可以进一步显示各种类型的图形工具2130、2070、2080,例如用于促进对象的3D定向、用于触发对编辑的产品的操作的模拟或呈现所显示产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。
图3示出了系统的示例,其中该系统是客户端计算机系统,例如用户的工作站。
该示例的客户端计算机包括连接至内部通信总线1000的中央处理单元(CPU)1010、也连接至总线的随机存取存储器(RAM)1070。客户端计算机还被提供有图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM盘1040。上述任何内容可以通过专门设计的ASIC(专用集成电路)进行补充或合并于其内。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号生成设备,用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。可替代地或附加地,客户端计算机系统可以包括敏感垫和/或敏感屏幕。
该计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的单元。该程序可以可记录在任何数据存储介质上,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该程序可以被实现为装置,例如有形地体现在机器可读存储设备中以由可编程处理器执行的产品。方法步骤可以通过可编程处理器执行指令的程序以通过对输入数据进行操作并生成输出来执行该方法的功能来执行。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。如果期望,则可以以高级过程、面向对象的编程语言或功能编程或汇编或机器语言来实现应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用都会引起执行该方法的指令。
该方法可以被包括在制造过程中,该制造过程可以包括在执行该方法之后生产对应于B-Rep的物理车辆。由于该方法改进了车辆的碰撞分析,该方法也改进了车辆的制造工艺。
众所周知,车辆碰撞分析是指基于车辆的CAD模型对易于发生在车辆外表面上的碰撞的任何分析。CAD模型在这里是S10处提供的B-Rep。通过在S30处确定一条或多条两点接触曲线,该方法已经允许这样的分析。实际上,确定S30输出一个或多个数据片段(即,曲线),每个数据片段代表球体在B-Rep上的两点接触的相应连续发生。这些输出的数据片段随后可用于任何车辆碰撞分析目的。
接触球体是易受车辆外表面影响的对象的球体表示,例如人体部分,例如头部或膝盖。球体表示长期以来尤其被用于表示头部和膝盖,因为它可以很好地捕捉人类之间的形状和行为可变性,并且允许相对简单的计算。它通常被称为“接触”球体,因为在车辆碰撞分析中,考虑了球体与外表面的潜在接触。接触球体可以代表不受保护或受保护的人体部分。例如,接触球体可以代表人类佩戴的头盔。
车辆的“外”表面是指车辆易于被接触球体碰撞的任何表面。外表面可以是车辆外部部件的外表面(例如,车辆的车身表面,或汽车的A级表面(class A surface))。在这种情况下,车辆可以是陆地车辆(例如,汽车),并且车辆碰撞分析可以是对行人易于发生的碰撞的分析。外表面可以替代地是车辆内部部件的外表面。在这种情况下,车辆可以是任何乘用车,并且车辆碰撞分析可以是对乘客易于发生的碰撞的分析。
该方法尤其可以包括显示一条或多条两点接触曲线的图形表示,例如叠加在车辆外表面的图形表示上(例如,B-Rep的细分)。一个或多个两点接触曲线的这种可视化允许车辆碰撞分析。
可替代地或附加地,该方法可以包括执行视觉检查功能。视觉检查功能可以包括显示具有在S20处提供的半径值的球体并且接触外表面的图形表示。该方法然后可以包括移动接触球体(例如,由用户或自动地),例如沿着外表面的图形表示滑动球体,例如通过拖动球体,例如由用户并且使用触觉设备(例如,鼠标)。这种滑动表示发生了车辆-人碰撞。特别地,用户可以沿着在S30处确定的任何两点接触曲线滑动球体。事实上,被车辆撞击的人可以被认为是在单点接触区域上自由滑动,并且然后在遇到这样的曲线时沿着两点接触曲线滑动,直到依次遇到三点接触点。由于确定S30,系统可以通过显示曲线和/或通过锁定或半锁定沿着曲线的滑动来在视觉上引导用户进行这种滑动。在视觉检查期间,外表面和球体不断被显示,从而实时显示球体在外表面上的滑动(用户可以看到球体的运动)。
可替代地或附加地,该方法可以包括根据外表面的点是否属于在S30处确定的两点接触曲线来分析这些点处的表面的曲率。
可替代地或附加地,该方法可以包括基于在S30处确定的一条或多条两点接触曲线来执行碰撞模拟。
在所有情况下,该方法可以包括根据获得的结果评估车辆是否满足安全标准,和/或通过修改其设计来提高车辆的安全性。
提供S10可以包括从先前设计的B-Rep库中取回B-Rep。可替代地,提供S10可包括从头开始或从先前设计开始设计B-Rep。
“设计3D建模对象”指的是任何动作或一系列动作,其至少是精心制作3D建模对象的过程的一部分。因此,该方法可以包括从头开始创建3D建模对象。可替代地,该方法可包括提供先前创建的3D建模对象,并且然后修改该3D建模对象。
该方法可以包括,在确定S30之后,基于确定S30(例如为了提高安全性)对B-Rep进行设计改变(通过修改其设计)。可以直接基于在S30处确定的一个或多个两点接触曲线,或者基于其作为车辆碰撞分析的一部分的任何后处理来执行设计改变。设计改变可包括在S30处确定的一条或多条两点接触曲线的位置处使外表面平滑(即,减小其曲率)。
该方法可以迭代,其中重复提供S10、提供S20和确定S30。
在每次迭代时,提供S10可以包括取回在先前迭代的S10处提供的B-Rep,并且执行设计改变。在一次或多次迭代中,可以直接基于在先前迭代的S30处确定的一条或多条两点接触曲线,或基于其作为车辆碰撞分析的一部分的任何后处理来执行设计改变。这允许基于由该方法提出的车辆碰撞分析来改进车辆的B-Rep表示,从而朝着改进的设计收敛。
可替代地或附加地,在每次迭代中,在S20处提供的半径值可以与先前的迭代相同,或者与先前的迭代相比被修改。在后一种情况下,B-Rep可能相同。由于考虑了不同类型的接触球体,这允许执行精细的碰撞分析。话虽如此,该方法可以很好地迭代,其中从一次迭代到另一次迭代修改半径和B-Rep二者。
尽管该方法使用的边界表示(也称为“B-Rep”)格式及其概念广为人知,但现在对其进行讨论。
B-Rep模型包括拓扑实体和几何实体。拓扑实体是:面、边和顶点。几何实体是3D对象:曲面、平面、曲线、线、点。
根据定义,面是表面的有界部分,称为支撑表面。边是曲线的有界部分,称为支撑曲线。顶点是3D空间中的点。它们之间的关系如下。曲线的有界部分由位于曲线上的两个点(顶点)定义。表面的有界部分由其边界定义,该边界是位于曲面上的一组曲线边(即,支撑曲线的部分)。面边界的边通过共享顶点连接在一起。面通过共享边连接在一起。根据定义,如果两个面共享边,则它们在所述边处相邻。类似地,如果两条边共享一个顶点,则它们是相邻的。
图4-5示出了由三个面构成的圆柱槽的B-Rep模型:顶部平面和两个横向圆柱面。图4是槽的透视图。可见面、边和顶点被编号。图5是所有面的分解图。重复的数字说明边和顶点共享。面1是平面的有界部分。面1的边界包括边4和5,每条边都以顶点10和11为界。这些边都具有相同的支撑圆。面2以边6、8、5和13为界,它们都位于无限圆柱表面上。面1和面2相邻,因为它们共享边5。面2和3相邻,因为它们共享边8和13。面1和3相邻,因为它们共享边4。
图6示出了B-Rep模型的“由……界定”拓扑关系。上层节点是面,中间层节点是边,并且下层节点是顶点。
图7-8示出了拓扑实体(面、边、顶点)和支撑几何体(无限圆柱、无限平面、无限线、圆、点)之间的关系。
在CAD系统中,B-Rep模型在适当的数据结构中收集“由……界定”关系、拓扑实体与支撑几何之间的关系以及支撑几何的数学描述。
在下文中,表述“表面补片(patch)”或“补片”可用于指代B-Rep的面或其支撑表面,并且表述“表面”本身也可指面或其支撑表面。
给定接触球体的半径值(例如,在S20处提供的值),k点接触是B-Rep的恰好k个点(不多也不少)的集合,其中,接触球体同时精确地在该集合中的k个点处触碰到外表面,而在体积上不与外表面相交。换句话说,接触球体与外表面的相交恰好是k个点的集合,并且接触球体与车辆(即,由外表面界定的B-Rep内部)的相交为空/零体积。参照这种情况,接触球体可以被称为“k点接触球体”。
确定S30针对半径值输出B-Rep的一个或多个两点接触曲线。每条两点接触曲线是位于B-Rep上的曲线,并且表示外表面与具有半径值的两点接触球体之间的两点接触序列。每条两点接触曲线可以是连续的。
每条两点接触曲线可以表示其中具有半径值的两点接触球体接触外表面之处的(例如,连续的)点对序列。在这种情况下,B-Rep在3D中定义,每个两点接触曲线可以对应于具有在
Figure BDA0003145151520000121
(即,
Figure BDA0003145151520000122
)中的输出值的函数。换句话说,每条两点接触曲线都是一对触碰曲线,每条曲线的值都在
Figure BDA0003145151520000131
中,并且该对的两条触碰曲线均代表球体的一对接触中的相应一个的序列。在S30处确定的两点接触曲线表示允许将对应于相同两点接触球体的触碰曲线成对地两两分组。换言之,确定S30通过输出一条或多条两点接触曲线来输出与所述分组相关的信息。
基于所述信息,该方法可以包括计算对应于每个相应两点接触曲线的两点接触球体的轨迹。当每条两点接触曲线表示具有半径值的两点接触球体接触外表面之处的点对序列时,该方法还可以计算该序列的点对的中点,并且该中点描述两点球体的中心。因此,这些中点的曲线代表两点球体中心的轨迹。由于半径是在S30处提供的半径,因此前面提到的视觉检查功能可以基于确定S30的输出。视觉检查功能可以特别包括显示具有在S20处提供的半径值并且以计算的中点为中心的球体。通过构造,这样的球体显示为在两点接触曲线处接触外表面的图形表示。
每条两点接触曲线可以由多边形表示。多边形的每个顶点可以是每个
Figure BDA0003145151520000132
的一对点。这允许两点接触曲线的高效表示和在S30处的高效确定。这些对的点的中间点本身形成了一个多边形,其代表了两点球体中心的轨迹。
现在讨论该方法的第一方面。
根据第一方面,确定S30包括,对于每个相应的两点接触曲线,基于B-Rep求解相应的微分方程。在这种情况下,在S30处在B-Rep的可微分的部分中确定每个相应的两点接触曲线。在示例中,B-Rep可能在任何地方都是可微分的。在任何情况下,该方法可以包括针对半径值确定B-Rep的可微分部分的所有两点接触曲线。这允许进行详尽的车辆碰撞分析。
如前所述,B-Rep的每个面都由相应的表面参数化支持。在这种情况下,在S30求解的相应微分方程可以基于相应的一对表面参数化(即,支持两点接触的那些)。因此,确定S30充分利用了B-Rep传达的连续且准确的几何表示,从而产生准确的结果。
相应的一对表面参数对应于一对面,其可以是不同的面或者相同的面。对于后一种情况,需要注意的是,对于具有半径值的球体,B-Rep的两个不同部分之间可能会发生两点接触,这两个部分属于B-Rep的单个且相同的面(例如,如果所述面足够弯曲)。
相应的微分方程可能如下:
DF(u(t),v(t),a(t),b(t))*(u′(t),v′(t),a′(t),b′(t))=0
DF是系统函数F:
Figure BDA0003145151520000141
的关于参数t(即,参数化所考虑的微分/雅可比(Jacobian)的变量)的微分(例如,雅可比),系统函数由下式提供:
F(u,v,a,b)=s1(u,v)+R N1(u,v)-[s2(a,b)+R N2(a,b)]]
{s1,s2}是相应的一对表面参数化(其中,如果接触发生在单个面内,则s1可能等于s2)。N1和N2是s1和s2的相应法线贴图(因此是由s1和s2参数化的面的法线贴图)。(u,v)和(a,b)是s1和s2的相应参数对。R是在S20处提供的半径值。最后,u′(t),v′(t),a′(t),b′(t)是u,v,a,b相对于t的相应导数。
该系统函数描述了球体在B-Rep的点对{s1(u(t),v(t)),s2(a(t),b(t))}处的两点接触,其中,每个接触实质上都与B-Rep相切,使得在法线方向上等于半径值的和来自点对的长度应该产生相同的位置,即球心的位置。求解这样的函数系统会产生特别准确的结果。
现在,相应微分方程的求解可以包括从初始值对相应微分方程进行积分。该积分允许鲁棒求解(robust solving)。该方法可以根据任何已知的方法执行积分。积分可以称为“跟踪”,因为它跟踪两点接触曲线。后面将跟踪的一个例子称为T1。
例如,该方法可以执行数值积分。特别地,积分可以包括连续的数值积分步骤,每个步骤产生相应两点接触曲线的相应段部分。这允许鲁棒的积分。该方法可以特别地实现Runge-Kutta方法。
该方法可以进行连续的数值积分步骤,直到评估满足以下两个条件之一:(I)接触球体与B-Rep的其余部分相交,(II)达到面边界。这允许在适当的时候停止积分。
在条件(I)的情况下,“B-Rep的其余部分”是指B-Rep的除了B-Rep的对应于两个接触的两个点(即,在每一步由积分产生的s1(u(t),v(t))和s2(a(t),b(t))的所有其他位置。换句话说,当半径值为R的接触球体在s1(u(t),v(t))和s2(a(t),b(t))处接触B-rep时其被评估为也与B-Rep的第三部分发生碰撞时,积分停止。这对应于局部球体的三点接触的发生,或者换言之,对应于三点接触球体的发生。在这种情况下,两点接触由于所述第三部分的存在而被物理地停止。
在条件(II)的情况下,如果继续进行数值积分步骤,则积分将不再产生位于面上的结果。通过条件(II)停止积分因此产生两点接触曲线的末端,其是两点接触位置。要么面的边界是B-Rep的边界(因此其是一个开放的B-Rep),并且在这种情况下,积分的终点对应于曲线的终点,要么面的边界是也是相邻的另一个面的边界,并且在这种情况下,两点接触曲线被截断,但它可以连接到以类似方式为所述相邻面确定的另一个两点接触曲线。
相应微分方程的求解可以例如包括,在每个当前积分步骤处:测试(I)接触球体与其余B-Rep的相交,并且如果测试为肯定的,则停止积分(条件(I))。求解还可以包括测试(II)是否已经达到面边界,并且如果测试是肯定的,则停止积分(条件(II))。执行第二测试(II)可能会以第一测试(I)为否定的为条件(即,如果第一测试为肯定的,则不需要第二测试)。
在条件(I)的情况下,该方法可以丢弃(并且可选地替换),或者可替代地并且等效地截断与多个最后的数值积分步骤相关的段部分。替换或截断可以使得结果曲线恰好在三点接触位置处终止。段部分的数量可以是浮点数,即必须截断步骤和/或步骤的分数。在这种情况下,该方法还可以包括输出针对半径值的B-Rep的三点接触点的位置,和/或显示这种三点接触点的图形表示(例如,附加于显示一条或多条两点接触曲线)。根据稍后介绍的示例,可以通过定位3-pt接触球体(例如,第二跟踪块T2)的其他微分方程求解来确定要回退多少步。在条件(II)的情况下,该方法可以可选地二等分对应于最后一个数值积分步骤的段部分,例如使得它恰好终止于面边界处。如果无论第一测试是否为肯定的,都进行第二测试,并且如果两次测试都为肯定的,则条件(I)可能适用。
条件(I)的测试可包括将半径为R的量级但小于R的局部球体与B-Rep的细分相交。局部球体的半径可以大于0.9*R或0.95*R,例如等于0.99*R。局部球体可以具有与接触球体相同的中心(即,两点接触曲线的中点)。如果相交具有非零体积,则该方法可以评估条件(I)是否满足。通过将球体与B-Rep的细分相交,可以相对快速地执行条件(I)的测试。然而,相对于B-Rep,细分会给外表面的精确几何体引入离散化误差。此误差对应于细分分辨率。通过测试半径小于接触球体半径值的局部球体的相交,测试降低了获得假肯定的结果(false positive result)从而不恰当地停止积分的概率。
当满足接触球体与B-Rep的其余部分相交的条件(I)时,确定S30可以包括进一步基于B-Rep求解另一个相应的微分方程。如上所述,这可能是为了替换截断与最后一个数值积分步骤相应的段部分。该另一个相应的微分方程可以基于相同的相应表面参数化对{s1,s2},并且进一步基于支持相交的另一个表面参数化,记为s3。参数化s3是支持包含第三部分的面(与其发生相交的面)的表面之一。该第三面可能与s1支持的面和/或s2支持的面相同,或者它可能是B-Rep的不同面。对于前一种情况,需要注意的是,对于具有半径值的球体,属于B-Rep的单个且相同的面的B-Rep的三个不同部分之间可能会发生三点接触(例如,如果所述面足够弯曲)。求解该另一个相应的微分方程允许细化最后的段部分,以获得三点接触位置的数值精确位置(这意味着达到数值公差,即相应浮点单元的精度)。
对于初始求解,另一个相应的微分方程的求解可以包括从初始值对相应微分方程进行积分。另一个相应的微分方程可以在前一个数值步骤(在截断的情况下为最后一步,在替换的情况下为较早的步骤)结束时与初始的相应微分方程具有共同解。可以依赖所述共同解来初始化另一个相应的微分方程的数值积分。因此,最后一个数值积分步骤处的曲线末端成为另一个相应的微分方程积分初始值的一部分。
另一个相应的微分方程的求解也可以称为“跟踪”,因为它也跟踪一条曲线(在替换的情况下两点接触曲线的最后一部分,在截断的情况下要擦除的两点接触曲线的一部分)。后面将跟踪的一个例子称为T2。并且对于初始积分,另一个微分方程的积分可以包括连续的数值积分步骤,每个步骤产生相应两点接触曲线的相应段部分。最后,该方法可以包括将最后的相应段部分二等分以准确地在三点接触位置处停止。
与下面一致,第一个微分方程存在于
Figure BDA0003145151520000161
中,并在其末尾提供四个参数(u,v,a,b)。第二个微分方程存在于具有附加参数(c,d,l)的
Figure BDA0003145151520000162
中。为了获得后面参数的初始值,该方法可以计算从与最后一个参数(u,v,a,b)相关联的球体的中点到第三面s3的正交投影。然后(c,d)是正交投影击中s3之处的点的参数,并且l是该正交投影的长度。
其他相应的微分方程可能如下:
DF*(u(t*),v(t*),a(t*),b(t*),c(t*),d(t*),l(t*))
*(u(t*),v(t*),a(t*),b(t*),c′(t*),d′(t*),l′(t*))=0
DF*是由下式给出的扩展系统函数F*:
Figure BDA0003145151520000171
的关于参数t*(即,参数化所考虑的微分/雅可比的变量)的微分(例如,雅可比):
F*(u,v,a,b,c,d,l)=(s1(u,v)+R N1(u,v)-[s2(a,b)+R N2(a,b)],
s1(u,v)+R N1(u,v)-[s3(c,d)+l N3(c,d)])
s3是另一种表面参数化(其中,s3可能等于s1和/或s2,如果三点接触仅发生在两个面甚至单个面内的话)。N3是s3的相应法线贴图(因此是由s3参数化的面的法线贴图)。(c,d)是s3的相应参数对偶(respective parameter couple)。l是接触s1(u,v)和s2(a,b)的半径为R的球体中心的正交投影的长度。正交投影可能在另一个表面s3上。最后,(u′(t*),v′(t*),a′(t*),b′(t*),c′(t*),d′(t*),l′(t*))是u,v,a,b,c,d,l相对于t*的相应导数。
此系统函数描述可变形球体在三个点的集合{s1(u(t*),v(t*)),s2(a(t*),b(t*)),s3(c(t*),d(t*))}处的三点接触,其中变形是在与相交面正交的方向上的收缩或延伸,其经过三点接触位置。求解这样的函数系统会产生特别准确的结果。
特别地,在该方法截断初始计算轨迹的一部分的情况下,确定S30可以包括在每个数值积分步骤处评估l(t*)是否高于R,并且只要测试是否定的就继续积分。当l变得大于R时,这意味着三点接触已经通过。在这种情况下,该方法可以将最后一段部分一分为二,以将曲线准确地在三点接触位置处停止。被二等分的线段部分的末端可以作为三点接触位置输出。如果该方法替换最后一段,则原理是一样的,除了只要测试是肯定的就确定S30可以继续积分。
相应微分方程DF(u(t),v(t),a(t),b(t))*(u′(t),v′(t),a′(t),b′(t))=0的求解,可以包括找到F的零(u0,v0,a0,b0)。然后可以通过(u(0),v(0),a(0),b(0))=(u0,v0,a0,b0)给出对相应的微分方程进行积分的初始值。
找到零可以以任何方式执行。例如,找到零可以包括在B-Rep上、从B-Rep的一对起始点开始的寻根算法。这为该方法提供了鲁棒性。特别地,寻根算法可以是牛顿迭代。
确定S30可以以任何方式设置寻根算法的起始点对。例如,确定S30可以包括对B-Rep进行细分,并对细分进行处理。细分(即,细分的结果)可以是任何类型的网格,具体取决于所实现的细分算法。
该处理包括为半径值R识别单点接触顶点和非接触顶点。换句话说,这里的方法执行全局离散HID。这可以以任何方式执行,包括根据现有技术。例如,识别可以包括用半径等于R的接触球体触碰细分的每个顶点,并在顶点处垂直于网格并从网格(其代表外表面)朝向车辆外部的方向上。该方法可以包括以任何方式确定法线方向,例如作为与网格的触碰顶点相邻的所有面的法线矢量的手段。该识别然后可以包括评估接触球体是否以非空体积与网格的其他部分相交。如果存在非空相交,则顶点是非接触顶点(因为相交将禁止球体通过碰撞接触顶点)。否则,如果相交的体积为空,则该顶点为单点接触顶点。全局离散HID可以可选地执行其他处理,例如根据顶点处外表面的曲率将单点接触顶点标记为关键或非关键顶点,和/或修改此类关键顶点周围的网格。
该处理然后包括定义过渡边。每个定义的过渡边是由相应的单点接触顶点和相应的非接触顶点界定的边。在示例中,由相应的单点接触顶点和相应的非接触顶点界定的网格的所有边可以被定义为过渡边。
确定S30然后可以包括基于相应的过渡边来设置寻根算法的起始点对。过渡边对应于B-Rep的可能发生两点接触的区域。相应过渡边的位置因此可以是用于找到F的零并由此对微分方程进行积分的良好起始点。
当细分B-Rep时,网格的每个瓦片(即,网格面)对应于B-Rep的相应部分,并且细分算法可以跟踪这种对应关系。换句话说,细分算法可以输出用于定义B-Rep面的位置和网格上的位置之间的双射的信息,并且B-Rep的每个点都可以解释为网格的唯一位置,并且反过来,网格的每个位置可以解释为B-Rep的唯一点。
求根算法的起始点对的设置可以包括迭代直到求根算法找到零的方案。迭代方案可以包括选择过渡边。过渡边可以是由相应的一对表面参数化{s1(u,v),s2(a,b)}支持的面之一的细分的边。迭代方案还可以包括基于所选择的过渡边建立一对候选起始点。例如,建立可以包括将一对中的第一点建立为与过渡边的第一位置(过渡边的两个顶点之间的任意位置,并且可能但不限于所述顶点中的一个)相对应的B-Rep的点,并将该对的第二点建立为B-Rep的另一个点,该另一个点是与第一点实质上形成两点接触对的候选点。这可以包括,例如,二等分选定的过渡边。稍后提供一个示例。然后,迭代方案可以包括通过运行求根算法,从候选起始点对在B-Rep上尝试找到F的零。如果尝试成功,则迭代可以停止。否则,可以选择新的过渡边。候选起始点也可以称为“近似触碰点”。
现在讨论该方法的第二方面。
根据第二方面,确定S30包括,对于B-Rep的多对部分中的相应每一对部分,相应的两点接触曲线计算算法。计算算法基于相应的部分对。并且计算算法在多对部分上并行化。
“两点接触曲线计算算法”是指尝试计算相应部分对(如果有的话)的所有两点接触曲线的算法,所述相应部分对被提供为算法的输入。对于输入的一对部分,计算算法也可能输出空结果,例如简单地确定输入部分对之间不存在两点接触曲线。
“B-Rep的多对部分”是指B-Rep的部分对的任何预定集合。B-Rep的“部分对”转而是B-Rep的恰好两个部分(或部件)的集合。一对的两个部分可以不同也可以相同。关于后一种情况,应注意,对于半径值为R的球体,在B-Rep的单个且相同的部分内可能发生两点接触(例如,如果所述部分足够弯曲)。
现在,计算算法在所述多对部分上并行化。这意味着该方法包括启动相同计算算法的多个并行线程,每个线程将多对部分的相应部分对作为输入。这种并行化可以由被配置用于并行处理的任何硬件来执行,例如大规模并行处理器(MPP)或GPU。
多对部分中的每部分对的每个部分可以是B-Rep的相应面。换言之,多对部分是B-Rep的多对面。再换句话说,确定S30包括针对多对面中的相应的每一对面,基于相应的一对面的相应的两点接触曲线计算算法,并在多对面上并行化计算算法。
多对部分可以(恰好)由B-Rep的形成B-Rep的分区的一组部分的所有对组成。所考虑的B-Rep的分区可能只是B-Rep的面的集合,并且计算算法可以在B-Rep的所有对的面的集合上并行化(包括两次相同面对)。这提供了在并行化期间同时执行计算所提供的时间增益与由于解耦、等待和重新耦合线程而导致的时间损失之间的良好折衷。这被证明是基于车辆的B-Rep进行车辆碰撞分析的最高效的划分。
如在第一方面,确定S30可以包括细分B-Rep,并且处理细分。细分(即,细分的结果)可以是任何类型的网格,具体取决于所实现的细分算法。
在这种情况下,处理包括针对半径值R识别单点接触顶点和非接触顶点。换句话说,这里的方法执行全局离散HID。这可以以任何方式执行,包括根据现有技术。例如,识别可以包括用半径等于R的接触球体触碰细分的每个顶点,并在顶点处垂直于网格并从网格(其代表外表面)朝向车辆外部的方向上。该方法可以包括以任何方式确定法线方向,例如作为与网格的被触碰顶点相邻的所有面的法线矢量的手段。该识别然后可以包括评估接触球体是否以非空体积与网格的其他部分相交。如果存在非空相交,则顶点是非接触顶点(因为相交将禁止球体通过碰撞接触顶点)。否则,如果相交的体积为空,则该顶点为单点接触顶点。全局离散HID可以可选地执行其他处理,例如根据顶点处外表面的曲率将单点接触顶点标记为关键或非关键顶点,和/或修改此类关键顶点周围的网格。
该处理然后包括定义过渡边。每个定义的过渡边是由相应的单点接触顶点和相应的非接触顶点界定的边。在示例中,由相应的单点接触顶点和相应的非接触顶点界定的网格的所有边可以被定义为过渡边。
此外,在这种情况下,计算算法针对相应的每对部分,将相应的部分对(例如,面)的相应过渡边集合作为输入。相应的过渡边集合可以包括相应的部分对(例如,面)或其子部分的所有过渡边。这提高了算法的速度。该子部分可以由所有检测到的易导致两点接触曲线的过渡边组成。下面提供了此类检测的示例。如果没有检测到这样的过渡边或者根本没有过渡边,则计算算法没有输入,因此可以仅针对相应对输出空结果。
当确定S30包括细分B-Rep和处理细分时,细分可以在部分集合(例如,面集合)上并行化。这提高了方法的速度,因为B-Rep的不同部分(例如,面)可以在安全线程中单独细分。在这种情况下,可以在细分结束之后执行处理和计算算法。这允许在处理它之前获得固定的网格,使得处理和网格构造不会发生冲突。这增加了线程安全性。
当确定S30包括细分B-Rep和处理细分时,处理可以在部分集合(例如,面集合)上并行化。这提高了方法的速度,因为可以在安全线程中单独处理B-Rep的不同细分部分(例如,面)。在这种情况下,可以在处理结束后执行计算算法。这允许在对其执行计算算法之前获得固定网格。这增加了线程安全性。
当确定S30包括对B-Rep进行细分并处理该细分时,对于每对相应的部分(例如,面),计算算法可以包括重复迭代方案,直到相应的过渡边集合为空为止。迭代方案包括从相应的过渡边集合(被输入到两点接触曲线计算算法)中选择一条过渡边。迭代方案还包括尝试基于所选择的过渡边跟踪两点接触曲线。如果跟踪尝试成功,则迭代方案包括从相应的一组过渡边中删除与所跟踪的两点接触曲线相交的所有过渡边。这允许减少跟踪两次相同的两点接触曲线的风险。如果跟踪尝试不成功,则不会跟踪任何内容,并且因此不会发生任何事情。迭代方案还包括从相应的过渡边集合中删除所选择的过渡边。这确保了迭代的最终结束,并且这降低了跟踪两次相同曲线的风险,从而提高了效率。
确定S30可以包括尝试建立一对或多对候选起始点。每个候选起始点属于相应部分对中的相应部分(例如,面)。换句话说,确定S30在所考虑的部分对内寻找一对候选起始点,其中,每个部分具有一个候选起始点。此外,基于相应部分对的相应过渡边(因此属于该对的两个部分中的任一个)针对每对候选起始点尝试建立。建立尝试可以在该相应的部分对(例如,面)的所有过渡边上循环,并且循环本身可以在细分的所有过渡边上的更全局的循环内。这允许穷举性。建立尝试可以在多对部分或部分集合上并行化。这两个选项都增加了确定S30的速度。
可以基于建立尝试的结果来填充输入到计算算法的相应的一组过渡边。特别地,确定S30可以将允许建立尝试成功的每个过渡边添加到相应的一组过渡边。相应的集合最初可能是空的,并且最终填充有所有这些添加的过渡边。
因此,如果建立尝试不成功(即,没有建立一对候选起始点),则确定S30可以针对相应的部分对(例如,面)停止,并且因此计算算法可以仅针对相应对输出空结果,因为计算算法有空输入。
如果相反,对于相应的部分对(例如,面)建立尝试成功,则计算算法可以如下执行。
根据定义,所选择的过渡边是输入到计算算法的相应过渡边集合中的相应过渡边,因此是确定S30基于其成功建立相应的候选起始点对的相应过渡边。
在这种情况下,跟踪尝试包括尝试从相应的候选起始点对开始寻找相应的初始点,即属于两点接触曲线的初始点。如果寻找尝试成功,则跟踪尝试包括从初始点跟踪两点接触曲线,从而成功。否则,如果寻找尝试不成功,则跟踪尝试也失败。在这种情况下,该方案进入下一次迭代,其中计算机算法从相应的一组过渡边中选择另一个过渡边,并重新尝试跟踪。这将被迭代,直到相应的一组过渡边为空。如果所有跟踪尝试均不成功,则计算算法可能仅为相应对输出空结果。
如在该方法的第一方面,跟踪(如果成功)可以包括对相应的微分方程进行积分。在这种情况下,如在该方法的第一方面,微分方程基于相应部分对的表面参数化对。微分方程可能与方法的第一方面相同,即DF(u(t),v(t),a(t),b(t))*(u′(t),v′(t),a′(t),b′(t))=0。所述相应微分方程的求解可以包括找到F的零(u0,v0,a0,b0)。然后可以通过(u(0),v(0),a(0),b(0))=(u0,v0,a0,b0)给出用于对相应微分方程积分的初始值。
如在该方法的第一方面,可以以任何方式执行零的寻找。例如,零的寻找可以包括在B-Rep上从建立的B-Rep的候选起始点对(如果建立尝试成功)的寻根算法。这为该方法提供了鲁棒性。特别地,寻根算法可以是牛顿迭代。
如在该方法的第一方面,建立尝试可以包括将该对中的第一点建立为对应于相应过渡边的第一位置(相应过渡边的两个顶点之间的任何位置,并且可能但不限于所述顶点中的一个)的B-Rep的点,并尝试将这对中的第二点建立为B-Rep的另一个点,该点与第一点实质上形成两点接触对的候选点。这可以包括,例如,二等分相应的过渡边。稍后提供一个示例。然后,寻找尝试可以包括通过在B-Rep上从候选起始点对中运行寻根算法来尝试寻找F的零。
现在参考图9-50讨论该方法的实现,其中一些图表示与所述实现一致的被测试原型软件的真实屏幕截图。
图9-10示出了可以在S10处提供的输入B-Rep几何体的示例。所示的B-Rep代表汽车外部部件的外表面,特别是车身部件的一半。除非另有说明,以下讨论将参考该示例。
在所讨论的实施方式中,确定S30包括细分B-Rep,并处理细分。该处理包括针对半径值识别单点接触顶点和非接触顶点。所述识别可以根据任何已知的全局头部碰撞诊断(HID)来执行。这些实现已经通过达索系统的ICEM Surf提供的全局HID进行了测试,该HID仅工作于输入B-Rep几何体的细分,这就是它被称为“离散”的原因。因此,讨论的实现和测试的原型建立在这个现有的全局和离散HID功能上。
全局和离散的HID功能可能只涉及用户的一种选择,因此易于使用。然而,结果的精度取决于离散化的精度,即网格精度。这可以分别通过容差和长度参数任意细化,使得运行时复杂度在这些参数中成二次方。因此,现有功能对于确定单点接触顶点是可以接受的(如全局和离散HID功能所做的那样),但不太适合在S30处确定两点接触曲线,以及隔离的三点接触球体(并且这是提供的方法干预现有功能并添加到现有功能之处)。
图11-12示出了离散HID对输入B-Rep的结果,其中,图12示出了图11的结果的逐顶点(放大)可视化。可以看出,长度=5毫米可以获得比较高的精度。长度参数通常可以根据相关的特定示例进行调整。在这种情况下,使用了非常小的长度,即长度=5毫米,并且这对于获得非常精确的结果来说通常是一个很好的值。绿色标记区域112是所谓的活动顶点,它们是顶点,其中,相应的单点接触球体不与输入几何体相交,除了在其附接点(即,单点接触顶点)处。所有其他顶点114被称为非活动的并且被标记为蓝色(即,非接触顶点)。该算法对每个顶点起作用(见图12),并且使用标准阴影该方法可以获得图11中的结果。
参考图13-14,为了理解和控制算法的结果,用户可以选择执行所谓的视觉检查功能(或“检查”),其中,用户选择一个顶点,使得相应的一点(半部/半)接触球体130、140被可视化:绿色球体130表示活动,蓝色球体140表示非活动。在图13中,选择了活动顶点,使得单点接触球体130不与几何体的其余部分相交,并且在图14中,选择了非活动顶点,使得单点接触球体140相交。在图14中,蓝色球体140清楚地与几何体的其余部分相交,这也由经由黄色标记142的可视化指示。
参考图15,其表示图11-12的前灯部分具有几个关键区域的特写,离散HID的现有技术功能被定制以解决对外部(主要是汽车前部)和内部(主要是仪表板)的某些区域的曲率限制,并与附接在相应区域的点处的单点接触球体相关联。关于规范的这部分的关键区域可能会被离散HID标记为红色。这些是相对于单点接触球体具有临界曲率的标记区域150。
然而:
-离散HID仅考虑单点接触球体。
-此外,结果的精度取决于网格参数,并且本质上始终只是使用连续B-Rep输入几何体的结果的近似值。参考图19-20,这可以在从绿色区域112到蓝色区域114的过渡190中被最好地识别,其中结果的网格依赖性是清晰可见的。
-尽管这些过渡的近似可见,但没有可能检查两点或三点接触球体。这是因为该算法逐顶点工作,使得在过渡边(网格中具有一个活动顶点和一个非活动顶点的边)上,尽管边上有一个点对应于2PCS,但该点未计算,并且从而未在结果数据模型中表示,并且因此用户无法检查。
-单点接触球体对第一次碰撞的点建模,但根据碰撞发生的角度,事故参与者的头部或膝盖通常会在车辆表面滑动,直到达到第二次接触点出现的配置,它对应于静态几何模型中的两点接触球体。此时施加的力比单点接触情况下更严重。然而,仍然有一个自由度,即头部/膝盖(同样取决于碰撞角度)通常沿着两点接触球体的曲线滑动,直到出现第三接触点。后者对应于三点接触球体,这是最终配置,其中所有碰撞力都卸载到事故受害者身上。因此,两点和三点接触球体是有助于事故分析和模拟的几何配置。
参考图16-18,图16-18表示从ECE R-26中提取的图,ECE R-26表示两点接触球体相关规范的示例,较早提到的规范(例如,在欧盟和美国法规中定义)另外施加了关于更加受限区域中的曲率标准的限制,这些限制与两点和三点接触球体的接触点相关联。
确保新车辆符合规范的检查过程是一个广泛的过程,其更可能在其设计过程期间的多个阶段合并。这从早期设计开始,这可能会避免提供设计草案的陷阱:设计草案在设计和制造过程的后期阶段无法符合安全法规。在设计过程的中间阶段,通常会有多个中小型重新设计周期,因为初始设计方案现在必须满足几个额外的边界条件,这些边界条件是从技术角度对汽车进行设计。在后期,当一个功能齐全的原型可用时,最后是一个控制过程,其中,地方当局检查原型是否符合安全法规,这特别包括行人和乘客的安全。
后者侧重于人体的重要部位,并且因此,为了估计事故中头部或膝盖对行人或乘客的碰撞,相应的规范使用静态几何配置,其将球体(作为头部或膝盖的模型)(当它们与车辆的外部或内部碰撞时)考虑在内。这些又是几何学上所谓的接触球体,其可以针对给定的几何体(本例中的车辆)计算。表面输入几何体的一般几何情况是分别存在一点/两点的两个/一个的零维集合、三点接触球体。通过该方法的实现解决的第一个技术问题是它们的计算。第二个技术问题是如何高效地配合合规流程,汽车公司必须在每一款汽车开发过程期间确保合规流程。该方法的实现提出了两点和三点接触球体的交互式检查功能,以及在几何接触球体问题解决后可以实时进行的相应可视化。
该方法的实现由多个部分组成,以简化安全合规过程,并从其核心开始计算所有相关的2点和3点接触球体。但是,算子实际上要通用得多。它本质上是偏移曲面的相交算子。例如,它可以很容易地适应产生表面与表面相交的结果(通过将输入表面的偏移设置为零)。
此外,该方法的实现的检查功能使参与车辆开发过程的设计师和工程师以及相应机构的检查员能够分析与由二点接触球体和三点接触球体表示的几何情况相关的关键配置。这些检查功能通常可以通过复杂的手动过程来实现,该过程涉及逐位手动构建这种几何配置。这不仅对应于指定专家的工作时间,而且会在多个场合中断开发和设计过程。
该方法的实现的第一个特征是计算两点接触球体曲线的算法,依赖于与常微分方程相关的数值求解,该方程跟踪零集,描述局部两点接触球体和正交投影的微分。为了在数值积分过程的每一步中将这个结果全球化,可以使用复杂的相交算法,该算法构建输入几何体的边界框层次结构,并以对数时间复杂度解决给定球体与输入几何体的相交问题。这解决了计算所有两点和三点接触球体(其在输入几何体的可微分点处触碰)的技术问题。
该方法的实现的第二个特征是由相应的检查功能给出的,这些功能允许用户以交互方式实时调查计算出的接触球体。这尤其包括选择两点接触球体并沿输入几何体实时移动它的可能性。后者伴随着可视化,其允许用户控制计算结果的准确性并推导出重要措施以确保符合安全规范。这解决了设计高效流程的技术问题,以将合规流程整合到欧洲、美国和亚洲的汽车公司为开发新车而进行的典型设计和工程流程中。
参考图19-20,与现有的离散HID相比,由该方法的实现提供的连续HID提供了高精度。这是因为新方法的所有计算都依赖于连续输入几何体,而不是离散化。这允许这样的计算:其精确到用于输入描述的B-Rep的数值容差和现代CPU的浮点单元。
图19-20示出了离散HID和连续HID的比较,其中两者重叠显示。离散HID产生蓝色区域114和绿色区域112,其中的过渡190粗略地描述了两点接触球体的触碰线。这些既不准确,也无法进行检查。连续的HID提供黄色触碰线192,其不仅在数值公差方面精确,而且是可选择的并且允许进行彻底检查。
如图21-22所示,连续HID结果的性质允许检查两点和三点接触球体,这在离散上下文中是不可能的,因为这些实体根本不是由离散方法计算的。图21-22示出了利用相应的度量的可视化的两点和三点接触球体检查的示例。这些可视化都是与所检查的接触球体相关联的几何实体,即球体本身(可视化为半部球或半球)、接触点和相关距离。此外,连续HID的检查功能允许沿其关联的中间曲线拖动两点检查球的中点。
实现方式的全局接触球体算法(即,确定S30的一部分,也称为“连续HID算法”)使用常规头部碰撞诊断的结果作为其起始值计算,以及快速找到可能的面对(其上可能放置潜在的两点接触球体)。因此,常规头部碰撞诊断的更准确结果会产生更好的全局接触球体结果。这是准确性和性能之间的权衡。
现在讨论连续HID算法的实现。讨论通过相应的流程图提供了分步说明。
参考图23,这通过给出接触球体算法的中间结果来举例说明,该算法应用于非常简单的输入几何体,在下文中称为“角”。后者有时被可视化为网格,以便于解释包含网格的算法部分。图23示出了一个由三个B-Rep表面组成的角,作为简单的输入几何体。
参考图24,接触球体算法的顶层流程由五个步骤组成。
图25-26分别示出了表面预处理(步骤1和步骤2)的流程图,以及简单示例的步骤2之后的结果。
参考图25,步骤1和步骤2是预处理,其中步骤1是ICEM Surf的单点接触离散HID,并且步骤2是过渡边的提取。在步骤1中,由用户的单个选择提供的输入用于构建边界框层次结构,然后由相交算子使用,该算子首先执行附接在网格中每个顶点的单点接触球体与整个离散化的输入几何体的交集测试。构造的相交算子也用于算法的后续步骤,以便以对数时间复杂度执行任意球体与输入几何体的交集测试。这是以对数时间复杂度完成的。
参考图26,结果是一个网格,其中在与输入几何体没有交集(即单点接触顶点)的情况下每个顶点被标记为活动,否则被标记为非活动(即非接触顶点)。在步骤2中,算法从步骤1的结果中提取过渡边集合,其两个顶点的标记不同。
图27-28分别示出了两点接触球体的触碰点的近似的流程图(步骤3)和简单示例的结果。在步骤2之后,每个过渡边都为两点接触球体的触碰点之一形成了一个很好的候选者。每个过渡边的相关联的第二触碰点在步骤3中被近似(见图27)。在该步骤中,首先对于每个过渡边,借助先前构造的相交算子在该边上进行二等分,以便对所需两点接触球体的第一触碰点获得合理的良好近似。在这个过程中,相交算子为第二触碰点产生了一个很好的候选者。步骤3的结果是针对每个过渡边的对触碰点对的合理近似,如图28所示。
图29示出了跟踪过程(步骤4)的流程图。在步骤4中,对于每对近似触碰点执行寻零或寻根算法(例如牛顿法),以获得底层系统函数的真零(上至数值容差)。这又用作对普通ODE系统进行数值积分的起始值,该值是通过将隐函数定理应用于系统函数而获得的。得到的轨迹包含提取两点接触球体一维族的两条触碰曲线和中间曲线的所有信息。然而,为了在每个步骤中获得全局结果,最初构造的相交算子用于检查当前接触球体与输入几何体的略微修改(较小半径,相同中点)版本的交集。一旦相交算子检测到交叉点,数值积分(例如使用Runge-Kutta方法)就会停止。在这个停止点,相交算子提供了碰撞表面网格的合理候选顶点,它用作牛顿迭代的起始点,提供球体中点到碰撞表面的正交投影。
图30示出了在没有截断最后的段部分的情况下执行该跟踪步骤的结果。
参考图31,为了之后执行这样的截断,该算法可以使用扩展的ODE系统从先前积分过程的停止点向后跟踪,该系统另外描述了构造的正交投影的无穷小变化。现在,只要正交投影的长度大于我们接触球体的原始半径,反向积分就会停止。这被适当地二等分以产生高精度。
如图31所示,这不仅产生两点接触球体曲线的数值精确停止点,而且对应于三点接触球体。
一切都在步骤5中绘制,其中触碰曲线314被描绘为黄色并且中间点的相关曲线312被描绘为红色。
现在讨论图32A-B。
图32A整体上示出了连续HID的实现。之后,参考下图的讨论提供了相应的系统函数、其相关的ODE、二等分的一些解释和符号约定的规范。
图32A示出了显示S40之后的全局接触球体算法S340的流程图。算法S340可以形成确定S30的一部分,并且在确定S30已经执行了B-Rep的细分和细分的处理之后执行,如上所述。该处理可能已经针对半径值识别了单点接触顶点和非接触顶点。并且该处理可以具有定义的过渡边,每个过渡边由相应的单点接触顶点和相应的非接触顶点界定。
算法S340因此可以用初始输入E输入,其是从离散HID算法获得的所有过渡边的容器。
该算法在循环中工作并且首先测试S420是否已经处理了E中的所有过渡边e。如果答案是肯定的,则算法结束,并且该方法可以在S40处显示,用于用户可视化,该算法之前跟踪的所有两点接触曲线和先前由算法找到所有三点接触点(在所述曲线末端处)。如果答案是否定的,则算法通过执行S342来执行正常迭代。
S342是一个过程S3422-3430,用于基于E的每个过渡边e建立B-Rep的候选起始(触碰)点的相应对{p,q}。
在S3422,算法对剩余的过渡边e进行二等分以获得e上的点p',并将p'解释为B-Rep上的点p=p(u,v),记为G。现在,p是两点接触球体的触碰点的良好候选者。
在S3424,算法在p上附加一个半径为R的球体S(之前在S20中提供),并将S的中点(即中心)标识为点m。球体S是接触球体。
在S3426,算法将S与B-Rep的细分T相交。然后,该算法收集T的与S相交(即,包含在球体中)并且最接近m的顶点v。
在S3428,算法将v解释为B-Rep G上的点q=q(a,b)。p和q是两点接触球体的两个触碰点的良好候选者。
在S3430,算法将p=p(u,v)和q=q(a,b)附加到e,并将三元组(e,p,q)存储在容器D(最初为空)中。
这结束了过程S342的当前迭代,并且然后算法执行两点接触曲线计算算法S346。
在S3462,算法从D中挑选(即选择)一条过渡边(即在三元组内)并使用来自三元组的附加参数(u,v,a,b)作为初始猜测,并基于这个猜测在B-Rep上运行牛顿迭代,即从一对候选起始点p和q(如前所述,稍后进一步举例说明)。此处,该算法尝试通过尝试从相应的候选起始点对p和q中找到属于两点接触曲线的相应初始点,尝试基于选定的过渡边e来跟踪两点接触曲线。
在S3464,算法测试查找尝试是否成功。如果是这种情况,则算法进行到S3466,以从牛顿迭代找到的相应初始点开始跟踪两点接触曲线。在这种情况下,由于算法的后续步骤,算法鲁棒地成功地跟踪了两点接触曲线。否则,算法返回到S3420以使用新的过渡边重试。
在S3466,算法将通过牛顿迭代找到的零设置为用于描述两点接触球体的行为的相应常微分方程的数值积分的初始/起始值(如前面讨论的并且后面进一步举例说明)。
T1是对应于所述数值积分的跟踪过程。
在S3468,T1测试当前局部两点接触球体是否与网格相交,标注条件(I),或到达面边界,标注条件(II)(如前所述,稍后将进一步举例说明)。
在S3470,如果评估的条件都不满足,则跟踪T1继续并积分一步以从数值求解器获得新的两点接触球体。
否则,跟踪T1的连续数值积分步骤停止,并且算法在由(u,v,a,b)参数组成的
Figure BDA0003145151520000301
中输出一个多边形P,其可以认为是
Figure BDA0003145151520000302
中的触碰曲线的两个多边形P_1、P_2(顶点代表每个积分步骤的连续接触球体的连续触碰点),并且算法进一步并行进入S3472和S3474。
在S3472,算法从E中移除与多边形P_1或P_2的线段相交的每个过渡边。每个移除的过渡边不再可供算法使用。在极少数情况下,这可能会导致信息丢失(例如,对于其上具有两个过渡的过渡边,S3472可能会丢失其中一个过渡)。离散模型和离散化有时确实可能过于粗糙而无法捕获解决方案集的多个组件。在这种情况下,用户可以简单地使用更精细的离散化。无论如何,在使用典型示例和适当参数时,这种情况应该很少发生。
在[这是误导性的,并且只是流程图中的一个错误。在更新后的流程图中,该步骤在以下描述的步骤之前完成]S3474中,算法验证条件(I)或(II)中的哪一个停止了跟踪过程T1,并根据条件分别进入S3476或S3479。
如果这是条件(I),则算法准备通过跟踪过程T2求解另一个基于B-Rep的相应常微分方程,所述另一个方程描述了三点接触球体的行为(如前面讨论的和稍后再举例说明)。
为此,在S3476,算法构造多边形P的最后一个顶点的中点m(对应于积分T1的最后一个接触球体)到相交面(即,第三部分相交)的正交投影。正交投影的长度记为l。
然后在S3478,对于这个扩展微分方程的数值积分,算法使用已经提供的参数(u,v,a,b)、从(如细分的)相交面的最近相交顶点获取的参数(c,d)和参数l。
T2是对应于所述数值积分的跟踪过程。
在S3480,T2测试l的当前值是否大于接触球体的半径R。如果是这种情况,则T2停止,否则跟踪继续,并且在S3482,T2对扩展微分方程的一步进行积分以从数值求解器获得新的两点接触球体和长度为l的新的正交投影。
T2最终将因测试S3480为肯定的而停止。
在S3484,算法可以将T2的最后一步进行二等分,以便切割/截断正在跟踪的曲线(标注为C),使得其与三点接触球体精确停止。这将输出关于支持p和q(和另一个表面)的表面对的三点接触球体面,以及关于同一表面对的两点接触曲线,其在上述三点接触球体中结束。
如果T1是在条件(II)下停止,则该方法可以转到S3479并二等分T1的最后一步以切割/截断曲线C,使其精确地停在面边界处。这将输出关于同一表面对的两点接触曲线。
在这两种情况下,算法返回到S3420以重新开始新的过渡边。
图32B示出图32A的流程图的变体,气候唯一的区别是在S342”',没有使用容器D,使得在S3430”'没有存储,并且在S3462”'没有挑选。
参考图33,在S3422执行的二等分在活动顶点330和非活动顶点331之间的过渡边T上二等分。细分的每个顶点是连续B-Rep输入几何体G上的点。为了将顶点之间的过渡边上的点解释为连续几何体上的点,该方法的实现可以在附加到顶点的参数之间进行线性插值。图33示出了交叉球体332(蓝色)和非交叉球体334(绿色)之间的二等分,其收敛为两点接触球体336(紫色)。在该过程中,通过初始非活动顶点331(绿色)和活动顶点330(蓝色)的参数的线性内插,将过渡边上的二等分点337重新解释(参见虚线矢量338)为G上的点。
由于二等分使用使用近似网格几何的相交算法,因此相应的结果可能不够精确,无法提供系统函数的真正零。然而,这些结果通常可能足够接近零,使得牛顿迭代很快就会收敛到F的真正零。
牛顿迭代应用于系统函数F:
Figure BDA0003145151520000321
F(u,v,a,b)=s1(u,v)+R N1(u,v)-[s2(a,b)+R N2(a,b)]
这里s1、s2是所考虑的一对表面贴片的参数化,N1、N2是它们的法线贴图,(u,v),(a,b)是相应的参数,并且R是接触球体的半径。这为以下跟踪过程[T1]产生初始值(u0,v0,a0,b0)。
跟踪过程[T1]提供了与以下隐式常微分方程相关联的初值问题的数值解,该方程直接来自应用于隐式方程F(u(t),v(t),a(t),b(t))=0的隐函数定理:
DF(u(t),v(t),a(t),b(t))*(u′(t),v′(t),a′(t),b′(t))=0
这里DF是F的微分(雅可比),虚线变量表示关于t的相应导数。为了明确这一点,我们可以为(u′(t),v′(t),a′(t),b′(t))求解这个线性方程组。初始值由(u(0),v(0),a(0),b(0))=(u0,v0,a0,b0)给出。
参考图34,在[T1]的每一步中,当前的2点接触球体(使用略小的半径)与完整离散输入几何体的其余部分相交。在存在交叉点的情况下,[T1]条件(I)下停止并提供相应的交叉点面/表面贴片参数化s3。否则[T1]以条件(II)停止。
图34示出了在数值积分[T1]的每一步中求解的相交问题,该问题可以通过使用具有相同中点(中心)和较小半径的球体来修改。这是因为球体与离散输入几何体T相交,具有一定的公差340(紫色)。由于离散化误差,使用原始半径将产生与两个考虑的触碰面相交的球体。半径减少了网格公差加上小的安全裕度342(橙色)。
跟踪过程[T2]对扩展系统函数F:
Figure BDA0003145151520000322
产生的扩展ODE进行数值积分:
F(u,v,a,b,c,d,l)
=(s1(u,v)+R N1(u,v)-[s2(a,b)+R N2(a,b)],
s1(u,v)+R N1(u,v)-[s3(c,d)+l N3(c,d)])
这里s3、N3是参数化和与当[T1]在(i)下停止时相交的面/表面贴片相关联的法线贴图。相应的ODE类似地产生于隐函数定理。它的初始值(u1,v1,a1,b1,c1,d1,l1)是从产生(u1,v1,a1,b1)的[T1]的最后一步提供的,而正交投影(见框c)提供正交投影的基点和正交投影的长度l1的参数(c1,d1)。
现在讨论接触球体检查功能的实现。
参考图35-36,为了分别检查增强型ICEM Surf内的两点、三点接触球体,可以首先选中相应对话框中的复选框,然后分别单击2Pt-、3Pt-Inspect-Buttons。附加复选框可以控制附加可视化(例如距离、点、线、球体)。图35和图36分别示出了两点和三点接触球体。
图37-39示出了应用于图9-10的B-Rep(即高度复杂的几何体)的接触球体算法的结果,其中上述步骤中的每一个被应用数百次以获得大量触碰曲线和中间曲线,其对应于两点接触球体的曲线。如图37和图38中所示,中间曲线372为红色,而触碰曲线370为黄色。图39示出了检测到的三点接触球体390。
图40-43示出了通过沿着球体400的中点(红色)的相关曲线402拖动球体400而获得的一系列两点检查。当检查两点接触球体时,可以实时地用鼠标沿着相应的中间曲线拖动相应接触球体的描绘中点。这些图示出了以这种方式获得的一系列两点检查。如前所述,这代表了与行人发生碰撞时发生的实际时间过程,其中建模为球体的人体部分沿着两点接触球体拖动,最终到达由三点接触球体表示的构造。
现在参考图44-50讨论该方法的第二方面的实现。
头部碰撞诊断的基础计算,主要是接触球体算法,是非常复杂的,并且由于算法并行化带来的计算加速改进了安全规范的控制过程,因为它只是节省了大量时间。这尤其是由于这样一个事实,即头部碰撞诊断检测到的问题通常会强制进行小的重新设计,这反过来又会强制重新计算头部碰撞诊断,使得更快计算的优势会影响安全合规过程多次。
对图9-10中所示的复杂输入几何体执行完整HID所需的平均时间很长,并且显著延迟了车辆的设计过程,尤其是因为该过程通常必须执行多次,通常是循环执行,其中包括一个小的设计更改,以解决先前HID检测到的问题,然后是HID的新计算。通常,HID计算,尤其是在必须以高精度完成的情况下,会在夜间执行。如果只有一个参数输入不正确或出现其他问题,则校正过程会显著延迟。此外,例如出于工程目的,彼此的设计更改通常可能涉及对安全分析的重新检查。因此,整个设计过程从所涉及的多个HID的加速中获益匪浅。
现在讨论的方法的实现解决了这个问题。
首先,连续HID使用离散HID的结果来估算在连续HID期间执行的跟踪过程的起始值。因此,在仅使用后者的情况下,离散HID的加速也提高了连续HID的性能。
为了加速离散和连续HID算法的计算,该方法的实现遵循在离散版本的输入表面贴片上并行化算法的方法,而连续HID允许在成对的表面贴片上并行化。例如,作为车辆的典型几何模型,它由数百个或更可能的数千个表面贴片(或更一般的面)组成,这将通过使用的CPU能够处理的并行线程因子提高算法的性能(与其顺序版本相比)。
HID算法并行化面临的挑战首先是使算法线程的解耦步骤安全。其次,更复杂的是重新设计离散和连续HID的顶层控制流程,并针对相应任务的工作负载实现不同步骤的合理同步。
并行执行某些操作会对HID的整体运行时间产生巨大影响。由于任务可以独立进行计算,因此该算法提供了相对于硬件(即CPU数量及其并行线程能力)的良好扩展。
如现在所讨论的,该方法的实现因此包括并行化离散HID。
为了允许并行化,可以检查算法的哪些步骤可以解耦。要同步的最小步骤数现在由要并行化算法的顺序流中的时间决定,其中下一步需要上一步的全部结果。
参考图44,图44示出了离散HID的流程图,按照这种方法,离散HID可以分为三个基本步骤:
-预处理S310:细分输入表面(即B-Rep的面)。
-主要计算S320:单点接触球体与整个输入几何体的相交计算。这产生了所谓的过渡边,后者中的每一个都具有一个活动顶点和一个非活动顶点。在这一步中,可以对“球体相交”和“边有临界点”进行特殊处理,以保证线程安全。
-后处理S330:将过渡边进行二等分,以便平滑从活动区域到非活动区域的过渡,并减少通过细分对输入几何体的初始近似所施加的误差影响。
首先,所有三个步骤都可以以线程安全的方式实现,例如使用互斥锁(或更一般地,信号量),以确保不同线程对公共输入数据的安全读/写访问。现在,这些步骤中的每一个都可以在表面贴片上解耦并分别并行化。图44中描绘的流程图也反映了离散HID算法的复杂度分布。步骤S310(输入细分)和步骤S330(过渡边的二等分)比较简单。步骤320包含产生活动和非活动顶点的基本逻辑。为了找到更多的过渡边,步骤320在某些标准下(主要是如果它们太长)分割边并由此引入对底层网格的修改。
在所有三个步骤中,输入都是按表面分割的,即在每个步骤中,每个线程处理与输入B-Rep的一个面相对应的一个表面贴片。这实现了良好的平衡,从而使工作负载在线程上充分分配,并且可以在没有不合理等待时间的情况下同步三个步骤之间的结果。
将离散HID分解为三个步骤的确切原因如下。步骤320可以访问在步骤310中计算的整个细分,以便与整个近似输入几何体相交球体。乍一看,步骤330可以与步骤320并行。然而,步骤320可以修改网格以确保在关键区域中具有更高的精度,并且可以在步骤330中整体考虑所产生的更精细的网格,以改进准确性。
图45描绘了离散HID的并行化方法的顶级控制流程。该图比较了离散HID的顺序流程图452与并行流程图454。与上述一致,该方法的实现可以等待每个阶段的所有线程结束,然后再进行下一阶段。
参考图46-47,该方法的实现还可以包括并行化连续HID。换言之,确定S30包括,对于B-Rep的每一对相应的面,基于相应的一对面的相应的两点接触曲线计算算法,该计算算法在多对面上并行化(图46上的计算算法S346',图47上的计算算法S346”)。
图46示出了全局接触球体算法S340',之后是显示S40的控制流程。控制流程基于图32A的控制流程。根据以下,图46不同于图32A的算法。
输入再次是一组过渡边E。为了并行化作为连续HID基础的全局接触球体算法,在第一步中,算法的控制流被分组为两个基本的并行化组件。
第一个组件S342'由过渡边提取组成。从图中的数字参考可以明显看出,除了一些差异,它与图32A的过程S342相同。本质上,S342'在B-Rep的一组表面贴片/面上并行化。因此,输入是每面过渡边的容器E(对于索引为k的面,也标记为“E_k”)。此外,S342'包括在将算法引向计算算法S346'之前从S3430返回到S3420,并且这直到面的所有过渡边都处理完毕。因此,与S342不同的是,S342'相对广泛地填充了包含三元组(e,p,q)的容器D。此外,S342'为算法的下一步组织D。具体来说,在S3430',算法将p=p(u,v)和q=q(a,b)附加到e,并将三元组(e,p,q)存储在容器D_i(初始为空)中,其中i是包含q的面的索引。
第二组件S346'构成了算法的主要部分,即两点接触曲线计算算法。从图中的数字参考可以明显看出,除了一些差异,它与图32A的过程S346相同。本质上,S346”在B-Rep的成对表面贴片/面的集合上并行化。这是两点接触球体计算的最大解耦,因为局部接触球体的ODE的数值积分耦合了两个表面贴片(其包含相应的触碰曲线)。同样,算法的每个组件对于各个任务所使用的公共数据都可以是线程安全的。
S342'的输出是一个容器D,它具有一组起始值对,其中第二个起始值不限于某个面。因此,在两个并行化的框之间(第一个在面上并行化,第二个在面对上并行化)有一个同步步骤S344',其中所有结果E_1,...,E_n(n是面数)被处理为获得容器D_1,…,D_m(m是最大面对数,即m<=n*(n-1)/2)。然而,并不是每个面对都必须在这里贡献起始值,因此m通常小于n。出于这个原因,S342'是一种尝试(不确定每对面都成功)以建立一个或多个属于相应面的候选起始点。
具体来说,在S344',对于索引为i,j的每个面对,算法使用来自S342'的第i个线程的D_j和来自第j个线程的D_i来获得具有面对{i,j}的边和相应的值的容器D,所述容器D被输入到S346'的每个并行线程。
参考图47,建立尝试S342”可以与计算算法S346”一起在多个面对上并行化。
首先从所有过渡边计算初始值并且然后处理它们以跟踪两点接触球体的结果曲线的线性结构可以放在一起以允许另一优化。后者是通过为每个任务仅提供位于该任务中考虑的两个相应表面上的过渡边来实现的。图47示出了与此相符的全局接触球体算法的修改的控制流程S340”,换言之,在连续HID之下的全局接触球体算子的并行化版本的流程图。所有组件都已经是线程安全的,并且已经成功测试了表面贴片上的解耦。
根据以下,图47的算法不同于图46的算法。
S342”没有在B-Rep的面集合上并行化,但它在B-Rep的面对集合上并行化。因此,S342”的输入是每个线程的相应面对的所有过渡边的集合。S342”还包括一个额外的步骤S3427”,测试在S3426找到的顶点v是否属于相应线程对的第二个面(即,除了输入边e和结果点p之外的另一个面)。如果测试是否定的,则算法在边e处停止并尝试E的下一条边,否则它将考虑一对候选点,其中一个点位于线程的相应面对之外。因此,同步步骤S344'被移除,并且S342”和计算算法S346”之间的交互恢复到与图32A的S342和S346之间的交互相同。
图48示出了说明离散HID的并行化对完整HID算法(由离散和连续HID组成)的加速的影响的表。测量是在配备Intel Xeon W-2123CPU的Dell Precision 5820Tower上完成的,运行频率为3.6GHz(4核+超线程)和64GB RAM。该工作站上运行的操作系统是Windows10Enterprise 1809。表中提供了不同示例B-Rep上的相应细分所产生的顶点和三角形的数量(示例1是图9-10的B-Rep)。仅测试了使用并行版本的离散HID的实现。尽管如此,这应该足以了解性能提升。当达到完整HID算法的最终并行化时,预计至少另一个平均因子为2。
图49示出了说明应用于图48的示例中的三个示例的离散HID的三个步骤的工作负载百分比的表格。线程的工作负载是用Visual Studio Concurrency Profiler测量的。由于并行化被拆分为多个并行任务,因此此类任务的分布如下所示。“T”是细分任务,“H”是常规的头部碰撞任务,“B”是边二等分任务,并且“C”是全局接触球体任务。
如表中所示,工作负载在很大程度上取决于所使用的示例。对于某些示例,尤其是头部碰撞任务(“H”),此时的同步不是最佳的。这是由于在核心库中使用了一些非线程安全的例程,这些例程很容易寻址。
图50示出了图9-10的B-Rep的CPU利用率图。这为特定任务的工作量提供了另一个提示。

Claims (13)

1.一种用于车辆碰撞分析的计算机实现的方法,所述方法包括:
-提供(S10)表示车辆的外表面的B-Rep,所述B-Rep具有面;
-提供(S20)接触球体的半径值(R);以及
-针对所述半径值(R)确定(S30)所述3D建模对象的一条或多条两点接触曲线,所述确定包括,对于所述B-Rep的多个部分对中的每个相应部分对,基于所述相应部分对的相应两点接触曲线计算算法,所述计算算法在所述多个部分对上是并行化的。
2.如权利要求1所述的方法,其中,所述多个部分对中的每个部分对的每个部分是所述B-Rep的相应面。
3.如权利要求1或2所述的方法,其中,所述确定(S30)包括:
-细分所述B-Rep;以及
-处理所述细分,所述处理包括:
о针对所述半径值,识别单点接触顶点和非接触顶点;
о定义过渡边,每个过渡边由相应的单点接触顶点和相应的非接触顶点界定;以及
所述计算算法针对每个相应的部分对,将所述相应的部分对的相应的过渡边集合作为输入。
4.如权利要求3所述的方法,其中,所述细分在所述部分的集合上是并行化的,所述处理和所述计算算法在所述细分已经结束之后被执行。
5.如权利要求3或4所述的方法,其中,所述处理在所述部分的集合上是并行化的,所述计算算法在所述处理已经结束之后被执行。
6.如权利要求3、4或5所述的方法,其中,针对每个相应的部分对,所述计算算法包括,迭代地执行并且直到所述相应的过渡边集合为空:
-从所述相应的过渡边集合中选择过渡边;
-尝试基于所选择的过渡边来跟踪两点接触曲线;
-如果该跟踪尝试成功,则从所述相应的过渡边集合中删除与所跟踪的两点接触曲线相交的所有过渡边;以及
-从所述相应的过渡边集合中删除所选择的过渡边。
7.如权利要求6所述的方法,其中,所述B-Rep的每个面由相应的表面参数化(s1(u,v),s2(a,b),s3(c,d))支持,所述跟踪包括对相应的微分方程进行积分,所述微分方程是基于所述相应的部分对的表面参数化对({s1(u,v),s2(a,b)})的。
8.如权利要求6或7所述的方法,其中,所述确定(S30)包括:
-尝试建立一个或多个候选起始点对,每个候选起始点属于所述相应部分对的相应部分,每个候选起始点对被尝试基于所述相应部分对的相应的过渡边来被建立;以及
如果该建立尝试成功,则在所述计算算法中:
-所选择的过渡边是相应的过渡边,基于所述过渡边,所述确定(S30)成功建立相应的候选起始点对;并且
-所述跟踪尝试包括:
о尝试从所述相应的候选起始点对寻找属于所述两点接触曲线的相应初始点;以及
о如果该寻找尝试成功,则从所述相应初始点跟踪所述两点接触曲线。
9.如权利要求8所述的方法,其中,所述建立尝试包括将所述相应部分对的每个相应的过渡边二等分。
10.如权利要求8或9所述的方法,其中,所述建立尝试在所述多个部分对上或在所述部分的集合上是并行化的。
11.一种包括指令的计算机程序,所述指令在由处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的方法。
12.一种计算机可读介质,其上记录有如权利要求11所述的计算机程序。
13.一种系统,包括与存储器耦合的进程,所述存储器其上记录有如权利要求11所述的计算机程序。
CN202110748575.1A 2020-07-03 2021-07-02 并行化的车辆碰撞分析 Pending CN113888668A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20184097.2 2020-07-03
EP20184097.2A EP3933651A1 (en) 2020-07-03 2020-07-03 Parallelized vehicle impact analysis

Publications (1)

Publication Number Publication Date
CN113888668A true CN113888668A (zh) 2022-01-04

Family

ID=71614682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110748575.1A Pending CN113888668A (zh) 2020-07-03 2021-07-02 并行化的车辆碰撞分析

Country Status (4)

Country Link
US (1) US20220004674A1 (zh)
EP (1) EP3933651A1 (zh)
JP (1) JP2022023010A (zh)
CN (1) CN113888668A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3675063A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Forming a dataset for inference of solid cad features
EP3675062A1 (en) 2018-12-29 2020-07-01 Dassault Systèmes Learning a neural network for inference of solid cad features
US20230259664A1 (en) 2022-02-17 2023-08-17 Kabushiki Kaisha Shofu Method for estimating and restoring edge of tooth changed by scanning

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2521058A1 (en) * 2011-05-06 2012-11-07 Dassault Systèmes Determining a geometrical CAD operation
JP6499572B2 (ja) * 2015-12-17 2019-04-10 株式会社トヨタ車体研究所 設計支援装置および設計支援方法
EP3203394B1 (en) * 2016-02-02 2021-10-20 Dassault Systèmes B-rep design with face trajectories

Also Published As

Publication number Publication date
JP2022023010A (ja) 2022-02-07
EP3933651A1 (en) 2022-01-05
US20220004674A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US11100710B2 (en) Extracting a feature tree from a mesh
CN113888668A (zh) 并行化的车辆碰撞分析
JP4599270B2 (ja) 最小許容差スタックおよび最大許容差スタックの自動的計算を実行可能な方法、コンピュータ可読データ記憶媒体、およびコンピュータ支援設定システム
EP1710720B1 (en) Method of computer-aided design of a modeled object having several faces
EP2600315B1 (en) Creating a surface from a plurality of 3D curves
EP2750108A1 (en) Parameterizing a 3D modeled object for tessellation
CN103093036A (zh) 工件加工仿真
US9235656B2 (en) Determining a geometrical CAD operation
US8878841B2 (en) Determining a parameter of a geometrical CAD operation
US8941681B2 (en) CAD design with primitive closed shapes
US11934745B2 (en) Designing a part featuring a protrusion or a depression
US20220004675A1 (en) Vehicle impact analysis with two-point-contact curves
US9245060B2 (en) Selection of three-dimensional parametric shapes
US11195330B2 (en) Generation of a structured 3D model from a raw mesh
US20230177229A1 (en) Partitioning 3d cad model
CN113888667A (zh) 使用两点接触曲线的车辆碰撞分析
US6873944B1 (en) Method of real time collision detection between geometric models
JP2021131852A (ja) 機械部品の構造シミュレーション
JP2021111376A (ja) 製品の物理的なプロトタイプの3dモデル化オブジェクト
JP2008533614A (ja) 整合輪郭プロファイルを生成するシステム及び方法
EP4242976A1 (en) Processing a tesselation
JP2022186654A (ja) 機械部品のcad 3dモデルの処理
CN117634281A (zh) 生成表示工厂的3d模型

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