论文部分内容阅读
制造业是我国国民经济的支柱产业,流程工厂作为制造业的重要组成部分,对社会经济发展具有十分关键的作用。随着CAD技术、协同计算技术的发展以及工厂规模的不断扩大,业界对流程工厂的设计效率提出了更高的要求。但是当前工厂设计软件的碰撞检测速度远远满足不了协同设计中实时性的要求。因此,提高流程工厂设计软件中碰撞检测的速度是目前急需解决的问题,并具有很强的现实意义。本文将围绕提高流程工厂设计软件的碰撞检测的速度问题展开研究,研究的主要内容和贡献如下: (1)研究流程工厂模型的空间分布特征,寻找较优的场景划分方法。传统的四叉树、八叉树、BSP树等场景划分方法在划分大规模场景时,存在叶子节点的数量较多、内存占用较多等问题。针对以上问题,本文根据流程工厂模型的分布特征,结合建筑层的位置信息,提出了一种基于建筑结构的N叉树的场景划分方法。在大规模流程工厂模型中,该方法比八叉树的叶子节点数量减少约2/5,内存占用减少约1/7。因此,基于建筑结构的N叉树的场景划分方法比八叉树的场景划分方法更具有优势。本阶段的工作是碰撞检测的预处理阶段,为后续快速碰撞检测算法准备了数据。 (2)对碰撞检测算法常用的三个关键技术进行研究。常用的由粗到精的碰撞检测方法存在包围盒紧密性与详细碰撞判断计算量的矛盾。为了确保碰撞检测算法是“准而快”的:一,从工程设计的实际角度出发,整理和利用流程工厂模型的碰撞检测规则;二,结合流程工厂模型的特征,选择AABB包围盒做粗略碰撞检测;三,将详细碰撞判断分成三类问题分别处理。本文使用以上关键技术,并结合并行计算技术设计了一种快速碰撞检测算法。实验结果表明,本文的碰撞检测的耗时比国内外典型的主流设计软件的耗时更少。 (3)本文基于CUDA平台对快速碰撞检测算法进行了并行化实现。由于GPU比CPU具有更低廉的价格、更大量的执行单元和不增加用户成本等优势,本文利用空闲的GPU资源来实现碰撞检测算法。本文介绍了实现GPU并行计算所使用的CUDA并行编程架构,随后描述了碰撞检测算法的并行化设计过程。然后,设计并实现了基于CUDA平台的快速碰撞检测算法。对于规模为12万个体素的某液腊工厂模型,使用型号为NVIDIA GeForce GTX970M的单台计算机,本算法的耗时比Navisworks Manage(R)快76秒、比PDSOFT Review(R)快227秒,本并行算法的加速比达到6.5。 本文工作依托于PDSOFT Open5D(R)三维协同设计图形平台、OpenSceneGraph和OpenCasCade等开源库,本文通过使用流程工厂特征,实现基于建筑结构的N叉树、规则过滤、详细碰撞判断分成三类问题、CUDA并行化等方法,有效地提高了大规模流程工厂设计模型的碰撞检测速度。