設計仿真 | Python解析Adams res結果文件

Adams

背景簡介

對Adams軟件進行二次開發,簡化建模流程、仿真流程等進而減少工作量。一般的分析流程,可分為前處理、求解和后處理三個方面,均可開展二次開發工作。

對后處理的二次開發,第一步便是提取原始的仿真數據。Adams的仿真結果文件存放在后綴為.res的文件中。本文對res文件進行介紹,并利用Python實現原始的數據提取,更多的數據對比、分析及展示工作還需用戶進一步實現。

不少用戶選擇用Matlab或者其他語言實現后處理,道理相通,此文選用Python是因為其跨平臺且開源。

Adams

res文件數據結構

res文件可以用Notepad等編輯軟件打開,用戶可以查看其組成。基本的數據結構如下圖所示。

設計仿真 | Python解析Adams res結果文件的圖1

圖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

圖2 提取數據流程


Adams

附件說明

用戶需要在pre_defined_name.xlsx表格中定義結果名稱,運行python文件后,會生成data_output.xlsx數據文件。

設計仿真 | Python解析Adams res結果文件的圖3

關注海克斯康工業軟件公眾號下載附件

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2