CAE工程师使用python等脚本举行自动化的好处

打印 上一主题 下一主题

主题 898|帖子 898|积分 2694

简介

编写一个脚本或工具来加快进程可能看起来令人生畏,或者不值得花费精力。假如只必要几个小时就能完成任务,为什么还要花一天时间编写脚本呢?答案是,这每每不是你唯一一次做 “某事”。可能是一次,也可能是 10 次或 100 次。
这就是脚本能真正帮助你的地方。但它并不局限于 “加快速度”。脚本可用于多个范畴,为 CAE 工程师提供帮助:

  • 定制工具,完全按照您的要求举行操作。
  • 根据公司指导方针举行定制检查,以确保您的模子符合要求。
  • 模子操作工具。
  • 为他人指定一个可遵循的流程(可减少错误)。
  • 还有更多
本文将探讨脚本怎样在 CAE 工程师的日常工作中发挥作用。
我们将使用 Oasys LS-DYNA Environment 软件,通过大量实例展示脚本的好处。我们还将展示,学习和编写有效的脚本实际上黑白常快速和简单的。
2 脚本简介

CAE 工程师使用的大多数预处置惩罚和后处置惩罚器都具有某种形式的脚本功能,使用脚本的原因有很多:

  • 工程师希望以不同方式访问模子数据,以满足他们的需求。
  • 在软件本机工具的基础上加强或引入新工具。
  • 添加软件本机不支持的读/写数据功能。
  • 添加公司特定的工具/流程。
  • 以特定方式检查模子和效果。
  • 通过自动化加快任务实行速度。
  • 还有很多其他功能。
在创建新脚本时,有一件事是值得推荐的,那就是始终有一个脚本示例库作为指导--这些示例通常包含在你使用的软件中,或者软件教程中。这样创建脚本就容易多了。每次添加一行,运行脚本并确保其正常运行,然后继续。不要试图在运行前编写 100 行代码,否则你可能要花很长时间来跟踪问题。
调试脚本时,通常在代码中写入打印语句有助于跟踪问题,有时也可以使用调试器来调查问题。
你会发现,几天的学习,也许几个小时的时间,就足以让你得到使用脚本做很多事情的知识。
3 预处置惩罚示例

以下是在预处置惩罚 LS- DYNA 模子时怎样使用脚本的一系列示例:

  • 模子组装/多个模子
  • 读取/写入外部数据
  • 自定义检查
  • 自动化
3.1 模子组装/多个模子

建立模子,尤其是建立多个模子是脚本的一个明显用途。是的,您可以使用 PRIMER 等预处置惩罚器的内置工具来构建多个模子,但您必要做一些与众不同的事情,或者针对您所在公司的详细情况,根据您手头的信息举行定制。
让我们以电子表格中的信息为例。您可能有一系列参数值,希望在模子中使用--下面的示例显示了一张电子表格,每项分析包含一行:

您希望将电子表格中的数据应用到基础模子中,从而创建多个模子,每行数据一个模子。正如您所看到的,您可以在这里设置各种值。初始速度、安全气囊和安全带的起火时间、材料模子的失效等。这些值也可以是包含文件名的一部门。例如,包含文件名可以包含控制卡中的停止计时器。
因此,在这个例子中,对于电子表格中的每一行数据,我们都希望将这些值以某种方式应用到模子中。这可以是替换主文件中的文本(示例中的另一个包含文件,其名称中包含一个值)。或者是在卡片的特定字段中插入数值。或者是创建或修改模子中已经存在的参数:
上表中的例子

  • PARAMK - 这是一个速度。可以直接使用该值修改初始速度卡。任何矢量成分和单位转换都可以考虑在内。
  • PARAME - 这是对包含文件版本的引用。例如,这可能是一个 BIW,而您希望在不同的运行中使用不同的版本。这里可以使用文本替换。
  • PARAMH - 这是特定材料卡的故障信息。可以改变数值以查看对总体效果的影响。
    通过一个简单的脚本就可以轻松完成上述所有操作。根据基础模子的设置,您可以轻松地将模子读入软件、读取电子表格数据、将数据应用于模子(有多种方法)并写出多个模子。在最基本的层面上,您只需将一些文本替换到输入甲板上,就可以非常方便快捷地建立多个模子。
    一个脚本可以完成上述工作,将从前可能必要很长时间并有可能引入错误的工作变成既稳健又快速的工作。在这种情况下,脚本的好处是能够以更复杂的方式操作数据,而不但仅是为某个字段赋值。
