首页/文章/ 详情

ANSYS Workbench自动批量导出数据方法

13天前浏览1714

本文摘要:(由ai生成)

本文探讨了詹姆斯-韦布太空望远镜主反射镜的轻量化设计挑战,并提出了使用ANSYS Workbench和经典界面结合命令流,实现多工况、多载荷步分析结果数据自动批量导出的方法。这种方法不仅提高了数据处理效率,也为反射镜面的光学性能预估提供了便利。对于多工况优化设计具有重要意义。
1 问题描述      
随着詹姆斯-韦布太空望远镜(JWST)发射升空,新的天文观测时代已经到来。它使人类得以窥见迄今为止最遥远、最清晰的宇宙天体红外图像。这些美轮美奂的图像得益于它的6.6米超大口径主反射镜。

由光学定律可知,主反射镜的口径越大,望远镜的分辨率就越高,视野越广阔,图像越清晰。为了提高望远镜的分辨率和成像质量,对更大口径的主反射镜的需求是永无止境的。

式中,θ ——射镜的极限分辨角;
         D——反射镜的有效口径;

         λ——波长。

然而,反射镜的口径越大,制造难度越大,其重量、体积等急剧增加,超出现有火箭的运载能力!因此需要对反射镜进行轻量化设计,甚至地面折叠在轨展开等。

在实现超轻量化结构设计的同时,反射镜需能够在自重、温差、平面度不耦合等复杂力热环境下满足光学使用要求。红外光学系统对主反射镜面形一般要求RMS≤ λ/30(λ=632.8nm,可见光学系统要求更高)。

显然,反射镜轻量化结构设计是一个以光学指标为约束,以自重、温差、平面偏差等为负载,以超轻量化率为目标的多工况、多载荷步优化设计问题。因此反射镜轻量化设计时,需要借助ANSYS等有限元分析软件进行迭代计算。

然而,ANSYS求解后,我们需要反复将分析结果以数据形式导出,以便将数据导入专业的数据分析软件(如MATLAB、Mathematica、SPSS、Excel等)中进行后处理操作。

如下图所示,通过利用MATLAB强大的数值计算功能,分离反射镜面在自重、温差和平面度不耦合等多重因素影响下的刚体 位移,拟合畸变的反射镜面,从而预估反射镜面的光学性能,如慧差、像散、RMS,PV等。

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

Step 2点击Solve求解后,关闭Mechanical界面,返回到ANSYS Workbench主界面,右击项目流程图中的Solution,单击Transfer Data To New,选择Mechanical APDL,将ANSYS 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,读取ANSYS Workbench的分析结果,如下图所示。

3 批量导出数据      
通过上述操作后,我们已将ANSYS Workbench的分析结果成功导入到ANSYS经典界面中,接下来就可以通过命令流实现分析结果的批量导出。具体操作步骤如下:
Step 1将指定点、线、面等几何体的节点编号保存为文本文件(如nodenum.txt),然后将该文件保存在工作目录\files\dp0\APDL\ANSYS下。(重要操作,否则命令流无法读取节点编号)
Step 2用记事本编写并保存如下代码:
    /post1m=“指定点、线、面的节点总数”!定义一个数组用于存放数据*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吧
    MechanicalMechanical APDLWorkbench光学MATLABUM
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2024-05-20
    最近编辑:13天前
    侠客烟雨
    硕士 竹杖芒鞋轻胜马,一蓑烟雨任平生
    获赞 91粉丝 46文章 93课程 0
    点赞
    收藏

    作者推荐

    未登录
    还没有评论

    课程
    培训
    服务
    行家

    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