设计仿真 | Python解析Adams res结果文件

Adams
背景简介

对Adams软件进行二次开发,简化建模流程、仿真流程等进而减少工作量。一般的分析流程,可分为前处理、求解和后处理三个方面,均可开展二次开发工作。

 

对后处理的二次开发,第一步便是提取原始的仿真数据。Adams的仿真结果文件存放在后缀为.res的文件中。本文对res文件进行介绍,并利用Python实现原始的数据提取,更多的数据对比、分析及展示工作还需用户进一步实现。

 

不少用户选择用Matlab或者其他语言实现后处理,道理相通,此文选用Python是因为其跨平台且开源。

 

Adams
res文件数据结构

res文件可以用Notepad等编辑软件打开,用户可以查看其组成。基本的数据结构如下图所示。

设计仿真 | Python解析Adams res结果文件

图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方式。

 

根据数据结构,设计流程如下:

设计仿真 | Python解析Adams res结果文件

图2 提取数据流程

 

Adams
附件说明

用户需要在pre_defined_name.xlsx表格中定义结果名称,运行python文件后,会生成data_output.xlsx数据文件。

设计仿真 | Python解析Adams res结果文件

 

 

 

相关软件
Adams是一款帮助工程师研究运动部件的动力学以及载荷和力在整个机械系统中的分布的软件。Adams通过支持早期的系统级设计验证来提高工程效率并降低产品开发成本。工程师可以评估和管理各个学科之间复杂的相互作用,包括运动,结构,驱动和控制,以更
相关阅读