3.2 读/写外部数据

从外部文件读取和向外部文件写入信息是脚本怎样发挥作用的另一个例子。预处置惩罚器每每能很好地读取文件格式,但可能有些特定的文件格式它无法读取,或者你想以不同的方式解释数据。
连接信息就是一个例子。连接信息可以用多种不同的方式定义,也可以是预处置惩罚器无法读取的文件格式。假如具备肯定的脚本语言技能,创建一个可以解析包含连接信息的文件的工具,然后根据建模方法在模子中创建连接,黑白常简单直接的。
下面的示例是预处置惩罚器可能不支持的连接 XML 格式。
  1. <definition type="hex spot">
  2. <id>100</id>
  3. <coord x="-4181.817871" y="-862.289124" z="605.012268" />
  4. <diam>5.0</diam>
  5. <material>10023</material>
  6. <panel>100345</panel>
  7. <panel>100676</panel>
  8. <panel>100113</panel>
  9. <haz>1 ring</haz>
  10. <haz diam>8.0</haz diam>
  11. </definition>
  12. <definition type="hex spot">
  13. <id>101</id>
  14. <coord x="-4341.792480" y="-841.940857" z="608.532227" />
  15. <diam>5.0</diam>
  16. <material>10023</material>
  17. <panel>100244</panel>
  18. <panel>100245</panel>
  19. <haz>1 ring</haz>
  20. <haz diam>8.0</haz diam>
  21. </definition>
复制代码
一个相当简单的脚本就可以扫描该文件中的数据,并根据数据创建连接。其扩展功能之一是可以使用相当简单的脚本以更复杂的方式修改模子。分配连接属性就是一个例子。下面显示的是一个包含实体元素的点焊模子。

我们在面板上设置了环形元素来表示热影响区。这些热影响区元素将具有与基本金属板不同的属性。这些属性可以通过多种不同方式设置。也许您的建模方法是,您的热影响区零件 ID 有一个标签,这个标签与基板零件 ID 有一个特定的偏移。也许您的模子中有一系列 HAZ 零件,您必要根据点焊的直径、连接在一起的面板数目或连接在一起的材料品级,或者上述因素的组合来选择使用其中一个。脚本可以让您在模子中循环连接,分析热影响区,并根据您想要的任何规则设置 PID。同样,这也是一个例子,通过添加脚本,可以相当容易地使用和应用公司特定的建模方法。
参考资料

3.3 自定义校验

模子校验是模子设置的重要组成部门。当试图让模子在 LS-DYNA 中运行时,检查模子可以节省大量时间。但为什么要自定义校验,而不是仅仅依靠预处置惩罚器内置的校验呢?

  • 突出显示重要错误和警告
  • 引入预处置惩罚器未涵盖的新检查。
  • 公司特定检查--确保员工遵守公司特定规则。
  • 从不同来源提取检查信息--输出文件和输入文件。
下面是一个 “仪表盘 ”的示例,它从不同来源提取检查信息。其中一些来源是基于脚本的。

示例显示了各种检查以及模子是否通过检查。基于脚本的检查如下:

  • 模子度量 - 根据公司准则检查模子质量和时间步/附加质量信息。
  • 控制卡 - 检查使用的控制卡或控制卡上的值是否符合公司准则。
  • ELFORM 检查 - 检查是否存在积分点小于 5 的 16 型部件。
  • 环境 - 您可能有一个包含仪器信息的包含文件,必须始终包含在模子中。此检查将查看该包含文件是否存在。
  • MAT 100 检查 - 检查 MAT 100 零件上是否有未绑定接触的节点。
  • MAT 刚性约束检查 - 检查我们是否有任何带有刚性约束值集的 MAT 100 卡。
