本文全部为自己写的,如需转发,请附上网址
有限元分析(FEA - Finite Element Analysis)是指利用数学近似的方法对真实物理系统(几何和载荷工况)进行模拟。利用简单而又相互作用的元素(即单元),就可以用有限数量的未知量去逼近无限未知量的真实系统。进行有限元分析,常用的两个软件为 Abaqus CAE 和 ANSYS。本文使用的是 Abaqus。
有限元分析的基本步骤通常分为三步:
(1)前处理:根据实际问题定义求解模型,包括以下几个方面:
定义问题的几何区域:根据实际问题近似确定求解域的物理性质和几何区域。
定义单元类型:
定义单元的材料属性:
定义单元的几何属性,如长度、面积等;
定义单元的连通性:
定义单元的基函数;
定义边界条件:
定义载荷(力)。
(2)总装求解:将单元总装成整个离散城的总矩阵方程(联合方程组)。总装是在相邻单元结点进行。状志变量及其导数(如果可能)连续性建立在结点处。联立方程组的求解可用直接法、选代法。求解结果是单元结点处状态变量的近似值。在 Abaqus 中就是 submit 提交一下自动就会计算了。
(3)后处理:即对计算结果进行观察、可视化分析以及数值分析等。
本文记录了使用 Abaqus 进行有限元分析的常规流程,基本上就是按照 Module 中的分块,从上到下进行即可,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/0d175580f1628f3dfdd6556209a134d8.png)
具体流程分为以下 9 步:
1)Parts
首先要做的就是导入模型,导入的模型需要是 .sat 格式,比如说想要使用的模型的 .obj 或者其他格式的 mesh 模型进行有限元分析,需要先对模型进行处理,简化、平滑、去掉内部网格等等,将其处理成为一个尽可能中空,密闭,形状不太奇怪,没有尖锐,没有自相交,网格不是非常密的模型,然后将其导入 Rhinoceros(犀牛) 软件中,我使用的是 Rhinoceros 5 (64-bit),直接拖动模型进入软件界面即可。拖进来后,选择“导入文件”,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/a659a6ab02bf42c2a5e46f5d855e8e68.png)
导入之后可以看到导入进来的网格模型,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/02f4410ba81edeb7b0d9077b9177e05e.png)
导入之后,左键单击模型(任意视图中),模型会变为亮黄色,右键单击“网格工具”中的转换按钮,即可将模型转换为多重网格,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/56499e7185c484c0f29570c33c98781f.png)
转换之后,左键单击模型,会发现有 “网格” 和 “多重曲面” 两个选项,选择 “多重曲面”,然后在左上角 “文件” 中选择 “导出选取的物件”,选择保存类型为 “ACIS (*.sat)” 即可。
![](https://i-blog.csdnimg.cn/blog_migrate/9056d119721bd1b41adc7be5b447b4ee.png)
![](https://i-blog.csdnimg.cn/blog_migrate/eac759f551558880fe84ab4407708502.png)
接下来就是要把 .sat 的模型导入 Abaqus 了,右键 Parts,然后点击 Import 导入 .sat 文件,即可将模型导入 Abaqus 中,将所有需要使用的模型导入 Abaqus 中后,第一步就结束了。
2)Property
导入模型后需要添加材质信息,本文中只是用两种:hard 和 soft。共分为三步(设置材质、设置section、指定section):
1、Create Material
在 Module 中选择 “Property”,点击 Property 中左上角的 “Create Material” 按钮,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/141f150b0ce9ec0faccfd9565516675e.png)
修改材质的名称,General 中选择 Density,设为 2,然后在 Mechanical 中选择 Elasticity 中的 Elastic,设置 Young’s Modulus(杨氏模量)为 100000000,Poisson’s Ratio(泊松比)为 0.35,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/83884e4fbc3216479db38de80e6a9ae2.png)
同样的方式设置 soft 材质类型,杨氏模型 100000000, 泊松比 0.4。
2、Create Section
点击 Property 中的 “Create Section” 按钮,命名为 hard,选项都选择默认的不变,点击 continue,在 “Edit Section” 窗口中选择刚才设置的 hard 材质,点击ok,hard材质设置就完毕了,同样方式设置 soft 的 section。
![](https://i-blog.csdnimg.cn/blog_migrate/e017ca3f6a8ee7d6ef46c76781a2dcb8.png)
3、Assign Section
点击 Property 中的 “Assign Section” 按钮,左键单击模型,即为模型赋予材质,右下角可以修改这个区域的名称,上方 Part 内可以切换模型,为不同模型赋予材质,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/cd608f41ca351fddd1345a3bb5e95605.png)
为模型赋予材质成功之后模型会变为绿色,如下图所示。为所有模型赋予材质之后,第二步就完成了。
![](https://i-blog.csdnimg.cn/blog_migrate/6eca3f1559bd3c81ff00db7dbcdb25bc.png)
3)Assembly
这一步把所有模型放在一起即可(可以注意到,在这之前,所有模型没法同时出现在屏幕上)。
点击 “Create Instance” 按钮,按住 ctrl 键,点击所有模型,点击 Apply 和 Ok 即可。可以发现模型全部出现在屏幕中了。
![](https://i-blog.csdnimg.cn/blog_migrate/c96084e792e4e06d8cbb3e3280d769b0.png)
这一步还没有结束,在左侧 Assembly 中的 Instances 中右键每个模型,选择 “make independent”,这一步就结束了。
![](https://i-blog.csdnimg.cn/blog_migrate/0ec51de50c9baed0593b8570616b6082.png)
4)Step
这一步是设置有限元分析的总时长和每一步时长。点击 “Create Step” 按钮,选择 Dynamic,Implicit,点击 continue,根据自己需要修改 Time Period,我这里使用的是 5。
![](https://i-blog.csdnimg.cn/blog_migrate/9f718dd432b4e807c9eb50b876b2bfdb.png)
5)Interaction
这一步是设置模型和模型之间的接触方式和接触部分。为了方便起见,我们先把需要设置的接触部分全部选取出来保存。
在上方 “Tools” 按钮中的 “Surface” 中选择 “Create”,创建一个表面。
![](https://i-blog.csdnimg.cn/blog_migrate/b5c832c47f26e75ca94f06bdd47c7ed1.png)
在选择一个模型表面的时候,其他模型很可能会影响选取,可以在左侧的 “Assembly” 中 “Instances” 中选择不想选取的模型,右键,选择 “suppress”,这个模型就会暂时隐藏掉,不会被选取,如果想让他恢复,右键点击 resume 即可。
![](https://i-blog.csdnimg.cn/blog_migrate/40450127a71a9482b015eda73707405f.png)
选取表面是,鼠标左键框选,按住 ctrl 为删减,按住 shift 为增选。选取成功后左侧 “Assembly” 的 “Surfaces” 中就会有新的表面,双击就会显示出来。
![](https://i-blog.csdnimg.cn/blog_migrate/9250c801726475a08d8d0a3492b01f11.png)
将所有需要用到的会接触的表面选取完成(将要设为固定的面,不用在这里设置,之后会单独设置)后,就可以开始设置接触(Interaction)了。
点击 “Interaction” 中的 “Create Interaction” 按钮,为接触起一个名字,点击 continue,在选择表面的时候,点击右下角 Surfaces 按钮,选择刚才设置的表面中的一个,然后再选择一个,继续,设置一下接触类型,即可完成这个接触的设置。
注意刚刚选择的两个表面是有顺序的,一定是施力面先选,受力面后选。
![](https://i-blog.csdnimg.cn/blog_migrate/b09e0f783588be5a9575ee41b81a8a41.png)
所有表面接触设置好后,会显示为黄色,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/78b6d9f62e079a159b1598fc34b3c096.png)
6)Load
这一步设置力和边界条件。首先先设置力,点击 “Create Load” 按钮,给这个力起个名字,点击 continue,鼠标框选受力点,设置xyz三个方向的受力,最终结果会用箭头表示三个方向上是否受力。
![](https://i-blog.csdnimg.cn/blog_migrate/d2e7eab721867089e113527d00e01555.png)
为了演示,只设置了一个很随便的力,位置也是随便选的,接下来就是设置边界条件了,点击 “load” 中的 “Create Boundary Condition” 按钮,鼠标框选出在模拟过程中保证不动的点(如果有其他模型碍事,就 suppress 掉),选择 Pinned 或者最后一个都行。
![](https://i-blog.csdnimg.cn/blog_migrate/e91b0957ecd22240215c7d5c8d0c4f06.png)
7)Mesh
这一步是对模型进行**剖分**。剖分的意义就是让空的模型被分为很多很多小实体,这有限个小东西组成这整个模型,这就叫有限元。用下图三个步骤就可以将模型剖分完成,推荐使用四面体剖分(Tet)。一个模型剖分完就会变成绿色,将所有模型进行剖分后这一步就结束了。
注意:每个模型剖分程度不一样,需要精密一点的,就把 Global Size 调小即可。
![](https://i-blog.csdnimg.cn/blog_migrate/a43df674fbd794d922b3756016a844fe.png)
![](https://i-blog.csdnimg.cn/blog_migrate/16dfd699738dbf995cf8338b60171da3.png)
8)Job
Optimization 没有用过。上边的都设置好之后,就可以创建job了,点击 “Create Job” 按钮创建任务,可以选择加速或者不加速,然后在 Job Manager 中,点击 submit 就开始计算了!(计算之前最好先 Data Check 一下,没有问题就可以计算)。
![](https://i-blog.csdnimg.cn/blog_migrate/77a4d052325d4fe5dad40ebc60f804be.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bdeb1b05120c4270369874f7dbe8ed30.png)
点击 Monitor 可以查看计算进度,完成后可以点击 Result 进入 Visualization 观察结果。
![](https://i-blog.csdnimg.cn/blog_migrate/9b285ad9618face09f4ae320398d2c1a.png)
9)Visualization
结果观察有很多方式,可以没有线框,可以只观察部分模型,可以观察受力和位移,等等等等,自己琢磨一下就好了,太多了不好写。大概结果如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/d2b5943d0302f067b6bf20864b2a9fee.gif)
写在最后
Abaqus对于有限元的分析功能很强大,只是展示了其中最最基础的冰山一角,不过这样出来的结果已经可以可视化了,不顾她对不对,反正看起来挺好看的= =。