
C++ wrapper助力EikoTwin软件实现ABAQUS仿真模拟数据与实测数据自动相关联
发布时间:
2022-09-08 13:33
来源:
您是否希望自动执行Abaqus仿真模型和测量之间的关联?是想通过开发python脚本实现,或是使用C++API实现,还是通过开发我们软件的解析器实现?对于要实现此功能,我们开发解析器时,对需要关联的数据的读写格式做了大量试验,像位移场或变形场数据、应变仪或称重传感器实测结果,我们都做了试验。接下来就通过我们对特定案例的描述,来了解我们的解析器在Abaqus仿真模型与测量之间相关联方面的优势。
首先是研究需求
与许多研究者不同的是,我们与 Abaqus 的接触不是通过 CAE 界面,而是通过外部脚本生成的 INP 文件直接使用命令行求解器。我们的这项工作始于 2009 年,实现测量和仿真之间的完美匹配,我们需要从Correli-Q4软件创建的全局图像相关网格创建这些 Abaqus 模型,然后,我们通过确定最接近测量结果的模拟来确定尖端的位置。

在这个框架中,我们没有使用逆向方法进行识别,具体实现过程描述如下:
- 使用Matlab/python在INP文件中创建一系列模型,这得益于基本参数:初始图像相关网格,由简单开口或内聚元素表示的裂缝分割。尖端的位置是可配置的。连接表的管理是一个真正的挑战,尤其是如果您想要拉伸三维网格!
- 在命令行中启动计算;
- 通过 python 脚本从 ODB 中提取位移场;
- 比较测量场和模拟场以确定裂纹尖端。
稍后,由于图像相关采用非结构化网格,我们将开始从INP文件中读取网格,并添加一个用于材料属性识别的反馈回路。这是我们向有限元网格解析的过渡,除了少数例外,因为我们所有的INP文件都是从 Abaqus CAE导出的,因此以非常相似的方式编写。
适应工业案例
客户为什么不愿意花费时间自己开发集成功能,来操作处理有限元数据呢?因为制作一个通用的连接器比实验室工作复杂得多,原因如下:
- 工业需求更加多样化,涵盖了 Abaqus 的许多功能。在实验室中,我们不需要以 UMAT、材料取向、奇异元素类型、边界条件的形式整合材料定律……但这些工业中的需求迫使我们优先考虑开发。
- INP文件可以通过 Abaqus CAE以外的其他 pre/post 导出。Abaqus 对这些文件的其他形式的语法非常开放(例如按照 PART/INSTANCES 的定义顺序),通用连接器必须能够自己解析这些格式变体,或者决定对我们的客户强加一个独特的语法,甚至将意味着要求他们重新编写INP文件。这是个艰难的选择!
- 我们不仅需要读取INP文件,而且还必须通过DIGITAL TWIN将其重写为 “enhanced”版本。这意味着我们不需要为测量需求解释的许多功能仍然必须保留,以便在输出INP文件中的正确位置进行重写。对于那些在模型中被解释和需要替换的块,我们还需要能够识别INP文件中需要被替换的块并写入EikoTwin软件套件生成的新块。

那么,我们选择做什么呢?
鉴于之前的考虑和我们以往的经验,我们认为,python 脚本的使用似乎不适用于足够通用的集成。
- Abaqus 软件分发中提供的 API,允许我们使用两个选项,使用 python API 或使用 C++ API。我们自然选择了 C++ API,因为我们的软件代码也是用 C++ 编写的,当然也是出于性能考虑。
- 为了满足 EikoTwin 软件套件的需求,即执行与 Abaqus 仿真模型的关联,我们必须能够:读入 INP 输入文件、有限元网格、分配给每个元素的材料方向,以便能够表达该局部参考框架中的变形、边界条件、材料和计算步骤;
- 重写修改后的INP文件;
- 读取包含在 odb 文件中的模拟结果;
- 重写一个odb文件。
首先,我们必须读取输入文件和结果文件这一事实意味着我们必须能够将这些结果分配给我们软件中使用的内部网格格式的节点和元素。因此,维护读入 NPI 的原始节点和元素编号的信息至关重要。
其次,必须修改模型并重写它需要存储输入文件的结构和信息。为此,我们使用了一个存储树,它允许我们修改该树的节点并能够简单地重写未修改的内容。
为此增加了其他技术需求,特别是我们需要能够:
- 分布式安装我们的软件套件而不将其显式链接到 Abaqus,但最终客户端能够使用我们的 C++ API 覆盖其 Abaqus安装;
- 管理客户站点上存在的不同版本的Abaqus;
- 稍后管理其他求解器(特别是链接到 Hyperworks、Samcef 的特定格式……)。
使用我们编写的 C++ wrapper 的好处是我们可以为每个版本的 Abaqus 编译一个静态库。这使我们能够在运行时确定客户端正在使用哪个版本的 Abaqus 并使用他安装的 dll。
结果如何?
经过多年的开发和大量代码的实践,我们通过其API和解析器与Abaqus的集成非常完美,并且已经解决了许多客户案例。在最新发展中,Abaqus中灵敏度研究的驱动允许用户将解算器用作“黑盒”,并估计在给定测试中可以识别哪些模型参数。下图总结了已经可能的连接。
我们的下一个目标是:与模拟服务器的连接以及充分使用壳元素进行DIC和测试/模拟比较,这对于大型结构模拟至关重要。但我们也将面临一个挑战:与模拟服务器的连接通常在Linux下,我们的软件却仅适用于Windows。
我们,文件,abaqus,使用,通过,非接触式应变测量,仿真模拟验证,仿真与实测对比,仿真与实测相关联