1.前言
复合材料(Composite Materials)一般是由两种或多种不同性质的材料组成,经过特定加工过程形成的新材料。它们的设计旨在结合不同材料的优点,克服单一材料的缺点,通常具有比单一材料更好的综合性能。复合材料的基本构成通常包括基体材料和纤维增强材料。复合材料作为较为新兴的一种结构材料,相比传统金属材料具有一定的优势,例如高比强度、高比刚度、耐腐蚀、抗疲劳等,在航空航天、汽车、风电、医疗器械等行业都有一定应用,尤其在航空航天行业的应用非常广泛。但相较于传统的金属材料,复合材料的应用也存在一些挑战,比如其设计分析困难,破坏模式复杂,难以预测,随机性相较于传统的金属材料会大很多,并且在高温高湿的的环境下,材料的性能会出现显著的下降,因此在设计复合材料结构时,对于其许用值的选择将会更加保守。
对于结构力学仿真而言,复合材料和传统金属材料之间最明显的一个差异就是:复合材料是各向异性材料,而金属材料一般认为是各向同性材料。因此对于复合材料的仿真建模会比传统金属材料的建模会复杂许多,需要考虑的因素也会更多。另一个差异便是,传统金属材料构成的结构一般会更有多样性,因为金属材料的结构可以通过很多种加工方式制造出来,比如铸造、锻造、车削、铣削、焊接等等,形成的结构可以是薄壁结构,也可以是复杂的厚实体结构,而复合材料一般的制造工艺都是将预浸料在模具上进行堆叠然后固化而成,所形成的结构基本都是薄壁结构。因此在仿真过程中,对于复合材料的建模一般都选用壳单元,而对于金属材料的结构则具体视结构形式而定。
本文将通过一个简单的结构,在hypermesh前处理器中进行网格划分、复合材料建模、施加载荷边界等前处理,然后提交至abaqus进行计算,然后在hyperviw后处理器对结果进行后处理。
2.建模与仿真
(1)模型结构
假如有这样一个复合材料组成的结构,复合材料存在丢层,中间红色区域堆叠了10层预浸料,而边缘区域只有8层,每层预浸料厚度0.2mm(这意味着红色区域的厚度是2mm,边缘区域厚度是1.6mm)
分析时,结构的四周都约束全部自由度,在表面施加0.001Mpa的均布压强载荷。复合材料结构的堆叠如下如所示,可以看到,中间区域是堆叠了P1-P10工10层预浸料,而边缘区域则没有铺叠P2和P9因此共计8层预浸料。
(2)仿真建模
首先提取复合材料下表面作为铺叠起始面,对应模具面(预浸料从这个面开始堆叠),然后划分网格,如下:
然后确定单元的法向是否正确,单元法向确定了材料的堆叠方向
单元的法向和堆叠方向是一致的,所以一定要确认确认好:
创建材料模型,type选择LAMINA,二维正交各向异性平面应力材料。
E1、E2分别是沿着纤维方向和垂直于纤维方向的弹性模量,Nu12是泊松比,G12、G13、G23分别是各个方向的剪切模量。由于我们稍后在后处理时会通过最大应变失效准则计算失效系数,因此需要输入个方向拉伸压缩以及剪切的许用应变值。这里的所谓的失效只是用于后处理中自动计算失效系数,用于判断结构是否满足设计的要求,并不会影响计算的应力、应变和位移的结果。由于复合材料在的沿着纤维方向和垂直于纤维方向的许用应变、或许用应力不一样,并且即便同一个方向,拉伸和压缩的许用值也不一样,因此可以通过一些失效准则计算出失效系数,极大的方便了后处理。最大应变失效准则如下,会计算各个方向的拉伸和压缩的应变与给定的许用应变的比值并得到最大值作为该单元的失效系数:
Xt、Yt分别是沿着纤维方向的拉伸失效应变,Xc和Yc分别是沿着纤维方向和垂直于纤维方向的压缩失效应变,S是工程剪切失效应变
创建复合材料铺层属性,一种铺层方式创建一个属性,对于这个模型,需要创建两个属性,分别是中间区域的属性和边缘区域的属性,如下:
这里需要注意offset选项需要勾上,并且Option选择SNEG,表示网格单元的位置位于铺层的底面(我们之前提取的模型的下表面划分的网格),Layup选项需要勾上,并且给铺层设置一个名称,层数选择10层。
点这个开始进行中间区域铺层的设置:
第一列是厚度;第二列是沿着厚度方向的积分点,对于线性分析3个就可以了;第三列是材料,选择之前创建的材料;第四列是铺层的角度,自行设计;第五列是每一层的名称,这是一个全局名称,稍后在边缘区域的铺层也需要对应上。
同样的方法设置边缘区域的铺层,把层数改为8层,其余相同,边缘区域的铺层如下:
对比可发现,少了P2、和P9两层,其余都一样。
接下来定义材料的纤维参考方向,也就是0°方向。
需要通过局部坐标系来定义,创建局部坐标系:
通过card edit编辑器编辑这个坐标系:
勾选这两个选项,并在name里面随便给坐标系命一个名称:
往下拖动,在locdir内输入3
至此,局部坐标系创建完成,在属性内引用这个坐标系:
(3)边界条件及载荷
创建一个loadcollector并将card Image改为HISTORY
在这个loadcollector内创建边缘一圈的约束和表面的压强载荷
(4)设置载荷步和输出
首先我们要确定输出些什么,对于复合材料仿真,一般我们会输出位移,应力,应变,失效系数这三个基础的量。位移很简单,直接输出节点位移即可。应力和应变则需要注意,设置铺层的时候我们定义了每一层在厚度方向上有三个积分点,分别是在每一层的顶面、中间、与底面,在输出结果时需要将每一层的三个积分点的值都输出出来。积分点序号从第一层开始分别是1、2、3,然后第二层是4、5、6以此类推,下图是abaqus文档里面的关于积分点编号的示意图:
所以我们需要做的就是把所有积分点的结果都输出出来,创建一个outputblock,设置如下:
第一行是输出的积分点编号,第二行是要输出些什么内容。注意我们最大的铺层数量是10层,也就是30个积分点,但是一个outputblock最多输出16个积分点,因此我们需要创建两个outputblock。
然后是创建载荷步,创建一个loadstep,设置如下:
至此,本次分析的所有前处理就做完了,下面便是把模型导出成一个inp文件提交计算了。
(5)提交计算
在和inp文件相同的文件目录下,新建一个记事本文件,在里面输入内容:
call abaqus job=t1 int
其中t1是导出的inp文件的名称(不包含后缀.inp),并将记事本文件后缀改为bat,然后运行这个bat文件即可提交计算。
(6)结果后处理
上一步运行完成后会生成一个后缀为odb的文件,这是abaqus的结果文件,可以在hyperviw面导入这个文件查看结果:
result-type里面的“E-Strain components(s)”表示的是复合层应变,“E-Stress components(s)”表示复合层应力
“MSTRN”是最大应变失效准则计算出来的失效系数,一般而言,失效系数到1就认为是结构不满足设计要求。除此之外还有Tsai-Hill准则和Tsai-Wu准则计算的失效系数,但这两个准则都是基于许用应力而计算的值,由于我们只给了许用应变,因此本次分析只有最大应变失效准则计算出来的失效系数结果
3.总结
本文完成了在hypermesh里面做前处理,在abaqus里面求解计算,在hyperviw里后处理的完整复合材料仿真计算流程,但由于水平有限,也难免有不足与错误之处,欢迎指出。