焊接数值模拟中动态生死单元的有限元建模方法与流程

文档序号:11620772阅读:2843来源:国知局
焊接数值模拟中动态生死单元的有限元建模方法与流程

本发明涉及焊接数值模拟有限元分析技术领域,更为具体地,涉及一种焊接数值模拟中动态生死单元的有限元建模方法。



背景技术:

“生死单元”是现代焊接数值仿真领域常用的模拟方法,其作用是在焊接有限元计算过程中焊缝单元随焊接过程动态的填充焊缝,与实际的焊接过程相符以获得与实际焊接过程相吻合的温度场,提高数值仿真的精度。python为大型通用abaqus软件的二次开发语言,可以对abaqus进行建模、计算一体化,尤其在焊接领域中要使用python二次开发进行焊接过程“生死单元”的定义;同时tcl是高级网格前处理hypermesh软件的二次开发语言,可进行复杂模型网格前处理,可以实现不同行业用户的特殊需求而进行二次开发。

如何实现焊接“生死单元”的自动化建模与定义相关的边界条件,在保证温度场计算精度的同时能简化程序,是焊接数值模拟能在工程上进行应用的前提。基于大型通用软件abaqus的传统“生死单元”技术是在abaqus里采用python进行编程、建模、仿真与计算,由于abaqus自带的建模与网格划分灵活性不强,复杂网格处理较为困难,使得编写的程序十分复杂,尤其在多层多道焊接中实用性更加不强,而工程焊接过程大多采用多层多道焊,这就限制了焊接数值模拟的应用范围。另一方面,从外部导入abaqus的复杂的焊接网格模型由于没有实体模型,传热边界条件无法准确的定义到每一个相关的单元面上,一般的处理方法是采用等效的简化,如采用一个总的传热系数代替热对流与热辐射,这所带来的影响就是由于边界条件没有准确定义使得数值模拟结果精度不高。



技术实现要素:

鉴于上述问题,本发明的目的是提供一种焊接数值模拟中动态生死单元的有限元建模方法,以解决现有焊接有限元分析中编程复杂,温度场计算结果精度不高的问题。

本发明提供的焊接数值模拟中动态生死单元的有限元建模方法,包括:

步骤1:建立焊接结构的三维实体模型,并根据焊接材料将三维实体模型分为母材区和至少一个焊缝区;

步骤2:对三维实体模型进行几何清理,并将母材区和焊缝区创建为新的层或集合;

步骤3:将母材区划分成体网格,并保存到母材区所在的层或集合中;以及,在焊缝区建立面网格,并保存到焊缝区所在层或集合中;

步骤4:将焊缝区的面网格拉伸生成体网格,当每次填充焊缝金属单元时新建一个新的层或集合,提取当前焊接位置所有单元的外表面作为换热面并生成一个集合或层的描述,循环操作,直到全部焊缝区完成新的层或集合的建立及单元面的提取,生成焊接有限元分析模型;

步骤5:定义焊接材料的材料属性并赋予给输入焊接有限元分析模型的单元,以及,定义单元类型为八节点六面体;

步骤6:建立第一分析步骤;其中,第一分析步骤的分析时间为1*10^6秒,不激活每个焊缝区的焊缝金属单元;

步骤7:将第一次提取的单元的换热面所在的集合或层的描述赋予对流换热系数与辐射换热系数;

步骤8:建立第二分析步骤;其中,第二分析步骤的分析时间的秒数为总时间除以换热面的总数,激活第二次提取的单元的换热面所在的集合或层的描述,不激活第一次提取的单元的换热面所在的集合或层的描述,循环操作,直到完成所有的焊接过程的定义,建立生死单元的有限元模型。

利用上述根据本发明提供的焊接数值模拟中动态生死单元的有限元建模方法,在焊接过程中,每一步都将整个换热单元面进行更替,而不是基于焊缝金属单元的单元面的激活与杀死,精准的定义了换热单元面的同时避免了复杂的程序设计。

为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。

附图说明

通过参考以下结合附图的说明,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:

图1为根据本发明实施示例的焊缝金属单元的填充过程图;

图2为图1的局部放大图。

具体实施方式

本发明提供的焊接数值模拟中动态生死单元的有限元建模方法,包括如下步骤:

步骤1:建立焊接结构的三维实体模型,并根据焊接材料将三维实体模型分为母材区和至少一个焊缝区。

通过三维软件建立焊接结构的三维实体模型。

在将三维实体模型分为母材区和至少一个焊缝区后,将母材区与焊缝区存储为stp通用数据格式。

步骤2:对三维实体模型进行几何清理,并将母材区和所述焊缝区创建为新的层或集合。

通过hypermesh软件读入stp通用数据格式的文件,并对三维实体模型进行几何清理。

对三维实体模型进行几何清理的过程为:删除合并整个三维实体模型中多余的点线面体。

步骤3:将母材区划分成体网格,并保存到母材区所在的层或集合中;以及,在焊缝区建立面网格,并保存到焊缝区所在层或集合中。

分别对母材区和焊缝区的体网格进行疏密过渡以保证焊缝区的网格质量,母材区和所述焊缝区的体网格均为完全六面体网格。

