一种生成三维有限元网格的方法

文档序号:6650543阅读:171来源:国知局
专利名称:一种生成三维有限元网格的方法
专利说明一种生成三维有限元网格的方法 本发明涉及计算机图像处理技术,尤其涉及一种生成三维有限元网格的方法。在在各种制造业生产当中,比如汽车产品设计制造过程当中,需要对结构部件进行受力和变形分析、流体流动性分析、或者电磁领域分析,以达到节约设计成本、缩短产品上市周期的目的。通常在电脑中建立一个产品的三维立体模型,以作为分析的基础。目前的Pro-Engineer,CATIA,和Patran可以用来作为三维建模工具,CAD(Computer Aided Drafting)通常用于作为基本的有限元分析工具。
作为三维有限元方法的最初过程,首先将一个待分析结构或机械部件划分为一定大小的小单元,这个过程称为网格划分;具体是通过将三维模型占用的空间划分为很多小的实体单元来完成三维实体的网格划分。实体单元是一种简单的几何形状,例如四面体或者六面体。实体单元根据它们的外形不同可以分为四面体单元、六面体单元、棱柱单元和棱锥单元。因为对一个大的模型划分四面体单元所需要的单元数量较多,容易产生单元形状畸变,所以四面体单元对于有限元分析而言获得的网格质量比较差,计算精度比较低。而六面体单元相对来讲则没有以上缺点,因此,通常使用六面体单元来进行网格划分,以便获得较高的计算精度和计算效率。


