命令流 | Workbench自动批量导出数据

文摘   科学   2024-10-04 14:49   广东  
1 问题描述

我们进行CAE仿真时,经常需要导出数据处理。对于单一工况的少量数据,我们可以通过手动操作导出数据。但是对于多工况、多载荷步的大量数据,采用手动操作的方式,显然是费时费力、很不现实的。

本文通过实例操作,演示Ansys Workbench自动批量导出结果数据方法,不仅可以自动批量的将分析结果导出,而且可以将每个工况、每个载荷步的分析数据分别保存在同一个文件中。
2 读取结果数据
该方法基于Ansys强大的命令流,因此我们先将Workbench的分析结果导入到Ansys经典界面中。具体操作步骤如下:
Step 1在Mechanical界面下,前处理后、Solve求解前,单击Analysis Settings,在下方面板的Analysis Data Management中设置Save MAPDL_db为Yes,如下图所示。特别重要操作,否则ANSYS经典界面无法打开结果文件

Step 2点击Solve求解,关闭Mechanical界面,返回到Workbench主界面,右击项目流程图中的Solution,单击Transfer Data To New,选择Mechanical APDL,将Workbench的分析结果数据传递到Ansys经典界面中,如下图所示。

Step 3右击项目流程图中的Solution,选择Update,进行结果更新,如下图所示。
Step 4右击Mechanical APDL下的Analysis,选择Edit in Mechanical APDL,进入Ansys经典界面,如下图所示。

Step 5此时,Ansys经典界面一片漆黑,没有模型显示,说明模型还未成功导入,点击左上角RESUME_DB,如下图所示。

Step 6展开General Postproc,展开Read Results,双击Last Set,读取Workbench的分析结果,如下图所示。

3 批量导出数据
通过上述操作后,我们已将Workbench的分析结果成功导入到Ansys经典界面中,接下来就可以通过命令流实现分析结果的批量导出。具体操作步骤如下:
Step 1将指定点、线、面等几何体的节点编号保存为文本文件(如nodenum.txt),然后将该文件保存在工作目录\files\dp0\APDL\ANSYS下。(重要操作,否则命令流无法读取节点编号) 
Step 2用记事本编写并保存如下代码:
/post1
m=“指定点、线、面的节点总数”
!定义一个数组用于存放数据*dim,nudenum_1, array, m, 1 !将保存的文本文件存放到数组 *vread,nodenum_1,nodenum,txt (f15.0) !定义一个保存数据矩阵,shell,m行4列*dim,shell, array, m, 4 *do, i, 1, “工况总数”, 1 set, i *cfopen, surface_%i%, txt *do, j, 1, m, 1 ! 获取x坐标*get, shell (j,1), node, j, loc,x

! 获取y坐标*get, shell (j,2), node, j, loc,y

! 获取z坐标*get, shell (j,3), node, j, loc,z
! 获取欲导出数据*get, shell (j,4), node, j, temp
! 命名数据导出后的文件名称txt_1=shell (j,1) txt_2=shell (j,2) txt_3=shell (j,3) txt_4=shell (j,4) *vwrite, txt_1,txt_2, txt_3,txt_4(3e15.6, 3e15.6, 3e15.6, 3e15.6) *enddo *enddo *cfclos finish
Step 3将上述代码另存为.inp格式文件,并保存在工作目录\files\dp0\SYS\MECH下。 
Step 4进入Ansys经典界面,点击File——>Read Input from——>选择保存的.inp文件。
Step 5计算完成后,在工作目录\files\dp0\APDL\ANSYS下找到生成的数据文件surface_i.txt,此时分析结果数据已批量导出,而且每个工况数据单独保存在一个文件中。
最后,我们就可以利用MATLAB强大的数值计算功能对各工况数据进行分析处理了。

纵横CAE
技术交流,知识共享。
 最新文章