设计仿真 | Python解析Adams res结果文件
Adams
背景简介
对Adams软件进行二次开发,简化建模流程、仿真流程等进而减少工作量。一般的分析流程,可分为前处理、求解和后处理三个方面,均可开展二次开发工作。
对后处理的二次开发,第一步便是提取原始的仿真数据。Adams的仿真结果文件存放在后缀为.res的文件中。本文对res文件进行介绍,并利用Python实现原始的数据提取,更多的数据对比、分析及展示工作还需用户进一步实现。
不少用户选择用Matlab或者其他语言实现后处理,道理相通,此文选用Python是因为其跨平台且开源。
Adams
res文件数据结构
res文件可以用Notepad等编辑软件打开,用户可以查看其组成。基本的数据结构如下图所示。
图1 res数据结构
从上图可以看出Results包含两大类:Bibiliography及Analysis,前者包含MSC公司信息、用户名等无用信息,后者包含模型、单位、数据等有用信息。其中stepmap中包含结果名称、Data中包含结果数据。
Adams
Python实现数据提取
res实质是xml格式,问题转换为用Python解析xml文件。
xml(extensible markup language)可扩展标记语言。基本语法:1、xml后缀名为.xml;2、第一行必须定义为文档声明;3、xml文档中有且仅有一个根标签;4、属性值必须使用双引号或单引号;5、标签必须是开始和结束;6、xml区分大小写。
Python有三种方法解析xml文档:
1)DOM:DOM译为文档对象模型,是W3C组织推荐的标准编程接口,它将xml数据在内存中解析成一个树,通过操作树解析xml。
2)SAX:SAX是一个用于处理xml事件驱动的模型,它逐行扫描文档,一边扫描一边解析,对于大型文档的解析有巨大优势,尽管不是W3C标准,却得到了广泛的认可。
3)ElementTree:相对于DOM有更好的性能,与SAX性能差不多,API使用也很方便。综上考虑采用ElementTree方式。
根据数据结构,设计流程如下:
图2 提取数据流程
Adams
附件说明
用户需要在pre_defined_name.xlsx表格中定义结果名称,运行python文件后,会生成data_output.xlsx数据文件。