图1所示。图1a至1e表示通常方法下对产品模型进行有限元网格划分的过程。图中是一个杯子的三维有限元模型。杯子的初始数学模型是一个CAD模型。通常,为了生成杯子几何形状的三维有限元模型,首先要将杯子的底部进行实体网格划分,如图1A所示。图1B和1C中,杯壁的实体网格划分是通过将杯底的实体网格单元进行合适形状的实体网格单元堆垛来形成。很多前处理软件都有堆垛的功能,也可以称为网格映射,通过将面网格按照一定的方向来进行投影,然后设定投影之间的实体网格数量,就能够得到所需的实体网格。图1d和1e中,通过将杯壁的实体网格单元进行合适形状的堆垛来得到杯子手柄的三维实体网格单元。通过以上过程,得到最终的杯子的实体网格。
上述有限元网格生成的方法是首先需要将实体划分为若干形状规则的小块,比如图中的杯子可以划分为圆柱形的杯体和矩形的手柄。通过对这若干个小块全部划分实体网格后,来得到整体的实体网格。即通过手动确定节点,比如说杯子的手柄与杯壁的连接处即是节点所在;然后按照一定顺序一个一个的形成实体单元,并且最终获得三维的实体网格。这是一个非常复杂的过程,因此,为了生成高质量的网格,要求有充足的时间和长时间积累的经验才能做到。例如,对一个汽车工程师来讲,从CAD模型来最终生成六面体有限元网格需要大约三至六个月时间。
通过以往的计算结果与试验对比来看,六面体网格划分后的计算结果最为接近正确结果,五面体其次,四面体最差,但是通常由于实体形状的不规则等原因,使用软件来自动划分出规则的六面体网格是不可能的,所以CAE分析工程师多数都采用手动划分网格的方法来得到相对满意的六面体网格。从字面意义来看就能够认识到,手动划分六面体网格过程很复杂,通常一个中等难度的形状如果要进行六面体网格划分也需要很长一段时间,通常都需要好几个月。因为三维网格建模需要占用大量的时间,给后续的分析和设计造成了一个瓶颈,是工程设计领域的一个基础的难题。本发明要解决的技术问题是提供一种短时间、高质量、有利于高效率进行分析的生成三维有限元分析网格的方法。
本发明是通过下面的技术方案来实现的一种生成三维有限元网格的方法,包括以下步骤101、在对象实体三维模型的表面进行二维面网格划分;102、通过由投影轮廓线建立起来的实体基本网格来产生包围三维模型的实体基本网格;103、将二维面网格插入到实体基本网格之后,去除对象实体面网格之外的实体网格,得到最终需要的实体三维网格。
进一步地,本发明在步骤101之前还包括以下步骤建立对象实体的三维模型。
进一步地,本发明所述步骤102包括以下步骤
301、把对象实体往平面上投影,画出对象实体的投影轮廓线;302、对投影轮廓线所形在的面进行网格划分;303、以所述投影轮廓线所在平面的网格为基础,对照对象实体的高度,通过对所述平面的二维网格进行网格堆垛形成实体基本网格。
进一步地,本发明步骤301所述的投影是垂直方向或者非垂直方向。
进一步地,本发明步骤303所述的堆垛网格是六面体、五面体或者四面体。
进一步地,本发明步骤103所述去除对象实体面网格之外的实体网格采用穿透算法。
进一步地,本发明所属穿透算法包括以下步骤701、选取实体单元内第一任意点;702、选取实体基本网格之外的第二任意点;703、连接所述第一任一点和第二任意点,计算所述第一任意点和第二任意点之间连线所穿过的对象实体网格面的穿越次数;704、若所述穿越次数是奇数,则所述实体单元位于所述对象实体的表面网格之内;若所述穿越次数是偶数,则所述实体单元位于所述对象实体的表面网格之外。
更进一步地,本发明还包括以下步骤通过将节点的第一位置变换到第二位置,消除突出于面网格之外的尖角。
由于采用了以上的技术方案,二维面网格和实体基本网格都很容易得到,由于采用了穿透算法,生成最终实体网格的过程所需时间相比传统方法就大大缩短,几个月的工作量在几天甚至几个小时内即可完成。同时,因为生成的三维实体网格是六面体网格,故网格质量比较高,产生的计算误差也可以得到很大程度的改善。图1为已有的三维有限元网格生成过程示意图。
图2为本发明生成三维有限元网格过程示意图。
图3a至图3e分别是对图2b、2d、2e、2f和2g的放大图。
图4是本发明的三维有限元网格的生成过程流程图。
图5是本发明中单个网格单元的示意图。下面结合附图和具体实施方式
对本发明作进一步的阐述。
如图2、图3a至图3e所示,以一个杯子的三维有限元网格生成过程为例。针对一个杯子的实体,如图2a所示,首先需要建立它的三维模型,可以通过CAD建模软件来建立。第二步,对杯子表面建立网格。利用杯子的CAD模型建立面网格,如图2b和图3a。面网格的生成方法是传统网格划分方法,其基本原理是通过结点连接来得到相应的面网格。对于工程分析人员来说,可以很简单实现。第三步,画出杯子CAD模型的投影轮廓线,如图2c和图3b所示,把杯子垂直往放置的水平面上投影。假设杯子CAD模型在(X,Y,Z)坐标系内,Z轴作为垂直方向,投影轮廓线在X-Y平面内生成,图2c和图3b表示了杯底和手柄的投影轮廓线形状。所述的投影也可以是非垂直方向。第四步,通过对投影轮廓线所形在的面进行网格划分,如图2d和3b所示,生成了杯底及其所在平面的网格。第五步,生成六面体实体基本网格。以杯底以及所在平面的网格为基础,对照杯子的高度,通过对杯底以及所在平面的二维网格进行六面体网格堆垛,整体形成了一个六面体形状,生成了实体基本网格,如图2e和3c所示。实体基本网格也是面网格的一种形式,是二维平面网格,能够利用现有软件实现。通过选择合适的网格高度,所得到的每一个六面体单元的尺寸都适合计算精度的要求。当需要较高的计算精度时,可以将网格划分得很细小,这时候网格高度就选择小一些;而对精度要求不是很高的情况下,可以将网格适当划分得大一些,这时候网格高度就会相应大一些。第六步,通过将图3a面网格与图3c实体基本网格的投影底面轮廓线进行位置对接,将图3a所示杯子的表面网格被插入到实体基本网格中,如图2f和图3d所示。第七步,在实体基本网格中除去包围在杯子的面网格之外的部分,剩余的六面体网格就是所要得到的杯子的三维实体网格。如图3e所示。用于堆垛的网格也可以是五面体或者四面体。这些剩下的六面体网格的确定是通过穿透算法进行计算后获得。即通过计算一条连接实体单元(在实体单元内取任意点)和一个实体基本网格之外的任意点的连线所穿过的网格面的次数来得到的。如果这个次数是奇数,说明实体单元位于杯子的表面网格之内;如果这个次数是偶数,说明实体单元位于杯子的表面网格之外。
图4是本发明的流程图。根据图4,流程402首先建立一个CAD模型;流程404,根据CAD模型得到模型形状在一个面上的投影;流程406,根据流程404所得到的投影形状,对这个平面进行网格划分;流程408,通过已经划分得到的底面网格,来进行网格堆垛,得到实体基本网格;流程410,根据流程402所得到的CAD模型,来对这个模型的表面进行面网格划分,然后将流程410和流程408按照投影线的形状来进行对接,将模型的二维面网格插入到模型的三位实体基本网格中,从而完成流程412;最后,流程414,通过穿透算法去掉不属于产品实体的三维网格,剩余的三维实体网格就是所要得到的CAD模型的三维实体网格。从而完成所有流程。
图5形象地详细解释了前面所提到的穿透算法的实现过程。其中用点划线标记的是实体基本单元网格,用实线标记的是实体的面网格,实体面网格已经与实体基本单元网格进行了对接插入。根据图5,任意取几个实体单元中的任意点,用E、F、G来表示。其中点E和点G位于面网格之外。点B是在实体基本单元之外任取的点。可见,通过B点与另外3个点E、F、G的连线,线BE和线BG分别穿过面网格的次数为0和2,均为偶数次,所以可以判断点E、G均位于面网格之外,故其所在的实体单元也位于面网格之外。而线BF穿过面网格的次数为1,为奇数次,故可以判断点F位于面网格之内,故其所在的实体单元也位于面网格之内。通过穿透算法分析,可以轻易的区别出哪些单元是我们所需要保留的,哪些单元是应该被去掉的。
根据图5,实体单元内的一些节点例如A1和A2,它们所在的实体单元包括了点F,所以这些节点需要保留下来。可以通过改变这些节点的位置,使它们变化到A1-1和A2-1的位置上去,从而消除突出于面网格之外的尖角。这在前处理软件划分网格过程中,只需要使用位置移动命令设定一定的移动距离就能够实现。
权利要求
1.一种生成三维有限元网格的方法,包括以下步骤101、在对象实体三维模型的表面进行二维面网格划分;102、通过由投影轮廓线建立起来的实体基本网格来产生包围三维模型的实体基本网格;103、将二维面网格插入到实体基本网格之后,去除对象实体面网格之外的实体网格,得到最终需要的实体三维网格。
2.根据权利要求1所述的生成三维有限元网格的方法,其特征在于在步骤101之前还包括以下步骤建立对象实体的三维模型。
3.根据权利要求1所述的生成三维有限元网格的方法,其特征在于步骤102包括以下步骤301、把对象实体往平面上投影,画出对象实体的投影轮廓线;302、对投影轮廓线所形在的面进行网格划分;303、以所述投影轮廓线所在平面的网格为基础,对照对象实体的高度,通过对所述平面的二维网格进行网格堆垛形成实体基本网格。
4.根据权利要求3所述的生成三维有限元网格的方法,其特征在于步骤301所述的投影是垂直方向或者非垂直方向。
5.根据权利要求3所述的生成三维有限元网格的方法,其特征在于步骤303所述堆垛的网格是六面体、五面体或者四面体。
6.根据权利要求1所述的生成三维有限元网格的方法,其特征在于步骤103所述去除对象实体面网格之外的实体网格采用穿透算法。
7.根据权利要求6所述的生成三维有限元网格的方法,其特征在于所属穿透算法包括以下步骤701、选取实体单元内第一任意点;702、选取实体基本网格之外的第二任意点;703、连接所述第一任一点和第二任意点,计算所述第一任意点和第二任意点之间连线所穿过的对象实体网格面的穿越次数;704、若所述穿越次数是奇数,则所述实体单元位于所述对象实体的表面网格之内;若所述穿越次数是偶数,则所述实体单元位于所述对象实体的表面网格之外。
8.根据1至7任一权利要求所述的生成三维有限元网格的方法,其特征在于还包括以下步骤通过将节点的第一位置(A1)变换到第二位置(A1-1),消除突出于面网格之外的尖角。
全文摘要
本发明属于计算机图像处理领域,公开了一种生成三维有限元网格的方法,包括以下步骤101.在对象实体三维模型的表面进行二维面网格划分;102.通过由投影轮廓线建立起来的实体基本网格来产生包围三维模型的实体基本网格;103.将二维面网格插入到实体基本网格之后,去除对象实体面网格之外的实体网格,得到最终需要的实体三维网格。由于采用了以上的技术方案,二维面网格和实体基本网格都很容易得到,由于采用了穿透算法,生成最终实体网格的过程所需时间相比传统方法就大大缩短,几个月的工作量在几天甚至几个小时内即可完成。同时,因为生成的三维实体网格是六面体网格,故网格质量比较高,产生的计算误差也可以得到很大程度的改善。
文档编号G06F17/50GK1991846SQ20051012143
公开日2007年7月4日 申请日期2005年12月29日 优先权日2005年12月29日
发明者张岩, 谢卿 申请人:比亚迪股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1