欢迎来到天天文库
浏览记录
ID:9232302
大小:156.09 KB
页数:4页
时间:2018-04-24
《linux操作系统下mgaero气动计算后处理软件开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、60弹箭与制导学报2002年Linux操作系统下MGAERO气动计算后处理软件开发王鹏张靖关为群(北京理工大学北京100081)[摘要]介绍了Linux操作系统下MGAERO气动计算软件计算数值结果后处理软件系统的功能~结构和性能要求并阐述了其关键技术G[关键词]Linux;GNOME/GTK+编程;气动计算后处理[中图分类号]TJ011[文献标识码]A1前言亚跨超音速外流气动计算软件系统是以Linux操作系统下亚跨超音速外流气动计算软件MGAERO(Multi-GLidAeLodynamics)为核心的软件系统GMGA
2、ERO可用于任意复杂程度三维外形亚~跨~超音速飞行时的气动特性计算G它与相应的辅助软件配合使用可以完成精确表面网格的构造以及数据结果的定量输出与可视化显示GMGAERO亚跨超音速气动计算软件在规定试验条件下(马赫数~攻角等)对试验对象(模型)进行流场数值模拟然后分别将每一来流数据参数试验条件下的计算结果存储为一个扩展名为SOUT的文本格式文件G对于需要根据试验条件的变化来分析气动特性的人员在气动计算环节与分析环节之间必须做的工作是,对计算结果数据和试验条件等关键信息进行提取~整理及数据分析处理等G人工完成这些工作是重复~
3、繁琐且工作量巨大的G因此开发研制Linux平台下MGAERO气动计算后处理应用软件成为亚跨超音速外流气动计算软件系统中的重要课题G2软件系统分析与总体设计2.1软件系统功能分析与总体结构设计软件系统的输入信息载体为,含有试验条件与SOUT文件名信息的批处理文件和含有气动特性计算结果的SOUT文件G软件系统的输出要求为,气动参数及其导数~数据曲线~数据表和气动计算报告G根据系统的输入输出要求可知该系统功能需求包括,(1)提取批处理文件中的关键信息;(2)提取SOUT文件中的气动计算结果等关键信息;(3)整理用户所需气动参数
4、;(4)绘制数据曲线进行数据求导;图1总体结构和信息流程图(5)自动生成试验报告G收稿日期,2001-08-09作者简介,王鹏(1979)男山西太原人硕士研究生;研究方向,系统分析设计~评价~综合集成技术G第22卷第1期Linux操作系统下MGAERO气动计算后处理软件开发王鹏等61根据以上功能分析确定该软件系统划分为五个功能模块:读取批处理文件模块~读取气功计算结果文件模块~整理数据表模块~数据分析模块~生成试验报告模块O其总体结构设计和信息流程如图1所示O各模块的主要作用如下:(1)读批处理文件模块:读取批处理文件的
5、内容从而获得模型文件名~一系列SOUT文件名~SOUT文件个数和一系列运算条件(马赫数~攻角等)O(2)读数据结果模块:打开由第一步确定的一系列气动计算结果输出SOUT文件O在每一个文件内的大量计算数据信息中提取重要的参数如参考面积~参考点坐标~参考长度~参考展长以及该求解条件下的各项气动系数O同时由相应参数计算出压心系数O将获得的一系列气动系数与前面所得一系列运算条件一并整理为数据表O(3)整理数据表模块:将用户选取的某几项气动参数整理为相应的数据表O(4)数据分析模块:此处采用的导数求解方法为线性斜率法O首先针对某一
6、指定参数在指定条件下绘制二维曲线其次根据曲线的线性情况选择线性变化自变量区最后根据线性区对气动系数进行斜率法求导得到气动导数如升力系数斜率CaUZ等Oy~Cy(5)试验报告模块:设置试验单位~飞行器名称~系统时间等试验项目整理统计将上述各项内容以及多项试验数据和分析数据自动整理生成最后的气动计算试验报告O2.2软件的性能要求该软件系统要求采用具有良好人机接口和便利操作的Linux下图形用户界面GUIO数据的提取以及后处理应具有可靠性和准确性O代码编程简洁~易读O3关键技术3.lGUI编程该系统选择C语言编写并且采用了CN
7、OME/GTK-库OGNOME/GTK-是一种功能强~运行速度快并且用户界面友好性很好的大型桌面环境和开发环境O为使各功能模块相对独立~操作清晰~易用该系统采用多文档界面(MDI)高级界面技术OAPI接口由C函数调用组成使用部分面向对象结构O一个MDI对象在多个高层窗口或多个子窗口之间扮演中间人的角色允许使用鼠标从一个子窗口切换到另外一个子窗口同时MDI对象还负责创建和维护菜单和工具条O其中一功能模块用户界面如图2所示O3.2读取数据文件信息(1)在批处理文件中包含的SOUT文件名是表示计算条件的字符信息与数值信息相间的
8、一串文本如:mO6OdzOOOdyOOOaOO2i表示计算条件为马赫数O.6~舵偏角6Z=4~6y=-4~攻角O=2~无粘求解O利用函数sscanf()来实现对字符间数值的提取命令行如下:sscanf(inname[I]/m%ddz%ddy%da%d%n/8tMa8tDetz8tDety8tAlpha8n);其中in
此文档下载收益归作者所有