介绍
随机振动模拟通常用于评估组件承受运输过程中振动的能力。随机振动分析利用先前模态分析的频率和模式内容对通过功率谱密度 (PSD) 负载定义的频谱和功率内容进行线性叠加。在大多数装配模型中,螺栓连接(由求解器变为 BEAM188 元素)通常用于代替 3D 实体网格螺栓,以提高计算效率;在大多数分析系统(即静态或瞬态结构)中,梁探针可用于后处理梁连接中的反应和应力。但是,梁探针不可用于在随机振动分析中后处理梁连接反应和应力。在本文中,我们将解释 PyAnsys DPF 如何从 Ansys Mechanical 中检索结果文件中的这些项目并将结果导出到 CSV 文件。
案例研究
在之前的文章中,我们研究了如何使用 Python 在 Mechanical 中为简单的螺栓法兰组件自动创建等效应力结果对象。
在这里,我们将使用 MIL-STD-810H 中的垂直 PSD 对同一螺栓法兰组件进行随机振动分析,以扩展我们对美国高速公路普通卡车振动的分析:
脚本算法
为了检索结果,我们将利用 Ansys Mechanical 中的 Ansys Python 数据处理框架 (DPF)(在版本 2024 R2 中实施)。算法的伪代码(典型的 DPF 脚本)如下:
- 通过编辑analysisNumbers列表,输入脚本将提取结果的分析编号。
- 注意:如果需要,该脚本还可以检索静态和瞬态结构分析的结果。
- 定义输出所需的长度和力的单位。
- 从结果文件中检索求解器数据、分析类型和求解器单位。
- 创建一个连接到结果文件的dpf.DataSources对象(数据源)。
- 从数据源中读取所有结果集的信息,即数量和时间。
- 创建网格算子并读取网格数据。
- 定义时间范围运算符。
- 读入所有材料和相关属性。如果弹性模量可用,则将材料名称与模量一起放入字典中。
- 获取所有梁连接 ID 和相关元素 ID(不同)。
- 对于每个梁连接,创建一个字典来存储所有属性和
- 读取每个末端节点的坐标并计算长度。
- 读取材料和半径,然后计算面积和惯性矩。
- 创建一个SMISC结果运算符来检索每个BEAM188 元素的每个节点(即梁连接)处的力和力矩。
- 将数据源、时间范围和网格范围连接到 SMISC 操作符。
- 使用 DPF 函数将力和力矩结果转换为所需单位。
- 使用标准公式计算直接应力、弯曲应力、扭转应力、等效应力和组合应力。
- 将计算结果添加到结果字典并写入文件。
- 该文件将存储在Workbench 项目内的user_files文件夹中,并将根据分析类型和名称命名和加盖日期戳。
结果输出
运行脚本后,文件将存储在user_files文件夹中,如下所示:
对于随机振动分析,会输出多个结果集,但只有结果集 = 2 包含有用信息:1-sigma 级别结果。因此,只需过滤集列 = 2即可获得所需结果。此处显示了生成的 CSV 文件的片段(右侧有更多列未显示):
结论
本文演示的 (Ansys 2024 R2) 脚本提供了一种自动获取梁连接反应和应力结果的方法,而这些结果在 Ansys Mechanical GUI 中无法用于随机振动分析。此外,同一脚本还可以获取静态和瞬态结构分析系统的结果。使用标准公式,还可以计算应力合力并将其包含在 CSV 输出文件中。总之,利用 Mechanical 中的 Ansys DPF 自动执行重复任务和/或检索 Mechanical GUI 中无法获得的数据是对仿真工作流程的有力补充。