步骤4:将焊缝区的面网格拉伸生成体网格,当每次填充焊缝金属单元时新建一个新的层或集合,提取当前焊接位置所有单元的外表面作为换热面并生成一个集合或层的描述,循环操作,直到全部焊缝区完成新的层或集合的建立及单元面的提取,生成焊接有限元分析模型。

换热面为与单元与空气接触的面,本发明以单元的外表面作为换热面。

在每次填充焊缝金属单元时,可以一次填充一个或多个焊缝金属单元,对应地,新建一个集合或层,在每新建一个集合或层时,对该集合或层的描述进行命名,例如:当填充一个焊缝金属单元新建一个新的层或集合时,将生成的集合或层的描述命名为surface-0,当再次填充一个焊缝金属单元新建一个新的层或集合时,将生成的集合或层的描述命名为surface-1,以此类推,直到全部焊缝区完成新的层或集合的建立及单元面的提取。对于一次填充多个焊缝金属单元时,同理适用。

可以用surface-0表示提取第一个单元的换热面,surface-1表示提取第二个单元的换热面,每一次填充焊缝金属单元时,均会提取一次换热面,采用新提取的换热面替换旧的换热面,例如用surface-1表示的换热面代替surface-0表示的换热面。

步骤4通过tcl程序语言编程。

步骤5:利用合并命令将步骤4中所生成的所有重复的节点和单元合并统一。

步骤6:将步骤2、步骤3、步骤4、步骤5过程中所产生的面网格删除。

在建立焊接有限元分析模型后需要删除面网格,删除面网格的目的在于确保焊接有限元分析模型中只有实体网格。

步骤7:检查步骤6中网格数据的正确性,并输出为inp后缀的abaqus文件。

在输出的inp文件时,必须进行网格数据有效性的检查,确保无重复节点、单元,以及命名错误等问题,如果发现重复或命名错误问题,返回hypermesh软件重新运行调试tcl程序。

步骤8:将步骤7所产生的inp文件读入abaqus软件。

在读入步骤7所产生的inp文件时,检查数据交接时步骤4所建立的层或集合和换热面数据的正确性。

步骤9:定义焊接材料的材料属性并赋予给输入焊接有限元分析模型的单元,以及,定义单元类型为八节点六面体。

材料属性包括材料密度、热膨胀系数、导热系数、对流换热系数、辐射换热系数。

步骤10:定义初始常数constant,如玻尔兹曼常数、绝对零度。

步骤11:定义dflux焊接热源集中热流载荷。

dflux为焊接体热源或面热源的fortran编写的用户子程序。

需要说明的是,步骤9-11不分先后顺序。

步骤12:建立第一分析步骤;其中,第一分析步骤的分析时间为1*10^6秒,不激活每个焊缝区的焊缝金属单元。

由于最开始时没有焊接,因此,需要将所有单元定义为“死”,即不激活所有单元与单元的换热面。同理,在激活单元时,激活单元及单元的换热面。

步骤13:将第一次提取的单元的换热面所在的集合或层的描述赋予对流换热系数与辐射换热系数。

根据对集合或层的描述的命令来对集合或层的描述赋予对流换热系数与辐射换热系数。

将第一次提取的单元的换热面所在的集合或层的描述赋予对流换热系数与辐射换热系数,即将surface-0所在的集合或层的描述赋予对流换热系数与辐射换热系数。

步骤14:建立第二分析步骤;其中,第二分析步骤的分析时间的秒数为总时间除以换热面的总数,激活第二次提取的单元的换热面所在的集合或层的描述,不激活第一次提取的单元的换热面所在的集合或层的描述,循环操作,直到完成所有的焊接过程的定义,建立生死单元的有限元模型。

第二次提取的单元的换热面所在的集合或层的描述,即为surface-1所在的集合或层的描述。

可以理解为surface-1相对于surface-0是新的换热面,而surface-1相对于surface-2是旧的换热面,每次填充金属焊缝单元时,用新的换热面替换旧的换热面,即在激活新的焊缝金属单元的同时激活新的换热面,同时杀死旧的换热面。

步骤15:检查步骤14中定义有无bug,完成整个焊接过程“生死单元”的fea建模过程,新建job,写入inp文件,等待计算。

步骤8-14通过python程序实现。

在实际的焊接的冷却过程中,焊缝在高温下的散热方式主要是由热辐射,其次为与空气的对流换热,以及焊接结构中的热传导,在采用“生死单元”有限元数值计算模拟焊接的过程中,焊缝金属为了与真实的焊接过程相符往往采用逐步填充的方式进行,以得到比较精确的温度场。如图1所示,在焊缝金属单元填充的过程中,伴随着新旧换热面的交替过程,在数值模拟中,每一步需要定义新的换热面的换热系数,同时抑制旧的换热面的换热,这个循环的过程采用tcl/python程序进行编程设计,与一般的方法不同的是每一步都将整个换热面进行更替,而不是基于焊缝单元的换热面的激活与杀死,精准的定义了换热单元面的同时避免了复杂的程序设计。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1