CAD中的自动化设计,FEA分析和优化

时间:2015-08-01 21:28:11

标签: optimization scripting automation cad finite-element-analysis

我想通过让优化器对CAD文件进行更改来优化设计,然后在FEM中进行分析,并将结果反馈到优化器中,根据FEM对设计进行更改,直到解决方案为止收敛到最佳(质量,刚度,否则)。

这就是我想象的:

  • 在CAD软件(例如CATIA)中创建零件的蓝图。
  • 从编程语言(例如Python)中运行优化器代码(例如fmincon)。优化器的参数是CAD模型的参数(角度,长度,厚度等)。
  • 优化器评估某个设计(参数集)。编程语言调用CAD软件并相应地修改设计。
  • 编程语言提取一些信息(例如质量)。
  • 然后编程语言提取STEP文件并将其传递给执行预定义分析的FEA求解器(例如Abaqus)。
  • 编程语言读取结果(例如max van Mises stress)。
  • 将CAD和FEM的结果(例如质量和压力)输入优化器,从而相应地改变设计。
  • 直到它收敛。

我知道这是在一个封闭的架构(例如isight)中存在的,但我想使用一个开放式架构,其中优化器是在开放式编程语言(理想情况下是Python)中调用的。

最后,这是我的问题:

  • 可以这样做,正如我所描述的那样吗?
  • 参考资料,教程?
  • 您推荐哪些软件用于编程,CAD和FEM?

1 个答案:

答案 0 :(得分:6)

是的,可以做到。您所描述的是一个小参数结构大小多学科优化(MDO)环境。在您开始编写工具或环境编码之前,我建议您在几个方面做一些初步工作

  1. 小心地制定最小化问题(最小化f(x),其中x是包含......变量的向量,受......约束等)。
  2. 调查和识别感兴趣的个人工具
  3. 每个工具如何运作?输入变量?输出变量?
  4. 设计结构矩阵中的概述(a.k.a. N ^ 2图)工具如何将信息(变量)相互馈送
  5. 哪种优化器最适合您的问题(MDF?)
  6. 确定合适的收敛容差
  7. 完成上述步骤后,我会开始考虑MDO实施细节。 Python虽然不是最快的语言,但却是一个理想的环境,因为有很多用Python构建的工具来解决你所拥有的MDO问题和开发时间短。我建议使用以下软件包

    • OpenMDAO(http://openmdao.org/):由美国宇航局格伦研究中心编写的现代MDO平台。这些教程很好地帮助您入门。请注意每个"纪律"在Sellar问题中,本教程中的第二个问题包括调用您的工具而不是封闭形式的方程式。只要您遵循OpenMDAO的类框架,它就不关心每个学科是什么,并将其视为一个黑盒子;它并不关心输入和输出之间发生的事情。
    • Scipy and numpy:两个科学和数值优化包

    我不知道您可以访问哪些软件,但这里有一些与工具相关的提示可以帮助您进行工具调查和识别:

    注意:为了给你一些开发时间框架,你所要求的内容可能需要至少两周的时间来开发。

    我希望这会有所帮助。