首页/文章/ 详情

(一)自己也能开发ABAQUS复合材料层合板自动建模工具?

12分钟前浏览13


以前做材料本构和细观建模的时候,第一个拦路虎就是建模。尤其是机织编织类的材料,需要搞懂一系列织造参数,才可能完成三维模型创建。这还不算完,搞完模型还要继续弄网格,一旦需要研究几何参数变化规律,上述的过程又得整一遍。

   


即便后面我已经很熟练了,这个过程仍然需要花费很多时间。那个时候我就在想,以后要是能自己搞一个参数化建模工具就好了。


后来做项目多了,发现不仅是细观结构,很多宏观上的部件,比如加筋壁板。在结构上设计迭代中,也需要一个自动建模工具,最好是一步搞出网格然后直接可以导入ABAQUS中使用,这样结构-力学评估-优化的效率将大大提高。


然而,对于复合材料而言,还面临一个问题就是铺层定义。尤其我们做UMAT/VUMAT,需要使用实体网格,这时候ABAQUS的自带的铺层模块就没法用了。铺层一多,搞铺层定义就需要花时间。


在这个执念下,后来我编写了很多参数化建模的小工具在项目里使用。

本期我们就以最简单的层合板为例,介绍一下自己搞自动建模工具的思路,本次开发采用MATLAB语言。

了解数据结构      

我们首先需要了解两个数据结构。一是ABAQUS inp文件的数据格式,这是我们的工具需要输出的。二是,了解ABAQUS有限元模型的数据结构,简单讲就是搞清楚网格这个东西在ABAQUS中是如何表达的。

随手打开一个ABAQUSinp文件,我们可以看到它主要包含如下部分:















1 Part  1.1 Node  1.2 Element  1.3 Nset  1.4 Elset2 ASSEMBLY  2.1 Instance  2.2 Nset  2.3 Elset3 MATERIALS4 STEP5 BOUNDARY CONDITIONS6 OUTPUT REQUESTS
 

     

   


我们需要重点关注Part ASSEMBLY,前者负责创建网格,后者则关系到材料局部坐标系的赋予,即铺层定义的实现。


所有的有限元网格都是由节点坐标信息(Node)和单元(Element)信息构成。ABAQUS自然也不例外。它主要在Part部分。ABAQUS对于不同的网格,在描述单元内节点排序的时候是有专门规律的,如果搞错了生成的单元就是负体积。

开发算法      

对于层合板而言,我们知道它是一层一层的,像魔方一样。      

   

1. 基本思路      


整个建模过程的基本思路是从二维平面网格出发,通过坐标扩展生成三维实体网格,然后为每一层单元指定相应的材料方向,最后按照ABAQUS的inp文件格式要求组织输出。


首先需要明确层合板的基本几何参数,包括板的长度、宽度、单层厚度以及总层数。这些参数构成了后续网格生成的基础。


在本方法中,用户可以灵活设置这些尺寸参数,同时还可以指定每一层的铺层角度,形成一个角度向量。铺层角度是层合板设计的核心参数,不同的角度组合会带来截然不同的力学性能。材料的弹性常数也需要在开始阶段给定,这些参数将在后续的材料定义部分被使用。


     

2. 二维平面网格创建      


二维平面网格的生成是整个建模过程的第一步。这一步的目标是在层合板的中面上建立规则的四边形网格划分。网格划分采用结构化网格的方式,通过指定网格密度参数来控制单元数量。


具体实现时:

  • 首先在板的一条边界上按照均匀间距生成一列节点,这些节点的坐标由板的宽度和网格密度决定。

  • 然后通过坐标平移的方式,沿着板的长度方向复 制这列节点,生成整个平面上的节点矩阵。

  • 每个节点都被赋予一个唯一的编号,这个编号系统在后续的三维扩展和单元定义中将被延续使用。

  • 节点坐标的生成采用了矩阵运算的方式,利用MATLAB的向量化特性提高了计算效率。


     

在节点生成之后,需要根据节点的拓扑关系定义单元连接。


每个四边形单元由四个节点按照逆时针顺序定义。单元的生成同样采用分列处理的策略,先定义第一列的单元连接关系,然后通过节点编号的规律性偏移生成其他列的单元。


