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

Gul*_*ngo 2 scripting optimization 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?

Man*_*iaz 6

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

  1. 仔细制定最小化问题(最小化f(x),其中x是包含......变量的向量,受......约束等)
  2. 调查和识别感兴趣的个人工具
  3. 每个工具如何工作?输入变量?输出变量?
  4. 在设计结构矩阵(又名N ^ 2图)中概述工具如何将信息(变量)相互馈送
  5. 什么优化器最适合您的问题(MDF?)
  6. 确定合适的收敛容差

完成上述步骤后,我将开始考虑MDO实现细节.Python虽然不是最快的语言,但却是一个理想的环境,因为有许多用Python构建的工具来解决你所拥有的MDO问题和开发时间短.我建议使用以下包

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

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

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

我希望这有帮助.