logo

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

Adams

背景简介

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


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


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


Adams

res文件数据结构

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


微信图片_20240108112939.jpg

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


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

微信图片_20240108112943.jpg

图2 提取数据流程


Adams

附件说明

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


微信图片_20240108112946.png


上一篇:【聚力推进新型工业化 中国联通在行动】系列报道: 下一篇:​汇川技术与百威亚太强强联手,缔结战略合作共筑科技双碳未来
最新资讯