这种方法保证了单元编号的连续性和规律性,为后续按层分配单元提供了便利。二维网格生成完成后,可以通过绘图功能将网格可视化,检查网格质量和节点连接的正确性。

   

3. 三维网格创建      


三维实体网格的生成是在二维平面网格的基础上,沿着厚度方向进行坐标扩展实现的。


层合板的每一层都需要上下两个节点面,因此对于N层的层合板,需要生成N加1个节点层。三维节点的生成通过在二维节点坐标上增加第三维坐标分量来实现,厚度方向的坐标值由单层厚度和当前层数决定。所有节点按照从下到上的顺序依次编号,这样的编号规则使得同一竖直线上的节点编号具有固定的间隔,这个间隔等于单层平面节点的总数。这种规律性为后续单元定义中的节点检索提供了极大便利。


三维单元的定义相比二维情况更为复杂,每个六面体单元需要八个节点来定义。这八个节点分为上下两层,每层四个节点,节点的排列顺序必须符合ABAQUS对C3D8R单元类型的要求。单元的生成采用了逐层处理的策略,对于每一层材料,将二维网格信息复 制并扩展为三维单元信息。具体做法是,对于第i层,其下表面的四个节点来自第i层的二维网格节点,而上表面的四个节点来自第i加1层的二维网格节点。通过节点编号的系统性偏移,可以高效地生成所有层的单元连接关系。生成的单元信息以矩阵形式存储,每一行代表一个单元,包含该单元的八个节点编号。


     

4. 材料方向的定义      


材料方向的定义是层合板建模的核心内容。每一层材料都有自己的纤维方向,这个方向通过局部坐标系来描述。


在ABAQUS中,材料方向通过Orientation命令来定义,需要指定局部坐标系的两个基向量。


本方法采用的做法是,根据用户给定的铺层角度,计算该角度下的局部坐标系基向量。第一个基向量沿着纤维方向,其在整体坐标系中的分量可以通过角度的三角函数计算得到。第二个基向量垂直于纤维方向,在平面内与第一个基向量正交。对于每一层,都生成一个独立的Orientation定义,并赋予唯一的名称。这些Orientation定义将在后续的Section定义中被引用。


     

5. 集 合的定义      


单元集 合的定义是为了将属于同一层的所有单元归为一组,以便对这一组单元统一指定材料方向和截面属性。


由于单元是按层依次生成的,每层的单元编号是连续的,因此可以通过单元编号的范围来定义每层的单元集 合。


ABAQUS支持使用generate关键字来定义连续编号的单元集 合,只需要指定起始编号、终止编号和步长即可。


对于N层的层合板,会生成N个单元集 合,每个集 合对应一层材料。这种按层分组的方式为后续的材料属性指定提供了清晰的逻辑结构。


     

6. 截面属性的定义      


截面属性的定义将材料属性、材料方向和单元集 合关联起来。

 

对于每一层,通过Solid Section命令定义该层的截面属性,命令中需要指定该截面应用的单元集 合、使用的材料方向以及材料名称。由于本方法假设所有层使用相同的材料,只是方向不同,因此所有Section定义都引用同一个材料定义,但引用不同的Orientation定义。这样的设置准确反映了层合板的真实构造:材料相同但铺设方向各异。


     

材料属性的定义包括材料的弹性常数。对于正交各向异性材料,需要定义九个独立的弹性常数,包括三个方向的杨氏模量、三个泊松比和三个剪切模量。这些参数按照ABAQUS规定的顺序排列输出。材料定义部分相对独立,可以根据实际材料的试验数据进行修改。本方法中材料参数作为输入变量,用户可以根据实际使用的材料体系进行调整。


     

7. inp的生成定义      


inp文件的生成采用了模块化的策略。整个inp文件被分解为多个模块,包括文件头、节点定义、单元定义、材料方向定义、装配定义、材料属性定义和分析步定义等。


每个模块的内容被分别写入临时文本文件,然后按照ABAQUS要求的顺序将这些文件内容合并,生成最终的inp文件。这种模块化方法的优点是结构清晰,便于调试和修改。如果需要修改某一部分内容,只需要修改对应模块的生成代码即可,不影响其他部分。


效果      

我们自己开发一个渲染程序,用于查看铺层分布。


     

   
   


将生成的inp文件导入到ABAQUS中,可以看出铺层定义正确:


     

   

   
  


