Chapter 12 有限元分析

作为设计师,你做完了模型,可能还想知道它的一些性能。哪怕只是为了小批量制作,提前验证一下总是好的。

可以验证的性能有:

  • 零件在物理应力下表现如何?
  • 这个形状里,热量如何传递?
  • 液体怎么流过它的通道,怎么流过它的表面?
  • 它的电磁属性什怎么样?

如果你不想做物理样品来测试,唯一替代的办法是在数学上计算它在各种受力情况下的反应和效果。但是这些计算很难,也容易出错,对算力的要求远超出普通用户的水平,甚至也超过普通配置的计算机。

合理的替代之策是用有限单元方法(FEM),把模型看作更小、更简单的小块的集合,这些小块称为“有限单元 finite elements“。单元小,就可以使用简单的数学程序来计算;能集合,就可以把小结果整合入更大的方程组,得到全体模型的结论。这个方法的好处是既得到了近似的结果,也保证了误差最小化。

12.1 FEM 工作台

从 0.15 版开始,FreeCAD 就有了构造和执行有限单元分析的工作台。在 0.17 版中,这个工作台能做更多事情了。它允许用户在多种网格生成器和解算器中做选择,它能做上面所列举的全部四种分析。

FEM 工作台很强大,也很复杂,值得为它单独写本书。完整讨论 FEM 超出了本书范畴。这里我们只讲述它的基本工作流程,之后你可以自己深入探索。

类似其他某几个工作台,FEM 工作台也要调用外部应用程序,来执行繁重的计算任务。实际上,FEM 要依赖两个应用,一个创建称为网格2的元素矩阵,另一个才真正计算出结果。这些应用单独打包和发行,它们也得单独安装。

网格方面,FEM 调用 Netgen 或 GMSH。

解算方面,你需要安装 CalculiX3

如果你用的是 Ubuntu,或其它基于 Debian 的 Linux 发行版的操作系统,安装过程是很简单的,只要通过软件管理器安装相关软件就可以了。安装其他操作系统版本的方法,包括 Windows 和 Mac,记录在 FreeCAD 的维基页面里了。

12.2 FEM 的总体工作流程

  1. 创建容器,盛载分析用的所有部件;
  2. 运行网格划分器,输入模型,创建单元矩阵;
  3. 加上约束和外力,作好配置;
  4. 告诉 FEM 用什么材料的参数,混凝土和木材肯定不一样;
  5. 运行解算器得到结果对象,可用于深入分析,可用于直观呈现。

你评估出了结果,对模型有了新的理解,就可以用它来改善设计,做新的模型,然后更新分析结果。重复这个过程,直到你满意。

12.3 一个荒诞的例子:贝尔的金属探测器怎样挺过一场飓风!

我们想知道的是,如果固定金属探测器的上部块,给把手部分施加单方向很大的力,它变形如何?正式开始以前,先隐藏掉底座块,并且用零件工作台的布尔合并功能把上部块和把手部分结合为一个整体。

12.3.1 设置好分析环境

  1. 创建分析容器。

  2. 选中合并后的零件,创建 FEM 网格 。改变单元大小时要小心:最大单元如果很小,意味着网格有更高的分辨率,但是计算起来要费更多时间。我们这里接受默认值。

仅仅点击“OK”好像并没有创建网格。这里要先点“应用/Apply”之后再点“OK”。
  1. 让底座块不动,要给它加一个固定体约束 。弹出对话框会让你在模型上选择面,把它们加入选中清单里。如图 12.1 所示,我们加入底部的面。
底部的面保持不动

图 12.1: 底部的面保持不动

  1. 用类似的方式施加力。点图标 ,会打开一个对话框。在模型上选择面,把它们加入选中清单。如图 12.2 所示,手柄的所有面都加入进来了。这里还有必要把力换一个方向。

    如果没有明确指出,力的方向默认垂直于第一个选中的面。你可以手工更改,在对话框中点击 Direction 按钮,然后在模型上选择一个面。我们想要力的方向一致,就像在一场飓风中那样,我们从模型左侧选择一个面。

    增大面上的负载到相当大的一个值:9000。

给手柄所有的面施加一个力

图 12.2: 给手柄所有的面施加一个力

  1. 点击图标 ,给容器加上材质。FreeCAD 的默认材质只有很少的几种,但是你可以修改它们的属性,或者另建自定义的材质。如果你的模型由不止一种材质组成,你可以给单独的面赋予材质。在我们这个例子中,整体都是木质的,所以参考清单那里留空就可以了。
这里有一个通用的木质材料

图 12.3: 这里有一个通用的木质材料

12.3.2 运行计算

  1. 我们已经运行了解算器。在项目树上选中解算器对象节点 ,触发按钮开始计算 。如图 12.4 所示,你可以指定一个文件夹,存放工作文件;或者留白,让文件写入暂存区。点击按钮向硬盘写入 .inp 文件,然后点击按钮 Run CalculiX。
解算器的控制面板

图 12.4: 解算器的控制面板

12.3.3 有趣的部分!

CalculiX 运行完成后,3D 窗口中的场景自动更新,反映出网格和结果。

  1. 关闭对话框,并让原始模型不显示,把注意力集中到分析结果上。

  2. 在项目树上双击静态分析结果对象来打开它。

让原始模型不显示,把注意力集中到分析结果上

图 12.5: 让原始模型不显示,把注意力集中到分析结果上

运算结果有各种类型,它们会改变网格的颜色,显示哪里的力大些,哪里小些。在这个模型上,点选了“最大主应力”,左边的区域是红色和黄色,表示那里受到拉力,右边相反的区域是蓝色,表示那里受到压力。

拉应力和压应力区域表现为不同的颜色

图 12.6: 拉应力和压应力区域表现为不同的颜色

启用形变滑块,模拟零件的弯曲变形

图 12.7: 启用形变滑块,模拟零件的弯曲变形


  1. 有限单元法的网格不同于附录 16 中讲到的网格模型。

  2. Elmer 和 Z88 也可以