随着詹姆斯-韦布太空望远镜(JWST)发射升空,新的天文观测时代已经到来。它使人类得以窥见迄今为止最遥远、最清晰的宇宙天体红外图像。这些美轮美奂的图像得益于它的6.6米超大口径主反射镜。
由光学定律可知,主反射镜的口径越大,望远镜的分辨率就越高,视野越广阔,图像越清晰。为了提高望远镜的分辨率和成像质量,对更大口径的主反射镜的需求是永无止境的。
然而,反射镜的口径越大,制造难度越大,其重量、体积等急剧增加,超出现有火箭的运载能力!因此需要对反射镜进行轻量化设计,甚至地面折叠在轨展开等。
在实现超轻量化结构设计的同时,反射镜需能够在自重、温差、平面度不耦合等情况下满足光学使用要求。红外光学系统对主反射镜面形一般要求RMS≤ λ/20(可见光学系统要求更高),可以理解为镜面的粗糙度需达到30nm以下。
显然,反射镜及其支撑结构设计是一个以光学性能指标为约束,以自重、温差、平面度偏差等为载荷,以超轻量化率为目标的多工况、多载荷步优化设计问题。因此反射镜轻量化设计时,需要借助ANSYS等有限元分析软件进行迭代计算。
然而,ANSYS求解后,我们需要反复将分析结果以数据形式导出,以便将数据导入专业的数据分析软件(如MATLAB、Mathematica、SPSS、Excel等)中进行后处理操作。
如下图所示,通过利用MATLAB强大的数值计算功能,分离反射镜面在自重、温差和平面度不耦合等多重因素影响下的刚体 位移,拟合畸变的反射镜面,从而预估反射镜面的光学性能,如慧差、像散、RMS,PV等。
对于单一工况的少量数据,我们可以通过手动操作导出数据。但是对于多工况、多载荷步的大量数据,采用手动操作的方式,显然是费时费力、很不现实的。那么有没有什么方便快捷的方法,不仅可以自动批量的将分析结果导出,而且可以将每个工况、每个载荷步的分析数据分别保存在同一个文件中,以便提高数据处理效率呢?答案是肯定的!本文以实例操作的形式,演示ANSYS命令流自动批量导出结果数据。(1)在ANSYS Workbench的Mechanical界面下,前处理后、Solve求解前,单击Analysis Settings,在下方面板的Analysis Data Management中设置Save MAPDL_db为Yes,如下图所示;(特别重要操作,否则ANSYS经典界面无法打开结果文件)
(2)点击Solve求解后,关闭Mechanical界面,返回到ANSYS Workbench主界面,右击项目流程图中的Solution,单击Transfer Data To New,选择Mechanical APDL,将ANSYS Workbench的分析结果数据传递到ANSYS经典界面中,如下图所示;
(3)右击项目流程图中的Solution,选择Update,进行结果更新,如下图所示;
(4)右击Mechanical APDL下的Analysis,选择Edit in Mechanical APDL,进入ANSYS经典界面,如下图所示;
(5)此时,ANSYS经典界面一片漆黑,没有模型显示,说明模型还未成功导入,点击左上角RESUME_DB,如下图所示;
(6)展开模型树中的General Postproc,展开Read Results,双击Last Set,读取ANSYS Workbench的分析结果,如下图所示;
通过上述操作后,我们已将ANSYS Workbench的分析结果成功导入到ANSYS经典界面中,接下来就可以通过命令流实现分析结果的批量导出。具体操作步骤如下:
(1)将指定点、线、面等几何体的节点编号保存为文本文件(如nodenum.txt),然后将该文件保存在工作目录\files\dp0\APDL\ANSYS下;(重要操作,否则命令流无法读取节点编号)*dim,nudenum_1, array, m, 1*vread,nodenum_1,nodenum,txt set, i
*cfopen, surface_%i%, txt
*do, j, 1, m, 1
*get, shell (j,1), node, j, loc,x
*get, shell (j,2), node, j, loc,y
*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
(3)将上述代码另存为.inp格式文件,并保存在工作目录\files\dp0\SYS\MECH下;(4)进入ANSYS经典界面,点击File——>Read Input from——>选择保存的.inp文件;(5)计算完成后,在工作目录\files\dp0\APDL\ANSYS下找到生成的数据文件surface_i.txt,此时分析结果数据已批量导出,而且每个工况数据单独保存在一个文件中。最后,我们就可以利用MATLAB强大的数值计算功能对各工况数据进行分析处理了。