設(shè)計(jì)仿真 | Python解析Adams res結(jié)果文件
Adams
背景簡(jiǎn)介
對(duì)Adams軟件進(jìn)行二次開發(fā),簡(jiǎn)化建模流程、仿真流程等進(jìn)而減少工作量。一般的分析流程,可分為前處理、求解和后處理三個(gè)方面,均可開展二次開發(fā)工作。
對(duì)后處理的二次開發(fā),第一步便是提取原始的仿真數(shù)據(jù)。Adams的仿真結(jié)果文件存放在后綴為.res的文件中。本文對(duì)res文件進(jìn)行介紹,并利用Python實(shí)現(xiàn)原始的數(shù)據(jù)提取,更多的數(shù)據(jù)對(duì)比、分析及展示工作還需用戶進(jìn)一步實(shí)現(xiàn)。
不少用戶選擇用Matlab或者其他語言實(shí)現(xiàn)后處理,道理相通,此文選用Python是因?yàn)槠淇缙脚_(tái)且開源。
Adams
res文件數(shù)據(jù)結(jié)構(gòu)
res文件可以用Notepad等編輯軟件打開,用戶可以查看其組成?;镜臄?shù)據(jù)結(jié)構(gòu)如下圖所示。

圖1 res數(shù)據(jù)結(jié)構(gòu)
從上圖可以看出Results包含兩大類:Bibiliography及Analysis,前者包含MSC公司信息、用戶名等無用信息,后者包含模型、單位、數(shù)據(jù)等有用信息。其中stepmap中包含結(jié)果名稱、Data中包含結(jié)果數(shù)據(jù)。
Adams
Python實(shí)現(xiàn)數(shù)據(jù)提取
res實(shí)質(zhì)是xml格式,問題轉(zhuǎn)換為用Python解析xml文件。
xml(extensible markup language)可擴(kuò)展標(biāo)記語言。基本語法:1、xml后綴名為.xml;2、第一行必須定義為文檔聲明;3、xml文檔中有且僅有一個(gè)根標(biāo)簽;4、屬性值必須使用雙引號(hào)或單引號(hào);5、標(biāo)簽必須是開始和結(jié)束;6、xml區(qū)分大小寫。
Python有三種方法解析xml文檔:
1)DOM:DOM譯為文檔對(duì)象模型,是W3C組織推薦的標(biāo)準(zhǔn)編程接口,它將xml數(shù)據(jù)在內(nèi)存中解析成一個(gè)樹,通過操作樹解析xml。
2)SAX:SAX是一個(gè)用于處理xml事件驅(qū)動(dòng)的模型,它逐行掃描文檔,一邊掃描一邊解析,對(duì)于大型文檔的解析有巨大優(yōu)勢(shì),盡管不是W3C標(biāo)準(zhǔn),卻得到了廣泛的認(rèn)可。
3)ElementTree:相對(duì)于DOM有更好的性能,與SAX性能差不多,API使用也很方便。綜上考慮采用ElementTree方式。
根據(jù)數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)流程如下:

圖2 提取數(shù)據(jù)流程
Adams
附件說明
用戶需要在pre_defined_name.xlsx表格中定義結(jié)果名稱,運(yùn)行python文件后,會(huì)生成data_output.xlsx數(shù)據(jù)文件。

提交
小身量大效能 | 高效精準(zhǔn)的車身內(nèi)間隙檢測(cè)方案
數(shù)控五軸模擬訓(xùn)練機(jī)大顯身手,競(jìng)賽數(shù)字孿生應(yīng)用迎來新突破
浪尖上的創(chuàng)新 | ??怂箍狄钥萍贾厮軟_浪板的綠色未來
GD&T | 尺寸要素的位置度在MMC時(shí)零工差和可逆原則的應(yīng)用
質(zhì)量管理 | ??怂箍蒂|(zhì)量管理平臺(tái)數(shù)字化糾正預(yù)防措施

投訴建議