来源:静界有限元
Abaqus复合材料二次开发MATLABUM材料控制渲染试验装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-11-23
最近编辑:12分钟前
静界有限元
博士 签名征集中
获赞 25粉丝 0文章 10课程 0
点赞
收藏
作者推荐

『静界有限元』工作室介绍

静界有限元工作室介绍part1工作室简介静界有限元1面向客户工作室主要面向在校学生、科研院所老师提供结构有限元仿真(含二次开发)、流体力学仿真、算法开发、软件开发服务。2服务内容结构有限元:复合材料失效分析、机织复合材料多尺度仿真、高速冲击仿真、疲劳分析、UMAT、VUMAT流体力学仿真:外流场仿真、单向流固耦合仿真、结冰冰形计算算法开发:数值计算、仿真结果二次处理软件开发:Matlab语言、Python语言part2工作室特色01深厚的FEM求解器技术积淀工作室长期致力于自研有限元求解器研制,对有限元方法有独到理解。可以更好的帮助客户利用现有的商用软件完成本构模型的二次开发,实现复杂问题的仿真。自研FEM求解器02大量UMAT/VUMAT开发经验针对材料静力失效、疲劳失效、低速冲击、高速冲击相关问题,工作室开发了大量的UMAT、VUMAT子程序,熟悉各种强度准则、渐进失效的实现方法。UMAT失效仿真03坚实的工业软件开发基础工作室在各类工业软件开发中,掌握了三维渲染、算法、交互、设备通信技术,为商用软件二次开发奠定了基础,可以帮助客户提高仿真结果的展示度。自研3D模块对有限元结果二次处理part3业务能力介绍1方向一:结构有限元复合材料失效分析:开发UMAT子程序,嵌入Hahin、蔡-吴等强度准则,采用渐进损伤方法,实现材料强度预测、失效模式预测、失效扩展过程预测、失效区域预测。复合材料接头损失区域应力应变曲线机织复合材料多尺度仿真:掌握机织复合材料单胞建模方法,开展单胞模型的弹性常数仿真计算、失效强度预测(基于UMAT子程序),并进一步实现宏观模型的工况仿真。单胞、全尺寸模型仿真高速冲击仿真:开发VUMAT子程序,考虑应变率效应,嵌入Hahin、蔡-吴等强度准则,采用渐进损伤方法,通过单元删除技术,实现结构高速冲击失效过程模拟。子弹穿透复合材料靶板疲劳分析:开发UMAT子程序,嵌入Hahin、蔡-吴等强度准则以及材料疲劳寿命模型,采用渐进损伤方法,实现结构S-N曲线预测、失效区域扩展过程预测。S-N曲线2方向二:流体力学仿真外流场仿真:掌握FLUENT、CFX、Fensap等CFD软件技术,精通ANSA等CFD网格划分软件,实现外流场气动仿真计算。单向流固耦合仿真:掌握单向流固耦合分析技术,将CFD获取的压力、温度等数据加载到ABAQUS中,进一步完成结构变形分析。结构变形结果自研结冰计算软件:自研Spring2D翼型结冰软件,免费开放使用。软件可以在数秒内完成翼型冰型计算,精度比肩Lewice软件。自研结冰软件Fensap结冰计算:精通Fensap结冰计算软件,可以实现复杂三维模型的流场计算、水滴撞击系数、多步冰形计算推进。某探头冰形进气口水滴撞击系数计算3方向三:算法开发数值计算方法:掌握FEM、CFD面元法、复合材料力学算法、常规数值计算方法,可以支持用户算法层面的定制化需求。面元法数值计算方法:掌握FEM、CFD面元法、复合材料力学算法、常规数值计算方法,可以支持用户算法层面的定制化需求。参数化网格生成三维云图渲染4方向四:软件开发工业软件技术:掌握基于PyQT、Matlabapp界面开发技术,熟悉Matlab、Python语言,精通设备通信采集技术、数据库技术、模块集成技术,支持多个工业软件项目落地。Matlab界面软件数据采集软件(基于Python)part4合作模式01技术服务针对客户具体仿真、计算、开发需求,完成相关工作,并撰写技术报告。02教学针对用户具体技术需求,开展一对一教学服务。03企业服务针对企业的重要项目需求,以外协单位方式承担技术任务,通过合同和技术协议进行工作内容、周期的强约束。来源:静界有限元

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