正如您所看到的,上述检查并不会导致LS-DYNA无法运行,因此可能不会被预处置惩罚器内置检查所发现,但它们是有效的工具,可用于确保输出的划一性。
3.4 自动化

自动化是 CAE 过程中日益重要的一部门。时间尺度的缩短和提高划一性的必要意味着自动化工具的价值不可估量。
脚本是为本身的目的创建自动化工具的有效方法。其中一个例子就是模子设置。这里有一个用于地震分析的土壤布局相互作用 LS-DYNA 模子示例:

土壤从地表向下分为一系列土层。这些土层的厚度和特性各不相同,信息来源于岩土工程勘察的电子表格。手动挤出土层并分配材料属性是一个漫长的过程,而且出现错误的可能性很高。
在这种情况下,可以编写一个简单的脚本来读取电子表格中的信息,并自动创建节点、元素、部件和材料/荷载曲线,以与岩土信息中的数据相匹配。该脚本的一个扩展功能是自动应用边界和抗震条件。

节省时间的优势显而易见,而模子构建划一性的改善也非常重要。
在这个特殊的例子中,它被应用于多个项目,在这些项目中,模子必要反复创建(例如,当您得到新的岩土信息时),因此节省的时间非常可观。
汽车方面的一个例子是组装汽车碰撞模子并应用边界条件。
4 后处置惩罚示例

下面我们将介绍在后处置惩罚环境中使用脚本的示例。这将涉及:

  • 查询和组合LS-DYNA输出,生成用户定义的适用于您情况的组件。
  • 效果的自动后处置惩罚
4.1 用户定义效果

一般来说,在查看LS-DYNA输出时,您会先查看LSDYNA写出的数据成分。然后,您可能会以某种方式修改数据,从而解释效果,告诉您模子中发生了什么。这可能是获取时间汗青数据,对其举行过滤和归并。也可以读取测试数据,并与 LS-DYNA 效果举行比力。
您可能还想创建用户自定义组件的等高线图,这些组件是通过组合效果组件或整合外部数据创建的。
这是脚本可以帮助解决的问题。对效果值的简单修改(例如除法、加法)可以由后置处置惩罚程序轻松处置惩罚,但假如您想读取外部数据并将其与普通数据组件相联合,编写一个简单的脚本就可以节省大量时间。
在撰写本文时,还没有图片和详细的示例。
4.2 自动对效果举行后处置惩罚

脚本在自动对效果举行后处置惩罚方面可以发挥很大作用。后处置惩罚器针对特定负载情况提供的模板可以满足部门需求,但每每必要对模板举行一些修改。脚本在这方面非常有效。让我们以车辆碰撞模子为例。您可能必要检索一些标准输入,例如计算星级的乘员伤害效果。这类模板通常在 posprocessing 软件中提供。您可能希望根据模子中您感兴趣的各种内容对其举行扩展,以生成符合您需求的定制报告。例如

  • 举行载荷路径分析,将不同数据库横截面的输出组合在一起,分析载荷是怎样通过车身传递的。您可能还希望将其与截面属性(可能是一个单独的文本文件)举行比力。
  • 生成显示点焊和粘合剂失效时间的特定图像。
  • 查看乘员伤害峰值的时间,并将其与车体变形和失效联系起来。
在没有标准载荷箱模板的情况下,这种定制的后处置惩罚更有意义。在之前的地震 LS-DYNA 分析示例中,能够自动生成报告、组合数据并告诉工程师所有相关信息在很大水平上依赖于脚本。
5 总结

投入少量时间学习脚本语言、工具和技能,对 CAE 工程师和他们所在的公司都有好处。在预处置惩罚任务方面,我们可以看到,假如有能力创建定制工具,让您能够在最短的时间内实行一系列不同的任务和流程,就能大大提高制作模子的速度、质量和划一性。在后处置惩罚方面,能够自动对效果举行后处置惩罚,并以适用于载荷情况和模子自由度的方式分析和显示效果。
在后处置惩罚方面,假如能够自动对效果举行后处置惩罚,并以适用于载荷情况和模子的方式分析和显示效果,工程师就可以腾出时间来实际考虑效果和推进计划。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表